Magento 1.4 - Aggiungere il codice fiscale

2 min read
Dalla versione 1.4 in Magento è finalmente stato aggiunto il campo relativo alla partita iva per i clienti.
In attesa che venga aggiunta la possiblità di gestire campi custom internamente vi mostriamo come aggiungere il campo per il codice fiscale.
(si è preso spunto da http://www.fontis.com.au/blog/magento/know-more-about-your-customers-adding-custom-signup-attributes)



Per prima cosa bisogna creare nella cartella app\etc\modules il file 'innove_cf.xml' (sarà il nome del nostro modulo) :
[xml]
<config>
<modules>
<innove_cf>
<active>true</active>
<codePool>local</codePool>
</innove_cf>
</modules>
</config>
[/xml]
Prendiamo dal il file 'app\code\core\Mage\Customer\etc\config.xml' e copiamolo, dopo averla creata, nella cartella 'app\code\local\innove\cf\etc'. Apriamolo con un editor e cerchiamo:
[xml]
<modules>
<Mage_Customer>
<version>x.x.x</version>
</Mage_Customer>
</modules>
[/xml]
Modifichiamolo in :
[xml]
<modules>
<innove_cf>
<version>1.0.0</version>
</innove_cf>
</modules>
[/xml]
Sempre nel file cerchiamo il tag '<global>', all'interno troveremo il tag '<fieldsets>', prima della chiusura del tag '<customer_account>' aggiungiamo:
[xml]<cf><create>1</create><update>1</update></cf>[/xml]
Creiamo ora la cartella 'app\code\local\innove\cf\Model\Entity' e aggiungiamo il file 'Setup.php' copiandolo da 'app\code\core\Mage\Customer\Model\Entity\Setup.php'.
Cambiamo il nome della classe in 'class Innove_Cf_Model_Entity_Setup extends Mage_Customer_Model_Entity_Setup', togliamo tutto il contenuto lasciando solo la funzione 'public function getDefaultEntities()', all'interno dell'array 'customer' aggiungiamo il nostro nuovo campo:
[php]
'cf' => array(
'label'        => 'Codice Fiscale',
'visible'    => true,
'required'    => true,
),
[/php]
Ora dobbiamo fare in modo che magento crei il nuovo attributo in db, il metodo più facile è aggiungere questo codice:
[php]
<?
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$setup->addAttribute('customer', 'cf', array(
'label'        => 'Codice Fiscale',
'type'        => 'varchar',
'input'        => 'text',
'visible'    => true,
'required'    => true,
'position'    => 1,
));
?>
[/php]
in un template, ad esempio 'miotema\template\customer\form\register.phtml' e visitare la pagina di registrazione.
Una volta che l'attributo è stato aggiunto il codice si può eliminare.

L'ultima operazione da fare è modificare i template per permettere l'inserimento e al modifica del codice fiscale da parte degli utenti, i template da modificare sono:

  • miotema\template\customer\form\register.phtml

  • miotema\template\customer\form\edit.phtml


Nel file register.phtml cerchiamo
[php]
<?php if ($_gender->isEnabled()): ?>
<li><?php echo $_gender->setGender($this->getFormData()->getGender())->toHtml() ?></li>
<?php endif ?>
[/php]
E aggiungiamo:
[php]
<li>
<label for="cf"><em>*</em><?php echo $this->__('Codice Fiscale') ?></label>
<div>
<input type="text" name="cf" id="cf" value="<?php echo $this->htmlEscape($this->getFormData()->getCf()) ?>" title="<?php echo $this->__('Cf') ?>" />
</div>
</li>
[/php]
Nel file edit.phtml cerchiamo

[php]
<?php if ($_gender->isEnabled()): ?>
<li><?php echo $_gender->setGender($this->getCustomer()->getGender())->toHtml() ?></li>
<?php endif ?>
[/php]

E aggiungiamo:
[php]
<li>
<label for="cf"><em>*</em><?php echo $this->__('Codice Fiscale') ?></label>
<div>
<input type="text" name="cf" id="cf" value="<?php echo $this->htmlEscape($this->getCustomer()->getCf()) ?>" title="<?php echo $this->__('Cf') ?>" />
</div>
</li>
[/php]


Ora non resta da testare che tutto funzioni a dovere.
This website uses cookies. By continuing to browse the site you are agreeing to our privacy policy.By closing this banner or clicking on any other item of this page, you agree to the use of such cookies.