我创建了一个像这样的属性......
$installer = $this;
$installer->startSetup();
/* $installer Services_Issue_Model_Mysql4_Setup */
$installer->addAttribute('catalog_product', 'alice_id', array(
'backend' => '',
'frontend' => '',
'type' => 'text',
'visible' => true,
'label' => 'Alice Id',
'note' => 'Alice Id.',
'input' => 'text',
'unique' => true,
'source' => '',
'global' => true,
'visible' => true,
'required' => true,
'user_defined' => true,
'default' => '',
'visible_on_front' => true,
'apply_to' => 'simple,configurable,default',
'group' => 'Special Attributes',
'used_in_product_listing' => true,
'frontend_class' => '',
'class' => '',
'is_html_allowed_on_front' => true,
'searchable' => true
));
$installer->endSetup();
现在我需要将其移至产品信息页面中的另一个组。所以我试过这个没有任何成功。
$installer = $this;
$installer->startSetup();
/* $installer Services_Issue_Model_Mysql4_Setup */
$installer->updateAttribute('catalog_product', 'alice_id', 'note', 'Product SKU for Alice.com third-party cart & checkout.');
/* - move between groups not possible with updateAttribute - */
$installer->updateAttribute('catalog_product', 'alice_id', 'group', 'Additional Attributes');
$installer->endSetup();
谁能告诉我如何才能做到这一点?
答案 0 :(得分:4)
您可以使用addAttributeToGroup($entityType, $attributeSetId, $attributeGroupId, $attributeId, $sortOrder)
中的Mage_Eav_Model_Entity_Setup
方法将属性移动到其他组。首先,您需要获取设置ID和组ID。
// ... start setup
// get default set id
$setId = $installer->getDefaultAttributeSetId('catalog_product');
// get group id by name "Additional Attributes"
$attributeSetCollection = Mage::getResourceModel('eav/entity_attribute_group_collection');
foreach ($attributeSetCollection->getData() as $attributeGroupIndex) {
foreach ($attributeGroupIndex as $key => $value) {
if ($key === "attribute_group_name" and $value === "Additional Attributes") {
$groupId = $attributeGroupIndex["attribute_group_id"];
break 2;
}
}
}
// move attribute 'alice_id' to group 'Additional Attributes'
if (isset($setId) and isset($groupId)) {
$installer->addAttributeToGroup('catalog_product', $setId, $groupId, 'alice_id', 1000);
}
// ... end setup
答案 1 :(得分:1)
如果您知道组的名称/代码,则可以使用getAttributeGroupID()直接获取组ID。此示例将attribute_code组更新为默认属性集中的“组名”。
// $installer->startSetup()
// ...
$eavSetup = new Mage_Eav_Model_Entity_Setup('core_setup');
$iDefaultAttrSetID = $eavSetup->getDefaultAttributeSetId('catalog_product');
$iAttributeID = $eavSetup->getAttributeId('catalog_product', 'attribute_code');
$iGroupID = $eavSetup->getAttributeGroupId('catalog_product', $iDefaultAttrSetID, 'Group Name');
$eavSetup->addAttributeToGroup('catalog_product', $iDefaultAttrSetID, $iGroupID, $iAttributeID);