Android-Magento- วิธีเพิ่มสินค้าลงตะกร้าโดยใช้ ksop2

ฉันกำลังสร้างแอปพลิเคชัน Android โดยใช้ Soap API ใน Magento ซึ่งมีความสามารถในการขายสินค้าบนมือถือ ฉันกำลังใช้ไฟล์ไลบรารี ksoap2

แต่ปัญหาคือฉันไม่สามารถเพิ่มสินค้าลงตะกร้าโดยใช้ฟังก์ชัน 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());

    }

person Karthik    schedule 18.04.2013    source แหล่งที่มา
comment
ฉันมีปัญหาเดียวกัน คุณพบวิธีแก้ปัญหาหรือไม่?   -  person mahdi    schedule 06.02.2014


คำตอบ (1)


ใช้โค้ดด้านล่างเพื่อสร้าง ProductArray ฉันคิดว่า "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);
person Harshal Bhatt    schedule 02.12.2014
comment
ฉันลองวิธีแก้ปัญหานี้แล้ว แต่ฉันได้รับ SoapFault - รหัสข้อผิดพลาด: '1022' สตริงข้อผิดพลาด: 'โปรดระบุตัวเลือกที่ต้องการของผลิตภัณฑ์' จะเพิ่ม associativeArray ให้กับอาร์เรย์ผลิตภัณฑ์ได้อย่างไร - person Rahul; 30.11.2015