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, поэтому позаботьтесь о том, чтобы хранить ваш ключ в безопасности. |
Пример 24.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 />';
}
?>
Пример 24.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").
Для установки соединения из другой страны просто укажите
соответствующий код страны в качестве второго параметра при
вызове конструктора:
Пример 24.6. Выбор страны для веб-сервиса Amazon
<?php
// Установка соединения с Amazon в Японии
require_once 'Zend/Service/Amazon.php';
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'JP');
?>
![]() |
Коды стран |
|---|---|
Возможные коды стран: |
Метод itemLookup() дает возможность извлекать
определенный товар Amazon, если известен его код ASIN.
Пример 24.7. Поиск товара по его коду ASIN
<?php
require_once 'Zend/Service/Amazon.php';
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY');
$item = $amazon->itemLookup('B0000A432X');
?>
Метод itemLookup() также принимает второй необязательный
параметр для управления опциями поиска. За более подробной информацией,
включающей список доступных опций, см.
соответствующую документацию Amazon.
![]() |
Информация о изображениях |
|---|---|
Для того, чтобы получать информацию о изображениях для результатов поиска,
необходимо установить опцию |
Поиск товара, основанный на различных возможных критериях, упрощается
при использовании метода itemSearch(), как это показано
в следующем примере:
Пример 24.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 использует
перегрузку для легкой настройки поиска и дает возможность
поиска по определенным критериям. Каждая из опций доступна
через вызов метода и каждый аргумент метода соответствует
значению опции:
Пример 24.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.
Таблица 24.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,
через которые может быть получена информация о ценах к товару.
Таблица 24.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.
Таблица 24.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
Таблица 24.7. Свойства класса Zend_Service_Amazon_CustomerReview
| Имя | Тип | Описание |
|---|---|---|
| Rating | string | Рейтинг товара |
| HelpfulVotes | string | Голоса за то, что отзыв является полезным |
| CustomerId | string | ID покупателя |
| TotalVotes | string | Всего голосов |
| Date | string | Дата размещения отзыва |
| Summary | string | Краткий отзыв |
| Content | string | Полный текст отзыва |
Каждая рецензии к товару возвращается как объект Zend_Service_Amazon_EditorialReview.