Introduction to Zend Framework

 Learning Zend Framework


 Zend Framework Reference

  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Update 2011-11-16 - Revision 24438 - Version ZF 1.11.x

    63.3. Zend_Service_Amazon

    63.3.1. Introduction

    Zend_Service_Amazon is a simple API for using Amazon web services. Zend_Service_Amazon has two APIs: a more traditional one that follows Amazon's own API, and a simpler "Query API" for constructing even complex search queries easily.

    Zend_Service_Amazon enables developers to retrieve information appearing throughout web sites directly through the Amazon Web Services API. Examples include:

    • Store item information, such as images, descriptions, pricing, and more

    • Customer and editorial reviews

    • Similar products and accessories

    • offers

    • ListMania lists

    In order to use Zend_Service_Amazon, you should already have an Amazon developer API key aswell as a secret key. To get a key and for more information, please visit the Amazon Web Services web site. As of August 15th, 2009 you can only use the Amazon Product Advertising API through Zend_Service_Amazon, when specifying the additional secret key.

    [Note] Attention

    Your Amazon developer API and secret keys are linked to your Amazon identity, so take appropriate measures to keep them private.

    Example 63.4. Search Amazon Using the Traditional API

    In this example, we search for PHP books at Amazon and loop through the results, printing them.

    $amazon = new Zend_Service_Amazon('AMAZON_API_KEY''US''AMAZON_SECRET_KEY');
    $results $amazon->itemSearch(array('SearchIndex' => 'Books',
    'Keywords' => 'php'));
    foreach (
    $results as $result) {
    $result->Title '<br />';

    Example 63.5. Search Amazon Using the Query API

    Here, we also search for PHP books at Amazon, but we instead use the Query API, which resembles the Fluent Interface design pattern.

    $query = new Zend_Service_Amazon_Query('AMAZON_API_KEY',
    $results $query->search();
    foreach (
    $results as $result) {
    $result->Title '<br />';

    63.3.2. Country Codes

    By default, Zend_Service_Amazon connects to the United States ("US") Amazon web service. To connect from a different country, simply specify the appropriate country code string as the second parameter to the constructor:

    Example 63.6. Choosing an Amazon Web Service Country

    // Connect to Amazon in Japan
    $amazon = new Zend_Service_Amazon('AMAZON_API_KEY''JP''AMAZON_SECRET_KEY');

    [Note] Country codes

    Valid country codes are: CA, DE, FR, JP, UK, and US.

    63.3.3. Looking up a Specific Amazon Item by ASIN

    The itemLookup() method provides the ability to fetch a particular Amazon item when the ASIN is known.

    Example 63.7. Looking up a Specific Amazon Item by ASIN

    $amazon = new Zend_Service_Amazon('AMAZON_API_KEY''US''AMAZON_SECRET_KEY');
    $item $amazon->itemLookup('B0000A432X');

    The itemLookup() method also accepts an optional second parameter for handling search options. For full details, including a list of available options, please see the relevant Amazon documentation.

    [Note] Image information

    To retrieve images information for your search results, you must set ResponseGroup option to Medium or Large.

    63.3.4. Performing Amazon Item Searches

    Searching for items based on any of various available criteria are made simple using the itemSearch() method, as in the following example:

    Example 63.8. Performing Amazon Item Searches

    $amazon = new Zend_Service_Amazon('AMAZON_API_KEY''US''AMAZON_SECRET_KEY');
    $results $amazon->itemSearch(array('SearchIndex' => 'Books',
    'Keywords' => 'php'));
    foreach (
    $results as $result) {
    $result->Title '<br />';

    Example 63.9. Using the ResponseGroup Option

    The ResponseGroup option is used to control the specific information that will be returned in the response.

    $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,' .
    foreach (
    $results as $result) {
    $result->Title '<br />';

    The itemSearch() method accepts a single array parameter for handling search options. For full details, including a list of available options, please see the relevant Amazon documentation

    [Tip] Tip

    The Zend_Service_Amazon_Query class is an easy to use wrapper around this method.

    63.3.5. Using the Alternative Query API Introduction

    Zend_Service_Amazon_Query provides an alternative API for using the Amazon Web Service. The alternative API uses the Fluent Interface pattern. That is, all calls can be made using chained method calls. (e.g., $obj->method()->method2($arg))

    The Zend_Service_Amazon_Query API uses overloading to easily set up an item search and then allows you to search based upon the criteria specified. Each of the options is provided as a method call, and each method's argument corresponds to the named option's value:

    Example 63.10. Search Amazon Using the Alternative Query API

    In this example, the alternative query API is used as a fluent interface to specify options and their respective values:

    $query = new Zend_Service_Amazon_Query('MY_API_KEY''US''AMAZON_SECRET_KEY');
    $results $query->search();
    foreach (
    $results as $result) {
    $result->Title '<br />';

    This sets the option Category to "Books" and Keywords to "PHP".

    For more information on the available options, please refer to the relevant Amazon documentation.

    63.3.6. Zend_Service_Amazon Classes

    The following classes are all returned by Zend_Service_Amazon::itemLookup() and Zend_Service_Amazon::itemSearch(): Zend_Service_Amazon_Item

    Zend_Service_Amazon_Item is the class type used to represent an Amazon item returned by the web service. It encompasses all of the items attributes, including title, description, reviews, etc. Zend_Service_Amazon_Item::asXML()

    string asXML();

    Return the original XML for the item Properties

    Zend_Service_Amazon_Item has a number of properties directly related to their standard Amazon API counterparts.

    Table 63.1. Zend_Service_Amazon_Item Properties

    Name Type Description
    ASIN string Amazon Item ID
    DetailPageURL string URL to the Items Details Page
    SalesRank int Sales Rank for the Item
    SmallImage Zend_Service_Amazon_Image Small Image of the Item
    MediumImage Zend_Service_Amazon_Image Medium Image of the Item
    LargeImage Zend_Service_Amazon_Image Large Image of the Item
    Subjects array Item Subjects
    Offers Zend_Service_Amazon_OfferSet Offer Summary and Offers for the Item
    CustomerReviews array Customer reviews represented as an array of Zend_Service_Amazon_CustomerReview objects
    EditorialReviews array Editorial reviews represented as an array of Zend_Service_Amazon_EditorialReview objects
    SimilarProducts array Similar Products represented as an array of Zend_Service_Amazon_SimilarProduct objects
    Accessories array Accessories for the item represented as an array of Zend_Service_Amazon_Accessories objects
    Tracks array An array of track numbers and names for Music CDs and DVDs
    ListmaniaLists array Item related Listmania Lists as an array of Zend_Service_Amazon_ListmainList objects
    PromotionalTag string Item Promotional Tag

    Back to Class List Zend_Service_Amazon_Image

    Zend_Service_Amazon_Image represents a remote Image for a product. Properties

    Table 63.2. Zend_Service_Amazon_Image Properties

    Name Type Description
    Url Zend_Uri Remote URL for the Image
    Height int The Height of the image in pixels
    Width int The Width of the image in pixels

    Back to Class List Zend_Service_Amazon_ResultSet

    Zend_Service_Amazon_ResultSet objects are returned by Zend_Service_Amazon::itemSearch() and allow you to easily handle the multiple results returned.

    [Note] SeekableIterator

    Implements the SeekableIterator for easy iteration (e.g. using foreach), as well as direct access to a specific result using seek(). Zend_Service_Amazon_ResultSet::totalResults()
    int totalResults();

    Returns the total number of results returned by the search

    Back to Class List Zend_Service_Amazon_OfferSet

    Each result returned by Zend_Service_Amazon::itemSearch() and Zend_Service_Amazon::itemLookup() contains a Zend_Service_Amazon_OfferSet object through which pricing information for the item can be retrieved. Properties

    Table 63.3. Zend_Service_Amazon_OfferSet Properties

    Name Type Description
    LowestNewPrice int Lowest Price for the item in "New" condition
    LowestNewPriceCurrency string The currency for the LowestNewPrice
    LowestOldPrice int Lowest Price for the item in "Used" condition
    LowestOldPriceCurrency string The currency for the LowestOldPrice
    TotalNew int Total number of "new" condition available for the item
    TotalUsed int Total number of "used" condition available for the item
    TotalCollectible int Total number of "collectible" condition available for the item
    TotalRefurbished int Total number of "refurbished" condition available for the item
    Offers array An array of Zend_Service_Amazon_Offer objects.

    Back to Class List Zend_Service_Amazon_Offer

    Each offer for an item is returned as an Zend_Service_Amazon_Offer object. Zend_Service_Amazon_Offer Properties

    Table 63.4. Properties

    Name Type Description
    MerchantId string Merchants Amazon ID
    MerchantName string Merchants Amazon Name. Requires setting the ResponseGroup option to OfferFull to retrieve.
    GlancePage string URL for a page with a summary of the Merchant
    Condition string Condition of the item
    OfferListingId string ID of the Offer Listing
    Price int Price for the item
    CurrencyCode string Currency Code for the price of the item
    Availability string Availability of the item
    IsEligibleForSuperSaverShipping boolean Whether the item is eligible for Super Saver Shipping or not

    Back to Class List Zend_Service_Amazon_SimilarProduct

    When searching for items, Amazon also returns a list of similar products that the searcher may find to their liking. Each of these is returned as a Zend_Service_Amazon_SimilarProduct object.

    Each object contains the information to allow you to make sub-sequent requests to get the full information on the item. Properties

    Table 63.5. Zend_Service_Amazon_SimilarProduct Properties

    Name Type Description
    ASIN string Products Amazon Unique ID (ASIN)
    Title string Products Title

    Back to Class List Zend_Service_Amazon_Accessories

    Accessories for the returned item are represented as Zend_Service_Amazon_Accessories objects Properties

    Table 63.6. Zend_Service_Amazon_Accessories Properties

    Name Type Description
    ASIN string Products Amazon Unique ID (ASIN)
    Title string Products Title

    Back to Class List Zend_Service_Amazon_CustomerReview

    Each Customer Review is returned as a Zend_Service_Amazon_CustomerReview object. Properties

    Table 63.7. Zend_Service_Amazon_CustomerReview Properties

    Name Type Description
    Rating string Item Rating
    HelpfulVotes string Votes on how helpful the review is
    CustomerId string Customer ID
    TotalVotes string Total Votes
    Date string Date of the Review
    Summary string Review Summary
    Content string Review Content

    Back to Class List Zend_Service_Amazon_EditorialReview

    Each items Editorial Reviews are returned as a Zend_Service_Amazon_EditorialReview object Properties

    Table 63.8. Zend_Service_Amazon_EditorialReview Properties

    Name Type Description
    Source string Source of the Editorial Review
    Content string Review Content

    Back to Class List Zend_Service_Amazon_Listmania

    Each results List Mania List items are returned as Zend_Service_Amazon_Listmania objects. Properties

    Table 63.9. Zend_Service_Amazon_Listmania Properties

    Name Type Description
    ListId string List ID
    ListName string List Name

    Back to Class List

    digg delicious meneame google twitter technorati facebook