您好我正在开发一个使用Magento作为后端的Android应用程序,我正在使用magento的SOAP webervice,我已将所有产品,客户和客户地址信息添加到购物车,但是当我尝试将运送方法添加到购物车时,我收到这个错误
这是我正在尝试的代码,请帮我解决这个问题
SoapObject availableShippingMethods = new SoapObject(MAGENTO_NAMESPACE, "shoppingCartShippingList");
availableShippingMethods.addProperty("sessionId", sessionId);
availableShippingMethods.addProperty("quoteId", quoteId);
env.setOutputSoapObject(availableShippingMethods);
androidHttpTransport.call("", env);
Object resultForAvailableShippingMethods = env.getResponse();
Log.d("AvailableShippingMethods",resultForAvailableShippingMethods.toString());
这将给我们这个输出
下面是将Shipping方法设置为CartId的代码
SoapObject shippingmethod = new SoapObject(MAGENTO_NAMESPACE, "shoppingCartShippingMethod");
shippingmethod.addProperty("sessionId", sessionId);
shippingmethod.addProperty("quoteId", quoteId);
shippingmethod.addProperty("shippingMethod", "flatrate_error");//Code for Flatrate shipping method and it is enabled in magento site
env.setOutputSoapObject(shippingmethod);
androidHttpTransport.call("", env);
Log.d("shippingMethod", shippingmethod.toString());
Object resultforShippingMethod = env.getResponse();
Log.d("ShippingMethod", resultforShippingMethod.toString());
我知道现在回答已经太晚了......但未来可能会有所帮助......
问题出现在magento soap v2的文档中...当我通过wsdl链接时,我注意到了下面的内容......
<message name="shoppingCartShippingMethodRequest">
<part name="sessionId" type="xsd:string"/>
<part name="quoteId" type="xsd:int"/>
<part name="method" type="xsd:string"/>
<part name="storeId" type="xsd:string"/>
</message>
你可以看到,有财产方法。实际上,我们必须添加运输方式...所以你必须改变你的代码如下...
SoapObject shippingmethod = new SoapObject(MAGENTO_NAMESPACE,"shoppingCartShippingMethod");
shippingmethod.addProperty("sessionId", sessionId);
shippingmethod.addProperty("quoteId", quoteId);
shippingmethod.addProperty("method", "flatrate_error");
env.setOutputSoapObject(shippingmethod);
androidHttpTransport.call("", env);
Log.d("shippingMethod", shippingmethod.toString());
Object resultforShippingMethod = env.getResponse();
Log.d("ShippingMethod", resultforShippingMethod.toString());
可能是因为国家ID错误。输入正确的信息后,我得到两种运输方式(freeshipping_freeshipping
和flatrate_flatrate
)。
在设置送货方式之前,您需要先设置客户地址,然后在输入国家/地区ID的客户地址中设置。