Zend_Service_Amazon ist eine einfach API für die Benutzung des Amazon Web Services.
            Zend_Service_Amazon hat 2 APIs: eine traditionellere welche Amazon's eigener API folgt,
            und eine simplere "Abfrage API" um sogar komplexe Suchabfragen einfachst machen zu können.
        
            Zend_Service_Amazon erlaubt es Entwicklern, Informationen von allen Amazon.com
            Web Seiten durch das Amazon Web Services API zu empfangen. Beispiele beinhalten :
            
Informationen speichern, wie Bilder, Beschreibungen, Preise uvm.
Kunden und Editorial Reviews
Ähnliche Produkte und Zubehör
Amazon.com Angebote
ListMania Listen
            Um Zend_Service_Amazon benutzen zu können, benötigt man einen Amazon Entwickler API Schlüssel.
            Um den Schlüssel zu bekommen und für weiter führende Informationen besuchen Sie bitte die
            Amazon Web Service Web Seite.
        
![]()  | 
Achtung | 
|---|---|
Ihr Amazon Entwickler API Schlüssel is verknüpft mit Ihrer Amazon Identität. Deswegen sollten sie darauf achten das Ihr API Schlüssel privat bleibt.  | 
Beispiel 29.4. Suchen in Amazon mit der traditionellen API
In diesem Beispiel suchen wir nach PHP Büchern bei Amazon, blättern durch die Resultate und Drucken diese aus.
<?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 />';
}
?>       
Beispiel 29.5. Suchen in Amazon mit der Abfrage API
Hier suchen wir auch nach PHP Büchern bei Amazon. Aber wir verwenden stattdessen die Abfrage API, welche das Fluent Interface Design Pattern verwendet.
<?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 />';
}
?>       
            Standardmäßig verbindet sich Zend_Service_Amazon zum Amazon Web Service der
            Vereinigten Staaten ("US"). Um sich zu einem anderen Land zu verbinden, muß einfach der
            entsprechende String des Landercodes als zweiter Parameter an den Konstruktor übergeben werden:
        
Beispiel 29.6. Auswahl eines Amazon Web Service Landes
<?php
// Zu Amazon in Japan verbinden
require_once 'Zend/Service/Amazon.php';
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'JP');
?>       
![]()  | 
Ländercodes | 
|---|---|
                Gültige Ländercodes sind:   | 
            Die itemLookup() Methode ermöglicht es ein bestimmtes Teil bei Amazon zu erhalten wenn
            der ASIN bekannt ist.
        
Beispiel 29.7. Betrachten eines speziellen Teils bei Amazon durch ASIN
<?php
require_once 'Zend/Service/Amazon.php';
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY');
$item = $amazon->itemLookup('B0000A432X');
?>       
            Die itemLookup() Methode akzeptiert auch einen optionalen zweiten Parameter für die
            Handhabung der Suchoptionen. Für komplette Details, inklusive einer Liste der möglichen Optionen
            sehen Sie bitte in die relevante Amazon Dokumentation.
        
![]()  | 
Bildinformationen | 
|---|---|
                Um Bildinformationen für deine Suchergebnisse zu erhalten, musst du die   | 
            Das Suchen nach Teilen, basierend auf den unterschiedlichen möglichen Kriterien ist simpel gehalten durch
            benutzen der itemSearch() Methode wie im folgenden Beispiel:
        
Beispiel 29.8. Suchen nach Teilen bei 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 />';
}
?>       
            Die itemSearch() Methode akzeptiert einen einzelnen Parameter als Array für die
            Handhabung der Suchoptionen. Für komplette Details, inklusive eine Liste der möglichen Optionen
            sehen Sie bitte in die relevante Amazon Dokumentation
        
