TL; DR:是否有任何原因使与可配置产品相关联的简单产品必须与可配置产品本身具有相同的属性集?我的意思是,有什么技术原因吗?我知道“常识”的原因。如果您出售一双鞋子,那么根据颜色和尺寸而定的所有版本也必须是鞋子。
较长的版本:我的任务是“合并”一些可配置的产品。我的意思是从2个或更多开始只做一个。由于产品数量太多,我不想手动进行操作,也不想通过$product->load(..)->set...()->save()
由于运行脚本需要花费时间。我之所以缩短了流程,是因为我确定没有简单的产品重叠。大小和颜色是独特的组合。我是这样做的:
Mage::getResourceSingleton('catalog/product_type_configurable')
->saveProducts($mainConfigrableProduct, $simpleProductIds);
其中$simpleProductIds
是所有与需要合并的可配置产品相关联的所有简单产品ID的数组。
这对于大多数产品来说效果很好,但是也有一些问题。
如果我打电话
$productIds = $product->getTypeInstance()->getUsedProductIds()
我会得到所有简单的产品ID,但在后端中只出现了其中的几个。挖掘一段时间后,我发现显示的唯一属性是与可配置产品相同的属性集中的属性。另一个属性集与第一个属性集非常相似,只是有一些细微的差别,但是它包含可配置的属性(大小和颜色)。
现在奇怪的是。在前端,我希望看到所有产品(上面的代码中的$ productIds)或只看到同一属性集中的产品。好吧,两者之间有些东西。
- 20个相关产品ID-5种尺寸,4种颜色
- 后端有10种关联产品-5种尺寸,2种颜色-其他2种颜色(10种产品)处于不同的属性集中
- 前端有15种组合-5种尺寸3种颜色(???)
通过更改未出现的产品的属性集,我能够解决此问题,但我仍然感到困惑。
注意:请勿在家中尝试此操作。或者,您可以在家中尝试,但不能在实时服务器上尝试。