cancel
Showing results for 
Search instead for 
Did you mean: 

Magento 1.9 custom module aggiungi attributo non funziona

SOLVED

Magento 1.9 custom module aggiungi attributo non funziona

Ciao a tutti sto cercando di creare un custom module in magento 1.9 per l'inserimento del codice fiscale per quanto riguarda il cliente sia nel form del pannello di amministrazione che per i form del frontend, ho provato ma non funziona, ovvero il module risulta attivo tra quelli presenti, ma non aggiunge l'attributo desiderato: i codici sono i seguenti

 

local/Groundon/Customer/etc/config.xml

<?xml version="1.0" encoding="UTF-8"?>

<config>
<modules>
<Groundon_Customer>
<version>0.1.0</version>
</Groundon_Customer>
</modules>
<global>
<helpers>
<groundon_customer>
<class>Groundon_Customer_Helper</class>
</groundon_customer>
</helpers>
<resources>
<groundon_customer_setup>
<setup>
<module>Groundon_Customer</module>
<class>Mage_Customer_Model_Entity_Setup</class>
</setup>
</groundon_customer_setup>
</resources>
</global>
</config>

 

local/Groundon/Customer/Helper/Data.php

<?php
class Groundon_Customer_Helper_Data extends Mage_Core_Helper_Abstract
{

}

 

local/Groundon/Customer/sql/groundon_customer_setup/install-0.1.0.php

<?php
$installer=$this;
$installer->startSetup();
$setup=new Mage_Eav_Model_Entity_Setup('core_setup');

$setup->addAttribute("customer","codice_fiscale",array(
"type" => "varchar",
"label" => "Codice Fiscale",
"input" => "text",
"visible" => true,
"required" => false,
"global" =>true,
"is_system" =>0,
"position" =>105,
));

$attributo=Mage::getSingleton('eav/config')->getAttribute('customer', 'codice_fiscale');
$attributo->setData('used_in_forms', array(
'adminhtml_customer',
'checkout_register',
'customer_account_create',
'customer_account_edit',
));

$attributo->save();
$installer->endSetup();

 

 

etc/modules/Groundon_Customer.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Groundon_Customer>
<active>true</active>
<codePool>local</codePool>
<depends><Mage_Customer/></depends>
</Groundon_Customer>
</modules>
</config>

 

Non riesco a trovare la soluzione del problema, per favore qualcuno riesce a darmi una mano.

Grazie in anticipo

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Magento 1.9 custom module aggiungi attributo non funziona

Hi @gtwolf 

 

Kindly refer below example for create customer attribute:
Create custom module add install script at below path:

app/code/local/Your/Customattribute/sql/your_customattribute_setup/install-0.1.0.php
<?php
$installer = $this;

$installer->startSetup();

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

$entityTypeId     = $setup->getEntityTypeId('customer');
$attributeSetId   = $setup->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);

$setup->addAttribute("customer", "customattribute",  array(
    "type"     => "varchar",
    "backend"  => "",
    "label"    => "Custom Attribute",
    "input"    => "text",
    "source"   => "",
    "visible"  => true,
    "required" => false,
    "default" => "",
    "frontend" => "",
    "unique"     => false,
    "note"       => "Custom Attribute"
));

$attribute   = Mage::getSingleton("eav/config")->getAttribute("customer", "customattribute");

$setup->addAttributeToGroup(
    $entityTypeId,
    $attributeSetId,
    $attributeGroupId,
    'customattribute',
    '999'  //sort_order
);

$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();


Create config.xml

 

/app/code/local/Your/Customattribute/etc/config.xml

and add below code:

<?xml version="1.0"?>
    <config>
        <modules>
            <Your_Customattribute>
                <version>0.1.0</version>
            </Your_Customattribute>
        </modules>
        <global>

            <resources>
                <Your_Customattribute_setup>
                    <setup>
                        <module>Your_Customattribute</module>
                        <class>Mage_Customer_Model_Entity_Setup</class>
                    </setup>
                    <connection>
                        <use>core_setup</use>
                    </connection>
                </Your_Customattribute_setup>
                <Your_Customattribute_write>
                    <connection>
                        <use>core_write</use>
                    </connection>
                </Your_Customattribute_write>
                <Your_Customattribute_read>
                    <connection>
                        <use>core_read</use>
                    </connection>
                </Your_Customattribute_read>
            </resources>
        </global>

    </config>

Create Your_Customattribute.xml and add below code:

<?xml version="1.0"?>
    <config>
        <modules>
            <Your_Customattribute>
                <active>true</active>
                <codePool>local</codePool>
                <version>0.1.0</version>
            </Your_Customattribute>
        </modules>
    </config>

Then to retrieve custom attribute use below code:

$customer = Mage::getModel('customer/customer')->load($custid);$customer->getCustomattribute();$customer->setCustomattribute($yourjson);

 

It may help you!
Problem Solved? Please click on 'Kudos' & Accept as Solution!

 

Problem solved? Click Accept as Solution!

View solution in original post

2 REPLIES 2

Re: Magento 1.9 custom module aggiungi attributo non funziona

Hi @gtwolf 

 

Kindly refer below example for create customer attribute:
Create custom module add install script at below path:

app/code/local/Your/Customattribute/sql/your_customattribute_setup/install-0.1.0.php
<?php
$installer = $this;

$installer->startSetup();

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

$entityTypeId     = $setup->getEntityTypeId('customer');
$attributeSetId   = $setup->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);

$setup->addAttribute("customer", "customattribute",  array(
    "type"     => "varchar",
    "backend"  => "",
    "label"    => "Custom Attribute",
    "input"    => "text",
    "source"   => "",
    "visible"  => true,
    "required" => false,
    "default" => "",
    "frontend" => "",
    "unique"     => false,
    "note"       => "Custom Attribute"
));

$attribute   = Mage::getSingleton("eav/config")->getAttribute("customer", "customattribute");

$setup->addAttributeToGroup(
    $entityTypeId,
    $attributeSetId,
    $attributeGroupId,
    'customattribute',
    '999'  //sort_order
);

$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();


Create config.xml

 

/app/code/local/Your/Customattribute/etc/config.xml

and add below code:

<?xml version="1.0"?>
    <config>
        <modules>
            <Your_Customattribute>
                <version>0.1.0</version>
            </Your_Customattribute>
        </modules>
        <global>

            <resources>
                <Your_Customattribute_setup>
                    <setup>
                        <module>Your_Customattribute</module>
                        <class>Mage_Customer_Model_Entity_Setup</class>
                    </setup>
                    <connection>
                        <use>core_setup</use>
                    </connection>
                </Your_Customattribute_setup>
                <Your_Customattribute_write>
                    <connection>
                        <use>core_write</use>
                    </connection>
                </Your_Customattribute_write>
                <Your_Customattribute_read>
                    <connection>
                        <use>core_read</use>
                    </connection>
                </Your_Customattribute_read>
            </resources>
        </global>

    </config>

Create Your_Customattribute.xml and add below code:

<?xml version="1.0"?>
    <config>
        <modules>
            <Your_Customattribute>
                <active>true</active>
                <codePool>local</codePool>
                <version>0.1.0</version>
            </Your_Customattribute>
        </modules>
    </config>

Then to retrieve custom attribute use below code:

$customer = Mage::getModel('customer/customer')->load($custid);$customer->getCustomattribute();$customer->setCustomattribute($yourjson);

 

It may help you!
Problem Solved? Please click on 'Kudos' & Accept as Solution!

 

Problem solved? Click Accept as Solution!

Re: Magento 1.9 custom module aggiungi attributo non funziona

Volevo chiederti un ultima cosa, è normale che dopo averlo aggiunto il modulo va disattivato dopo che l'attributo è stato aggiunto altrimenti mi da un errore sul database?