Zend_Service_Amazon
est une API simpe pour utiliser les web services d'Amazon.
Zend_Service_Amazon
a deux APIs : une plutôt traditionnelle qui suit la propre API
d'Amazon, et un "Query API" simplifiée pour construire facilement des requêtes de recherche, même compliquées.
Zend_Service_Amazon
permet aux développeurs de récupérer des informations disponible sur le site Amazon.com
directement à traver l'API Amazon Web Services.
Les exemples incluent :
Le stockage de données informatives, comme des images, des descriptions, le prix et plus
Revues éditoriales et commerciales
Des produits et accessoires similaires
Les offres Amazon.com
Les listes ListMania
Pour pouvoir utiliser Zend_Service_Amazon
, vous devez avant tout avoir une clé 'developer API' Amazon. Pour obtenir une telle clé et
pour plus d'informattions, vous pouvez visitez le site Web Amazon Web Services.
Attention | |
---|---|
Votre clé 'developer API' est liée à votre identité Amazon, donc faites en sorte de conserver votre clé d'API privée. |
Exemple 29.4. Recherche sur Amazon en utilisant l'API traditionnelle
Dans cet exemple, nous recherchons les livres sur PHP disponibles chez Amazon et boucler sur les résultats pour les afficher.
<?php require_once 'Zend/Service/Amazon.php'; $amazon = new Zend_Service_Amazon('AMAZON_API_KEY&'); $response = $amazon->itemSearch(array('SearchIndex' => 'Books', 'Keywords' => 'php')); foreach ($response as $r) { echo $r->Title .'<br />'; } ?>
Exemple 29.5. Recherche sur Amazon en utilisant l'API de requête
Ici nous cherchons aussi les livres sur PHP disponibles chez Amazon, mais en utilisant l'API de requête, qui ressemble au modèle de conception Interface Fluide.
<?php require_once 'Zend/Service/Amazon/Query.php'; $query = new Zend_Service_Amazon_Query('AMAZON_API_KEY'); $query->category('Books')->Keywords('PHP'); $results = $query->search(); foreach ($results as $result) { echo $result->Title .'<br />'; } ?>
Par défaut, Zend_Service_Amazon
se connecte au web service Amazon américain ("US
").
Pour se connecter depuis un pays différent, il vous suffit simplement de définir, comme second paramètre du constructeur,
la chaîne de carcatère correspondant au code du pays :
Exemple 29.6. Choisir un service Web Amazon d'un pays
<?php // Connexion à Amazon France require_once 'Zend/Service/Amazon.php'; $amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'FR'); ?>
Country codes | |
---|---|
Les codes de payx valides sont |
La méthode itemLookup()
fournit la possibilité de rechercher un produit Amazon particulier lorsque son
ASIN est connu.
Exemple 29.7. Rechercher une produit Amazon spécifique avec son ASIN
<?php require_once 'Zend/Service/Amazon.php'; $amazon = new Zend_Service_Amazon('AMAZON_API_KEY'); $item = $amazon->itemLookup('B0000A432X'); ?>
La méthode itemLookup()
accepte aussi un second paramètre optionnel pour gérer les options de recherche.
Pour les détails complet et une liste des options disponibles, visitez
la documentation Amazon correspondante.
.
Image information | |
---|---|
Pour récupérer les informations d'images pour vos résultats de recherche,
vous devez définir l'option |
Rechercher des produits basés sur tous les divers critères disponible sont rendus simples grà¢ce à la méthode
itemSearch()
, comme le montre l'exemple suivant :
Exemple 29.8. Lancer des recherches de produits sur Amazon
<?php require_once 'Zend/Service/Amazon.php'; $amazon = new Zend_Service_Amazon('AMAZON_API_KEY'); $response = $amazon->itemSearch(array('SearchIndex' => 'Books', 'Keywords' => 'php')); foreach($response as $r) { echo $r->Title .'<br />'; } ?>
La méthode itemSearch()
accepte un seul tableau en paramètre pour gérer les options de recheche.
Pour plus de détails et une liste des options disponibles, visitez
la documentation Amazon correspondante
Astuce | |
---|---|
La classe |
Zend_Service_Amazon_Query
fournit une API alternative pour utiliser le service Web Amazon.
L'API alternative utilise le modèle de conception 'Interface Fluide'. C'est à dire que les apells peuvent-être
fait en utilisant une chaà®ne d'appels de méthodes (ie $obj->method()->method2($arg)
)
L'API Zend_Service_Amazon_Query
utilise la surcharge pour mettre en place facilement une recherche
d'article, and ainsi vous permettre de chercher en se basant sur les critères spécifiés. Chacune de ces options
est fournie en tant qu'appel de méthode, et chaque paramètre de méthode correspond à la valeur des options nommées.
Exemple 29.9. Rechercher sur Amazon en utilisant l'API alternative de requêtes
Dans cet exemple, l'API de requêtes alternative est utilisée comme une interface fluide pour spécifier les options et leurs valeurs respective :
<?php require_once 'Zend/Service/Amazon/Query.php'; $query = new Zend_Service_Amazon_Query('MA_CLE_API'); $query->Category('Livres')->Keywords('PHP'); $results = $query->search(); foreach ($results as $result) { echo $result->Title .'<br />'; } ?>
Cela définit l'option Category
à "Livres" et Keywords
à "PHP".
Pour plus d'information sur les options disponibles, vous pouvez vous référer à la documentation spécifique.
Les classes suivantes sont toutes retournées par
Zend_Service_Amazon::itemLookup()
et
Zend_Service_Amazon::itemSearch()
:
Zend_Service_Amazon_Item
est le type de classe utilisé pour représenter un produit Amazon retourné par le service web.
Elle récupère tous les attributs des articles, incluant le titre, la description, les revues, etc.
Zend_Service_Amazon_Item
a un nombre de propriétés directement relié à leur contre-parties de l'API standard Amazon.
Tableau 29.1. Propriétés de Zend_Service_Amazon_Item
Nom | Type | Description |
---|---|---|
ASIN | string | Amazon Item ID |
DetailPageURL | string | URL pour la page de détail des articles |
SalesRank | string | Niveau de vente pour cet article |
SmallImage | Zend_Service_Amazon_Image | Petite image de l'article |
MediumImage | Zend_Service_Amazon_Image | Image moyenne de l'article |
LargeImage | Zend_Service_Amazon_Image | Grande image de l'article |
Subjects | array | Sujets de l'article |
Les offres |
Zend_Service_Amazon_OfferSet
|
Sommaire des offres, et offres pour l'article |
CustomerReviews | array |
Les revues clients sont représentée comme un tableau d'objets
Zend_Service_Amazon_CustomerReview
|
EditorialReviews | array |
Les revues éditoriales sont représentées comme un tableau d'objets
Zend_Service_Amazon_EditorialReview
|
SimilarProducts | array |
Les produits similaires sont représentés comme un tableau d'objets
Zend_Service_Amazon_SimilarProduct
|
Accessories | array |
Les accessoires pour l'article sont représentés comme un tableau d'objets
Zend_Service_Amazon_Accessories
|
Tracks | array | Un tableau contenant le nombre de pistes ainsi que les noms pour les CDs ou DVDs musicaux |
ListmaniaLists | array |
Les listes Listmania reliées à un article, comme un tableau d'objets
Zend_Service_Amazon_ListmainList
|
PromotionalTag | string | Balise promotionnelle de l'article |
Zend_Service_Amazon_Image
représente une image distante pour un produit.
Des objets Zend_Service_Amazon_ResultSet
sont retournés par Zend_Service_Amazon::itemSearch()
et vous permettent de gérer facilement les plusieurs résultats retournés.
SeekableIterator | |
---|---|
Implémente l'itérateur |
int totalResults();
Retourne le nombre total des résultats de la recherche
Chaque résultat retourné pas
Each result returned by
Zend_Service_Amazon::itemSearch()
et
Zend_Service_Amazon::itemLookup()
contient un objet
Zend_Service_Amazon_OfferSet
au travers duquel il est possible de récupérer les information de prix de l'article.
Tableau 29.3. Propriétés de Zend_Service_Amazon_OfferSet
Name | Type | Description |
---|---|---|
LowestNewPrice | int | Le plus bas prix pour l'article en condition "New" (ie les articles neufs) |
LowestNewPriceCurrency | string | La devise pour le LowestNewPrice
|
LowestOldPrice | int | Le plus bas prix pour l'article en codition "Used" (ie les articles d'occasion) |
LowestOldPriceCurrency | string | La devise pour le LowestOldPrice
|
TotalNew | int | Le nombre total de contions "new" disponibles pour cet article (ie le nombre de modèles neufs en stock) |
TotalUsed | int | Le nombre total de conditions "used" disponible pour cet article (ie le nombre de modèles d'occasion en stock) |
TotalCollectible | int | ??? Total number of "collectible" condition available for the item ??? |
TotalRefurbished | int | ??? Total number of "refurbished" condition available for the item ??? |
Offers | array | Un tableau d'objets Zend_Service_Amazon_Offer
|
Chaque offre pour un article est retourné sous la forme d'un objet Zend_Service_Amazon_Offer
.
Tableau 29.4. Propriétés de Zend_Service_Amazon_Offer
Name | Type | Description |
---|---|---|
MerchantId | string | ID Amazon du fournisseur |
GlancePage | string | URL de la page avec un résumé du fournisseur |
Condition | string | Condition de cet article |
OfferListingId | string | ID de la liste d'offre |
Price | int | Prix de l'article |
CurrencyCode | string | Code de la devise pour le prix de l'article |
Availability | string | Disponibilité de l'article |
IsEligibleForSuperSaverShipping | boolean | Est-ce que l'article est éligible ou pas pour un "Super Saver Shipping" |
Lors de la recherche d'articles, Amazon retourne aussi une liste de produits similaires qui pourraient intéresser le visiteur.
Chacun d'entre eux est retourné dans un objet Zend_Service_Amazon_SimilarProduct
.
Chaque objet contient l'information qui vous permet de faire les requàªtes suivantes pour obtenir les informations complète sur un article.
Les accessoires pour un article retournés sont représentés comme un objet Zend_Service_Amazon_Accessories
.
Chaque revue de client est retournée sous la forme d'un objet Zend_Service_Amazon_CustomerReview
.
Tableau 29.7. Propriétés de Zend_Service_Amazon_CustomerReview
Name | Type | Description |
---|---|---|
Rating | string | Evaluation de l'article |
HelpfulVotes | string | Votes pour "Ce commentaire vous a-t'il été utile ?" |
CustomerId | string | Identifiant du client |
TotalVotes | string | Total des votes |
Date | string | Date de la revue |
Summary | string | Sommaire de la revues |
Content | string | Contenu de la revue |
Chaque revue éditoriale d'un article est retournée dans un objet Zend_Service_Amazon_EditorialReview
.