Dla programistów
Od klucza API do zamówienia z trackingUrl — pierwsza integracja Partner API v1.
Programista spina witrynę albo kasę z Delietą przez Partner API v1. Tenant wynika z klucza. Żądanie nigdy nie podaje companyId ani tenantSlug. Pieniądze to całkowite grosze, waluta w v1 to tylko PLN.
Wystaw klucz
W panelu: Ustawienia → Integracje. Plaintext klucza widać raz. Format: dlt_live_… albo dlt_test_….
- Klucz sekretny (
orders:write,eta:quote) żyje na serwerze. Nigdy w przeglądarce, nigdy jakoNEXT_PUBLIC_. - Klucz publikowalny ma wyłącznie
catalog:read. Wolno go wstawić w statyczną witrynę, bo nic prywatnego nie odczyta.
Klucz testowy czyta ten sam katalog co live, ale nie utworzy zamówienia (test_key_readonly). Do POST /api/v1/orders potrzebujesz dlt_live_….
Przeczytaj menu, potem wycenę, potem zamówienie
Trzy wywołania, w tej kolejności, zamykają pętlę sklepu:
GET /api/v1/menu— katalog firmy klucza. Scopecatalog:read.POST /api/v1/quotes— okno minut do adresu. Scopeeta:quote. Zawsze zakres, nigdy gwarancja.POST /api/v1/orders— ticket do kuchni. Scopeorders:write. NagłówekIdempotency-Keyjest obowiązkowy.
Odpowiedź 201 niesie order.trackingUrl. To jest link, który oddajesz klientowi — strona /o/…. Nie wymyślaj drugiego URL-a śledzenia.
Odczytaj, czy kuchnia przyjęła
Jeśli firma wymaga akceptacji, nowy ticket startuje w pending_acceptance. Stan zmienia człowiek albo limit czasu — nie Twój backend. Dlatego istnieje GET /api/v1/orders/{id}: polluje budżet odczytów, nie budżet tworzenia.
Kontrakt witryny, nie webhook
Statyczny sklep (eksport Next) piecze menu na buildzie i trzyma koszyk { itemId, quantity }. To jest kontrakt witryny. Delieta nie hostuje tej witryny.
Webhooków statusu zamówienia nie ma. Polluj GET.
Pełne odniesienie, zgodne z GET /api/v1/openapi: Partner API.

