Создать заказ с помощью API PrestaShop

У меня PrestaShop 1.6.0.9, и я пытаюсь создать новый заказ. Я следую за следующими шагами:

  1. Создайте корзину с ключом безопасности ранее созданного клиента, идентификатором продукта, который я хочу купить, и количеством.

  2. Затем создайте новый заказ (отправив POST на /api/order), передавая идентификатор клиента, ключ безопасности, идентификатор продукта, цены (с учетом и без налогов) и т. д.
    Это весь XML, который я отправляю:

<?xml version="1.0" encoding="UTF-8"?><prestashop><order>
<id_address_delivery>5</id_address_delivery>
<id_address_invoice>5</id_address_invoice><id_currency>1</id_currency>
<id_lang>1</id_lang><id_customer>2</id_customer><id_carrier>1</id_carrier>
<current_state>2</current_state><valid>1</valid><module>cashondelivery</module>
<payment>Pago en metalico</payment><conversion_rate>1</conversion_rate>
<security_key>1e87b5d59d7c812a9d840a548e4b8a45</security_key><associations>
<order_rows><order_rows><product_id>7</product_id>
<product_attribute_id>34</product_attribute_id><product_quantity>1</product_quantity>
</order_rows></order_rows></associations><id_cart>42</id_cart>
<total_paid>24.85</total_paid><total_paid_real>24.85</total_paid_real>
<total_products>20.54</total_products><total_products_wt>24.85</total_products_wt>
</order></prestashop>

Как видите, я использую модуль cashondelivery. Моя проблема в том, что когда я отправляю этот XML в API, создается заказ, но:

  1. Каким-то образом заказ не отображается в списке заказов, но я могу перейти к нему, если перейду к «Клиенты -> корзины покупок ->» id корзины, которую я создал перед отправкой XML-кода заказа -> созданный заказ из этой корзины.

  2. Как только я нахожусь в заказе, я не могу видеть детали клиента (потому что идентификатор клиента не вставлен). Я почти уверен, что клиент с идентификатором 2 существует, но я не уверен, почему он не вставляется с POST, который я отправляю в API.

Есть идеи, почему происходит какая-то из этих двух проблем?

1

Решение

Я публикую ответ для всех, кто попадает сюда из Google.
Даже если в документации PS говорится, что идентификаторы не требуются, вы должны передать каждое поле идентификатора как в корзине, так и в заказе.

Это означает, что вы должны предоставить идентификатор клиента, идентификатор адреса, идентификатор адреса доставки и т. Д. … при создании корзины и при создании заказа.

Если вам это не удастся, ваш заказ может быть вставлен, а может и нет. И, если он будет вставлен, не гарантируется, что он будет отображаться в списке «Заказы».

4

Другие решения

Есть несколько «скрытых» обязательных вещей, которым нужно следовать, чтобы создать действительный заказ:

  1. Secure_key должен совпадать между secure_key клиента и заказом
    secure_key
  2. Адрес (доставки) должен быть связан с действительной страной.

Таким образом, лучший способ заключается в том, чтобы вы следовали всему процессу создания заказа, естественно:

  1. Создать клиента, получить клиента secure_key а также customer_id из возвращенного XML

  2. Создать корзину, используя customer_id сверху шаг

  3. Создать заказ с customer_id, клиента secure_key а также cart_id сверху шаги.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector