在 Magento 1.5 中,像这样从 C# 访问 CatalogProductInfo API 调用适用于非数字 SKU:
catalogProductRequestAttributes fetchattrib = new catalogProductRequestAttributes();
fetchattrib.attributes = new string[] { "name", "description", "and_so_on"};
fetchattrib.additional_attributes = new string[] { "custom_attribs_go_here"};
string storeView = null;
string productIdentifierType = null;
catalogProductReturnEntity ret = m_magentoClient.catalogProductInfo(
sessionId, sku, storeView, fetchattrib, productIdentifierType);
但对于数字 SKU,我收到“产品不存在”错误。
大概这是因为 Magento 无法判断您传递给它的是否是 Product_id 还是 SKU。根据我能找到的所有文档,理论上,将 ProductIdentifierType 设置为“sku”应该可以解决这个问题:
...
string productIdentifierType = "sku";
...
但这并不能解决问题。
事实上,这似乎让情况变得更糟,Magento 然后停止查找非数字 SKUS。
所以大概"sku"
不是要传递的正确值。
有人有什么想法吗?
有一个针对纯数字或混合 SKU 的解决方法,对我来说效果很好。
只需在 SKU 末尾添加一个空格即可。 Magento 会将值解释为 SKU,因为空格不是数字。 Magento 内部稍后会修剪空白
这在 Magento 1.4.x - 1.9 中完美运行。 (编辑:感谢 Brett 使用 1.9 进行测试)
Example:
catalogProductReturnEntity ret = m_magentoClient.catalogProductInfo(sessionId, sku+" ", storeView, fetchattrib, productIdentifierType);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)