在prestashop上通过sku在购物车中添加产品

时间:2016-11-24 22:35:27

标签: php web-services prestashop prestashop-1.7

我使用prestashop webservice进行集成,

我发送了POST http://url/prestashop/api/carts?schema=blank&ws_key=MYKEY=keywords&language=1

使用此xml

<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
   <customer>
      <id_customer>12</id_customer>
      <id_currency>1</id_currency>
      <id_lang>1</id_lang>
      <associations>
         <cart_rows>
            <cart_row>
               <CartRow>
                  <id_product>1</id_product>
                  <id_product_attribute>1</id_product_attribute>
                  <id_address_delivery>10</id_address_delivery>
                  <quantity>1</quantity>
               </CartRow>
            </cart_row>
         </cart_rows>
      </associations>
   </customer>
</prestashop>

我想解决两个问题,

第一: 我收到此错误:

<![CDATA[[SQL Error] Column 'id_product_attribute' cannot be null. From CartCore->setWsCartRows() Query was : INSERT INTO `ps_cart_product`(`id_cart`, `id_product`, `id_product_attribute`, `id_address_delivery`, `quantity`, `date_add`, `id_shop`) VALUES (18, 0, NULL, 0, 0, NOW(), 1)]]>

但是id属性和产品在数据库上(我检查了表产品和prorduct_attribute)

第二

我只有sku有没有办法获得id_product和id_product_attribute抛出webservice产品?或者我是否必须构建自定义模块或其他东西才能获得产品?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您的XML错误形成。请注意,在查询错误中,id_product和id_product_attribute值为0且为NULL,因此传递给XML的数据永远不会在webservice中找到正确的目标。

如果您有SKU,您必须首先获得通过引用过滤的产品(或ean13或UPC或SKU在Prestashop中表示的字段)。这样你就可以将id_product和id_product_attribute传递给XML中的webservice。

祝你好运。