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
.