Rentabilisez votre site Internet avec Amazon Product Advertising API et PHP

Vous souhaitez rentabiliser votre site Internet, mais vous ne voulez pas de bannières clignotantes telles des guirlandes sur un sapin de noël. Vous préférez pouvoir choisir la présentation et les objets présents sur votre site, alors l'API d'Amazon est une des solutions à laquelle vous devez songer. (Amazon Product Advertising API)

Introduction : L'API d'Amazon

Cette API permet de récupérer les détails de produits Amazon via une interface XML. La liste des informations récupérables est longue, les plus importantes restent les suivantes :

  • Le titre (Le roi lion)
  • L'auteur / Créateur / Marques (Disney)
  • Le Prix en centimes(1990 pour 19,90€)
  • La devise (EUR)
  • L'URL de la photo du produit
  • L'URL de la page Amazon du produit

Bien sur, il y en existe bien d'autres. Ce sera à vous de fouiller dans le XML si vous souhaitez récupérer d'autres caractéristiques produits.

Les possibilités sont multiples. Vous pouvez l'utiliser pour ajouter du contenu sur vos pages afin d'en améliorer le référencement. Mais l'utilité primaire reste de récupérer un pourcentage des ventes générées depuis votre site Internet.

Le pourcentage des commissions sur les objets varient suivant le nombre de ventes :

Commissions sur le site UK :

  • 5% de 1 à 20 ventes
  • 5.5% de 21 à 50 ventes
  • 6% de 51 à 400 ventes
  • 6.5% de 401 à 1 000 ventes
  • 7% de 1 001 à 3 000 ventes
  • 7.5% de 3 001 à 10 000 ventes
  • 8% de 10 001 à 30 000 ventes
  • 9% de 30 001 et + ventes

Commissions sur le site FR :

  • 5% de 1 à 20 ventes
  • 5.5% de 21 à 100 ventes
  • 6% de 101 à 500 ventes
  • 7% de 501 à 2 500 ventes
  • 7,5% de 2 501 à 5 000 ventes
  • 8% de 5 001 à 17 500 ventes
  • 8,5% de 17 501 à 25 000 ventes
  • 9% de 25 001 et + ventes

Introduction : Le contenu du billet

