我已经制作了所有脚本来添加一个可配置产品和多个简单产品,并设法将它们全部与颜色和大小相关联。我的脚本工作正常并完成工作但是,我总是要去后端并选择可配置的产品属性设置颜色和大小,并保存产品以便能够在主页上查看它。
以下是我的脚本对可配置产品的处理方式: 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);
}
答案 0 :(得分:0)
试试这个,
$configurableAttributesData = $confProduct->getTypeInstance()->getConfigurableAttributesAsArray();
$confProduct->setCanSaveConfigurableAttributes(true);
$confProduct->setConfigurableAttributesData($configurableAttributesData);
保存产品之前。