У меня PrestaShop 1.6.0.9, и я пытаюсь создать новый заказ. Я следую за следующими шагами:
Создайте корзину с ключом безопасности ранее созданного клиента, идентификатором продукта, который я хочу купить, и количеством.
Затем создайте новый заказ (отправив 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, создается заказ, но:
Каким-то образом заказ не отображается в списке заказов, но я могу перейти к нему, если перейду к «Клиенты -> корзины покупок ->» id корзины, которую я создал перед отправкой XML-кода заказа -> созданный заказ из этой корзины.
Как только я нахожусь в заказе, я не могу видеть детали клиента (потому что идентификатор клиента не вставлен). Я почти уверен, что клиент с идентификатором 2 существует, но я не уверен, почему он не вставляется с POST, который я отправляю в API.
Есть идеи, почему происходит какая-то из этих двух проблем?
Я публикую ответ для всех, кто попадает сюда из Google.
Даже если в документации PS говорится, что идентификаторы не требуются, вы должны передать каждое поле идентификатора как в корзине, так и в заказе.
Это означает, что вы должны предоставить идентификатор клиента, идентификатор адреса, идентификатор адреса доставки и т. Д. … при создании корзины и при создании заказа.
Если вам это не удастся, ваш заказ может быть вставлен, а может и нет. И, если он будет вставлен, не гарантируется, что он будет отображаться в списке «Заказы».
Есть несколько «скрытых» обязательных вещей, которым нужно следовать, чтобы создать действительный заказ:
Таким образом, лучший способ заключается в том, чтобы вы следовали всему процессу создания заказа, естественно:
Создать клиента, получить клиента secure_key
а также customer_id
из возвращенного XML
Создать корзину, используя customer_id
сверху шаг
Создать заказ с customer_id
, клиента secure_key
а также cart_id
сверху шаги.