Cet article vous apprendra à afficher des objets Amazon sur votre site Internet très facilement grâce à la classe AmazonAdvertising\Request. Cette classe (développé par mes soins) permet d’interroger l'API d'Amazon et d'en récupérer les produits triés sous forme d'Object (AmazonAdvertising\Items, AmazonAdvertising\Item, AmazonAdvertising\Image). Ces classes sont commentées suivant le standart PHPDoc ce qui vous permet (Si vous êtes utilisateurs d'IDE comme PHPEd, PHPEdit,...) de pourvoir lire les instructions dans les popups d'aide de votre logiciel.

Pré-requis

Avant de commencer je vous invite à créer un compte partenaire Amazon et un compte Amazon Product Advertising API.

Pour ce faire rendez vous à l'adresse suivante :
https://partenaires.amazon.fr/
Puis une fois votre compte partenaire créé, utilisez les mêmes identifiants ici :
https://partenaires.amazon.fr/gp/flex/advertising/api/sign-in.html

Pour récupérer vos clés d'identifiant API, rendez vous à : https://portal.aws.amazon.com/gp/aws/securityCredentials


Vos clés d'identifiant API se trouve dans la zone entourée de rouge.

Puis pour récupérer votre AssociateTag direction : https://partenaires.amazon.fr/


Votre Associate Tag se trouve dans la zone entourée de rouge.

Pour finir les pré-requis, il ne vous reste plus qu'à télécharger et décompresser le fichier zip contenant la classe :

Paramétrer la classe AmazonAdvertising\Request

Avant de réaliser notre première requête, configurons la classe pour que vous puissiez la faire fonctionner avec vos clés d'identifiant API Amazon. De la ligne 17 à 19, les valeurs des variables statiques sont à changer. Mettez les clefs que vous avez récupérées lors de la partie "Pré-requis" du billet.

private static $Key = 'CLE_IDENTIFIANT_API_AMAZON';
private static $SecretKey = 'CLE_IDENTIFIANT_SECRET_API_AMAZON';
private static $AssociateTag = 'ASSOCIATE_TAG';

Réaliser votre première requête avec AmazonAdvertising\Request

Passons aux choses sérieuse et réalisons notre première requête. Avec AmazonAdvertising\Request, c'est très simple :

$AnnoncesBooks = AmazonAdvertising\Request::Create()
    ->addKeyword("roi lion")
    ->setSearchIndex(AmazonAdvertising\Request::BOOKS)
    ->request();

Dans cet exemple, l'API d'Amazon retournera tous les produits présents dans la catégorie "BOOKS (livres)" répondant aux mots clés "roi lion". On peut s'attendre à une série de livre "Le Roi Lion".

  • ->addKeyword(string $param) ajoute des mots clés à la recherche. $param peut prendre plusieurs mots séparés d'un espace.
  • ->setSearchIndex(AmazonAdvertising\Request::CONSTANTE) indique une catégorie de recherche, les catégories ne peuvent pas se cumuler. Utiliser les constantes présentent dans la classe AmazonAdvertising\Request comme paramètre.
  • ->resetKeyword() remet a zéro la liste de mots clés.
  • ->request() retourne une instance de AmazonAdvertising\Items contenant les produits Amazon de la recherche.

Consulter les résultats d'une requete AmazonAdvertising

Maintenant que la requête est faite, regardons comment récupérer les produits :

echo '<ul>';
foreach($AnnoncesBooks->Items as $annonce)
{
    echo '<li>Titre : <a href="'.$annonce->URL.'" title="'.$annonce->Title.'">'.$annonce->Title.'</a><br />';
    echo '<img atl="'.$annonce->Title.'" src=" '.$annonce->getImage(AmazonAdvertising\Item::IMAGE_SMALL)->URL.'" /><br />';
    echo '<em>Réalisé par '.$annonce->getAuthor().'</em><br />';
    echo '<em>Prix : '.$annonce->getPriceWithCurrency().'</em></li>';
}
echo '</ul>';
echo '<p><a href="'.$AnnoncesBooks->MoreSearchResultsUrl.'">Voir plus de produits "Le Roi Lion"</a></p>';

Analysons les classes, méthodes et attributs utilisés dans cet exemple :

La classe AmazonAdvertising\Items

$annoncesBooks est une instance de la classe AmazonAdvertising\Items. Cette classe contient les informations relatives à la requêtes (Nombre de produits trouvés,...) et la liste des produits. Elle contient 4 attributs :

  • ->TotalResults : Nombre de produits trouvé sur Amazon.
  • ->TotalPages : Nombre de pages de produits Amazon
  • ->MoreSearchResultsUrl : l'URL de la recherche sur le site Amazon
  • ->Items : Tableau d'instance AmazonAdvertising\Item

La classe AmazonAdvertising\Item

La classe AmazonAdvertising\Item contient les caractéristiques d'un produit. Elle contient 10 attributs :

  • ->Author : Auteur
  • ->Creator : Créateur
  • ->Brand : Marque
  • ->Manufacturer : Éditeur
  • ->ProductGroup : Catégorie (Books)
  • ->Title : Titre
  • ->URL : URL Amazon
  • ->Binding : (Brochés, Kindle...)
  • ->Price : Prix en centimes
  • ->CurrencyCode : Code de la devise utilisée

Et 5 méthodes :

  • ->getCurrencyChr() : Symbole de la devise ($, €...)
  • ->getPrice() : Prix (19,90)
  • ->getPriceWithCurrency() : Prix avec la devise (19,90 €)
  • ->getImage(AmazonAdvertising\Item::CONSTANTE) : Instance de AmazonAdvertising\Image. Le paramètre définit la taille de l'image. Pour le paramètre, utilisez les constantes "IMAGE_" présente dans la classe AmazonAdvertising\Item
  • ->getAuthor() : Nom de l'auteur sélectionné parmi les champs Author, Brand, Creator.

La classe AmazonAdvertising\Image

La classe AmazonAdvertising\Image contient les caractéristiques d'une image de produit. Elle contient 3 attributs :

  • ->URL : URL de l'image
  • ->Width : Largeur en pixel
  • ->Height : Hauteur en pixel

Conclusion

La conclusion est simple, tenez moi au courant si vous voyez des bugs ! ^^