Zend_Service_Amazon
é uma simples API para utilização
dos web services do Amazon. Zend_Service_Amazon
possui duas
APIs: uma mais tradicional que segue o padrão da própria Amazon API, e uma
simples API de consultas para facilitar a construção de pesquisas mais
complexas.
Zend_Service_Amazon
dá aos desenvolvedores a capacidade
de recuperar informações como se estivessem accessando os sites Amazon.com
diretamente através da Amazon Web Services API. Exemplos incluídos:
Armazenar informações de ítens, como imagens, descrições, preços, entre outros.
Revisões editoriais e por parte do cliente.
Produtos similares e acessórios.
Ofertas do Amazon.com.
Listas do tipo ListMania.
Para usar o Zend_Service_Amazon
, você deve possuir uma
chave de desenvolvedor para acessar a Amazon API. Para obter uma chave e
outras informações, por favor visite o web site Amazon Web
Services.
Attention | |
---|---|
Sua chave de desenvolvedor Amazon API está ligada à sua identificação Amazon, então, tome medidas de segurança apropriadas para garantir a privacidade de sua chave. |
Exemplo 29.4. Busca no Amazon usando a API tradicional
Neste exemplo, pesquisamos por livros de PHP no Amazon, executando um laço para imprimir os resultados.
<?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 />'; } ?>
Exemplo 29.5. Busca no Amazon usando a Query API
Aqui, nós pesquisamos por livros de PHP no Amazon, mas usando a API de consulta, que implementa o padrão de projeto "Fluent Interface".
<?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 />'; } ?>
Por padrão, Zend_Service_Amazon
conecta ao web service
do Amazon localizado nos Estado Unidos ("US
"). Para
conectar-se a um país diferente, simplesmente especifique a respectiva
string de código de país como segundo parâmetro para o construtor:
Exemplo 29.6. Selecionando o Amazon Web Service de um país
<?php // Connect to Amazon in Japan require_once 'Zend/Service/Amazon.php'; $amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'JP'); ?>
Country codes | |
---|---|
Códigos válidos podem ser: |
O método itemLookup()
oferece a capacidade de procurar
por um ítem em particular quando o código ASIN é conhecido.
Exemplo 29.7. Procurando por um ítem específico no Amazon usando ASIN
<?php require_once 'Zend/Service/Amazon.php'; $amazon = new Zend_Service_Amazon('AMAZON_API_KEY'); $item = $amazon->itemLookup('B0000A432X'); ?>
O método itemLookup()
também aceita um segundo parâmetro opcional para lidar com as opções de busca. Para maiores detalhes, incluíndo uma lista de opções disponíveis, por favor consulte a respectiva documentação do Amazon
.
Efetuar buscas de ítens, baseando-se em um dos vários critérios de busca disponíveis, são tarefas simples se empregado o método itemSearch()
, como mostrado no exemplo seguinte:
Exemplo 29.8. Efetuando buscas de ítens no 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 />'; } ?>
O método itemSearch()
aceita um simples array de parâmetros para lidar com as opções de busca. Para mais detalhes, incluíndo uma lista de opções disponíveis, consulte a respectiva
documentação do Amazon
Dica | |
---|---|
A classe
|
Zend_Service_Amazon_Query
oferece uma API alternativa
para utilizar o Amazon Web Service. A API alternetiva utiliza o padrão de
projeto "Fluent Interface". Ou seja, todas as chamadas são feitas usando
métodos encadeados (ex:
$obj->method()->method2($arg)
)
A API Zend_Service_Amazon_Query
usa sobrecarga para
facilitar a definição dos ítens de busca, permitindo buscas baseadas nos
critérios especificados. Cada uma das opções é implementada como uma
chamada a método, e cada argumento respectivo, corresponde ao nome da
opção:
Exemplo 29.9. Pesquisando o Amazon usando a Query API Alternativa
Neste exemplo, a Query API alternativa é usada como uma interface "fluente" para especificar opções e seus respectivos valores:
<?php require_once 'Zend/Service/Amazon/Query.php'; $query = new Zend_Service_Amazon_Query('MY_API_KEY'); $query->Category('Books')->Keywords('PHP'); $results = $query->search(); foreach ($results as $result) { echo $result->Title .'<br />'; } ?>
Isto atribui à opção Category
o valor "Books" e à
opção Keywords
o valor "PHP".
Para mais informações e opções disponíveis, consulte a documentação do Amazon específica ao assunto.
As classes abaixo listadas são retornadas pelos métodos Zend_Service_Amazon::itemLookup()
e Zend_Service_Amazon::itemSearch()
:
Zend_Service_Amazon_Item
é uma classe usada para
representar um ítem do Amazon retornado pelo web service. Ele abrange
todos os atributos dos ítens, incluíndo título, descrição, críticas,
etc.
string asXML();
Retorna o XML original para o ítem pesquisado.
Zend_Service_Amazon_Item
possui algumas propriedades
que estão diretamente relacionadas com suas similares na API padrão do
Amazon API.
Tabela 29.1. Propriedade de Zend_Service_Amazon_Item
Nome | Tipo | Descrição |
---|---|---|
ASIN | string | ID do ítem |
DetailPageURL | string | URL para a página de detalhes do ítem |
SalesRank | string | Pontuação de vendas para o ítem |
SmallImage | Zend_Service_Amazon_Image | Imagem reduzida para o ítem |
MediumImage | Zend_Service_Amazon_Image | Imagem de tamanho médio para o ítem |
LargeImage | Zend_Service_Amazon_Image | Imagem grande para o ítem |
Subjects | array | Assunto do ítem |
Offers |
Zend_Service_Amazon_OfferSet
|
Resumo de ofertas e Ofertas para o ítem |
CustomerReviews | array | Criticas dos clientes representadas como um array de
objetos
Zend_Service_Amazon_CustomerReview
|
EditorialReviews | array | Críticas editoriais representadas como um array de
objetos
Zend_Service_Amazon_EditorialReview
|
SimilarProducts | array | Produtos similares representados como um array de objetos
Zend_Service_Amazon_SimilarProduct
|
Accessories | array | Acessórios para o ítem representadas como um array de
objetos
Zend_Service_Amazon_Accessories
|
Tracks | array | Um array de números de trilhas e nomes para DVDs e CDs de música |
ListmaniaLists | array | Ítem relacionada à lista Listmania como um array de
objetos
Zend_Service_Amazon_ListmainList
|
PromotionalTag | string | Tag de ítem promocional |
Zend_Service_Amazon_Image
representa uma imagem remota
de um produto.
Objetos Zend_Service_Amazon_ResultSet
saõ retornados
por Zend_Service_Amazon::itemSearch()
e permitem a você manusear facilmente os múltiplos resultados
retornados.
Image information | |
---|---|
Implemente o |
int totalResults();
Número total de resultados retornados pela pesquisa
Cada resultado retornado por Zend_Service_Amazon::itemSearch()
e Zend_Service_Amazon::itemLookup()
contém um objeto Zend_Service_Amazon_OfferSet
através do qual
o preço do ítem pode ser recuperado.
Tabela 29.3. Propriedades de Zend_Service_Amazon_OfferSet
Nome | Tipo | Descrição |
---|---|---|
LowestNewPrice | int | Menor preço para o ítem na condição de NOVO |
LowestNewPriceCurrency | string | A moeda em que está expresso o
LowestNewPrice
|
LowestOldPrice | int | Menor preço para o ítem na condição de USADO |
LowestOldPriceCurrency | string | A moeda em que está expresso o
LowestOldPrice
|
TotalNew | int | Total de ítens "Novos" disponíveis |
TotalUsed | int | Total de ítens "Usados" disponíveis |
TotalCollectible | int | Total de ítens "colecionáveis" disponíveis |
TotalRefurbished | int | Total de ítens "refurbished" disponíveis |
Offers | array | Um array de objetos
Zend_Service_Amazon_Offer . |
As ofertas para um dado ítem, são retornadas como objetos
Zend_Service_Amazon_Offer
.
Tabela 29.4. Propriedades
Name | Type | Description |
---|---|---|
MerchantId | string | ID Amazon para fornecedores |
GlancePage | string | URL para uma página contendo um resumo do fornecedor. |
Condition | string | Condição do ítem |
OfferListingId | string | ID da listagem de Ofertas |
Price | int | Preço do ítem |
CurrencyCode | string | Código de moeda para o preço do ítem |
Availability | string | Disponibilidade do ítem |
IsEligibleForSuperSaverShipping | boolean | Informa se o ítem é elegível para remessa super econômica ou não |
Ao executar uma busca por ítens, O Amazon também retorna uma lista
de produtos similares que podem ser localizados ao seu gosto. Cada um
deles é retornado como um objeto
Zend_Service_Amazon_SimilarProduct
.
Cada objeto contém a informação necessária para que as requisições subsequentes recuperem informações detalhadas sobre o ítem.
Acessórios para o ítem retornado, são representados como objetos
Zend_Service_Amazon_Accessories
Cada crítica feita pelo cliente é retornada como um objeto
Zend_Service_Amazon_CustomerReview
.
Tabela 29.7. Propriedades de Zend_Service_Amazon_CustomerReview
Name | Type | Description |
---|---|---|
Rating | string | Cotação do ítem |
HelpfulVotes | string | Votos na "utilidade" da crítica emitida |
CustomerId | string | ID do Cliente |
TotalVotes | string | Total de votos |
Date | string | Data |
Summary | string | Resumo |
Content | string | Conteúdo |
As críticas editoriais são retornadoas como objetos
Zend_Service_Amazon_EditorialReview