Magento版本1.4.1.1
我正在尝试使用XMLRPC API(catalog_product.list方法调用)检索为特定网站过滤的产品列表。服务器返回“未知错误”。我可以调用相同的方法并按状态,sku等进行过滤。但是,当我尝试过滤可能包含多个值的字段(例如网站,类别,category_ids)时,我会收到未知错误。
我正在使用C#和Charles Cook优秀的xmlrpc.net库。我已经捕获了发送到服务器的XML,如下所示。任何人都可以提供有关为何发生这种情况的任何见解吗?
这有效:
<?xml version="1.0"?> <methodCall> <methodName>call</methodName> <params> <param> <value> <string>81a7c4fffec8e78a6fe4b3f15f3e5cd0</string> </value> </param> <param> <value> <string>catalog_product.list</string> </value> </param> <param> <value> <array> <data> <value> <struct> <member> <name>status</name> <value> <struct> <member> <name>eq</name> <value> <string>1</string> </value> </member> </struct> </value> </member> </struct> </value> </data> </array> </value> </param> </params> </methodCall>
这不是:
<?xml version="1.0"?> <methodCall> <methodName>call</methodName> <params> <param> <value> <string>5d7412249845e29458b63e3b03935445</string> </value> </param> <param> <value> <string>catalog_product.list</string> </value> </param> <param> <value> <array> <data> <value> <struct> <member> <name>websites</name> <value> <struct> <member> <name>finset</name> <value> <string>1</string> </value> </member> </struct> </value> </member> </struct> </value> </data> </array> </value> </param> </params> </methodCall>
答案 0 :(得分:0)
您可以使用xdebug和IDE来逐步完成请求并跟踪哪个类正在处理它吗?如果多个条件运算符需要特定语法,您可以读取源以跟踪。
修改强>
我记得如果有一个节点而不是多个兄弟节点,XSLT将不会创建一个数组。因此,如果finset
或其他多个条件运算符期望一个数组,并且您在<value>
下传递单个节点,则可能是作为标量接收,因此函数调用失败了?也许尝试发送<value><string>1</string><string>2</string></value>
来测试我的理论?
答案 1 :(得分:0)
您可能想尝试一下,它可能会提供更多示例作为您问题的指南: http://code.google.com/p/csharlibformagexmlrpcapi/