2014-02-19 65 views
2

我一直在嘗試使用SOAP API將幾千個產品圖像導入到Magento 1.8.1.0網站。Magento SOAP API - catalog_product_attribute_media.list找不到SKU

雖然有些已經進口,但有幾百家沒有。

,試圖找到這個地方發生了我使用下面的API命令:

catalog_product_attribute_media.list 

這對於一些SKU的返回一個錯誤:「產品不存在」。這是一個真正的API錯誤記錄在http://www.magentocommerce.com/wiki/doc/webservices-api/api/catalog_product_attribute_media#faults

但是,SKU發生這種情況肯定存在於Magento中,因爲我可以搜索它們並在管理面板中查看它們。

$result = $client->call($session, 'catalog_product_attribute_media.list', '452103'); 

上面的代碼將導致異常說:「商品不存在」,也就是說它不能爲SKU 452103.找到任何但是,如果我在管理控制檯中搜索SKU 452103它的存在!

什麼奇怪的是,如果我得到了Magento的產品編號該SKU(它恰好是3478上面的例子),並運行它而不會出現錯誤如下:

$result = $client->call($session, 'catalog_product_attribute_media.list', '3478'); 

有誰知道我做錯了什麼或者爲什麼會發生這種情況? API文檔說明了我傳遞的第二個參數()可以是產品ID或SKU。

我只能在實踐中使用SKU,因爲我的源數據不知道Magento產品ID是什麼,但是SKU已經被導入而沒有修改。上面我使用產品ID = 3478的代碼只是用來測試它是否會輸出任何內容,但我必須手動查找此產品ID,這對於需要修復的圖像數量並不實用。

回答

2

請閱讀API文檔:http://www.magentocommerce.com/api/soap/catalog/catalogProductAttributeMedia/catalog_product_attribute_media.list.html

你會看到有是說「定義是否在產品ID或SKU在通過‘產品’參數」第四個參數identifierType

每次你打電話時,API都假定它是產品的ID。因此,要使其按SKU工作,只能使用以下內容;

$result = $client->call($session, 'catalog_product_attribute_media.list', '452103', 'sku'); 

有無數多個API調用(產品相關),使用您的產品ID,而不是SKU,除非你指定的標識符類型以同樣的方式,但在默認情況下Magento的所有工作將始終承擔。