使用Magento 1.7.0.2
我能够将简单的产品添加到购物车中,没有任何问题。
但是当我尝试将可配置产品添加到购物车中时,它会跟随XmlRpcException抛出。
org.apache.xmlrpc.XmlRpcException: Please specify the product's option(s).
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156)
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143)
at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147)
此xml-rpc调用http://devdocs.magento.com/guides/m1x/api/soap/checkout/cartProduct/cart_product.add.html的API文档
Magento API文档没有太多帮助。所以遵循了https://stackoverflow.com/a/19925338/12641给出的建议。
下面是XML-RPC调用的方法参数
[25f6d3a4606a18d24cdeb7ad6ad58a, cart_product.add, [25, [{product_id=126, quantity=2, options=[[{value=1, key=862}], [{value=65, key=501}], [{value=1, key=526}], [{value=100, key=525}], [{value=1, key=274}], [{value=1, key=273}]]}]]]
我仍然在控制台中收到org.apache.xmlrpc.XmlRpcException: Please specify the product's option(s).
错误。
我有兴趣知道如何添加可配置的产品到购物车,当它有需要的选项通过。
发布于 2016-04-01 06:13:54
在调试完Magento php代码后,我意识到Magento期望的是"super_attribute“而不是"options”键。
下面是我传递的Java数组,用于添加具有超级属性的自定义产品
[
8bd5ea08fc5c6f5d17445f10db593d4f,
cart_product.add,
[
51,
[
{
product_id=3051,
super_attribute={
272=22,
525=100
},
quantity=2
}
]
]
]
通过这些调用参数,我能够将产品添加到购物车中。
从Magneto管理控制台,我知道哪些超级属性需要作为超级属性传递。
但是,如何通过Magento XML-RPC/SOAP api获得自定义产品的这些超级属性呢?
在PHP中获取超级属性,这里是我发现人们正在使用的。
$productAttributeOptions = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product);
我不能使用这段代码,因为我只能依靠API来做这件事。
任何帮助都是非常感谢的。
https://stackoverflow.com/questions/36273046
复制相似问题