gpt4 book ai didi

php - 在 Magento 安装脚本中创建属性集

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:15 24 4
gpt4 key购买 nike

创建属性并将它们分配给现有属性集是一个已解决的问题,但我们遇到了一个问题,试图创建一个属性集并用默认和特定属性填充它失败。这是正在使用的代码:

$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、价格、名称等都是必需的。

最佳答案

我记得基于默认属性集创建属性集的问题是,您需要保存属性集两次,一次是在调用 initSkeleton() 之前之后一次。

我不记得确切的原因了,太久远了。无论如何,这对我有用:

// Mage_Eav_Model_Entity_Setup
$oEntitySetup = $this;
$oEntitySetup->startSetup();

$sNewSetName = 'myset';
$iCatalogProductEntityTypeId = (int) $oEntitySetup->getEntityTypeId('catalog_product');

$oAttributeset = Mage::getModel('eav/entity_attribute_set')
->setEntityTypeId($iCatalogProductEntityTypeId)
->setAttributeSetName($sNewSetName);

if ($oAttributeset->validate()) {
$oAttributeset
->save()
->initFromSkeleton($iCatalogProductEntityTypeId)
->save();
}
else {
die('Attributeset with name ' . $sNewSetName . ' already exists.');
}

$oEntitySetup->endSetup();

关于php - 在 Magento 安装脚本中创建属性集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11095436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com