2014-02-19 33 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的所有工作将始终承担。