Objectifs
L'objectif de cet article est de pouvoir connaître, via un appel API, le statut d'un article sur Amazon (en stock, indisponible, etc...).
Cela est particulièrement utile pour les sites faisant de l'affiliation; et ayant donc de nombreux liens vers des produits Amazon.
On s'aperçoit au fur et à mesure du temps que le statut des articles change souvent, et un produit disponible à un instant T ne le sera pas forcément une semaine plus tard, voire sera complètement supprimé du catalogue; d'où la nécessité d'en être averti, et de pouvoir remplacer par un lien vers un autre produit équivalent.
Prérequis
Nous allons utiliser l'API Product Advertising. Notez qu'il vous faut pour cela être déjà partenaire Amazon, et avoir déjà généré des ventes.
Il semblerait également qu'une fois les identifiants créés, il faille patienter 48h avant de tester.
De même, si vous ne générez pas de vente pendant un mois, l'accès est censé se désactiver (et se réactiver à la suite d'une vente réussie).
Vous obtiendrez deux clés : une "access key" et une "secret key". Il vous faudra également votre ID partenaire (que vous pouvez retrouver en haut à droite de votre espace Amazon Associates).
Le script PHP
Vous pouvez télécharger le script en cliquant ici.
Les paramètres à modifier sont :
- $accessKey=""; => Votre clé d'accès
- $secretKey=""; => Votre clé secrète
- $asin="2226018522"; => Le numéro ASIN du produit, ici un exemple
- $partnerTag=""; => Votre ID partenaire
Le numéro ASIN (Amazon Standard Identification Number) est un identifiant unique attribué par Amazon à chaque produit répertorié sur sa plateforme. Chaque produit vendu sur Amazon, qu'il s'agisse de livres, de produits électroniques, de vêtements ou d'autres articles, reçoit un numéro ASIN qui le distingue des autres produits.
Vous le trouverez facilement sur la page du produit sur Amazon.
Une fois executé, le script vous sort le contenu de la réponse, du type :
Array
(
[Items] => Array
(
[0] => Array
(
[ASIN] => 2226018522
[DetailPageURL] => https://www.amazon.fr/dp/2226018522?tag=*partnerTag*&linkCode=ogi&th=1&psc=1
[Offers] => Array
(
[Listings] => Array
(
[0] => Array
(
[Availability] => Array
(
[Message] => En stock
[Type] => Now
)
[Id] => KvCW3toaj%2B3iDMiS6FhHNDsIAQneRo58swpN5C8rhtoAfoHZfq3S6EjEcU85DXsqN4zNjpCAxkuHiHNdgK5XEkxF5dupX6OuJhISC3jeDbR56ilg89N%2B03bxUPKKtPec
[ViolatesMAP] =>
)
)
)
)
)
)
Vous trouverez le statut du stock dans ['Items'][0]['Offers']['Listings'][0]['Availability']['Message']
Si cet élément n'existe pas du tout, c'est que le produit a été supprimé.
Dans notre exemple, le statut est "En stock".
Évolutions
A partir de ce script, j'ai réalisé une tâche cron qui vérifie à intervalles réguliers la disponibilité de tous mes produits en affiliation Amazon (via leur numéro ASIN), et qui, en cas d'indisponibilité, m'envoie un email d'alerte.
En fonction du statut, je décide (ou non) de remplacer le produit par un autre, qui est, lui, disponible. S'il s'agit d'une indisponibilité temporaire, je ne change en général pas de produit. Par contre, bien sûr, si le produit n'a pas vocation à être remis en stock, là oui.
Développement sur mesure
Je suis disponible (via la page contact) pour toute demande de développement sur mesure concernant l'affiliation Amazon (et pas que !).