Php 以编程方式将简单产品附加到可配置产品

Php 以编程方式将简单产品附加到可配置产品,php,magento,join,import,configurable,Php,Magento,Join,Import,Configurable,我试图以编程方式将一些现有的简单产品连接到现有的可配置产品 我几乎找不到这方面的任何提示/文档。我检查了MAGMI Magento Mass Importer插件(尤其是MAGMI_ProductImportingine.php-文件),但没有成功 之后,我发现了这个片段: function attachProductToConfigurable($childProduct, $configurableProduct) { $loader = Mage::getResourceModel

我试图以编程方式将一些现有的简单产品连接到现有的可配置产品

我几乎找不到这方面的任何提示/文档。我检查了MAGMI Magento Mass Importer插件(尤其是
MAGMI_ProductImportingine.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逐步传递到可配置产品)

由于我没有发现任何类似于将简单SKU连接到现有可配置产品的东西,因此我一直在查找初始化函数调用、资源模型等时可能出现的错误

我们非常感谢您提出的任何关于如何进行此项工作的建议。

尝试一下:

Mage::getResourceSingleton('catalog/product_type_configurable')
    ->saveProducts($mainConfigrableProduct, $simpleProductIds);
其中,
$main ConfigrableProduct
必须是可配置产品的实例,
$SimpleProductId
是一个数组,其中包含与可配置产品关联的简单产品的ID


另一方面,做这件事时要非常小心。简单产品必须与可配置产品位于同一属性集中

嗨,马吕斯,再次谢谢你!以这种方式合并SKU不会出错。正如你提到的,我现在必须得到属性集。也谢谢你指出了其中的危险性!:-)祝你一切顺利
$loader = Mage::getResourceModel('catalog/product_type_configurable')
              ->load($configurableProduct, $configurableProduct
              ->getId());
Mage::getResourceSingleton('catalog/product_type_configurable')
    ->saveProducts($mainConfigrableProduct, $simpleProductIds);