2016-07-01 9 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

これはうまくいかないと試してみましたが、バックエンドですべての価格がnullであるため、設定可能な属性の価格を設定する必要があります。 –

関連する問題