Automatiser Création Fiches Prestashop

Voici un guide condensé des principales étapes et commandes cURL à enchaîner pour créer un produit via l’API PrestaShop, y associer une image, puis mettre à jour son stock.

Une fois que vous avez validé le fonctionnement, vous pouvez lancer l’automatisation avec n8n ou make.

Récapitulatif

  • Créer fabricant, fournisseur, catégorie (obtenir leurs IDs).
  • Créer le produit en indiquant les IDs précédents.
  • Récupérer l’id_stock_available du produit.
  • Mettre à jour la quantité via stock_availables.
  • Ajouter une image via l’endpoint images/products/{id_product}.

Après ces étapes, votre produit sera créé, visible, avec stock défini et une image ajoutée.

Prérequis

  • Avoir une clé API avec droits complets.
  • Connaître l’URL de l’API (ex. https://monshop.com/api/).
  • La langue par défaut (ici id= »1″).
  • Un fabricant, un fournisseur et une catégorie

Étapes

1. Créer un fabricant (Manufacturer)

curl -X POST "https://monshop.com/api/manufacturers" \

-H "Authorization: Basic VOTRE_CLE_API_BASE64" \

-H "Content-Type: application/xml" \

-d '<?xml version="1.0" encoding="UTF-8"?>

<prestashop>

  <manufacturer>

    <name><![CDATA[ACMEManufacturer]]></name>

  </manufacturer>

</prestashop>'

Notez l’id_manufacturer retourné (ex. 3).

2. Créer un fournisseur (Supplier)

curl -X POST "https://monshop.com/api/suppliers" \

-H "Authorization: Basic VOTRE_CLE_API_BASE64" \

-H "Content-Type: application/xml" \

-d '<?xml version="1.0" encoding="UTF-8"?>

<prestashop>

  <supplier>

    <name><![CDATA[ACMESupplier]]></name>

  </supplier>

</prestashop>'

Notez l’id_supplier (ex. 3).

3. Créer une catégorie

curl -X POST "https://monshop.com/api/categories" \

-H "Authorization: Basic VOTRE_CLE_API_BASE64" \

-H "Content-Type: application/xml" \

-d '<?xml version="1.0" encoding="UTF-8"?>

<prestashop>

  <category>

    <name><language id="1">Category demo</language></name>

    <link_rewrite><language id="1">category-demo</language></link_rewrite>

    <description><language id="1">my awesome category description</language></description>

    <active>1</active>

    <id_parent>1</id_parent>

  </category>

</prestashop>'

Notez l’id_category (ex. 10).

4. Créer le produit

curl -X POST "https://monshop.com/api/products" \

-H "Authorization: Basic VOTRE_CLE_API_BASE64" \

-H "Content-Type: application/xml" \

-d '<?xml version="1.0" encoding="UTF-8"?>

<prestashop>

  <product>

    <id_manufacturer>3</id_manufacturer>

    <id_supplier>3</id_supplier>

    <id_category_default>10</id_category_default>

    <id_tax_rules_group>1</id_tax_rules_group>

    <reference>123456</reference>

    <supplier_reference>ABCDEF</supplier_reference>

    <ean13>1231231231231</ean13>

    <price>29.99</price>

    <active>1</active>

    <meta_title><language id="1">My Title for SEO</language></meta_title>

    <link_rewrite><language id="1">my-awesome-product</language></link_rewrite>

    <name><language id="1">My awesome Product</language></name>

    <description><language id="1">Description of my product</language></description>

    <description_short><language id="1">Short description</language></description_short>

    <associations>

      <categories>

        <category><id>10</id></category>

      </categories>

    </associations>

  </product>

</prestashop>'

Notez l’id_product retourné (ex. 23).

5. Récupérer l’ID du stock_available

curl --globoff -X GET "https://monshop.com/api/stock_availables?filter[id_product]=23&display=full" \

-H "Authorization: Basic VOTRE_CLE_API_BASE64"

Notez l’id_stock_available (ex. 62).

6. Mettre à jour le stock

curl -X PATCH "https://monshop.com/api/stock_availables/62" \

-H "Authorization: Basic VOTRE_CLE_API_BASE64" \

-H "Content-Type: application/xml" \

-d '<?xml version="1.0" encoding="UTF-8"?>

<prestashop>

  <stock_available>

    <id>62</id>

    <quantity>12</quantity>

  </stock_available>

</prestashop>'

7. Ajouter une image au produit

Placez img.jpeg dans le répertoire courant, puis :

curl -X POST "https://monshop.com/api/images/products/23" \

-H "Authorization: Basic VOTRE_CLE_API_BASE64" \

-F "[email protected]"

Références

Testé sur prestashop 1.8