Ciao a tutti, avrei la necessità di inserire un nuovo campo nel form registrazione che indichi che modello di prodotto dispone al momento della registrazione. Il campo dev'essere textarea e non deve essere obbligatorio. ho seguito la marea di guide in rete per la creazione di un attributo custom. Al termine dell'upload in un sito di test però non so più cosa fare per installare l'attributo tramite il file install. Tutte le guide dicono di pulire la cache o di navigare che automaticamente magento farà il suo corso, ma non funziona.
Ho provato anche ad utilizzare questo form, che dopo la verifica manuale ho potuto constatare che crea tutto correttamente:
http://www.silksoftware.com/magento-module-creator/#.VG-SJ_nF9Zo
Ciao grazie per gli aiuti
Dovresti farci vedere meglio il codice nello specifico perchè diversamente è difficile darti maggiori informazioni. Tieni comunque conto che su Magento 1 è necessario modificare anche il template per aggiungere il campo aggiuntivo.
Ho creato i seguenti file:
app\etc\modules\FrdCts_Macchina.xml
<?xml version="1.0"?> <config> <modules> <FrdCts_Macchina> <active>true</active> <codePool>local</codePool> <version>0.1.0</version> </FrdCts_Macchina> </modules> </config>
app\code\local\FrdCts\Macchina\etc\config.xml
<?xml version="1.0"?> <config> <modules> <FrdCts_Macchina> <version>0.1.0</version> </FrdCts_Macchina> </modules> <global> <helpers> <macchina> <class>FrdCts_Macchina_Helper</class> </macchina> </helpers> <models> <macchina> <class>FrdCts_Macchina_Model</class> <resourceModel>macchina_mysql4</resourceModel> </macchina> </models> <resources> <customerattribute1483368324_setup> <setup> <module>FrdCts_Macchina</module> <class>Mage_Customer_Model_Entity_Setup</class> </setup> <connection> <use>core_setup</use> </connection> </customerattribute1483368324_setup> <customerattribute1483368324_write> <connection> <use>core_write</use> </connection> </customerattribute1483368324_write> <customerattribute1483368324_read> <connection> <use>core_read</use> </connection> </customerattribute1483368324_read> </resources> </global> </config>
app\code\local\FrdCts\Macchina\Helper\Data.php
<?php class FrdCts_Macchina_Helper_Data extends Mage_Core_Helper_Abstract { }
app\code\local\FrdCts\Macchina\sql\customerattribute1483368324_setup\mysql4-install-0.1.0.php
<?php $installer = $this; $installer->startSetup(); $installer->addAttribute("customer", "macchina", array( "type" => "varchar", "backend" => "", "label" => "Tipo Macchina", "input" => "text", "source" => "", "visible" => true, "required" => false, "default" => "", "frontend" => "", "unique" => false, "note" => "" )); $attribute = Mage::getSingleton("eav/config")->getAttribute("customer", "macchina"); $used_in_forms=array(); $used_in_forms[]="adminhtml_customer"; $used_in_forms[]="checkout_register"; $used_in_forms[]="customer_account_create"; $used_in_forms[]="customer_account_edit"; $used_in_forms[]="adminhtml_checkout"; $attribute->setData("used_in_forms", $used_in_forms) ->setData("is_used_for_customer_segment", true) ->setData("is_system", 0) ->setData("is_user_defined", 1) ->setData("is_visible", 1) ->setData("sort_order", 100) ; $attribute->save(); $installer->endSetup();
Poi ho creato un campo input nel file di registrazione con nome macchina esattamente come il nuovo campo e per far in modo che venisse trovato, ma niente.
Attendo vostre info a riguardo
Ciao
Ho fatto un test e funziona.
Il campo almeno compare nel backend se provi ad aggiungere un cliente da lì?
Che codice hai usato per il campo nella registrazione?
Il problema è nel salvataggio, perchè tutto viene creato sia nel backend che nel frontend ma quando effettuo il salvataggio dell'utente da frontend non viene memorizzato il campo. Da backend funziona tutto, il campo c'è e se salvo da li funziona.
Puoi postare il codice del form frontend?
<li class="fields"> <div class="field"> <label for="macchina">Macchina</label><br /> <input type="text" name="macchina" id="macchina" value="" title="" class="required-entry input-text" ></textarea> </div> </li>
Ma forse perchè uso OnePageCheckout? Il test lo stavo facendo sul form di registrazione in fase di checkout che è quello più utilizzato, ed utilizza OPC.
ti consiglio di testarlo prima nella registrazione classica.
In alternativa testalo sul onepage classico però ti consiglio di provare sia senza che con i prefissi (anche se si tratta di un campo customer).
Funziona utilizzando il form classico!
Il problema al momento sta nel file Edit che non viene caricato il dato della macchina, ma se provo a modificare funziona correttamente. E nella OPC.
uhm allora bisogna vedere in modo specifico quel OPC