![]()  | 
Tipp | 
|---|---|
                Die   | 
                Zend_Service_Amazon_Query bietet eine alternative API für die Benutzung der Amazon Web Services.
                Die alternative API benutzt das Fluent Interface Pattern. Das bedeutet, alle Aufrufe können durchgeführt
                werden durch Benutzen von verketteten Methoden Aufrufen. (z.B., $obj->method()->method2($arg))
            
                Die Zend_Service_Amazon_Query API benutzt Überladung um einfachst eine Teile Suche zu 
                realisieren, und ermöglicht es, basierend auf den spezifizierten Kriterien, zu suchen. Jede der 
                Optionen wird als Methoden Aufruf angeboten, und jedes Methoden Argument korrespondiert mit dem 
                beschriebenen Options Wert:
            
Beispiel 29.9. Suchen in Amazon durch Benutzen der alternativen Abfrage API
In diesem Beispiel wird die alternative Abfrage API als Fluent Interface benutzt um Optionen und Ihre Werte festzulegen:
<?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 />';
    }
    ?>       
                    Das setzt die Option Category auf "Books" und Keywords auf "PHP".
                
Für weitere Informationen über die möglichen Optionen, sehen Sie bitte in die relevante Amazon Dokumentation.
            Die folgenden klassen werden alle zurückgegeben durch
            Zend_Service_Amazon::itemLookup()
            und
            Zend_Service_Amazon::itemSearch():
            
                Zend_Service_Amazon_Item ist ein Klassen Typ der benutzt wird um ein Amazon Teil darzustellen
                welches durch das Web Service zurück gegeben wird. Es enthält alle Attribute des Teils wie z.B. Titel,
                Beschreibung, Reviews, usw.
            
                    string asXML();
                
Gibt das original XML für dieses Teil zurück
                    Zend_Service_Amazon_Item hat eine Anzahl an Eigenschaften welche eine direkte Beziehung
                    zu Ihren Standard Amazon API Gegenstücken haben.
                
Tabelle 29.1. Zend_Service_Amazon_Item Eigenschaften
| Name | Typ | Beschreibung | 
|---|---|---|
| ASIN | string | Amazon Teil ID | 
| DetailPageURL | string | URL zur Detailseite des Teils | 
| SalesRank | string | Verkaufs Rang des Teils | 
| SmallImage | Zend_Service_Amazon_Image | Kleines Bild des Tiles | 
| MediumImage | Zend_Service_Amazon_Image | Mittleres Bild des Teils | 
| LargeImage | Zend_Service_Amazon_Image | Großes Bild des Teils | 
| Subjects | array | Inhalte des Teils | 
| Offers | 
                                    
                                        Zend_Service_Amazon_OfferSet
                                    
                                 | 
Summe der Angebote und Angebote für dieses Teil | 
| CustomerReviews | array | 
                                    Kunden Reviews dargestellt als Array von
                                    
                                        Zend_Service_Amazon_CustomerReview
                                    
                                    Objekten
                                 | 
| EditorialReviews | array | 
                                    Editorial Reviews dargestellt als Array von
                                    
                                        Zend_Service_Amazon_EditorialReview
                                    
                                    Objekten
                                 | 
| SimilarProducts | array | 
                                    Ähnliche Produkte dargestellt als Array von
                                    
                                        Zend_Service_Amazon_SimilarProduct
                                    
                                    Objekten
                                 | 
| Accessories | array | 
                                    Zubehör für dieses Teil dargestellt als Array von
                                    
                                        Zend_Service_Amazon_Accessories
                                    
                                    Objekten
                                 | 
| Tracks | array | Ein Array mit Track Nummern und Namen für Musik CDs und DVDs | 
| ListmaniaLists | array | 
                                    Passende Listmania Liste für diese Teil, als Array von
                                    
                                        Zend_Service_Amazon_ListmainList
                                    
                                    Objekten
                                 | 
| PromotionalTag | string | Promotion Tag des Teils | 
Zend_Service_Amazon_Image repräsentiert ein entferntes Bild für ein Produkt.
                Zend_Service_Amazon_ResultSet Objekte werden zurückgegeben durch 
                Zend_Service_Amazon::itemSearch()
                und erlauben es, die vielfach zurück gelieferten Resultate, einfachst zu Handhaben.
            
