Eigener Shop via Amazon-API
Shop per Webservice

DeveloperIT-ProjekteSoftware

Mit Hilfe der Amazon-Webservices kann man wichtige Funktionen des Amazon-Verkaufssystems in eigene Applikationen integrieren und via Partner-ID damit Geld verdienen.

Pro & Contra

Eigener Shop via Amazon-API

Amazon zeigt sich gegenüber Partnern sehr kooperationsfreudig. Das Amazon-Partnerprogramm ist eines der größten Affiliate-Programme, an dem schon über 900000 Partnerunternehmen in aller Welt teilnehmen. Das Prinzip ist einfach: Der Partner verlinkt auf seiner Site auf einen der über eine Million Artikel aus dem Amazon-Angebot, das inzwischen nicht nur Bücher, sondern auch Musik, DVDs, Videos, Software, Computer- und Videospiele sowie Elektronik- und Fotoprodukte umfasst. Die Verlinkung auf die Produktpalette kann auf verschiedene Weise erfolgen: über klassische Werbebanner, einzelne Produktempfehlungen, ein Amazon-Suchfeld oder über einen kompletten Shop, der nach eigenen Kriterien und eigenem Design aufgebaut sein kann.

Der Vorteil für den Partner: Die Implementierung ist, abgesehen von der Shop-Variante, sehr einfach. Amazon stellt für die Verlinkung Code-Generatoren zur Verfügung, deren Ergebnis dann einfach per Cut and Paste in die eigenen Seiten integriert werden kann. Über den Erfolg seiner Aktionen kann sich der Partner über ein ausgeklügeltes Reporting auf dem Laufenden halten. Um Lagerhaltung, Logistik und Inkasso muss er sich keine Gedanken machen, das erledigt alles Amazon.

Natürlich hat die Sache auch eine Schattenseite: Mit Margen wie bei einem eigenen Shop kann der Affiliate-Partner nicht rechnen. Die so genannte Werbekostenerstattung beträgt maximal zehn Prozent. Für Websitebetreiber, die mit eigener Logistik nichts am Hut haben, ist das dennoch ein gutes Angebot.

Die Anmeldung zum Partnerprogramm erfolgt über den entsprechenden Link auf der Amazon-Startseite. Dort erfährt man auch die konkreten Teilnahmebedingungen. Das Ergebnis einer erfolgreichen Anmeldung ist eine Partner- oder Associate-ID, die für die weiteren Aktivitäten Voraussetzung ist.


Webservices nutzen

Eigener Shop via Amazon-API

Man kann jetzt loslegen und die eigene Site mit Banner-Einblendungen von Amazon verzieren und sich am Ende jeden Quartals über eine hoffentlich hohe Provisionsabrechnung freuen.

Die einem Partner zur Verfügung stehenden Basisfunktionen sind jedoch noch nicht das Ende der Fahnenstange in Sachen Amazon-Affiliate-Programm. Der Weg zu höheren Formen der Kooperation führt über die Amazon-Webservices (www.amazon.com/webservices).

Mit Hilfe dieser Webservices kann man auf Funktionen und Inhalte der Amazon-Plattform zugreifen und diese nahtlos in die eigene Website integrieren. Im Einzelnen kann man darüber auf die laufend aktualisierten Produktinformationen zugreifen und die Verkaufsplattform für eigene Verkäufe nutzen, im Prinzip also einen eigenen Amazon-Shop realisieren.

Die Amazon-Webservices bestehen aus einer Zusammenstellung von eigenständigen Applikationen, die mit Hilfe von XML-basierten Protokollen über das Web veröffentlicht und aufgerufen werden können. Ein Entwickler kann darauf über ein XML-Interface über HTTP oder ein Soap-Interface zugreifen. Beide Methoden erzeugen strukturierte Daten (etwa Produktname oder Preis) über Produkte von Amazon, die auf Parametern wie Schlagwort-Suchbegriffen und Browse-Tree-Nodes basieren.

