Animint

  Anime & manga

 
 
“Animint traite des dessins animés japonais et du manga. Outre ce blog, le site comporte plusieurs milliers de pages de texte illustré.”

Un retour d'expérience sur le service web d'Amazon

Par le :: Webmastering

mangas , 2009

Chaque projet de site web a ses particularités et pour certains, ils permettent  d'élargir votre horizon technique. La conception de Kelmanga a été l'occasion d'utiliser le service web historique d'Amazon, la célèbre "librairie" en ligne. Je dis historique car Amazon propose maintenant beaucoup d'autres services, notamment des plateformes complètes d'e-commerce, qu'ils louent à leurs clients. Le service d'origine se contente de vous laisser interroger la base catalogue d'Amazon et de rapatrier les informations utiles sur un produit spécifique.

Aujourd'hui, il existe en fait plusieurs méthodes pour accéder à l'information sur les produits vendus par Amazon. Le plus simple est d'utiliser les widgets, qui permettent d'avoir un moteur de recherche intégré sur sa page et qui affiche ensuite les produits disponibles. C'est rapide à installer et perturbe peu vos pages mais les fonctions sont cependant restreintes à la recherche et la personnalisation reste très limitée.

Amazon propose également d'ouvrir une sous-boutique complète, aux couleurs de votre site, où vous alimentez les titres à vendre, à la main. La boutique suit une présentation commune mais en jonglant avec les feuilles de styles et les patrons, vous pouvez vraiment mettre votre touche personnelle. Le vrai frein concerne surtout la mise à jour des listes des produits vendus. C'est faisable si vous viser une niche avec une sélection pérenne de titres. Cela devient vite infernal si vous devez sélectionner, à la main, toutes les sorties du mois.

L'usage de du service web permet d'interroger dynamiquement Amazon avec des requêtes, et d'éviter d'effectuer vos sélections titre par titre. Cela permet aussi de mélanger les informations en piochant dans ce que vous dit Amazon et dans ce que vous avez depuis votre propre site.

Avant d'aller plus en détail sur l'implémentation, il faut garder en mémoire quelques règles. La première est qu'Amazon met disposition son catalogue dans le but que vous conduisez  vos visiteurs à ensuite aller acheter chez eux. Faire un import du catalogue, uniquement pour lister les nouveautés, sans inviter les visiteurs à acheter, est donc une violation des conditions d'utilisation.

Autre remarque, ne vous attendez pas à faire fortune. A la rigueur, il faut mieux cibler au maximum les produits que vous souhaitez faire acheter, en étant sûr qu'ils intéresseront vos visiteurs. Dans ce cas, inutile de passer par la panoplie lourde du service web. De simples liens en dur par ci par là, vous suffiront, avec sans doute un bon chiffre d'achats par visite.

Pour Kelmanga, la motivation était avant tout de récupérer les informations des dates de sortie automatiquement. Techniquement, il n'y a rien à redire si ce n'est que certaines dates sont fausses et le restent longtemps. Ainsi, le tome 14 de Cross Game est encore annoncé comme devant bientôt( !) paraître le 7 octobre 2009, alors que la date est passée et que le volume doit plutôt sortir à la mi-décembre. 

Enfin, malgré les présentations techniques alléchantes sur le site Amazon à propos du service web, n'en attendez pas des miracles. Par exemple, il est dit que vous pouvez récupérer les résumés et bien d'autres informations intéressantes sur les produits, sauf que c'est uniquement valable pour le site américain, l'Amazon.com.

Si, comme moi, vous pointez vers le site français, Amazon.fr, vous n'auriez rien de tout ceci. Vous avez le minimum syndical, avec souvent des problèmes pour filtrer correctement les mangas parmi les livres. Chez certains éditeurs, c'est marqué BD japonaise ou bien manga - et pas toujours dans le même champ - voir rien du tout.

