Я использую веб-сервис prestashop для интеграции,
Я отправляю бросить POST
HTTP: // URL / PrestaShop / API / телеги схемы = пусто&ws_key = MYKEY = ключевые слова&язык = 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 и product находятся в базе данных (я проверил на таблице products и prorduct_attribute)
Во-вторых:
У меня есть только sku. Есть ли способ получить id_product и id_product_attribute, выбрасывающий продукт веб-сервиса? или мне нужно собрать собственный модуль или что-то, чтобы получить продукт?
Большое спасибо за помощь!
Ваш XML неправильно сформирован. Обратите внимание, что в ошибке запроса значения id_product и id_product_attribute равны 0 и NULL, поэтому данные, передаваемые в XML, никогда не находят правильное назначение в веб-сервисе.
Если у вас есть SKU, вы должны сначала получить продукты, отфильтрованные по ссылке (или ean13 или UPC или поле, которое SKU представляет в Prestashop). Таким образом, у вас будут id_product и id_product_attribute, которые вы передадите в веб-сервис в своем XML.
Удачи.
Других решений пока нет …