Skip to content

Warenkorb-Integration ​

Der Warenkorb wird für die Bestellung von konfigurierten Artikeln verwendet. Er liegt immer auf dem Kundenserver, nicht auf web.3doffice.de.

Einrichtung ​

Mit dem URL-Parameter urlwarenkorb wird die externe Warenkorb-URL angegeben:

https://web.3doffice.de/webkatalog2_5/planning?urlwarenkorb=www.meinserver.de/warenkorb/kundenid

Hinweis

Die URL wird ohne http:// oder https:// angegeben. HTTPS:// wird automatisch vorangestellt.

Ablauf ​

mermaid
sequenceDiagram
    participant U as Benutzer
    participant WK as WebKatalog
    participant EK as Externer Warenkorb
    U->>WK: Artikel konfigurieren
    WK->>U: "In den Warenkorb"-Button anzeigen
    U->>WK: Auf Button klicken
    WK->>EK: Formular-POST (Feld shoppingCartData)
    EK-->>U: Warenkorb-Seite wird angezeigt
  1. Eine urlwarenkorb wird hinterlegt
  2. Im Artikelinformationsbereich erscheint ein "In den Warenkorb"-Button. Solange am Artikel noch ein Pflichtmerkmal offen ist (obligatory2c), werden Warenkorb- und Merkzettel-Button nicht angezeigt.
  3. Klick auf den Button sendet den aktuellen Artikel als Formular-POST an die hinterlegte URL; das Fenster (bzw. der iFrame) wechselt zur Warenkorb-Seite
  4. Immer der komplette Artikel wird gesendet (bei Meta-Planung: der oberste Artikel)
  5. Kindartikel können nicht einzeln gesendet werden

POST-Daten ​

Der WebKatalog sendet ein Formular (application/x-www-form-urlencoded) mit einem Feld shoppingCartData. Es enthält ein JSON-Objekt (als String) mit zwei Teilen: json ist der vollständige oberste Artikel (zum Speichern und Nachkonfigurieren), hierarchy eine vereinfachte Struktur mit Texten und Preisen für die Anzeige:

json
{
  "json": {
    "typename": "",
    "id": "{815F0BB3-0BC2-4D9B-AE21-0B25F026A14F}",
    "rootid": "{815F0BB3-0BC2-4D9B-AE21-0B25F026A14F}",
    "manufacturer": "_dx",
    "program": "webti",
    "basearticlenumber": "27R0614Q",
    "ocd": {
      "finalarticlenumber": "27 R 06 14 KL Q",
      "price": 540,
      "currency": "EUR",
      "shorttext": "Rechtecktisch, Tiefe 600 mm, Breite 1400 mm",
      "reinitstring": "..."
    }
  },
  "hierarchy": {
    "manufacturer": "_dx",
    "program": "webti",
    "basearticlenumber": "27R0614Q",
    "shorttext": "Rechtecktisch, Tiefe 600 mm, Breite 1400 mm",
    "price": 540,
    "currency": "EUR",
    "id": "{815F0BB3-0BC2-4D9B-AE21-0B25F026A14F}"
  }
}

Auslesen in PHP:

php
$cart = json_decode($_POST['shoppingCartData']);
$article = $cart->json;

Merkzettel ​

Mit urlmerkzettel erscheint der Button „Auf den Merkzettel“. Er sendet dieselben Daten wie der Warenkorb an diese URL. Button-Text: merkzettelbtntext. Ist zusätzlich urlwarenkorb gesetzt, erscheint der Merkzettel als Symbol-Button neben dem Warenkorb-Button; merkzettelbtntext ist dann dessen Tooltip.

Artikel-IDs ​

Jeder Artikel hat eine eindeutige ID. Diese sollte für die Speicherung im Kunden-Warenkorb verwendet werden. Auch eine Aktualisierung nach Nachkonfiguration kann über die ID gehandhabt werden.

Warenkorb-Regeln

  • Speichern Sie immer den Top-Level-Artikel (id == rootid) mit vollständigem JSON-Payload
  • Verwenden Sie id/rootid zum Gruppieren und Rekonfigurieren von Meta-Planungen
  • Rekonfigurieren Sie niemals ein einzelnes Kind unabhängig von seinem Root

Nachkonfiguration ​

Um einen Artikel aus dem Warenkorb erneut zu konfigurieren:

  1. Das Top-Level-Artikel-JSON (Feld json der POST-Daten) per POST an /api/ofml.dll/ofml/reinit senden
  2. Die zurückgegebene id verwenden: {BASE}/planning?id={ID}

Ein Beispiel dafür ist der Demo-Warenkorb unten.

Demo-Warenkorb ​

Für Tests gibt es einen Demo-Warenkorb, der keine Artikel speichert:

https://web.3doffice.de/webkatalog2_5/planning?urlwarenkorb=web.3doffice.de%2Fwebkatalog2%2Fassets%2FDemo-Warenkorb%2Fwarenkorb.php

WARNING

Der Demo-Warenkorb speichert keine Artikel und ist nur für die einmalige Ansicht gedacht. Er kann nicht für den Live-Betrieb verwendet werden.

Parameter ​

ParameterBeschreibung
urlwarenkorbURL des externen Warenkorbs
warenkorbbtntextCustom Text für den Warenkorb-Button
urlmerkzettelURL des Merkzettels (allein oder zusätzlich zum Warenkorb)
merkzettelbtntextEigener Text für den Merkzettel-Button (mit Warenkorb: Tooltip des Symbol-Buttons)

3D office WebKatalog 2.5 — ub.unitel GmbH