Autre écueil, les produits sont classés avec des références propres à Amazon, au lieu par exemple, pour les livres, d'utiliser le numéro standard EAN qui est bien pratique pour trouver un bouquin précis. Le numéro EAN existe mais il n'est pas considéré comme une clef de recherche dans les lignes de commande de l'API Amazon en France.

Bref, point de vue contenu, ce n'est pas la panacée mais j'apprécie leur base d'images de couvertures, de tailles multiples, bien que la qualité ne soit pas extraordinaire. Cela économise quelques Giga de stockage et autant de bande passante.

L'interface vous permet aussi de constituer un panier sans avoir à naviguer sur le site Amazon et donc quitter votre site. C'est d'ailleurs une des fonctions implémentées sur Kelmanga qui permet de constituer un panier, sans avoir à choisir ses mangas un par un.

Le web service Amazon est bâti sur du protocole REST et donc des échanges en XML. Les spécifications sont correctement documentées et il existe plusieurs versions, les plus récentes ayant plus de fonctions que les anciennes. Gérer les communications brutes en XML n'est pas très folichon mais il existe des portages dans de nombreux langages, qui cachent cette logique pour constituer un pôle de fonctions qui camoufle l'usage du XML derrière.

Le portage n'est pas assuré par Amazon mais plusieurs projets open source intègrent l'usage de l'API. Ainsi, pour PHP, vous trouvez des classes à votre disposition dans le célèbre framework Zend, ou bien dans des packages PEAR.

Pour Zend, vous n'êtres pas obligé d'utiliser le framework complet. Vous pouvez vous limiter à la partie qui vous intéresse. En revanche, avec les nombreuses dépendances, vous devez garder une bonne vingtaine de fichiers à mettre à jour lorsque une nouvelle version de Zend sort. C'est donc rébarbatif si vous n'utilisez pas le framework pour votre site.

Autre détail saugrenu avec Zend, c'est l'absence de gestion de la signature au niveau de la couche basse de communication XML, il y a encore quelques semaines. Pour utiliser le service web, vous devez ouvrir un compte spécifique chez Amazon qui vous fournit un identifiant et une clef. Pour mieux éviter l'usage de leurs ressources, les gens d'Amazon exigent depuis mi-août que chaque requête soit signée, pour savoir sans équivoque,  quel utilisateur a lancé une commande, en évitant l'usurpation d'identité. Les requêtes non signées sont rejetées.

A quelques jours de la date butoir, Zend n'avait toujours pas implémenté la signature et utilisait une vieille version de l'API Amazon. C'est dire si l'implémentation intéresse Zend. Ainsi, j'ai plutôt opté pour la version PEAR, plus légère d'une part du point de vue des dépendances et surtout compatible depuis longtemps, avec cette histoire de signature bas niveau.

Une fois le compte développeur ouvert sur Amazon et la bibliothèque PHP installée, tout marche bien. Il faut encore gérer le nombre limité de connexions, qui ne doit pas dépasser le rythme d'une par seconde. Il faut donc s'y reprendre à plusieurs fois dans les programmes pour ouvrir une connexion et ne pas s'arrêter au premier échec. Vous pouvez opter pour mettre un maximum d'éléments en cache mais il faut veiller à ne pas conserver certaines informations trop longtemps car les prix et les stocks bougent rapidement sur certains articles.

Enfin, après avoir rapatrié les données qui vous intéressent, seule votre imagination vous limite sur ce que vous en faites. Sur Kelmanga, les résumés et les commentaires sont propres à Animint, tandis que les détails des tomes proviennent d'Amazon.


api

Discuter de ce billet sur le forum - - Laisser un commentaire »

Cet article vous a plu?

Faites-le connaître ou votez pour cet article sur les sites suivants :

  • anime manga aggregator sama
  • Partager sur del.li.cious
  • Partager sur Facebook
  • Partager sur Google

Ajoutez votre commentaire:

Merci de bien vouloir soigner votre orthographe et de proscrire le style SMS.


Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

 

↑ Haut de page