Thêm thuộc tính tùy chỉnh vào thuộc tính tùy chỉnh được lập trình


10

Xin chào, ai đó có thể giúp tôi với điều này?

Tôi đã tạo một tập thuộc tính tùy chỉnh và thuộc tính tùy chỉnh như

$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);
 */

Mã này thêm attibute 'new_attr' vào nhóm 'Chung' và do đó, thuộc tính tùy chỉnh được hiển thị trong tất cả các bộ thuộc tính, chẳng hạn như 'Mặc định'.

Tôi muốn chỉ thêm tùy chỉnh 'new_attr' vào bộ thuộc tính tùy chỉnh 'Bộ Attr mới' trong nhóm 'Chung'. Điều đó có thể không?


Điều này thậm chí có thể đạt được?
Magento_Newbie

Câu trả lời:


18

Vâng, điều này là có thể.

Đầu tiên, đặt các khóa này trong mảng dữ liệu $ của bạn thành các giá trị sau để tránh thêm thuộc tính vào tất cả các bộ thuộc tính:

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

Sau đó thêm thuộc tính vào tập thuộc tính của bạn:

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

0

Hàm của tôi để thêm Thuộc tính (theo mã) vào Tập thuộc tính

    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;
    }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.