gpt4 book ai didi

magento - 在magento 'has_options' 中导入可配置产品后为零

转载 作者:行者123 更新时间:2023-12-04 18:15:41 25 4
gpt4 key购买 nike

我已成功导入可配置产品(及其相关产品)。当我在后端打开可配置产品时,我会在最后一个选项卡中看到相关产品。但它们不会显示在前端。

这是因为字段 has_optionsrequired_options为零。 entity_id 为 2 的产品已在后端手动创建并且运行良好。

catalog_product_entity table of magento

当我在后端打开导入的产品时,什么都不做并保存 - 这两个值都变为 1。导入中缺少什么将这些字段直接设置为 1?

我试过这个:

 $configurableProduct->setHasOptions(TRUE);

但这没有效果。

最佳答案

在尝试了几个小时的不同解决方案后,我求助于管理区域内可配置的保存过程,这使我转向了以下方法;

Mage_Catalog_Model_Product_Type_Configurable::save

然后我发现,以编程方式保存可配置的 getConfigurableAttributesData 和 getConfigurableProductsData 时为空。
这导致我创建了一个自定义 shell 脚本,我在其中加载了一组可配置产品,循环并重新保存了数据;
foreach($_collectionConfigurables as $_configurableProduct){

// flag to be saved
$_configurableProduct->setCanSaveConfigurableAttributes(1);

// get the configurable attributes
$_configurableAttributes = $_configurableProduct->getTypeInstance()->getConfigurableAttributesAsArray();
$_configurableProduct->setConfigurableAttributesData($_configurableAttributes);

// Build a collection of configurable children
$_collectionChildren = $_configurableProduct->getTypeInstance()->getUsedProducts();

// loop the children and save configurable attributes into an array
$arr = array();
foreach($_collectionChildren as $_childProduct){
foreach($_configurableAttributes as $_attr){
$arr[$_childProduct->getId()][] = array(
'attribute_id' => $_attr['attribute_id'],
'label' => $_childProduct->getAttributeText($_attr['attribute_code']),
'value_index' => $_childProduct->getData($_attr['attribute_code'])
);
}
}

$_configurableProduct->setConfigurableProductsData($arr);
$_configurableProduct->save();
echo "{$_configurableProduct->getId()}\n";

}

请注意,这已在 CE 1.9.2.1 上进行了尝试和测试

关于magento - 在magento 'has_options' 中导入可配置产品后为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11761163/

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