2016-07-01 3 views
0

Я сделал все сценарии для добавления одного настраиваемого продукта и нескольких простых продуктов и сумел связать их все с цветом и размером. Мои сценарии прекрасно работают и выполняют эту работу, но мне всегда нужно перейти на бэкэнд и выбрать настраиваемые параметры атрибута продукта, цвет и размер, и сохранить продукт, чтобы он мог просматривать его на главной странице.Настройка Magento Настраиваемый супер атрибут

Вот что делает мой скрипт с настраиваемым продуктом: PS Я сохраняю sku как простого, так и настраиваемого продукта в файле csv $. прежде чем связывать их с настраиваемым продуктом.

код:

<?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

Попробуйте это,

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

Перед сохранением продукта.

+0

Пробовал, что нет, он не работает, я читал, что это связано с ценами на настраиваемые атрибуты, которые должны быть установлены, может быть, потому что в конце все цены равны нулю, –

Смежные вопросы