Magento设置可配置的超级属性

时间:2016-07-01 02:39:45

标签: magento configurable

我已经制作了所有脚本来添加一个可配置产品和多个简单产品,并设法将它们全部与颜色和大小相关联。我的脚本工作正常并完成工作但是,我总是要去后端并选择可配置的产品属性设置颜色和大小,并保存产品以便能够在主页上查看它。

以下是我的脚本对可配置产品的处理方式: PS我在csv $文件中保存了简单和可配置产品的sku。在将它们与可配置产品相​​关联之前。

代码:

<?php
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$confProduct = Mage::getModel('catalog/product')-     >loadByAttribute('sku',$asian);
$colorAttributeId = Mage::getModel('eav/entity_attribute')->getIdByCode('catalog_product', 'color');
    $confProduct->getTypeInstance()->setUsedProductAttributeIds(array($colorAttributeId));
 $sizeAttributeId = Mage::getModel('eav/entity_attribute')->getIdByCode('catalog_product', 'size');
    $confProduct->getTypeInstance()->setUsedProductAttributeIds(array($sizeAttributeId));

$file_handle = fopen($file, "r");
while (!feof($file_handle) ) {


$line_of_text = fgetcsv($file_handle, 1024);
$simpleSku = $line_of_text[0];
$configurableSku = $line_of_text[1];
    if($simpleSku){

$simpleProduct = Mage::getModel('catalog/product')->loadByAttribute('sku',$simpleSku);
$configurableProduct = Mage::getModel('catalog/product')->loadByAttribute('sku',$configurableSku);
$simpleId = $simpleProduct->getId();
$ids = $configurableProduct->getTypeInstance()->getUsedProductIds();
$newids = array();
foreach ( $ids as $id ) {
    $newids[$id] = 1;
}
$newids[$simpleId] = 1;
//echo "Updating configurable product " . $configurableSku;
//echo "<br>";
        $confProduct->setCanSaveConfigurableAttributes(true);

Mage::getResourceModel('catalog/product_type_configurable')->saveProducts($configurableProduct, array_keys($newids));

    }
}
fclose($file_handle);

 return ($idconfig);
}

1 个答案:

答案 0 :(得分:0)

试试这个,

$configurableAttributesData = $confProduct->getTypeInstance()->getConfigurableAttributesAsArray();
$confProduct->setCanSaveConfigurableAttributes(true);
$confProduct->setConfigurableAttributesData($configurableAttributesData);

保存产品之前。