Im Beitrag eBay-Artikelsuche mit Access in dieser Ausgabe (Shortlink 650) haben Sie gelernt, wie Sie die für den Zugriff auf die eBay-Webservices benötigten Voraussetzungen erfüllen und wie Sie die REST-API von eBay zur Artikelsuche einsetzen können. Im vorliegenden Beitrag gehen wir einen Schritt weiter und stellen selbst Artikel bei eBay ein.
Im Gegensatz zur Suche von Artikeln benötigen Sie für das Einstellen nicht die Befehle der Shopping-, sondern der Trading-API von eBay. Das Einstellen eines Artikels ist eine ganze Ecke schwieriger als die Suche danach. Allein das Ermitteln der geeigneten primären Kategorie, unter der Sie den Artikel einstellen möchten, ist eine Herausforderung. Und darum kümmern wir uns gleich im Anschluss an die Übersicht über das Einstellen von Artikeln bei eBay.
Artikel einstellen
Für das Einstellen von Artikeln bei eBay verwenden Sie die API-Funktion AddItem der Trading-API von eBay. Die Referenz zu dieser Funktion finden Sie unter [1]. In dieser Referenz erfahren Sie, wie ein Request im XML-Format aussehen muss, damit eBay den gewünschten Artikel einstellt. Die Liste der Elemente liefert genaue Informationen darüber, welche zum Pflichtprogramm gehören (Required) und welche Elemente in Abhängigkeit von anderen Elementen (Conditional) oder optional (Optional) zum Einsatz kommen.
Grundsätzlich bestehen die XML-Requests der Trading-API aus einigen Basis-Elementen, welche Informationen über den Benutzer (RequesterCredentials), die Fehlersprache (ErrorLanguage) oder den Warning Level liefern. Erst im Anschluss folgen im Element item die eigentlichen Informationen zum einzustellenden Artikel.
In der Beispieldatenbank übernimmt das Formular frmArtikelEinstellen die Aufnahme der Informationen zum einzustellenden Artikel und die Steuerung der weiteren Aktionen, also für das Einstellen und das Beenden des Angebots (siehe Bild 1). Letzteres werden Sie gerade beim Herumspielen mit der Beispieldatenbank des Öfteren brauchen.
Bild 1: Mit diesem Formular können Sie ganz leicht Artikel bei eBay einstellen.
Eines vorneweg: Das Formular und die Beispieldatenbank behandelt nur einen kleinen Teil der tatsächlich beim Einstellen vorhandenen Möglichkeiten des eBay-Webservices.
Trotzdem sollte das simple Formular aus der obigen Abbildung für die meisten Fälle ausreichen, beziehungsweise leicht für Ausnahmen anpassbar sein.
Das Formular ist an die Tabelle tblArtikelEinstellen gebunden, die alle notwendigen Informationen speichert. Diese Tabelle sieht im Entwurf wie in Bild 2 aus. Es gibt zwei Informationen, die größere Arbeit erfordern: die Kategorie eines Artikels sowie das Bild, das mit dem Artikel angezeigt werden soll.
Bild 2: Entwurf der Tabelle zum Speichern der Daten bei eBay eingestellter Artikel
Kategorien ermitteln
eBay bietet Zigtausende Kategorien für die Einordnung von Artikeln an. Wenn Sie diese auf der Internetseite von eBay auswählen, geht dies recht schnell, indem Sie einfach eine der Hauptkategorien anklicken und sich dann durch die untergeordneten Kategorien bis hin zur gewünschten Kategorie hindurchnavigieren. Unter Access ist dies anders, denn Sie müssen die Kategorien ja überhaupt einmal in der Datenbank speichern – und das sind zum Zeitpunkt der Erstellung dieses Beitrags immerhin 37.581 an der Zahl. Die Kategorien sind auch noch hierarchisch aufgebaut, sodass Sie unter der Vorgabe eines sinnvollen Datenmodells auch noch die Beziehungen zwischen den Kategorien in einer weiteren Tabelle speichern müssen. Die beiden benötigten Tabellen und ihre Daten sehen wie in Bild 3 aus. Nun müssen Sie die Kategorien nur noch vom eBay-Server in die Tabellen bekommen. Dies geschieht mit einem XML-Request an eine der API-Funktionen der Trading-API von eBay. Dieser sieht wie in Listing 1 aus und wird von der Routine KategorienEinlesen des Moduls mdlEbay erstellt. Die gleiche Routine empfängt auch das XML-Dokument mit der Antwort und wertet die darin enthaltenen Informationen aus. Eine stark gekürzte Fassung dieses Dokuments finden Sie in Listing 2. Eigentlich müssten wir Ihnen an dieser Stelle zeigen, welchen Code Sie verwenden, um den Request zu erstellen und an den Webservice zu senden und die Response auszuwerten, aber im Grunde müssen Sie die Kategorien nur dann und wann neu einlesen, daher scheinen die Funktionen zum Anbieten von Artikeln hierfür wesentlich besser geeignet. Die Routine KategorienEinlesen prüft selbstständig, ob eine neue Version der Kategorien vorliegt, und überschreibt nur in diesem Falle die bereits eingelesenen Kategorien.
Listing 1: XML-Request zur Ermittlung der Kategorien und ihrer Beziehungen
<xml version="1.0"> <GetCategoriesRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <RequesterCredentials> <EBayAuthToken>...</EBayAuthToken> </RequesterCredentials> <DetailLevel>ReturnAll</DetailLevel> <ErrorLanguage>en_US</ErrorLanguage> <WarningLevel>High</WarningLevel> <LevelLimit>8</LevelLimit> </GetCategoriesRequest>
Listing 2: Liste der Kategorien und ihrer Beziehungen im XML-Format
<xml version="1.0"> <GetCategoriesResponse xmlns="urn:ebay:apis:eBLBaseComponents"> <Timestamp>2008-12-29T16:51:26.838Z</Timestamp> <Ack>Success</Ack> <Version>595</Version> <Build>e595_intl_Bundled_7675009_R1</Build> <CategoryArray> <Category> <CategoryID>353</CategoryID> <CategoryName>Antiquitäten & Kunst</CategoryName> <CategoryParentID>353</CategoryParentID> ... </Category> <Category> <CategoryID>63184</CategoryID> <CategoryName>Juwelier- & Uhrmacherbedarf</CategoryName> <CategoryParentID>281</CategoryParentID> ... </Category> </CategoryArray> <CategoryCount>592</CategoryCount> <UpdateTime>2008-11-04T03:09:43.000Z</UpdateTime> ... </GetCategoriesResponse>
Bild 3: Tabellen zum Speichern der Kategorien und deren Beziehung
Artikelbilder
Neben den Kategorien sind die Artikelbilder unter Umständen ein weiteres Element, das Ihrer besonderen Aufmerksamkeit bedarf. Unter Umständen deshalb, weil es prinzipiell zwei Varianten gibt, wie Sie ein Bild zu Ihrem Artikel für eBay hinzufügen:
- Sie platzieren das Bild auf einem eigenen Webserver oder an anderer Stelle im Internet, aber außerhalb von eBay, oder
- Sie laden das Bild auf den Webspace von eBay hoch.
Im ersten Fall brauchen Sie einfach nur die URL des Bilds anzugeben, im zweiten Fall müssen Sie vorher eine weitere API-Funktion der Trading-API von eBay einsetzen, um das gewünschte Bild hochzuladen. Auch dieser Request ist keine Einbahnstraße, sondern liefert ein Ergebnis zurück – nämlich die URLs, unter denen eBay das Bild in verschiedenen Auflösungen (beispielsweise in der Originalauflösung oder in einer für die Anzeige eines Galeriebilds geeigneten Auflösung) bereitstellt.
Artikel einstellen
Kommen wir zum eigentlichen Einstellen eines Artikels.
Das Formular frmArtikelEinstellen fragt alle für die Minimalkonstellation notwendigen Informationen ab, die wie folgt aussehen:
- Titel: Der Titel entspricht der Überschrift des Artikels im Angebot.
- Description: Beschreibung des Artikels. Diese können Sie im Text- oder, was meist vorteilhafter aussieht, im HTML-Format angeben.
- Dauer: Dieses Feld erwartet die Anzahl der Tage, für die eBay den Artikel anbieten soll.
- Ort: Standort des Artikels. Wichtig vor allem für Anbieter von Artikeln, die nur abgeholt, aber nicht verschickt werden können.
- Bezahlmethode: Im Beispiel können Sie nur eine Bezahlmethode angeben, normalerweise sind aber mehrere Methoden wie etwa die Kombination Überweisung und PayPal möglich.
- PayPalEMail: Wenn Sie als Bezahlmethode PayPal auswählen, müssen Sie eine gültige E-Mail-Adresse angeben, unter der Ihr PayPal-Konto gemeldet ist.
- KategorieID: ID der Kategorie, die Sie für den Artikel ausgewählt haben. Die Auswahl geschieht komfortabel über das Formular aus Bild 4.
- Startpreis: Dies ist der Preis, bei dem eine Versteigerung beginnt.
- SofortKaufenPreis: Dieses Feld speichert den Preis, für den Kunden den Artikel sofort kaufen können.
- BildURL: Enthält die URL des Bilds. Diese kann im Formular frmArtikelEinstellen entweder direkt eingegeben werden oder aber, wenn das Bild bei eBay gespeichert werden soll, über einen Datei-Öffnen-Dialog ausgewählt und hochgeladen werden.
- GallerieTyp: Gibt an, ob Sie bereits in der Artikelliste ein Bild anzeigen möchten. In diesem Fall wählen Sie hier die Option Einfaches Galleriebild, sonst Keines. Es gibt noch weitere Varianten, welche die Beispielanwendung aber nicht berücksichtigt.
- Versandart: Als Versandart stehen alle zum Zeitpunkt der Erstellung dieses Beitrags vorhandenen Versandarten zur Verfügung, von denen Sie eine per Kombinationsfeld auswählen.
- Versandkosten: Die Versandkosten können Sie unabhängig von der gewählten Versandart eintragen.
- Anzahl: Sie können mehr als ein Exemplar des gleichen Artikels anbieten. Dazu geben Sie hier einen anderen Wert als 1 an.
Bild 4: Auswahl der Hauptkategorie für einen Artikel