我正在尝试以编程方式将一些现有的简单产品加入到现有的可配置产品中.
我几乎没有找到任何提示/文件.我检查了MAGMI Magento Mass Importer插件(特别是magmi_productimportengine.PHP文件)但没有成功.
之后我找到了这个片段:
function attachProductToConfigurable($childProduct,$configurableProduct) { $loader = Mage::getResourceModel('catalog/product_type_configurable') ->load($configurableProduct,$configurableProduct->getId()); $ids = $configurableProduct ->getTypeInstance() ->getUsedProductIds(); $newids = array(); foreach ($ids as $id) { $newids[$id] = 1; } $newids[$childProduct->getId()] = 1; //$loader->saveProducts( $_configurableProduct->getid(),array_keys( $newids ) ); $loader->saveProducts($configurableProduct,array_keys($newids)); }
$sProduct = Mage::getModel('catalog/product') ->loadByAttribute('sku',$v); $cProduct = Mage::getModel('catalog/product') ->loadByAttribute('sku',$sku); attachProductToConfigurable($sProduct,$cProduct);
(每个简单的产品SKU一步一步地传递给可配置的产品)
Fatal error: Call to a member function getId() on a non-object in ... on line 1018
这是函数本身的这一行
$loader = Mage::getResourceModel('catalog/product_type_configurable') ->load($configurableProduct,$configurableProduct ->getId());
由于我没有找到任何类似于将简单SKU加入到现有可配置产品的内容,因此在查看初始化函数调用,资源模型等时可能会出现问题.
我们非常感谢任何关于如何关注这一点的想法.
尝试一下:
原文链接:https://www.f2er.com/php/135817.htmlMage::getResourceSingleton('catalog/product_type_configurable') ->saveProducts($mainConfigrableProduct,$simpleProductIds);
其中$mainConfigrableProduct必须是可配置产品的实例,而$simpleProductIds是一个数组,其中包含与可配置产品关联的简单产品的ID.
另外,在这样做时要非常小心.简单产品必须与可配置产品属于同一属性集. Here is what can happen if they are not.