Auch hier ist jedoch wieder eine Anmeldung erforderlich. Diese ist kostenlos, und auch für die Nutzung der Webservices verlangt Amazon kein Geld. Das Ergebnis der Anmeldung ist eine Subscription-ID, die in alle künftige Abrufe der Webservices integriert werden muss. Als registrierter User haben Sie auch Zugriff auf die umfangreiche Dokumentation mit der genauen Beschreibung der Webservices und der Programm-API.


Der eigene Amazon-Shop

Eigener Shop via Amazon-API

Ausgestattet mit der Partner- und Subscription-ID können Sie loslegen und sich an die Programmierung Ihres eigenen Amazon-Shops machen. Im folgenden Workshop soll die Soap-Schnittstelle genutzt werden, um eine begrenzte Anzahl von Amazon-Produkten auf einer Seite zu präsentieren und zum Verkauf anzubieten. In weiteren Modulen kann der User zu einem Produkt Detailinformationen abrufen und es gegebenenfalls in seinen Warenkorb legen. Mit dem Link Zur Kasse wird die eigene Applikation verlassen und auf die Bezahl-Seite von Amazon verzweigt. Das im Workshop vorgestellte Programm, das Sie auf der Heft-CD finden, stellt natürlich nur ein Grundgerüst dar, das Sie nach eigenen Vorstellungen weiterentwickeln und verfeinern können. Es erfordert eine PHP-Umgebung mit Sockets-Unterstützung.

Zunächst müssen Sie die Voraussetzungen schaffen, um an die Amazon-Webservices heranzukommen und Daten herauszuholen. Als Erstes benötigen Sie dazu eine Funktion, die eine normale HTTP-GET-Anfrage an den Amazon-Server senden kann und den Inhalt des Response wiedergibt. Sie können dazu entweder vorgefertigte Funktionen (zum Beispiel aus Pear) benutzen oder selbst geschriebene verwenden. Für das vorliegende Beispiel nehmen Sie eine eigene Funktion mit der Bezeichnung HTTPGET. Diese übergibt Hostnamen, Port und abzurufende Datei und liefert dafür den Response-Inhalt. Amazon liefert bei einem gültigen Request eine Reihe von XML-Daten im Soap-Format. Um diese verarbeiten zu können, benötigen Sie als Zweites eine Funktion, die den Dateicode in ein verständlicheres Format bringt. Alle Elemente durchlaufen dabei eine Schleife und werden in ein assoziatives Array übergeben. Untergeordnete Elemente werden entsprechend in Unter-Arrays eingeordnet. Die Funktion erhält die Bezeichnung XML2Array und übergibt den Dateiinhalt.


Das Soap-Interface

Eigener Shop via Amazon-API

Mit den beiden zuvor definierten Funktionen können Sie nun ans Werk gehen und auf die Amazon-Webservices zugreifen. Um diesen Teil für spätere Zugriffe zu vereinfachen, definieren Sie sich hierzu eine erste Amazon-Funktion, die bei allen künftigen Anfragen an Amazon geschickt wird:


function Amazon_DoRequest(
$parameter = '')
{
$host = "webservices.amazon.de";
$port = 80;
$soap_url = "/onca/xml?Service=AWSECommerceService";
$soap_url .= "&SubscriptionId=XXXXXXXXXX";
$soap_url .= $parameter;
$content = HTTPGET($host,$port, $soap_url);
return XML2Array(utf8_decode($content));
}

An Stelle der vielen XXXX bei SubscriptionId= setzen Sie die bei der Registrierung erhaltene Subscription-ID für die Webservices ein. Der Funktion können Sie dann beim Aufruf weitere Parameter mitgeben. Als Rückgabewert erhalten Sie das assoziative Array mit den Elementinhalten.


Produktsuche

Eigener Shop via Amazon-API

In unserem Beispielshop sollen relativ statisch einige Bücher zu einem bestimmten Thema angeboten werden. Um eine einfache Produktliste von Amazon zu bekommen, müssen Sie nichts weiter tun als die zuvor definierte Funktion Amazon_DoRequest zu bemühen und ihr einige weitere Parameter zu übergeben. Für die allgemeine Suche nach Produkten können Sie folgende Funktion verwenden:


function Amazon_Suche($index,$suche)
{
$parameter = "&Operation=ItemSearch";
$parameter .= "&SearchIndex=$index";
$parameter .= "&Keywords=$suche";
$parameter .= "&ResponseGroup= Medium";
return Amazon_DoRequest($parameter);
}

Der Parameter $index steht dabei für die Produktkategorie: bei Büchern Books, bei DVDs DVD, für Music-CDs Music et cetera. Dem zweite Parameter $suche wird jeweils der Suchbegriff übergeben.


Bücher anbieten

Eigener Shop via Amazon-API

Mein Warenkorb … | Zur Kasse gehen …


Produkt-Detailansicht

Eigener Shop via Amazon-API

von ‘.$autor.’ / ‘.$verlag.’

zur
Übersicht
|
Mein Warenkorb |
Zur Kasse gehen …


Warenkorb füllen

Eigener Shop via Amazon-API

Auch der Warenkorb ist dank der zuvor definierten Hilfsfunktionen recht einfach geschrieben. Als einziges neues Element kommt hinzu, dass Sie sich für den Benutzer die Cart ID (Warenkorbnummer) und die HMAC (ebenfalls eine ID) merken müssen, damit dieser auch mehrere Produkte in seinen Warenkorb lagern kann. Zunächst aber erweitern Sie Ihre kleine Bibliothek soap.php um drei weitere Funktionen zur Warenkorbsteuerung:


function Amazon_CreateCart($asin)
{
$parameter = "&Operation=CartCreate";
$parameter .= "&AssociateTag=XXXXXX";
$parameter .= "&Item.1.ASIN=$asin&Item.1.Quantity=1";
return Amazon_DoRequest($parameter);
}

function Amazon_AddCart($id,$hmac,$asin)
{
$parameter = "&Operation=CartAdd";
$parameter .= "&CartId=$id";
$parameter .= "&AssociateTag=XXXXXX";
$parameter .= "&HMAC=$hmac";
$parameter .= "&Item.1.ASIN=$asin&Item.1.Quantity=1";
return Amazon_DoRequest($parameter);
}

function Amazon_GetCart($id,$hmac)
{
$parameter = "&Operation=CartGet";
$parameter .= "&CartId=$id";
$parameter .= "&AssociateTag=XXXXX";
$parameter .= "&HMAC=$hmac";
return Amazon_DoRequest($parameter);
}

Mit Amazon_CreateCart erzeugen Sie bei Amazon einen neuen Warenkorb und legen zugleich das in $asin angegeben Produkt hinein. Wichtig: Die XXXXX nach AssociateTag= müssen Sie durch Ihre Partner-ID ersetzen. Mit deren Hilfe ist es Amazon dann möglich, bei Bestellungen diese dem jeweiligen Partner zuzuordnen und entsprechend zu provisionieren.

Mit Hilfe der Funktionen Amazon_AddCart und Amazon_GetCart wird ein weiteres Produkt dem Warenkorb hinzugefügt beziehungsweise dieser zur Anzeige ausgelesen.


Warenkorb anzeigen

Eigener Shop via Amazon-API

Weiter
einkaufen
|
Zur Kasse gehen …


Zur Kasse gehen

Eigener Shop via Amazon-API

Fehlermeldung

Sie werden zu Amazon.de weitergeleitet.


In Websitebaker integrieren

Eigener Shop via Amazon-API

Zum Schluss noch ein Tipp, wie Sie den vorgestellten Mini-Shop in eine Websitebaker-Umgebung integrieren können. Kopieren Sie dazu einfach alle Listing-Files in ein Verzeichnis unterhalb /wb/. Dann legen Sie eine neue Seite mit der Option Wrapper an und verlinken im URL-Feld auf das Skript amazon.php. Schließlich passen Sie noch die Länge der Seite so an, dass die zehn Bücher ohne Scrollbalken daraufpassen.


Alle Listings zum Workshop finden Sie auf der Heft-CD und unter listings.internet-pro.de.