Zend_Service_Amazon является простым API
            для использования веб-сервиса Amazon. Zend_Service_Amazon
            имеет два API: традиционный, который похож на
            собственный интерфейс Amazon, и более простой "API запросов",
            который позволяет легко строить даже сложные поисковые запросы.
        
            Zend_Service_Amazon дает возможность получать информацию,
            предоставляемую на сайтах Amazon.com, через API веб-сервисов Amazon.
            Эта информация включает в себя:
            
Информацию о товарной позиции, такую, как изображения, описания, цены и т.д.
Рецензии и покупательские отзывы
Аксессуары и похожие товары
Предложения Amazon.com
Списки ListMania
            Для того, чтобы использовать Zend_Service_Amazon, необходимо
            иметь ключ разработчика к API Amazon.
            Чтобы получить ключ и более подробную информацию, обратитесь к сайту
            веб-сервисы Amazon.
        
![]()  | 
Внимание | 
|---|---|
Ваш ключ разработчика к API Amazon связан с вашим аккаунтом в Amazon, поэтому позаботьтесь о том, чтобы хранить ваш ключ в безопасности.  | 
Пример 29.4. Поиск с использованием традиционного API
В данном примере мы ищем книги по PHP на 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 />';
}
?>       
Пример 29.5. Поиск с использованием API запросов
Здесь мы также ищем книги по PHP на Amazon, но используя API запросов, который имеет сходство с паттерном проектирования 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 />';
}
?>       
            По умолчанию Zend_Service_Amazon устанавливает соединение
            с веб-сервисом Amazon для Соединенных Штатов ("US").
            Для установки соединения из другой страны просто укажите
            соответствующий код страны в качестве второго параметра при
            вызове конструктора:
        
Пример 29.6. Выбор страны для веб-сервиса Amazon
<?php
// Установка соединения с Amazon в Японии
require_once 'Zend/Service/Amazon.php';
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'JP');
?>       
![]()  | 
Коды стран | 
|---|---|
                Возможные коды стран:   | 
            Метод itemLookup() дает возможность извлекать
            определенный товар Amazon, если известен его код ASIN.
        
Пример 29.7. Поиск товара по его коду ASIN
<?php
require_once 'Zend/Service/Amazon.php';
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY');
$item = $amazon->itemLookup('B0000A432X');
?>       
            Метод itemLookup() также принимает второй необязательный
            параметр для управления опциями поиска. За более подробной информацией,
            включающей список доступных опций, см.
            соответствующую документацию Amazon.
        
![]()  | 
Информация о изображениях | 
|---|---|
                Для того, чтобы получать информацию о изображениях для результатов поиска,
                необходимо установить опцию   | 
            Поиск товара, основанный на различных возможных критериях, упрощается
            при использовании метода itemSearch(), как это показано
            в следующем примере:
        
Пример 29.8. Поиск товара 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 />';
}
?>       
            Метод itemSearch() принимает массива для управлениями опциями поиска
            в качестве единственного параметра.
            За более подробной информацией,
            включающей список доступных опций, см.
            соответствующую документацию Amazon.
        
![]()  | 
Подсказка | 
|---|---|
                Класс   | 
                Zend_Service_Amazon_Query предоставляет альтернативный API
                для использования веб-сервиса Amazon.
                Альтернативный API использует паттерн проектирования Fluent Interface.
                Это означает, что все вызовы могут производиться по "цепочке"
                (т.е. $obj->method()->method2($arg)).
            
                API Zend_Service_Amazon_Query использует
                перегрузку для легкой настройки поиска и дает возможность
                поиска по определенным критериям. Каждая из опций доступна
                через вызов метода и каждый аргумент метода соответствует
                значению опции:
            
Пример 29.9. Поиск через Amazon с использованием альтернативного API запросов
В данном примере используется альтернативный API запросов для указания опций и их значений:
<?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 />';
}
?>           
                    Этот код устанавливает опции Category в "Books"
                    и Keywords в "PHP".
                
За более подробной информацией про доступные опции обратитесь к соответствующей документации Amazon.
            Все следующие классы возвращаются методами
            Zend_Service_Amazon::itemLookup()
            и
            Zend_Service_Amazon::itemSearch():
            
                Zend_Service_Amazon_Item является классом, используемым
                для представления товарных позиций, возвращенных веб-сервисом Amazon.
            
                    string asXML();
                
Возвращает исходный XML-код для товарной позиции
                    Zend_Service_Amazon_Item имеет несколько свойств,
                    напрямую связанных с их аналогами в стандартном API. 
                
Таблица 29.1. Свойства класса Zend_Service_Amazon_Item
| Имя | Тип | Описание | 
|---|---|---|
| ASIN | string | ID товарной позиции Amazon | 
| DetailPageURL | string | URL к странице с информацией о товаре | 
| SalesRank | string | Рейтинг продаж | 
| SmallImage | Zend_Service_Amazon_Image | Малое изображение товара | 
| MediumImage | Zend_Service_Amazon_Image | Среднее изображение товара | 
| LargeImage | Zend_Service_Amazon_Image | Большое изображение товара | 
| Subjects | array | Рубрики, к которым относится товар | 
| Offers | 
                                    
                                        Zend_Service_Amazon_OfferSet
                                    
                                 | 