![]()  | 
SeekableIterator | 
|---|---|
                    Implementiert den   | 
int totalResults();Liefert die Gesamtanzahl der Resultate welche die Suche zurückgegeben hat
                Jedes Resultat welches durch
                Zend_Service_Amazon::itemSearch()
                und
                Zend_Service_Amazon::itemLookup()
                zurückgegeben wird beinhaltet ein
                Zend_Service_Amazon_OfferSet
                Objekt durch welches Preisinformationen für das Teil empfangen werden können.
            
Tabelle 29.3. Zend_Service_Amazon_OfferSet Properties
| Name | Typ | Beschreibung | 
|---|---|---|
| LowestNewPrice | int | Niedrigster Preis des Teiles als "Neuwert" | 
| LowestNewPriceCurrency | string | 
                                    Die Währung für
                                    LowestNewPrice
                                 | 
| LowestOldPrice | int | Niedrigster Preis des Teiles als "Gebrauchtwert" | 
| LowestOldPriceCurrency | string | 
                                    Die Währung für
                                    LowestOldPrice
                                 | 
| TotalNew | int | Erhältliche Gesamtanzahl dieses Teils mit "Neuwert" | 
| TotalUsed | int | Erhältliche Gesamtanzahl dieses Teils mit "Gebrauchtwert" | 
| TotalCollectible | int | Erhältliche Gesamtanzahl dieses Teils die "Sammelbar" sind | 
| TotalRefurbished | int | Erhältliche Gesamtanzahl dieses Teils die "Wiederhergestellt" sind | 
| Offers | array | 
                                    Ein Array von
                                    Zend_Service_Amazon_Offer
                                    Objekten.
                                 | 
                Jedes Angebot für ein Teil wird als
                Zend_Service_Amazon_Offer
                Objekt zurück gegeben.
            
Tabelle 29.4. Eigenschaften
| Name | Typ | Beschreibung | 
|---|---|---|
| MerchantId | string | Amazon ID des Anbieters | 
| GlancePage | string | URL einer Seite mit einer Zusammenfassung des Anbieters | 
| Condition | string | Kondition des Teils | 
| OfferListingId | string | ID der Angebots Liste | 
| Price | int | Preis für das Teil | 
| CurrencyCode | string | Währungscode des Preises für das Teil | 
| Availability | string | Erhältlichkeit des Teils | 
| IsEligibleForSuperSaverShipping | boolean | Ob das Teil erhältlich ist für Super Sicheren Versand oder nicht | 
                Bei der Suche nach Teilen gibt Amazon auch eine Liste an ähnlichen Produkten zurück, welche dem
                Suchenden empfohlen werden. Jedes dieser Produkte wird als Zend_Service_Amazon_SimilarProduct
                Objekt zurückgegeben.
            
Jedes Objekt enthält die Informationen welche es erlauben eine Subanfrage zu machen, um die kompletten Informationen zu diesem Teil zu bekommen.
                Zubehör für das zurückgegebene Teil werden als Zend_Service_Amazon_Accessories Objekte dargestellt.
            
                Jede Kunden Review wird als Zend_Service_Amazon_CustomerReview Objekt zurückgegeben.
            
Tabelle 29.7. Zend_Service_Amazon_CustomerReview Eigenschaften
| Name | Typ | Beschreibung | 
|---|---|---|
| Rating | string | Bewertung des Teils | 
| HelpfulVotes | string | Stimmen wie hilfreich die Review ist | 
| CustomerId | string | Kunden ID | 
| TotalVotes | string | Gesamtzahl der Stimmen | 
| Date | string | Datum der Review | 
| Summary | string | Zusammenfassung der Review | 
| Content | string | Inhalt der Review | 
                Jede Editorial review des Teils wird als Zend_Service_Amazon_EditorialReview Objekt zurückgegeben.