Site icon Developpeur / integrateur web (Growth Hacker)

Utiliser l’API PrestaShop

PrestaShop propose l’utilisation de son API pour réaliser diverses actions sur votre site eCommerce. Mais comment faire pour utiliser l’API de PrestaShop ?

Créer votre clef API PrestaShop

Il faut pour cela aller sur l’admin de votre site Prestashop.
Puis colonne de gauche, cliquer sur :

Paramètres avancés
Webservice

Activer le service web (mettre à OUI)
Il faut que la réécriture d’URL soit activée sur le serveur
+ que les 5 méthodes GET, POST, PUT, DELETE et HEAD soient aussi activées sur le serveur.

En haut de page cliquer sur : Ajouter une clé de service web

Générer une key aléatoire via le bouton « Generate » de droite.
Ajouter une description, pour vous repérer dans l’utilisation futur de cette clef.
Laisser le statut sur « Oui », pour que ce dernier soit fonctionnel.
Choisir les ressources et droits que vous désirer utiliser.
Ex : Adresses avec un CRUD.

Source : Doc PrestaShop.

Utiliser votre clef API Prestashop

Vous pouvez dans un 1er temps vérifier que votre config fonctionne correctement.
Pour cela lancer l’URL suivante dans votre navigateur (A faire sur votre version de développement, éviter en production).

http://url_de_votre_site.fr/api/?ws_key=votre_clef_ici&output_format=JSON

Remplacer juste les points suivants :

Exécuter cette URL dans votre navigateur, et vous devriez obtenir quelques-choses dans l’esprit :

[
"addresses",
"carriers",
"cart_rules",
"carts",
"categories",
"combinations",
"configurations",
"contacts",
"content_management_system",
"countries",
"currencies",
"customer_messages",
"customer_threads",
"customers",
"customizations",
"deliveries",
"employees",
"groups",
"guests",
"image_types",
"images",
"languages",
"manufacturers",
"messages",
"order_carriers",
"order_details",
"order_histories",
"order_invoices",
"order_payments",
"order_slip",
"order_states",
"orders",
"price_ranges",
"product_customization_fields",
"product_feature_values",
"product_features",
"product_option_values",
"product_options",
"product_suppliers",
"products",
"search",
"shop_groups",
"shop_urls",
"shops",
"specific_price_rules",
"specific_prices",
"states",
"stock_availables",
"stock_movement_reasons",
"stock_movements",
"stocks",
"stores",
"suppliers",
"supply_order_details",
"supply_order_histories",
"supply_order_receipt_histories",
"supply_order_states",
"supply_orders",
"tags",
"tax_rule_groups",
"tax_rules",
"taxes",
"translated_configurations",
"warehouse_product_locations",
"warehouses",
"weight_ranges",
"zones"
]

Récupérer la liste des clients via l’API PrestaShop :

http://url_de_votre_site.fr/api/customers?ws_key=votre_clef_ici&output_format=JSON

Récupérer le détail d’un client via l’API PrestaShop :

http://url_de_votre_site.fr/api/customers/id_du_client?ws_key=votre_clef_ici&output_format=JSON

Essayer de remplacer id_du_client par 1, pour obtenir le 1er client sur PrestaShop (si cette id existe toujours en base de donnée).

Ce qui donnera quelques-choses dans l’esprit :

{
customer: {
id: 2,
id_default_group: "3",
id_lang: "1",
newsletter_date_add: "2013-12-13 08:19:15",
ip_registration_newsletter: "",
last_passwd_gen: "2021-02-13 06:20:42",
secure_key: "870d...",
deleted: "0",
passwd: "bf57...",
lastname: "DOE",
firstname: "John",
email: "pub@prestashop.com",
id_gender: "1",
birthday: "1998-01-15",
newsletter: "1",
optin: "1",
website: "",
company: "",
siret: "",
ape: "",
outstanding_allow_amount: "0.000000",
show_public_prices: "0",
id_risk: "0",
max_payment_days: "0",
active: "1",
note: "",
is_guest: "0",
id_shop: "1",
id_shop_group: "1",
date_add: "2021-02-13 12:20:42",
date_upd: "2021-02-13 12:20:42",
reset_password_token: "",
reset_password_validity: "0000-00-00 00:00:00",
associations: {
groups: [
{
id: "3"
}
]
}
}
}

Utiliser Postman avec PrestaShop :

Postman va vous permettre de réaliser vos requêtes rapidement et simplement.
Nous allons faire un GET depuis Postman :

Ajouter en GET sur postman votre URL :

Puis exécuter la requête (cliquez sur le bouton bleu « Send »).

Créer un client avec Postman :

Cette fois on va créer un client PrestaShop, depuis postman.
On passe donc en POST (et plus en GET).
On ajouter le body suivant :

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
    <customers>
        <passwd>Lorem_1234</passwd>
        <firstname>John</firstname>
        <lastname>DOE</lastname>
        <email>postman@eewee.fr</email>
    </customers>
</prestashop>

Et on valide (toujours pareil, en cliquant sur le bouton bleu nommé « Send »).

Liste des différents endpoints PrestaShop :

PrestaShop propose dans sa documentation, la liste des différents endpoints disponibles pour réaliser vos requêtes.

Ici l’exemple avec le endpoint « Customers » :
https://devdocs.prestashop.com/1.7/webservice/resources/customers/

On peut voir qu’il y a 4 champs obligatoires :

Requête API PrestaShop en PHP :

Vous pouvez utiliser la lib de PrestaShop pour réaliser vos requêtes en PHP :

Exemple d’un update :

Quitter la version mobile