2013-04-18 145 views
3

我正在使用mogento中的soap api构建android应用程序,该应用程序能够在移动设备上销售产品。 我正在使用ksoap2库文件。Android-Magento-如何使用kso​​p2添加产品到购物车

但问题是我不能使用功能添加产品到购物车shoppingCartProductAdd。 它给人错误的产品的数据是无效的

所以,请帮助我,如果你有更好的梅索德给产品添加到购物车

这里是我的代码,添加产品到购物车

SoapObject request; 
    Method_Name = "shoppingCartCreate"; 
    SOAP_ACTION = "urn:Magento/shoppingCartCreate"; 
    try { 
     SoapSerializationEnvelope env = new SoapSerializationEnvelope(
       SoapEnvelope.VER11); 
     env.dotNet = false; 
     env.xsd = SoapSerializationEnvelope.XSD; 
     env.enc = SoapSerializationEnvelope.ENC; 

     HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
     androidHttpTransport.debug = true; 

     request = new SoapObject(NAMESPACE, Method_Name); 
     request.addProperty("sessionId", sessionId); 

     env.setOutputSoapObject(request); 
     androidHttpTransport.call("SOAP_ACTION", env); 
     cartId = env.getResponse().toString(); 

     SoapObject loresponse = new SoapObject(NAMESPACE, 
       "shoppingCartProductEntity"); 

     PropertyInfo pi = new PropertyInfo(); 
     pi.setName("product_id"); 
     pi.setValue(cartitem.getItemId()); 
     pi.setType(String.class); 

     loresponse.addProperty(pi); 

     pi = new PropertyInfo(); 
     pi.setName("sku"); 
     pi.setValue(cartitem.getSku()); 
     pi.setType(String.class); 

     loresponse.addProperty(pi); 

     pi = new PropertyInfo(); 
     pi.setName("qty"); 
     pi.setValue(cartitem.getQuantity()); 
     pi.setType(Double.class); 
     loresponse.addProperty(pi); 

     request = new SoapObject(NAMESPACE, "shoppingCartProductAdd"); 
     request.addProperty("sessionId", sessionId); 

     request.addProperty("quoteId", cartId); 
     request.addProperty("productsData", loresponse); 
     env.setOutputSoapObject(request); 
     androidHttpTransport 
       .call("urn:Magento/shoppingCartProductAdd", env); 
     boolean result1po = (Boolean) env.getResponse(); 

    } 

    catch (Exception ex) { 
     Log.e(TAG, "Error: " + ex.getMessage()); 

    } 
+0

我有同样的问题,你有没有找到解决办法? – mahdi 2014-02-06 09:15:46

回答

2

使用下面的代码来创建ProductArray.I认为“shoppingCartProductEntityArray”丢失

 //Create Product Array 
     SoapObject item = new SoapObject(NAMESPACE, "shoppingCartProductEntity"); 
     PropertyInfo pinfo = new PropertyInfo(); 

     pinfo.setName("product_id"); 
     pinfo.setValue("91"); 
     pinfo.setType(String.class); 
     item.addProperty(pinfo); 

     pinfo = new PropertyInfo(); 
     pinfo.setName("sku"); 
     pinfo.setValue("SFS-123"); 
     pinfo.setType(String.class); 
     item.addProperty(pinfo); 

     pinfo = new PropertyInfo(); 
     pinfo.setName("qty"); 
     pinfo.setValue("2"); 
     pinfo.setType(Double.class); 
     item.addProperty(pinfo); 

     SoapObject EntityArray = new SoapObject(NAMESPACE, "shoppingCartProductEntityArray"); 
     EntityArray.addProperty("products",item); 

     SoapObject request = new SoapObject(NAMESPACE, "shoppingCartProductAdd"); 
     request.addProperty("sessionId", sessionId); 
     request.addProperty("quoteId", 166); 
     request.addProperty("products",EntityArray); 
+0

我试过这个解决方案,但是我收到SoapFault - faultcode:'1022'faultstring:'请指定产品所需的选项。如何将associativeArray添加到产品数组中? – Rahul 2015-11-30 08:06:41

相关问题