Dla programistów
Od klucza API do zamówienia ze sklepu: menu, konfiguracja, terminy, checkout, wynik i status. Plus ścieżka klucza sekretnego.
Partner API v1 łączy witrynę albo kasę z Delietą. Klucz wskazuje firmę: żądanie nigdy nie podaje companyId ani tenantSlug. Kwoty podajesz w całkowitych groszach, jedyną walutą jest PLN. Są dwa warianty: sklep (klucz publikowalny, po stronie serwera sklepu) i własny system (klucz sekretny).
Wystaw klucz
W panelu: Ustawienia → Dla programistów. Tekst klucza widać raz. Format: dlt_live_… albo dlt_test_…. Wysyłasz go jako Authorization: Bearer … albo x-delieta-api-key: ….
- Klucz publikowalny to dokładnie
catalog:read+checkout:create. Trzyma go sklep po stronie serwera, nie w przeglądarce. - Klucz sekretny dostaje dodatkowo
orders:write,eta:quote,reservations:writealbocatering:write. Zostaje na serwerze, nigdy jakoNEXT_PUBLIC_. - Klucz testowy czyta te same produkty co live i liczy wycenę, ale każda próba zapisu kończy się odmową
test_key_readonly. Do tworzenia zamówień potrzebujeszdlt_live_….
Sklep: od menu do statusu
Przepływ sklepu to sześć odczytów i zapisów, wszystkie kluczem publikowalnym:
GET /api/v1/menu— produkty firmy, do której należy klucz.GET /api/v1/shop-config— marka, godziny, moduły, zasady zamówień.GET /api/v1/checkout/slots— kiedy sklep przyjmie zamówienie.POST /api/v1/checkout— koszyk{ itemId, quantity, options? }; ceny liczy Delieta. WymagaIdempotency-Key.GET /api/v1/checkout/result— wynik płatności online dla strony potwierdzenia.GET /api/v1/orders/{id}/status— gdzie jest zamówienie, dla strony śledzenia.
Klient wysyła co, nigdy ile. Płatność online odpowiada adresem url, gotówka od razu trackingUrl; ten adres przekazujesz gościowi. Stan sklepu (modules, ordering, hours, closures) czytaj z shop-config, nie zgaduj. Rezerwacje, zapytania i catering to osobne operacje opisane w Partner API.
Własny system: wycena i zamówienie
Kasa albo kanał partnera używa klucza sekretnego i wywołuje:
POST /api/v1/quotes— okno minut do adresu (eta:quote). Zawsze zakres, nigdy gwarancja.POST /api/v1/orders— zamówienie z cenami podanymi przez Ciebie (orders:write).Idempotency-Keyjest obowiązkowy.GET /api/v1/orders/{id}— odczyt przebiegu zamówienia (orders:write), liczony do limitu odczytów.
Odpowiedź 201 zawiera order.trackingUrl: link, który przekazujesz klientowi (strona /o/…). Nie twórz drugiego adresu śledzenia. Gdy firma wymaga akceptacji, zamówienie zaczyna od stanu pending_acceptance; stan zmienia ktoś w kuchni albo upływ limitu czasu, a nie Twój backend.
Kontrakt witryny i webhooki
Backend sklepu to pakiet @delieta/shop-runtime, a nie pliki w repozytorium sklepu: to opisuje kontrakt witryny. Jedyne, co Delieta wysyła do sklepu, to podpisany sygnał odświeżenia, opisany w Webhookach. Webhooków statusu zamówienia nie ma — status odczytujesz przez GET.
Pełny opis, zgodny z GET /api/v1/openapi: Partner API.

