尝试使用v2 API从magento获取产品信息时,我遇到了一个有点着名的“产品不存在”错误。但是,通常的补救办法似乎都没有效果。例如,我检查了这个帖子:magento soap api v2 catalogProductInfo not working
这是我的请求数据:
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Magento" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:catalogProductInfo>
<sessionId xsi:type="xsd:string">291b294f0a5ec652069dfbd2ba1f42a3</sessionId>
<productId xsi:type="xsd:string">917</productId>
</ns1:catalogProductInfo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
这是我到目前为止所尝试的内容:
下一步是什么?
答案 0 :(得分:4)
我找到了一个解决方案:事实证明http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_product.info.html上的magento文档是错误的。参数“productId”实际上称为“product”。所以我的工作代码是:
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Magento" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:catalogProductInfo>
<sessionId xsi:type="xsd:string">291b294f0a5ec652069dfbd2ba1f42a3</sessionId>
<product xsi:type="xsd:string">917</product>
</ns1:catalogProductInfo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我在哪里报告文档中的错误?
答案 1 :(得分:2)
我正在使用C#和SOAP访问magento API。
我遇到同样的问题(产品不存在),我的解决方案是将最后一个参数productIdentifierType
保留为null
或{{1} }。
""
或
details = service.catalogProductInfo(sessionId, prod.sku, null, null, "");
文档似乎说你应该把&#34; sku&#34;或&#34; product_id&#34; (或者&#34;产品&#34;正如我见过其他人所说的那样),但这对我不起作用。
您可以使用details = service.catalogProductInfo(sessionId, prod.product_id, null, null, "");
或sku
作为第二个参数。
sku之后的空间(正如其他人所建议的那样)不是必需的。
答案 2 :(得分:0)
我有同样的问题,在我的情况下,这是由于Magento的更新从1.7到1.9。他们更改了catalogProductInfo的WSDL(以及其他更改)。我使用自动生成的C#代码访问API,我必须更新它(在Visual Studio中:右键单击API和“更新服务引用”)。
(这通常不值得回答,除非你没有得到服务器升级的通知,你可以在了解发生的事情之前搜索一下,所以我希望这可以帮助其他人)