使用PrestaShop的API创建订单

问题描述:

我有一个PrestaShop 1.6.0.9,我试图创建一个新订单。我跟随以下步骤:使用PrestaShop的API创建订单

  1. 与我之前创建客户端的安全密钥创建一个车,我想购买的产品和数量的ID。

  2. 然后创建一个新的订单(发送一个POST到/api/order),传递客户端ID,安全密钥,产品ID,价格(有和没有税)等... 这是整个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. 不知何故,才能在订单列表显示不出来,但我可以给订单,如果我去到“客户 - >购物车 - >”我在创建订单XML之前创建的购物车ID“ - >从此购物车中创建的订单

  2. 一旦我进入订单,我看不到客户端的详细信息(因为客户端的ID没有被插入)。我很确定客户端ID为2确实存在,但我不确定为什么它没有插入我发送的POST API。

任何想法为什么这两个问题中的任何一个发生?

我发布的任何人谁来自谷歌这里的答案。 即使PS文档说ID不是必需的,您必须通过购物车和订单中的每个ID字段。

这意味着,当您创建购物车时以及创建订单时,您必须提供客户端ID,地址ID,交货地址ID等。

如果你这样做失败,你的订单可能会被插入,或者它可能不会。而且,如果确实插入,则不能保证它会显示在“订单”列表中。

有需要,以创造一个有效为了遵循一些“隐藏”强制性的东西:

  1. 的secure_key必须客户的secure_key和秩序的 secure_key之间的匹配
  2. 地址(交货)必须与有效的国家相关联。

所以,最好的办法是,你遵循创建订单,自然的全流程:

  1. 创建客户,得到客户的的secure_keycustomer_id返回的XML

  2. 创建购物车,使用customer_id来自上述步骤

  3. 创建订单无线从上述步骤开始,从customer_id,客户secure_keycart_id

开始=>