eBay-Artikel einstellen mit Access

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.

pic001.png

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.

pic002.png

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 &amp; 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>

pic003.png

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.
  • pic004.png

    Bild 4: Auswahl der Hauptkategorie für einen Artikel

  • 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.

Die Tabelle hat drei weitere Felder, in welche die Anwendung nach dem Einstellen des Artikels beziehungsweise nach dem Beenden des Angebots entstehende Informationen einträgt:

  • eBayID: Nummer des Items, unter dem der Artikel bei eBay gespeichert wurde.
  • EingestelltAm: Zeitpunkt, an dem der Artikel bei eBay eingestellt wurde.
  • DurchBenutzerBeendetAm: Zeitpunkt, an dem das Angebot durch den Benutzer über die Beispielanwendung beendet wurde.

Sobald Sie die benötigten Informationen in das Formular eingegeben oder mit den entsprechenden Hilfsmitteln ausgewählt haben, können Sie den Artikel mit einem Klick auf die Schaltfläche Artikel einstellen bei eBay anbieten.

Dies löst zunächst die Routine aus Listing 3 aus, die prüft, ob die URL des angegebenen Bilds mit einem Unterstrich (_) endet. Dies ist typisch für ein Bild, das man über die entsprechende Funktion der Beispielanwendung auf den von eBay dafür vorgesehenen Webspace hochgeladen hat – die Funktion füllt das Feld BildURL dann automatisch mit diesem halbfertigen Weblink, den die Routine ArtikelEinstellen dann ergänzt. Dies geschieht gegebenenfalls zwei Mal: einmal für das Bild, das mit der Detailseite des Artikels erscheinen soll, und ein weiteres Mal für das Galeriebild, das eBay in einer geringeren Auflösung speichert.

Listing 3: Vorbereiten der nötigen Daten und Starten des Einstellvorgangs bei eBay

Private Sub ArtikelEinstellen()
    Dim strEbayID As String
    Dim strDate As String
    Dim strGallerieURL As String
    Dim strBildURL As String
    Dim strBildURLEbayEndung As String
    Dim strPayPalEMail As String
    If Right(Me.BildURL, 1) = "_" Then
        strBildURL = Me.BildURL & "1.JPG"
        If Me.GallerieTyp = "Gallery" Then
            strGallerieURL = Me.BildURL & "0.JPG"
        End If
    Else
        strBildURL = Me.BildURL
        If Me.GallerieTyp = "Gallery" Then
            strGallerieURL = Me.BildURL
        End If
    End If
    If Me.Bezahlmethode = "Paypal" Then
        strPayPalEMail = Me.PayPalEMail
    End If
    MsgBox AddItem(Me.SofortKaufenPreis, "EUR", "DE", Me.Beschreibung, Me.Dauer, Me.Ort, _
    Me.Bezahlmethode, strPayPalEMail, Me.GallerieTyp, strGallerieURL, strBildURL, _
    Me.Versandart.Column(2), Me.Versandkosten, Me.KategorieID.Column(2), Me.Anzahl, _
    Me.Startpreis, Me.Titel, strDate, strEbayID)
    If Len(strDate) > 0 Then
        Me.ebayID = strEbayID
        Me!EingestelltAm = CDate(Mid(Replace(strDate, "T", " "), 1, InStr(1, strDate, ".") - 1))
        Me.ebayID.SetFocus
        Me!cmdArtikelEinstellen.Enabled = False
    End If
    End Sub

Falls als Bezahlmethode PayPal ausgewählt wurde, füllt die Routine die Variable strPayPalEMail mit der im Feld PayPalEMail angegebenen E-Mail-Adresse. Schließlich wird die Funktion aufgerufen, die alles Weitere erledigt, und eine Meldung ausgegeben, die vom Erfolg oder Misserfolg des Einstellvorgangs berichtet.

War der Einstellvorgang erfolgreich, trägt die Routine noch einige Informationen in das Formular ein und deaktiviert die Schaltfläche zum Einstellen des Artikels.

Request und Response

Die Funktion AddItem ist der eigentliche Ackergaul beim Einstellen eines Artikels über die Trading-API von eBay. Sie erledigt die folgenden Dinge:

  • Zusammenstellen des Requests aus den als Parameter übergebenen Informationen
  • Versenden des Requests an den eBay-Webservice
  • Einlesen der Antwort
  • Auswerten der Antwort

All dies geschieht in der Routine aus Listing 4, die im Anschluss beschrieben wird.

Listing 4: Artikel auf eBay einstellen, Teil 1

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar