प्रोग्रामेटिक रूप से कस्टम विशेषता सेट में कस्टम विशेषताएँ जोड़ें


10

हाय किसी ने मुझे इस के साथ मदद कर सकता है?

मैंने एक कस्टम विशेषता सेट और कस्टम विशेषता के रूप में बनाया

$installer = $this;
/* @var $installer Mage_Eav_Model_Entity_Setup */
$installer->startSetup();

//Create Attribute set with Based on Default attribute set
//$installer->removeAttributeSet(Mage_Catalog_Model_Product::ENTITY, 'New Attr Set');
/*
$skeletonID=$installer->getAttributeSetId('catalog_product','Default');
$entityTypeId = Mage::getModel('catalog/product')
->getResource()
->getEntityType()
->getId(); //product entity type

$attributeSet = Mage::getModel('eav/entity_attribute_set')
->setEntityTypeId($entityTypeId)
->setAttributeSetName("New Attr Set");

$attributeSet->validate();
$attributeSet->save();

$attributeSet->initFromSkeleton($skeletonID)->save();


//Create attribute new_attr
//$installer->removeAttribute('catalog_product', 'new_attr');
$data= array (
'attribute_set' =>  'New Attr Set',
'group' => 'General',
'label'    => 'New Attr',
'visible'     => true,
'type'     => 'int', // multiselect uses comma-sep storage
'input'    => 'boolean',
'system'   => false,
'required' => false,
'user_defined' => 1,//defaults to false; if true, define a group
'source' => 'eav/entity_attribute_source_boolean',
'default' => 1,
'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
 );

 $installer->addAttribute('catalog_product','new_attr',$data);
 */

यह कोड 'new_attr' के समूह 'सामान्य' में एटिब्यूट जोड़ता है और इसलिए कस्टम विशेषता को सभी डिफॉल्ट सेट जैसे 'डिफ़ॉल्ट' में भी प्रदर्शित किया जाता है।

मैं कस्टम एटिट्यूड 'new_attr' को केवल ग्रुप 'जनरल' के तहत कस्टम विशेषता सेट 'न्यू अटर सेट' में जोड़ना चाहता हूं। क्या यह संभव है?


क्या यह भी संभव है?
Magento_Newbie

जवाबों:


18

हां, यह संभव है।

सबसे पहले, सभी विशेषताओं सेटों में विशेषता जोड़ने से बचने के लिए इन कुंजियों को अपने $ डेटा सरणी में निम्न मानों पर सेट करें:

'user_defined'         => true,
'group'                => ''

फिर अपने विशेषता सेट में विशेषता जोड़ें:

$attributeSetId = $this->getAttributeSetId($entityTypeId, 'New Attr Set');
$this->addAttributeToSet($entityTypeId, $attributeSetId, 'General', 'new_attr', 10);

0

एट्रीब्यूट सेट के लिए एट्रीब्यूट (कोड द्वारा) जोड़ने का मेरा कार्य है

    public function addToAttributeSet($code, $attributeSetName = 'Default', $groupName = 'Details')
{
    try {
        $setup = new Mage_Eav_Model_Entity_Setup('core_setup');

        $attributeSetId = $setup->getAttributeSetId('catalog_product', $attributeSetName);
        $attributeGroupId = $setup->getAttributeGroupId('catalog_product', $attributeSetId, $groupName);
        $attributeId = $setup->getAttributeId('catalog_product', $code);

        $setup->addAttributeToSet($entityTypeId = 'catalog_product', $attributeSetId, $attributeGroupId, $attributeId);

        $this->_success[] = 'Added Attribute to SET ' . $attributeSetName . ' (' . $code . ')';
        return true;

    } catch (Exception $e) {
        $this->_errors[] = 'ERROR when added Attribute to SET ' . $attributeSetName . ' (' . $code . ')';
        $this->_errors[] = $e->getMessage();
        return false;
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.