DelietaDokumentation

Maschinell übersetzt. Polnisch ist die kanonische Fassung.

Shop-Vertrag

Der statische Shop des Kunden — Katalog aus GET /api/v1/menu, Warenkorb itemId plus Menge, veröffentlichbarer Schlüssel ohne Geheimnis.

Der Shop-Vertrag (storefront-contract@v1) beschreibt einen Shop, den der Kunde selbst ausrollt. Delieta hostet ihn nicht. Das Artefakt ist ein statischer Export: der Katalog bäckt beim Build, der Warenkorb lebt in localStorage, die Kasse ist eine markierte Naht und sendet kein POST.

Zwei Env, kein öffentliches Präfix

DELIETA_API_URL=https://delieta.pl
DELIETA_PUBLISHABLE_KEY=dlt_live_…

Nur der Origin — kein /api/v1-Suffix, kein Slash am Ende. Der Schlüssel wird beim Build für GET /api/v1/menu genutzt. Kein NEXT_PUBLIC_DELIETA.

Fehlendes Env → Seite „Katalog einrichten“, kein leerer Shop, der einen Laden vortäuscht. Env da, Fetch fällt → Seite „Katalog nicht verfügbar“.

Der veröffentlichbare Schlüssel ist unfähig, nicht „versteckt“

kind: publishable hält nur catalog:read (menu:read ist Alias). Er funktioniert in öffentlichem HTML nur, weil der Schlüssel Bestellungen, Fahrer oder Kunden nicht lesen kann.

Ein geheimer Schlüssel (orders:write, eta:quote) kommt nicht in den Browser, das Shop-Repo oder Pages. dlt_test_… ist auch kein „sicheres Geheimnis in HTML“.

Der Schlüssel entscheidet den Mandanten. Sende kein companyId.

Drei Oberflächen

OberflächeHeuteNoch nicht
KatalogGET {origin}/api/v1/menu mit veröffentlichbarem Bearer. Groszy, PLN. Nicht verfügbare Positionen ausgelassen.Refresh ohne Rebuild
Warenkorb{ itemId, quantity }[] in localStorage. Summe auf dem Bildschirm aus dem gebackenen Katalog.Modifikatoren als eigene Zeilenfelder
Kasse/checkout/ zeigt den Warenkorb. Macht kein POST.Derselbe Warenkorb geht zu Delieta; der Server preist; eine Zahlungs-URL kommt zurück

Der Kunde sendet was (IDs und Mengen), nie wie viel. Ein im Browser getippter Preis ist nicht vertraglich.

flowchart TD
  env["Zwei Env: Origin und veröffentlichbarer Schlüssel"] --> build["Build bäckt GET /menu"]
  build --> html["Statisches HTML"]
  html --> cart["Warenkorb: itemId und Menge"]
  cart --> seam["/checkout/ zeigt den Warenkorb, sendet kein POST"]
  secret["Geheimer Schlüssel"] -.->|"nie in diesem Baum"| html

Die Vorlage, die du kopierst, ist ein statischer Shop-Export. Delieta hostet diesen Baum nicht.

Geld und Fehler

Ganze Groszy. Formatiere am Anzeigerand. Partner-API-Fehler sind application/problem+json; auf einem statischen Export siehst du sie meist beim Build. Verzweige nach code: unauthorized, scope_required, rate_limited.

Volle Operationen, die der Shop heute nutzt und noch nicht aufruft, stehen in der Partner-API.