创建属性并将它们分配给现有属性集是一个已解决的问题,但我们遇到了一个问题,即尝试创建属性集并使用默认属性填充它,并且特定属性失败 . 这是使用中的代码:
$setup->addAttributeSet('catalog_product', 'women_sizing_denim');
$oAttributeSetModel = Mage::getModel("eav/entity_attribute_set")
->load($setup->getAttributeSetId('catalog_product', 'women_sizing_denim'))
->initFromSkeleton($setup->getAttributeSetId('catalog_product', 'default'))
->save();
我可以通过调试来验证 initfromSkeleton
方法是否按照公布的方式从默认的attribute_set加载属性,但是在 save()
之后,新的集合为空 .
可以在集合中添加新属性,因此它确实存在并且正确创建,但缺少的默认属性使其无法使用,因为SKU,价格,名称等都是必需的 .
3 回答
我记得基于默认属性集创建属性集的问题是,您需要在调用
initSkeleton()
之前保存属性集两次,然后再将其保存一次 .我不记得确切的原因,这是很久以前的事了 . 无论如何,这对我有用:
请注意,安装类需要扩展
以便
可以叫 .
我使用了JürgenThelen的答案 .
但我发现新的属性集没有默认选项和选项组,如一般和发票等 .
所以为了解决这个问题,请在initFromSkeleton()中包含$ installer-> getAttributeSetId('catalog_product','default')