Back to Home

Produkt

Dieses Dokument beschreibt die REST-Schnittstellen für Produktdaten.

Inhaltsverzeichnis

Schnittstellen

Abfragen für Produkt-Daten


Abfragen eines Produkt

User Story Ein User kann ein Produkt mit Hilfe der Produkt-ID abfragen.
HTTP GET
URL http://api.mairdumont.com/data/product/api/product/

Es kommen Informationen zu einem Produkt zurück.

Abfragen eines Produkt nach External ID

User Story Ein User kann ein Produkt mit Hilfe der seiner External-ID abfragen.
HTTP GET
URL http://api.mairdumont.com/data/product/api/product/external/ 
 

Abfragen der Produkten einer Destination

User Story Ein User kann die Produkten abfragen, die einer Destination zugeordnet sind.
HTTP GET
URL http://api.mairdumont.com/data/destination/api/destination/4/?filter=product

Abfragen der Produkte über einen Geocode

User Story Ein User kann die Produkte über einen Geocode abfragen.
HTTP GET
URL http://api.mairdumont.com/data/product/api/product/all?geocode=<lat>,<lon>

Es werden zuerst die Destinationen gesucht, deren Polygon den Geocode enthält. Zu diesen Destinationen werden dann die Produkte gesucht. Dabei werden die Produkte von lokalem Interesse bevorzugt ausgegeben, d.h. Produkte an Destinationen vom Typ AdminCity oder TravelRegion werden vor die Produkte von Destinationen der Typen AdminRegion, AdminCountry und AdminContinent sortiert. So liefert die Suche mit dem Geocode von Florenz die Produkte Flozenz und Toskana vor dem Produkt Italien, unabhängig von der gewählten Sortierung.

Wird der "geocode" Parameter weggelassen, so erfolgt eine Suche über alle Produkte. Dies beinhaltet auch Produkte, die aktuell keiner Destination zugeordnet sind.

Abfragen der Produkten Top-Sellers

User Story Ein User kann ein Produkt Top-Sellers abfragen.
HTTP GET
URL http://api.mairdumont.com/data/product/api/product/topseller
 

Es wird nur die Top-Seller Produkten vom den aktuellen Customer zurückliefern.

Abfragen der Produkten auf Marken und Produkt-Type einschränken

User Story Ein User kann Abfragen der Produkte auf Marken und Produkt-Type einschränken.
HTTP GET
URL

http://api.mairdumont.com/data/destination/api/destination/4/?filter=product?brand=1,3&producttype=1,2

http://api.mairdumont.com/data/product/api/product/all?geocode=,&brand=1,3

http://api.mairdumont.com/data/product/api/product/topseller?producttype=1,2

Bei der Einschränkung nach Marken-Id und Produkt-Typ ist eine Mehrfachauswahl möglich. Die Werte werden durch Kommas voneinander getrennt. Beim Abfragen für Top-Sellers ist die Produkten schon nach aktuellen Customer Brand eingeschränkt, deswegen ist die Einschränkung in diesem Fall nur noch nach Produkt-Typ möglich.

Abfragen der Produkte auf Suchbegriffe einschränken

Gesucht wird im Titel sowie in den Tags der Produkte.

Abfragen der Produkte auf Autoren einschränken

User Story Ein User kann Abfragen der Produkte auf Autorennamen einschränken.
HTTP GET
URL

http://api.mairdumont.com/data/destination/api/destination/4?filter=product&lang=de&author=Max+Mustermann

http://api.mairdumont.com/data/product/api/product/all?lang=de&author=Max+Mustermann

Sortierung der Produkte

User Story Ein User kann die Sortierreihenfolge der Produkte bestimmen. Über den Parameter "sort" kann zwischen der Sortierung nach Verkaufszahlen ("sales") im Shop der Marke, der Sortierung nach Preis ("price", günstige zuerst), der Sortierung nach Erscheinungsdatum ("date", aktuellstes Produkt zuerst) und der Sortierung nach Such-Relevanz ("rel", bei Volltextsuchen über Parameter "search" oder "author") gewählt werden. Voreingestellt ist die Sortierung nach Verkaufszahlen.
HTTP GET
URL

http://api.mairdumont.com/data/destination/api/destination/4?filter=product&sort=price

http://api.mairdumont.com/data/product/api/product/all?geocode=<lat>,<lon>&sort=price

Bei der Produktsuche über Geocode werden die Produkte primär nach den zugeordneten Destination sortiert, d.h. Produkte über Städte oder Reiseziele haben immer Vorrang vor Produkten von Landesteilen oder Ländern. Die Sortierung nach Verkaufszahlen oder Preis ist in diesem Fall nur sekundär.