Общее предложение и предложения к данному товару | 
| CustomerReviews | array | 
                                    Отзывы покупателей в виде массива объектов 
                                    
                                        Zend_Service_Amazon_CustomerReview
                                    
                                    
                                 | 
| EditorialReviews | array | 
                                    Рецензии в виде массива объектов 
                                    
                                        Zend_Service_Amazon_EditorialReview
                                    
                                    
                                 | 
| SimilarProducts | array | 
                                    Похожие продукты в виде массива объектов
                                    
                                        Zend_Service_Amazon_SimilarProduct
                                    
                                    
                                 | 
| Accessories | array | 
                                    Аксессуары к товару в виде массива объектов
                                    
                                        Zend_Service_Amazon_Accessories
                                    
                                    
                                 | 
| Tracks | array | Массив номеров и названий дорожек для музыкальных CD-, DVD-дисков | 
| ListmaniaLists | array | 
                                    Связанные с данным товаром списки Listmania
                                    в виде массива объектов 
                                    
                                        Zend_Service_Amazon_ListmainList
                                    
                                    
                                 | 
| PromotionalTag | string | Промоушн-тег | 
                Класс Zend_Service_Amazon_Image представляет удаленное
                изображение для продукта. 
            
                Объекты Zend_Service_Amazon_ResultSet возвращаются
                методом Zend_Service_Amazon::itemSearch()
                и позволяют легко работать с результатами, возвращенными веб-сервисом.
            
![]()  | 
SeekableIterator | 
|---|---|
                    Класс реализует интерфейс   | 
int totalResults();Возвращает общее количество результатов поиска
                Каждый результат, возвращаемый методами Zend_Service_Amazon::itemSearch()
                и Zend_Service_Amazon::itemLookup(),
                содержит объекты Zend_Service_Amazon_OfferSet,
                через которые может быть получена информация о ценах к товару.
            
Таблица 29.3. Свойства класса Zend_Service_Amazon_OfferSet
| Имя | Тип | Описание | 
|---|---|---|
| LowestNewPrice | int | Наиболее низкая цена к новому товару | 
| LowestNewPriceCurrency | string | 
                                    Валюта, в которой приведена цена LowestNewPrice
                                    
                                 | 
| LowestOldPrice | int | Наиболее низкая цена к товару, бывшему в употреблении | 
| LowestOldPriceCurrency | string | 
                                    Валюта, в которой приведена цена LowestOldPrice
                                    
                                 | 
| TotalNew | int | Общее количество нового товара, доступного для данной позиции | 
| TotalUsed | int | Общее количество товара, бывшего в употреблении, доступного для данной позиции | 
| TotalCollectible | int | Общее количество коллекционного товара, доступного для данной позиции | 
| TotalRefurbished | int | Общее количество подновленного товара, доступного для данной позиции | 
| Offers | array | 
                                    Массив объектов Zend_Service_Amazon_Offer
                                    
                                 | 
                Все предложения к товарной позиции возвращаются как
                объекты Zend_Service_Amazon_Offer.
            
Таблица 29.4. Свойства класса Zend_Service_Amazon_Offer
| Имя | Тип | Описание | 
|---|---|---|
| MerchantId | string | ID продавца Amazon | 
| GlancePage | string | URL страницы с информацией о продавце | 
| Condition | string | Состояние товара | 
| OfferListingId | string | ID листинга предложений | 
| Price | int | Цена товара | 
| CurrencyCode | string | Код валюты | 
| Availability | string | Наличие товара | 
| IsEligibleForSuperSaverShipping | boolean | Является ли товар подходящим для Super Saver Shipping (экономная доставка) | 
                Когда производится поиск товара, Amazon также возвращает
                список похожих продуктов, которые могут соответствовать требованиям
                покупателя. Все они возвращаются в виде объектов
                Zend_Service_Amazon_SimilarProduct.
            
Каждый объект содержит в себе информацию, которая позволяет делать дополнительные запросы для получения более полной информации о товаре.
                Аксессуары для возвращенных товарных позиций представляются в виде
                объектов Zend_Service_Amazon_Accessories.
            
                Каждый покупательский отзыв возвращается в виде объекта
                Zend_Service_Amazon_CustomerReview  
            
Таблица 29.7. Свойства класса Zend_Service_Amazon_CustomerReview
| Имя | Тип | Описание | 
|---|---|---|
| Rating | string | Рейтинг товара | 
| HelpfulVotes | string | Голоса за то, что отзыв является полезным | 
| CustomerId | string | ID покупателя | 
| TotalVotes | string | Всего голосов | 
| Date | string | Дата размещения отзыва | 
| Summary | string | Краткий отзыв | 
| Content | string | Полный текст отзыва | 
                Каждая рецензии к товару возвращается как объект Zend_Service_Amazon_EditorialReview.