Eigene Schnittstelle

Die eigene Schnittstelle bietet die Möglichkeit, ein beliebiges externes System an den AnzeigenChef anzubinden. Hierfür wird ein einfaches JSON Format verwendet. Der Endpunkt muss als anzeigenchef_api.php verfügbar sein. In der nachfolgenden Übersicht wird die jeweilige Funktion beschrieben.

Hinweis: Der Nutzer gibt im AnzeigenChef lediglich die URL ohne Endpunkt an. Dieser wird automatisch eingefügt. Zusätzlich übergibt er einen Benutzernamen sowie ein Passwort als Basic Authentifizierung.

Kategorien

Der Kategorienbaum ist der Kern der visuellen Darstellung. Über ihn werden die jeweiligen Artikel angezeigt und sortiert.

Zur hinterlegten Schnittstellen URL wird automatisch /anzeigenchef_api.php?modul=categories hinzugefügt. Der Endpunkt sollte somit entsprechend vorhanden sein. Die Kategorien werden in einer Abfrage abgerufen, ein blättern ist nicht vorgesehen.

Abfrage-Endpunkt: https://meinsystem.de/anzeigenchef_api.php?modul=categories

[ { "parent": 0, "id": 1, "name": "Kategorie 1" }, { "parent": 1, "id": 2, "name": "Unterkategorie 1" }, { "parent": 1, "id": 2, "name": "Unterkategorie 1" } ]

Für Kategorien wird eine eindeutige id, der parent (übergeordnete Kategorie) sowie der Name benötigt. Ist eine Kategorie auf der Hauptebene, so muss der Wert parent = 0 sein. Die Anzahl der enthaltenen Artikel sowie die Zuweisungen macht der AnzeigenChef selbst, hier müssen keine weiteren Werte übergeben werden. Alle Kategorien werden innerhalb des Arrays auf einer Ebene ausgegeben, verschachtelungen werden nicht unterstützt.

Artikel

Die Artikel werden ohne jegliche Filterungen abgerufen. Artikel müssen keine Kategorien für Kleinanzeigen-Plattformen enthalten, der Nutzer kann diese im AnzeigenChef direkt pro Kategorie vergeben.

Der AnzeigenChef wird den Parameter page solange erhöhen, bis keine Ergebnisse mehr kommen, sprich das zurückgegebene Array leer ist. Er beginnt bei page=1.

Abfrage-Endpunkt: https://meinsystem.de/anzeigenchef_api.php?modul=articles&page=1

Als Ergebnis wird ein Array erwartet.

[ { "id": 1, "status": "publish", "short_description": "Ich bin eine Kurzbeschreibung, aber keine Pflicht ;)", "description": "Ich bin eine Langbeschreibung, ich bin Pflicht!", "sku": "Eine Lagernummer", "categories": [ { "id": 1 } ], "name": "Meine Artikelbezeichnung", "manage_stock": true, "quantity": 1, "price": 14.99, "currency": "EUR", "date_modified": "2020-10-01 14:22:22", "images": [ { "src": "https://meineseite.de/meinbild.jpg" } ] } ]

Feldbeschreibungen:

  • id*: Eindeutige ID, Zahl oder Text
  • status*: publish (für später als Erweiterung, jetzt den Wert fix angeben)
  • short_description: Eine kurze Beschreibung des Artikels sofern vorhanden
  • description*: Langbeschreibung, wenn möglich, kein HTML
  • sku: Eigene Lagernummer
  • categories: Ein Array mit Kategorien IDs. Ein Artikel kann in mehreren Kategorien vorhanden sein
  • name: Titel, ggf. auf 70 Zeichen begrenzen
  • manage_stock: true oder false, dieser Wert entscheidet, ob der Artikel einer Bestandsverwaltung unterliegt. Bei true und quantity 0 wird die Anzeige ggf. beendet
  • quantity: Lagerbestand
  • price: Preis Brutto
  • currency: Währung - EUR / USD / GBP (nur für shpock)
  • date_modified: Datum der letzten Änderung des Artikels. So können unnötige Aktualisierungen vermieden werden. Format: yyyy-MM-dd HH:mm:ss
  • images: Ein Array mit Bildern, src enthält die jeweilige Bild URL

Beachte, dass die meisten Plattformen kein HTML unterstützen. Daher sollte die Beschreibung vorab gereinigt werden. Anhand des Änderungsdatums erknent der AnzeigenChef, ob ein Datensatz aktualisiert werden muss. Sofern aktive Anzeigen vorhanden sind, wird er diese automatisch in den Ausgang legen und aktualisieren. Wir versuchen diese Schnittstelle so einfach wie möglich zu halten, daher sollten individuelle Wünsche bereits in den entsprechenden Skripten umgesetzt werden.

Beispiel PHP Script für die Anbindung des AnzeigenChefs

Der nachfolgende Codeblock soll zeigen, wie einfach die Schnittstelle eingerichtet werden kann.

<?php
// Dieses einfache PHP Script soll zeigen, wie eine Beispielschnittstelle erstellt werden kann.
// Sie gibt auf Anforderung jeweils eine Kategorie sowie einen Artikel zurück.

if (isset($_GET["modul"]) && $_GET["modul"] == "articles")
{
   $articles = array();

   $test_article = array("id" => 1,
       "status" => "publish",
       "short_description" => "Eine kurze Beschreibung",
       "description" => "Eine lange Beschreibung",
       "sku" => "123456",
       "categories" => array( array("id" => 1) ),
       "name" => "Ein Testartikel",
       "manage_stock" => true,
       "quantity" => 1,
       "price" => 14.99,
       "currency" => "EUR",
       "date_modified" => "2001-01-01 00:00:00",
       "images" => array(array("src" => "https://anzeigenchef.roundcubes.de/index-ac-images/aclogon-min.png")));

   $articles[]=$test_article;

   echo json_encode($articles);
}
else if (isset($_GET["modul"]) && $_GET["modul"] == "categories")
{
   $categories = array();
   $category = array("id" => 1, "parent" => 0, "name" => "Eine Kategorie");
   $categories[]=$category;
   echo json_encode($categories);
}
else
{
   echo json_encode(array("error" => "Es wurde kein Modul angegeben"));
}
?>
Zurück zum Anfang