2014-11-28 2 views
0

Я пытаюсь установить существующего клиента в корзину покупок, но я получаю «режим клиента неизвестен» в коде ошибки из API. Возможно, кто-нибудь предложит мне, что в этом запросе, чтобы установить клиента, ниже является кодомУстановить клиента в корзину в Magento

env = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    env.dotNet = false; 
    env.xsd = SoapSerializationEnvelope.XSD; 
    env.enc = SoapSerializationEnvelope.ENC;  

    SoapObject customerEntity = new SoapObject(NAMESPACE, "shoppingCartCustomerEntity"); 
    customerEntity.addProperty("mode",mode); 
    customerEntity.addProperty("customer_id",customerId); 
    customerEntity.addProperty("firstname",firstname); 
    customerEntity.addProperty("lastname",lastname); 
    customerEntity.addProperty("email",email); 
    customerEntity.addProperty("website_id",1); 

    request = new SoapObject(NAMESPACE, "shoppingCartCustomerSet"); 
    request.addProperty("sessionId", sessionId); 
    request.addProperty("quoteId", quoteId); 
    request.addProperty("customerData", customerEntity); 
    env.setOutputSoapObject(request); 

    androidHttpTransport = new HttpTransportSE(URL); 
    androidHttpTransport.debug = true; 
    (new MarshalHashtable()).register(env); 
    try { 
     androidHttpTransport.call("", env); 

    } catch (IOException | XmlPullParserException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    try { 
     result = env.getResponse(); 
     System.out.println(result); 
    } catch (SoapFault e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

ответ

0

Попробуйте это. Это может вам помочь.

customerEntity.addProperty("mode","customer"); 

И добавить это поле также

customerEntity.addProperty("entity_id","yourid"); 
+0

Не работает. –

+0

Какова ценность вашего режима вашего клиента? –

+0

customerEntity.addProperty («режим», «клиент»); \t \t customerEntity.addProperty ("customer_id", 1744); \t \t customerEntity.addProperty ("firstname", "vikas"); \t \t customerEntity.addProperty ("lastname", "panwar"); \t \t customerEntity.addProperty ("email", "[email protected]"); \t \t customerEntity.addProperty ("website_id", 1); \t \t \t \t \t \t запрос = новый SoapObject (NAMESPACE, "shoppingCartCustomerSet"); \t \t request.addProperty ("sessionId", sessionId); \t \t request.addProperty ("quoteId", 8704); \t \t request.addProperty ("customerData", customerEntity); –

4

Заменить request.addProperty ("customerData", customerEntity); с request.addProperty ("клиент", customerEntity);

+0

Вы правы! Но согласно документам имя свойства customerData. –

+0

Да, но когда вы заходите в SOAP-клиент (плагин Firefox), будут установлены два набора данных «customerData» и «customer». Я попробовал оба, «клиент» работал. – SatZ

0
`<complexType name="shoppingCartCustomerEntity"> 
<all> 
<element name="mode" type="xsd:string" minOccurs="0"/> 
<element name="customer_id" type="xsd:int" minOccurs="0"/> 
<element name="email" type="xsd:string" minOccurs="0"/> 
<element name="firstname" type="xsd:string" minOccurs="0"/> 
<element name="lastname" type="xsd:string" minOccurs="0"/> 
<element name="password" type="xsd:string" minOccurs="0"/> 
<element name="confirmation" type="xsd:string" minOccurs="0"/> 
<element name="website_id" type="xsd:int" minOccurs="0"/> 
<element name="store_id" type="xsd:int" minOccurs="0"/> 
<element name="group_id" type="xsd:int" minOccurs="0"/> 
</all> 
</complexType>` 

Ниже приведена схема wsdl для пользователя клиента корзины покупок. Чтобы проверить параметры передачи для дальнейших запросов: поместите 'http://yourdomainname//api/v2_soap/?wsdl' в ваш браузер.

Смежные вопросы