'Prestashop webservice API creating cart rules

Have been trying to create a cart rule using Prestashop web-service with no luck.

Tried this https://github.com/PrestaShop/PrestaShop-webservice-lib/blob/master/examples/Create.php (with cart_rules value replaced away from customers).

But I always get the same error: Property CartRule->name is empty.

Request:

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<cart_rule>
    <id></id>
    <id_customer>1</id_customer>
    <date_from>2017-09-05 13:00:00</date_from>
    <date_to>2020-06-30 13:00:00</date_to>
    <description>1</description>
    <quantity>1</quantity>
    <quantity_per_user>1</quantity_per_user>
    <priority>1</priority>
    <partial_use>1</partial_use>
    <code>11111111111111111111111111111111111111111111111111</code>
    <minimum_amount>1</minimum_amount>
    <minimum_amount_tax>1</minimum_amount_tax>
    <minimum_amount_currency>1</minimum_amount_currency>
    <minimum_amount_shipping>1</minimum_amount_shipping>
    <country_restriction>1</country_restriction>
    <carrier_restriction>1</carrier_restriction>
    <group_restriction>1</group_restriction>
    <cart_rule_restriction>1</cart_rule_restriction>
    <product_restriction>1</product_restriction>
    <shop_restriction>1</shop_restriction>
    <free_shipping>1</free_shipping>
    <reduction_percent>151</reduction_percent>
    <reduction_amount>1</reduction_amount>
    <reduction_tax>1</reduction_tax>
    <reduction_currency>1</reduction_currency>
    <reduction_product>1</reduction_product>
    <reduction_exclude_special>1</reduction_exclude_special>
    <gift_product>1</gift_product>
    <gift_product_attribute>1</gift_product_attribute>
    <highlight>1</highlight>
    <active>1</active>
    <date_add>1</date_add>
    <date_upd>1</date_upd>
    <name>TEST NAME</name>
</cart_rule>
</prestashop>

Response:

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<errors>
  <error>
    <code><![CDATA[84]]></code>
    <message><![CDATA[Validation error: "Property CartRule->name is empty."]]></message>
  </error>
</errors>
</prestashop>


Solution 1:[1]

The cart rule name is a multi-language field, so you have to specify the language id.

Try this:

<cart_rule>
    ...
    <name>
        <language id="1">TEST NAME</language>
    </name>
    ...
</cart_rule>

Obviously you have to use the right ID language

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 marsaldev