Orders API umožňuje synchronizovat objednávky z vašeho e-shopu do Retina v reálném čase. Je to moderní alternativa k Retino XML feedu – místo periodických importů synchronizujete objednávky okamžitě při jejich vytvoření.
Kompletní technickou referenci naleznete v API dokumentaci.
🤔 Kdy použít Orders API?
Před implementací zvažte, jaký typ synchronizace potřebujete:
Potřebujete Tracking s okamžitými notifikacemi?
✅ ANO → Orders API (instantní synchronizace)
E-maily o vytvoření objednávky zasílané okamžitě
Real-time sledování zásilek
Okamžité aktualizace stavů
Integrace webhooků s e-shopem
✅ NE → Retino XML Feed (synchronizace do 6 hodin)
Jednodušší implementace (jen vystavíte XML feed URL)
Stačí, pokud používáte Returns
Zákazník nemůže vrátit zboží do 6 hodin po nákupu
Vhodné, pokud nemůžete volat API z vašeho systému
Proč používat Orders API?
Okamžitá synchronizace – objednávka je v Retinu ihned po vytvoření
Transakční e-maily – můžete odesílat potvrzení objednávky v reálném čase
Aktuální data – změny v objednávce se projeví okamžitě
Příprava
1. Vytvořte API Token
V Nastavení → API v2 vytvořte nový token. Token použijete v hlavičce každého požadavku:
Authorization: váš_api_token
2. Vytvořte Store ID
Co je Store ID?
Store ID je jedinečný identifikátor vašeho e-shopu v Retinu. Společně s číslem objednávky (code) tvoří unikátní klíč pro každou objednávku.
Proč je Store ID důležité?
Unikátní identifikace: Kombinace
code+store_idjednoznačně identifikuje objednávkuAutomatický upsert: Při opakovaném odeslání stejné kombinace se objednávka aktualizuje místo vytvoření duplikátu
Multi-store podpora: Můžete mít více e-shopů pod jedním Retino účtem
Jak vytvořit Store ID:
Přejděte do Nastavení → API v2
V sekci "Store IDs" klikněte na "Přidat Store ID"
Zadejte identifikátor (např. "hlavni-eshop", "eshop-sk")
Uložte a použijte tento identifikátor v každém API požadavku
Důležité: Store ID nelze po vytvoření objednávky změnit. Vždy používejte stejné Store ID pro všechny objednávky z jednoho e-shopu.
Typické use cases
Use Case 1: Webhook při vytvoření objednávky
Scénář: Zákazník dokončí nákup ve vašem e-shopu a chcete mu okamžitě poslat potvrzovací e-mail.
Řešení:
Nastavte webhook v e-shopu, který se spustí po vytvoření objednávky
Webhook odešle objednávku do Retina pomocí
POST /api/v2/ordersRetino objednávku vytvoří a může odeslat potvrzovací e-mail zákazníkovi
Příklad požadavku:
curl -X POST "https://app.retino.com/api/v2/orders" \ -H "Authorization: váš_api_token" \ -H "Content-Type: application/json" \ -d '{ "code": "OBJ-2025-001", "store_id": "hlavni-eshop", "order_date": "2025-10-23T14:00:00Z", "currency": "CZK", "language": "cs", "price": { "with_vat": "1999.00" }, "customer": { "email": "[email protected]", "phone": "+420123456789" }, "shipping_address": { "name": "Jan Novák", "street": "Testovací", "house_number": "1", "city": "Praha", "postal_code": "11000", "country": "CZ" }, "items": [ { "name": "Smartphone XY", "code": "PROD-001", "amount": "1.00", "item_type": "PRODUCT", "total_price": { "with_vat": "1799.00" } }, { "name": "Doprava PPL", "item_type": "SHIPPING", "total_price": { "with_vat": "199.00" } } ] }'
Use Case 2: Aktualizace stavu při expedici
Scénář: Objednávku jste zabalili a expedovali. Chcete informovat zákazníka o odeslání.
Řešení:
Skladový systém označí objednávku jako expedovanou
Zavolejte endpoint pro změnu stavu
Retino může odeslat e-mail o odeslání zásilky
Příklad:
curl -X PATCH "https://app.retino.com/api/v2/orders/UUID_OBJEDNAVKY/status?status_value=DISPATCHED" \ -H "Authorization: váš_api_token"
Use Case 3: Prvotní import historických objednávek
Scénář: Máte existující e-shop s tisíci objednávek a chcete je přenést do Retina.
Řešení:
Exportujte objednávky za posledních 30 měsíců z vašeho e-shopu
Rozdělte je do dávek po max. 100 objednávkách
Použijte endpoint
POST /api/v2/orders/bulkpro import každé dávky
Příklad:
curl -X POST "https://app.retino.com/api/v2/orders/bulk" \ -H "Authorization: váš_api_token" \ -H "Content-Type: application/json" \ -d '[ { "code": "OBJ-001", "store_id": "hlavni-eshop", "price": {"with_vat": "1000.00"}, "customer": {"email": "[email protected]"} }, { "code": "OBJ-002", "store_id": "hlavni-eshop", "price": {"with_vat": "2000.00"}, "customer": {"email": "[email protected]"} } ]'
API vrací informaci o úspěšně zpracovaných a chybných objednávkách.
Use Case 4: Částečná aktualizace údajů
Scénář: Zákazník změnil e-mail nebo telefonní číslo a vy chcete aktualizovat objednávku.
Řešení:
Použijte PATCH /api/v2/orders/{id} a odešlete pouze pole, která se mění:
curl -X PATCH "https://app.retino.com/api/v2/orders/UUID_OBJEDNAVKY" \ -H "Authorization: váš_api_token" \ -H "Content-Type: application/json" \ -d '{ "customer": { "email": "[email protected]", "phone": "+420999888777" } }'
Ostatní údaje objednávky zůstávají beze změny.
Stavy objednávek
Objednávka má dva typy stavů. Můžete je měnit pomocí endpointu PATCH /api/v2/orders/{id}/status:
Typ stavu | Hodnota | Význam |
Zpracování |
| Nová objednávka |
Zpracování |
| Kompletace |
Zpracování |
| Zabaleno |
Zpracování |
| Expedováno |
Zpracování |
| Pozastaveno |
Zpracování |
| Připraveno k vyzvednutí |
Zpracování |
| Vyzvednuto |
Platba |
| Čeká na platbu |
Platba |
| Zaplaceno |
Platba |
| Částečně vráceno |
Platba |
| Vráceno |
Platba |
| Platba selhala |
Automatická aktualizace vs. vytvoření
Orders API automaticky rozpozná, zda objednávku vytvořit nebo aktualizovat podle kombinace code + store_id:
První zaslání objednávky
OBJ-001+hlavni-eshop→ vytvoří se nová (HTTP 201)Druhé zaslání stejné kombinace → aktualizuje se existující (HTTP 200)
Díky tomu můžete používat stejný webhook pro vytvoření i aktualizaci objednávek. Nemusíte kontrolovat, zda objednávka již existuje.
Praktické tipy
Pojmenování Store ID
Pokud provozujete více e-shopů nebo prodejních kanálů, vytvořte pro každý vlastní Store ID:
eshop-cz– hlavní český e-shopeshop-sk– slovenský e-shopshopify-store– Shopify obchodamazon-cz– Amazon
Důležitost e-mailu zákazníka
Pole customer.email není povinné, ale je kritické pro transakční e-maily. Bez e-mailu nemůže Retino poslat zákazníkovi:
Potvrzení objednávky
Upozornění na odeslání zásilky
Informace o doručení
Správné typy položek
Rozlišujte typy položek pro lepší přehled:
PRODUCT– produktySHIPPING– poplatek za dopravuBILLING– poplatek za platbuDISCOUNT– slevy a kupóny
Historie stavů
Můžete poslat celou historii stavů objednávky najednou pomocí pole statuses. To je užitečné při prvotním importu:
"statuses": [ {"name": "PAID", "date": "2025-10-23T10:00:00Z"}, {"name": "PICKING", "date": "2025-10-23T12:00:00Z"}, {"name": "DISPATCHED", "date": "2025-10-23T15:00:00Z"}]
Časté problémy
Store ID neexistuje
Chyba: "Store ID 'xyz' does not exist"
Řešení: Vytvořte Store ID v nastavení API před odesláním první objednávky.
Objednávka se nevytváří, jen aktualizuje
Důvod: Objednávka s tímto code + store_id již existuje.
Řešení: Toto je očekávané chování. Pokud chcete vytvořit novou objednávku, použijte jiné číslo objednávky (code).
Chyba s cenami
Chyba: "Price mismatch: 1000 + 210 ≠ 1200"
Řešení: Pokud posíláte všechny tři cenové hodnoty (with_vat, without_vat, vat), musí matematicky souhlasit. Můžete poslat jen jednu hodnotu a ostatní vynechat.
Technická dokumentace: app.retino.com/api/docs
Nastavení API: app.retino.com/settings/api-v2/
