Сбой при создании заказа через API в Magento

#api #magento

#API #magento

Вопрос:

Я получаю довольно странную ошибку при попытке создать новый заказ через Magento API версии V1.0. Вот основной рабочий процесс моего кода:

  1. Создайте корзину покупок, используя этот cart.create метод.
  2. Установите клиента как «гостя», используя cart_customer.set метод.
  3. Добавьте товары в корзину, используя этот cart_product.add метод.
  4. Создайте заказ, используя cart.order метод.

На этом этапе метод cart.order выдает исключение SoapFault с сообщением «Вызов функции-члена setFinalPrice() для не-объекта». То же исключение возникает, если я заменяю cart.order метод другими методами, такими как cart.info или cart_product.list .

Поскольку сообщение об исключении не кажется очень описательным, мне было интересно, сталкивался ли кто-нибудь еще с этим.

Спасибо.

ОБНОВЛЕНИЕ: проблема связана с тем, что я добавляю товары в корзину, используя их артикулы при вызове cart_product.add метода. Исключение больше не выдается при использовании идентификаторов продуктов вместо артикулов (я подозреваю, что это может быть ошибкой). Однако на этом этапе cart.order метод возвращает false, поэтому заказ все еще не создан.

Комментарии:

1. Какая версия magento у вас есть? Произошла ошибка с идентификаторами / артикулом (когда артикул числовой, если я не ошибаюсь) в api. Это должно было быть исправлено в CE 1.6 / EE 1.11. Перед вызовом cart.order вы должны добавить адреса клиентов, установить способы оплаты и доставки. Смотрите Официальный пример .

2. @Zyava: я могу подтвердить, что ошибка все еще присутствует в Magento CE 1.6.0.0. Все работает нормально, когда я использую идентификаторы вместо SKU.

3. Подождите, давайте проясним проблему. Когда вы вызываете «добавить в корзину» с числовым артикулом: $proxy->call($sessionId, "cart_product.add", array($shoppingCartId, array("sku" => "111"))); товар не добавлен в корзину?

Ответ №1:

Прежде чем использовать метод cart.order, вы должны назначить адрес оплаты и доставки своей корзине.

это стандартная процедура для создания заказа в Magento.

шаги должны быть такими :

  • Создайте корзину покупок с помощью метода cart.create.
  • Установите клиента как «гостя», используя метод cart_customer.set .
  • Добавьте товары в корзину, используя метод cart_product.add .

попробуйте вызвать cart_shipping.method и cart_payment.method перед вызовом cart.order

  • Создайте заказ, используя метод cart.order.

Комментарии:

1. Я следую тому же процессу, но он показывает мне «Неперехваченное исключение SoapFault: [1002] Не удается выполнить операцию, потому что цитата не существует» каждый раз, когда я вызываю cart.create. Я проверил все результаты вызовов перед вызовом создания корзины, и все работает нормально 1) войдите в систему с помощью api 2) create.cart 3) Настройка клиента 4) Настройка адреса 5) добавление товаров с помощью «cart_product.add» 6) cart_shipping.method 7) ccsave

2. Я выполнил некоторую трассировку и обнаружил, что идентификатор цитаты правильный, но он отображается неактивным в таблице базы данных. В поле «активный» отображается значение 0.

3. @p4pravin вам удалось это решить? Я сталкиваюсь с той же ошибкой, и идентификатор предложения является правильным

4. кто-нибудь нашел решение для этого?