Alternatives Ausgabeformat mit Produktzusammenfassung (Stichwort "multiChannel")

User Story Ein User kann sich zusammengehörende Produkte als einzelnes Produkt ausgeben lassen. Dabei werden die zu einem Reiseführer passenden eBooks und Apps nicht mehr als eigenständige Produkte ausgegeben, sondern als Unterprodukte zusammen mit dem Reiseführer ausgegeben.
HTTP GET
URL

http://api.mairdumont.com/data/destination/api/destination/4?filter=multiproduct

http://api.mairdumont.com/data/destination/api/product/all?filter=multiproduct&geocode=<lat,lon>

Es gibt keine eigenständigen Produkte für eBooks oder Apps mehr, die Zuordnung über "multiChannel" ist entfallen. Der Filter "multiproduct" unterscheidet sich nicht mehr vom Filter "product" und das Element "children" wird nicht mehr unterstützt.

Als Ersatz für "children" wird jetzt das neue Boolean-Element "ebook" gesetzt, wenn ein Produkt auch als eBook verfügbar ist.

Übersicht der Marken und Produkttypen

Marken (Brands)

Mögliche Werte für den Parameter "brand" und die dahinter-stehenden Markenkürzel.

ID Markenkürzel
3 MarcoPolo
5 DumontReise
6 LonelyPlanet
7 Baedeker
8 Falk
9 Kompass
10 StefanLoose
11 ADAC
12 NationalGeographic
13 Shell
14 Varta
15 WalterMayr
16 MairDumont
17 RVVerlag
19 Kunth

rot = wird nicht mehr unterstützt

Produkttypen

Mögliche Werte für den Parameter "producttype" und die dahinter-stehenden Produkttype.

ID Produkttyp
1 Reiseführer
2 Karten
3 Stadtführer & Reiseführer
4 Bildatlanten
5 Bildbände
6 Ratgeber Reise
7 Reiseliteratur
8 Kalender
9 Kartografie & Atlanten
10 Sprachführer

Alte Produkttypen (vor 06.2021)

Mögliche Werte für den Parameter "producttype" und die dahinter-stehenden Produkttypen.

ID Produkttyp
1 Reiseführer
2 Karten
3 Stadtführer & Reiseführer
4 Bildbände
5 Reiseliteratur
6 Kartografie & Atlanten
7 Sprachführer

Alte Produkttypen (vor 03.2020)

Mögliche Werte für den Parameter "producttype" und die dahinter-stehenden Produkttypen.

ID Produkttyp
1 Stadtführer & Reiseführer
2 Kartografie & Atlanten
3 E-Books
4 Bildbände
5 Apps
6 Sprachführer
7 Reiseliteratur

rot = wird nicht mehr unterstützt

Datenstruktur für Product

Wie üblich, wird ein Array von Produkten als Wert der "entries"-Eigenschaft der Globalen Response Datenstruktur gesetzt.

Globales Response Format

{
      "entries": <Object>[0..n]
      "totalResults": 28,
      "startIndex": 0,
      "itemsPerPage": 10,
      "searchTime": 206
    }

Beispiel

{
     "entries": [{
          "id": 18913,
          "externalId": "9783829725606",
          "title": "Norwegen MARCO POLO Reiseführer",
          "price": 11.99,
          "currency": "EUR",
          "description": "Entdecken Sie Norwegen mit all ... ist der Autor ein aufmerksamer und kritischer Beobachter geblieben. Für MARCO POLO schreibt er auch den Band #Oslo#.",
          "author": "Jens Uwe Kumpch Sprak & Tekst",
          "manufacturer": "Marco Polo",
          "isbn": "9783829725606",
          "productType": 1,
          "category": "Reiseführer > Europa",
          "imageUrl": "http://pic.123poi.com/api/content/images/image/0/5/o8/vg/t150/u/photo-9529324.jpg",
          "topSeller": false,
          "releaseDate": 1522533600000,
          "sales": 154,
          "brand": {
               "id": 3,
               "name": "MarcoPolo"
          },
          "productLinks": [{
              "url": "http://shop.marcopolo.de/9783829725606",
              "type": "PRODUCT_LINK",
              "brand": {
                   "id": 3,
                   "name": "MarcoPolo"
              }
          }],
          "destinationIds": [
               5691
          ],
          "tags": [{
               "id": 150775,
               "value": "Norwegen",
               "language": "de"
          }, {
               "id": 150636,
               "value": "Europa",
               "language": "de"
          }],
          "creationDate": 1418659429837,
          "lastUpdate": 1430794371098,
          "ebook": true
     },
     {
        ...
     }],
     "totalResults": 28,
     "startIndex": 0,
     "itemsPerPage": 10,
     "searchTime": 206
    }