SoapFault – faultcode: «1062» faultstring: «Способ доставки недоступен»

Привет, я разрабатываю приложение для Android, которое использует Magento в качестве бэкэнд, и я использую web-сервис SOAP magento. Я добавил всю информацию о продукте, клиенте и клиенте в корзину. Но когда я пытаюсь добавить способ доставки в корзину , Я получаю эту ошибку


SoapFault – faultcode: «1062» faultstring: «Способ доставки недоступен»

Это код, который я пытаюсь использовать. Пожалуйста, помогите мне решить эту проблему.

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()); 

Это даст нам этот результат


D / AvailableShippingMethods: shoppingCartShippingMethodEntityArray {item = shoppingCartShippingMethodEntity {code = flatrate_error; Носитель = Flatrate; Carrier_title = Flat Rate; цена = 0; }; }

Ниже приведен код, который устанавливает способ доставки в 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()); 

Solutions Collecting From Web of "SoapFault – faultcode: «1062» faultstring: «Способ доставки недоступен»"

Я знаю, что уже поздно отвечать … но это может помочь кому-то в будущем …

Проблема в документации 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> 

Как видите, существует метод свойств. На самом деле, мы должны добавить способ доставки … Так что вам нужно изменить код ur, как показано ниже …

 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()); 

Возможно, это связано с неправильным идентификатором страны. После ввода правильной информации я получаю два метода доставки ( freeshipping_freeshipping и flatrate_flatrate ).

Перед настройкой способа доставки вам необходимо сначала установить адреса клиентов, и в адресах клиентов вам нужно ввести идентификатор страны.