2015-06-23 238 views
1

這是使用Magento 1.9。獲取Magento目錄中每個產品的產品選項

我正在嘗試構建一個腳本,用於將目錄中每個產品的所有產品選項輸出到CSV文件中。

我一直在使用此頁面上的代碼嘗試:http://www.atwix.com/magento/configurable-product-attributes/

對於此代碼:

$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'color'); 
foreach ($attribute->getSource()->getAllOptions(true) as $option) { 
    echo $option['value'] . ' ' . $option['label'] . "\n"; 
} 

我沒有得到任何輸出,是什麼那麼曾經。

對於此代碼:

$productAttributeOptions = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product); 
$attributeOptions = array(); 
foreach ($productAttributeOptions as $productAttribute) { 
    foreach ($productAttribute['values'] as $attribute) { 
     $attributeOptions[$productAttribute['label']][$attribute['value_index']] = $attribute['store_label']; 
    } 
} 

我得到這個錯誤:

Fatal error: Call to undefined method Mage_Catalog_Model_Product_Type_Simple::getConfigurableAttributesAsArray() in /home/tws2/public_html/getopts.php on line 71

香港專業教育學院一直無法找到在互聯網上其他任何操作,在產品的產品選擇與PHP越來越碼。

有人可以向我解釋如何使用PHP獲取目錄中每個產品的所有產品選項數據,因此我可以將所有這些數據輸出到CSV文件中。

這樣做的目的是將產品選項數據轉移到具有相同目錄的完全相同的Magento服務器上,只是缺少產品選項數據。一旦我擁有所有產品選項的CSV文件,我將製作另一個腳本將它們寫入相同的Magento服務器。這是我被建議如何在內部完成這項任務,如果你有更好的建議,請讓我知道。

回答

2

要得到整個目錄的配置選項,試試這個

$collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*'); 

    foreach ($collection as $product) { 
    foreach ($product->getProductOptionsCollection() as $o) { 
    $values = $o->getValues(); 

    foreach ($values as $v) { 
     $v['product_id'] = $product->getEntityId(); 
     echo "<pre>";print_r($v->getData()); 
    } 
    } 
} 
+0

我開始用'如果($產品=法師:: getModel( '目錄/產品') - > getCollection() - > addAttributeToSelect( '*')){'then'foreach($ products as $ product){'然後我從代碼行添加你的代碼if($ product-> getId()){'我有問題,我從來沒有過去行'if($ product-> hasCustomOptions()){'儘管我有1000個產品,其中大部分都有自定義選項。你知道發生了什麼問題嗎? – Jimmery

+0

請正確查看變量的用法。在它的'$ _product'裏面,我已經使用了'$ product' –

+0

你可以調整你的代碼,使它適用於目錄中的所有產品,而不僅僅是一個? – Jimmery