Zend_Service_Amazon es una API sencilla para usar
los servicios web de Amazon. Zend_Service_Amazon tiene dos
APIs: una más tradicional que sigue la propia API
de Amazon, y una "Query API" más sencilla para construir
fácilmente consultas de búsqueda incluso complejas.
Zend_Service_Amazon permite a los desarrolladores recuperar información
que aparece en los sitios web de Amazon.com directamente a través de la
API de Amazon Web Services. Algunos ejemplos incluyen:
Información de artículos de la tienda, como imágenes, descripciones, precios y más
Reseñas de clientes y editoriales
Productos similares y accesorios
Ofertas de Amazon.com
Listas ListMania
Para usar Zend_Service_Amazon, debería tener ya una
clave de API de desarrollador de Amazon, así como una clave secreta. Para obtener una clave y
más información, visite el sitio web de Amazon Web
Services. A partir del 15 de agosto de 2009 solo puede usar la
API de Amazon Product Advertising a través de
Zend_Service_Amazon, especificando la clave secreta adicional.
![]() |
Atención |
|---|---|
Sus claves de API de desarrollador y secreta de Amazon están vinculadas a su identidad de Amazon, así que tome las medidas apropiadas para mantenerlas privadas. |
Ejemplo 64.4. Buscar en Amazon usando la API tradicional
En este ejemplo, buscamos libros de PHP en Amazon y recorremos los resultados, imprimiéndolos.
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'US', 'AMAZON_SECRET_KEY');
$results = $amazon->itemSearch(array('SearchIndex' => 'Books',
'Keywords' => 'php'));
foreach ($results as $result) {
echo $result->Title . '<br />';
}
Ejemplo 64.5. Buscar en Amazon usando la Query API
Aquí, también buscamos libros de PHP en Amazon, pero en su lugar usamos la Query API, que se asemeja al patrón de diseño de Interfaz Fluida (Fluent Interface).
$query = new Zend_Service_Amazon_Query('AMAZON_API_KEY',
'US',
'AMAZON_SECRET_KEY');
$query->category('Books')->Keywords('PHP');
$results = $query->search();
foreach ($results as $result) {
echo $result->Title . '<br />';
}
Por defecto, Zend_Service_Amazon se conecta al servicio web de Amazon de
Estados Unidos ("US"). Para conectarse desde otro país, simplemente
especifique la cadena del código de país apropiado como segundo parámetro del constructor:
Ejemplo 64.6. Elegir un país de Amazon Web Service
// Connect to Amazon in Japan
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'JP', 'AMAZON_SECRET_KEY');
![]() |
Códigos de país |
|---|---|
Los códigos de país válidos son: |
El método itemLookup() proporciona la capacidad de obtener
un artículo concreto de Amazon cuando se conoce el ASIN.
Ejemplo 64.7. Buscar un artículo específico de Amazon por ASIN
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'US', 'AMAZON_SECRET_KEY');
$item = $amazon->itemLookup('B0000A432X');
El método itemLookup() también acepta un segundo
parámetro opcional para gestionar las opciones de búsqueda. Para más detalles, incluyendo una lista de
opciones disponibles, consulte la documentación de Amazon
correspondiente.
![]() |
Información de imágenes |
|---|---|
Para recuperar información de imágenes de sus resultados de búsqueda, debe establecer la opción
|
Buscar artículos en función de diversos criterios disponibles se simplifica usando el
método itemSearch(), como en el siguiente ejemplo:
Ejemplo 64.8. Realizar búsquedas de artículos en Amazon
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'US', 'AMAZON_SECRET_KEY');
$results = $amazon->itemSearch(array('SearchIndex' => 'Books',
'Keywords' => 'php'));
foreach ($results as $result) {
echo $result->Title . '<br />';
}
Ejemplo 64.9. Usar la opción ResponseGroup
La opción ResponseGroup se usa para controlar la información específica
que se devolverá en la respuesta.
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'US', 'AMAZON_SECRET_KEY');
$results = $amazon->itemSearch(array(
'SearchIndex' => 'Books',
'Keywords' => 'php',
'ResponseGroup' => 'Small,ItemAttributes,Images,SalesRank,Reviews,' .
'EditorialReview,Similarities,ListmaniaLists'
));
foreach ($results as $result) {
echo $result->Title . '<br />';
}
El método itemSearch() acepta un único parámetro de tipo array para
gestionar las opciones de búsqueda. Para más detalles, incluyendo una lista de las opciones disponibles, consulte
la documentación de Amazon
correspondiente
![]() |
Consejo |
|---|---|
La clase |
Zend_Service_Amazon_Query proporciona una
API alternativa para usar Amazon Web Service. La
API alternativa usa el patrón de Interfaz Fluida. Es decir, todas las llamadas pueden
hacerse encadenando llamadas a métodos. (por ejemplo, $obj->method()->method2($arg))
La API de Zend_Service_Amazon_Query usa
sobrecarga para configurar fácilmente una búsqueda de artículos y luego le permite buscar según
el criterio especificado. Cada una de las opciones se proporciona como una llamada a método, y el
argumento de cada método corresponde al valor de la opción con dicho nombre:
Ejemplo 64.10. Buscar en Amazon usando la API de consulta alternativa
En este ejemplo, se usa la API de consulta alternativa como una interfaz fluida para especificar opciones y sus respectivos valores:
$query = new Zend_Service_Amazon_Query('MY_API_KEY', 'US', 'AMAZON_SECRET_KEY');
$query->Category('Books')->Keywords('PHP');
$results = $query->search();
foreach ($results as $result) {
echo $result->Title . '<br />';
}
Esto establece la opción Category en "Books" y Keywords
en "PHP".
Para más información sobre las opciones disponibles, consulte la documentación de Amazon correspondiente.
Las siguientes clases son devueltas todas por Zend_Service_Amazon::itemLookup()
y Zend_Service_Amazon::itemSearch():
Zend_Service_Amazon_Item es el tipo de clase usado para representar
un artículo de Amazon devuelto por el servicio web. Engloba todos los
atributos del artículo, incluyendo título, descripción, reseñas, etc.
Zend_Service_Amazon_Item tiene varias propiedades
directamente relacionadas con sus contrapartes estándar de la API de Amazon.
Tabla 64.1. Propiedades de Zend_Service_Amazon_Item
| Nombre | Tipo | Descripción |
|---|---|---|
| ASIN | string | ID de artículo de Amazon |
| DetailPageURL | string | URL a la página de detalles del artículo |
| SalesRank | int | Ranking de ventas del artículo |
| SmallImage | Zend_Service_Amazon_Image | Imagen pequeña del artículo |
| MediumImage | Zend_Service_Amazon_Image | Imagen mediana del artículo |
| LargeImage | Zend_Service_Amazon_Image | Imagen grande del artículo |
| Subjects | array | Temas del artículo |
| Offers |
Zend_Service_Amazon_OfferSet
|
Resumen de ofertas y ofertas del artículo |
| CustomerReviews | array |
Reseñas de clientes representadas como un array de objetos Zend_Service_Amazon_CustomerReview
|
| EditorialReviews | array |
Reseñas editoriales representadas como un array de objetos Zend_Service_Amazon_EditorialReview
|
| SimilarProducts | array |
Productos similares representados como un array de objetos Zend_Service_Amazon_SimilarProduct
|
| Accessories | array |
Accesorios del artículo representados como un array de objetos Zend_Service_Amazon_Accessories
|
| Tracks | array |
Un array con los números y nombres de las pistas para CDs de música y
DVDs
|
| ListmaniaLists | array |
Listas Listmania relacionadas con el artículo como un array de objetos Zend_Service_Amazon_ListmainList
|
| PromotionalTag | string | Etiqueta promocional del artículo |
Zend_Service_Amazon_Image representa una imagen remota de un
producto.
Los objetos Zend_Service_Amazon_ResultSet son devueltos por Zend_Service_Amazon::itemSearch()
y le permiten gestionar fácilmente los múltiples resultados devueltos.
![]() |
SeekableIterator |
|---|---|
Implementa |
int totalResults();Devuelve el número total de resultados devueltos por la búsqueda
Cada resultado devuelto por Zend_Service_Amazon::itemSearch()
y Zend_Service_Amazon::itemLookup()
contiene un objeto Zend_Service_Amazon_OfferSet
a través del cual se puede recuperar la información de precios del artículo.
Tabla 64.3. Propiedades de Zend_Service_Amazon_OfferSet
| Nombre | Tipo | Descripción |
|---|---|---|
| LowestNewPrice | int | Precio más bajo del artículo en condición "New" (nuevo) |
| LowestNewPriceCurrency | string | La moneda para LowestNewPrice
|
| LowestOldPrice | int | Precio más bajo del artículo en condición "Used" (usado) |
| LowestOldPriceCurrency | string | La moneda para LowestOldPrice
|
| TotalNew | int | Número total disponible en condición "new" (nuevo) para el artículo |
| TotalUsed | int | Número total disponible en condición "used" (usado) para el artículo |
| TotalCollectible | int | Número total disponible en condición "collectible" (coleccionable) para el artículo |
| TotalRefurbished | int | Número total disponible en condición "refurbished" (reacondicionado) para el artículo |
| Offers | array |
Un array de objetos Zend_Service_Amazon_Offer.
|
Cada oferta para un artículo se devuelve como un objeto
Zend_Service_Amazon_Offer.
Tabla 64.4. Propiedades
| Nombre | Tipo | Descripción |
|---|---|---|
| MerchantId | string | ID de Amazon del comerciante |
| MerchantName | string |
Nombre de Amazon del comerciante. Requiere establecer la opción
ResponseGroup en OfferFull para
recuperarlo.
|
| GlancePage | string | URL de una página con un resumen del comerciante |
| Condition | string | Condición del artículo |
| OfferListingId | string | ID del listado de la oferta |
| Price | int | Precio del artículo |
| CurrencyCode | string | Código de moneda del precio del artículo |
| Availability | string | Disponibilidad del artículo |
| IsEligibleForSuperSaverShipping | boolean | Indica si el artículo es elegible o no para Super Saver Shipping |
Al buscar artículos, Amazon también devuelve una lista de productos similares que puedan
gustarle al usuario. Cada uno de estos se devuelve como un objeto
Zend_Service_Amazon_SimilarProduct.
Cada objeto contiene la información necesaria para permitirle realizar solicitudes posteriores y obtener toda la información del artículo.
Los accesorios del artículo devuelto se representan como objetos
Zend_Service_Amazon_Accessories
Cada reseña de cliente se devuelve como un objeto
Zend_Service_Amazon_CustomerReview.
Tabla 64.7. Propiedades de Zend_Service_Amazon_CustomerReview
| Nombre | Tipo | Descripción |
|---|---|---|
| Rating | string | Valoración del artículo |
| HelpfulVotes | string | Votos sobre lo útil que es la reseña |
| CustomerId | string | ID del cliente |
| TotalVotes | string | Total de votos |
| Date | string | Fecha de la reseña |
| Summary | string | Resumen de la reseña |
| Content | string | Contenido de la reseña |
Las reseñas editoriales de cada artículo se devuelven como un objeto
Zend_Service_Amazon_EditorialReview
![[Note]](images/note.png)
![[Tip]](images/tip.png)