我正在实施一个自定义解决方案来与 Magento 网站交互。我的代码是 C# 的。我正在尝试使用
v2_soap API
和 xml-rpc API
Web 服务创建产品。我尝试使用这两种服务创建一个产品。我似乎无法成功创建产品。每次服务时我都会收到错误消息[102] Invalid data given. Details in error message.
。我尝试过将各种数据传递给 api 调用,但没有任何运气。我想知道一些事情:
1) 当我进行 Web 服务调用时,有什么方法可以收到有关哪些数据无效的更好的错误消息?错误消息似乎表明我可以在某个地方找到
details
,但我搜索了所有日志,我找不到错误消息数据。
2) 使用 Web 服务添加新产品所需的最低属性是什么?
这是我正在使用的一些代码。这就是
XML-RPC
的实现。我正在使用 Cook 计算 xml-rpc 库。
public int CreateProduct(Product product) {
var entity = ConvertProduct(product);
//int productId = Service.catalogProductCreate(SessionId, "simple", "0", product.Sku, entity);
int productId = XmlRpcService.CallReturnInt(SessionId, "catalog_product.create",
new object[] {
"simple" /* product type */,
0 /* attribute set */,
product.Sku /* sku */,
entity /* product data */
});
return productId;
}
private XmlRpcStruct ConvertProduct(Product product) {
var entity = new XmlRpcStruct();
entity.Add("name", product.Name);
entity.Add("description", product.Description);
return entity;
}
protected IMagentoXmlRcpService XmlRpcService {
get {
return this.xmlRpcService;
}
}
关键是属性设置。默认属性集是 4(至少对我来说)。那个小家伙是很多问题的根源。 Magento Web 服务上的错误响应确实需要做一些工作。
请参阅此论坛帖子了解更多信息:http://www.magentocommerce.com/boards/viewthread/36892/