Interaktívna referencia všetkých endpointov je na /docs/api — v predvolenom nastavení je prístup obmedzený len na prihlásených administrátorov platformy (a super-adminov), na verejný prístup treba prostredie s explicitne zapnutým verejným režimom dokumentácie. Strojovo čitateľná špecifikácia (OpenAPI 3.1) je k dispozícii na /docs/api.json pod rovnakým prístupovým pravidlom.
Postavte kompletný storefront na ľubovoľnom frontende (Next.js, Nuxt, natívna aplikácia, iný CMS) nad REST API platformy — bez potreby platformovej témy. Každá zákaznícka operácia, ktorú používajú vstavané témy, je dostupná cez /api/v1: katalóg, košík, pokladňa, účet, objednávky, faktúry, vrátenia, obsah aj konfigurácia obchodu.
1. Základy requestu
| Oblasť | Ako |
|---|---|
| Base URL | https://<shop-host>/api/v1 |
| Tenant | hlavička X-Client-Slug: <client-slug> na každom requeste (určuje, ktorý obchod) |
| Auth | Authorization: Bearer <token> z POST /v1/auth/login alebo /register (Sanctum) |
| Guest košík | X-Cart-Session: <uuid> — server ho vygeneruje pri prvom zápise do košíka; uchovajte a posielajte ho ďalej |
| Locale | Accept-Language: sk (alebo cs, en), prípadne ?locale=sk — vyberá preložený obsah. Explicitný ?locale= má prednosť pred hlavičkou. GET /locales vypíše aktívne jazyky. |
| Mena | X-Currency: CZK (alebo ?currency=CZK) — prepočíta katalógové ceny na danú menu (no-op pri primárnej mene obchodu; neznámy/neprevoditeľný kód spadne na primárnu, nikdy nechybuje). Odpoveď echuje X-Currency: <code>. GET /store + GET /currencies vypíšu podporované meny ({code,symbol,is_primary,rate}). Košík a pokladňa sa vždy vyrovnávajú v primárnej mene obchodu (tá ide cez platobnú bránu) — prepočet je len na zobrazenie. |
| Telo / odpoveď | JSON (vždy na api/*, bez ohľadu na Accept). Validačné chyby → 422 { message, errors{ field:[...] } }. Auth → 401; zakázané → 403; nenájdené → 404; rate limit → 429. |
| Stránkovanie | Zoznamové endpointy vracajú štandardnú obálku: { data:[...], links:{first,last,prev,next}, meta:{current_page,per_page,total,last_page,from,to,path} }. ?per_page= (max 100). |
| Rate limity | Čítania ~60/min; zápisy 30/min; citlivé operácie (checkout, avatar, auth-write) 10/min. |
Schopnosti tokenu (nastavené per api_clients záznam): identity:read, identity:write (profil/heslo/avatar/email), groups:write (priradenie do dôveryhodnej B2B skupiny) a automaticky pridané tenant:<uuid> prepojenie, ktoré sa kontroluje pri každom zákazníckom requeste — token vydaný pre obchod A nemôže čítať dáta obchodu B ani zmenou X-Client-Slug.
2. Čo volať pre jednotlivé časti obchodu
- Chrome obchodu (raz, cachovať):
GET /v1/store(názov, logo, mena, jazyky, kontakt,
sociálne siete, zobrazenie DPH, hranica dopravy zdarma) + GET /v1/menus (navigácia) + GET /v1/locales.
- Domovská stránka:
GET /v1/products?...(kurátorské zoznamy),GET /v1/collections,GET /v1/categories?tree=true,GET /v1/brands. - Výpis produktov (PLP):
GET /v1/products— filtrecategory,manufacturer,tags(csv slugy),attr_<slug>(csv hodnoty),search,min_price,max_price;sort=price-asc/price-desc/newest/popularity/rating/az/za(alebo staršíname|price|created_at+direction);per_page. Bočný panel filtrov vykresľujte zGET /v1/products/facets(kategórie, značky, tagy, atribúty + počty, cenové rozpätie, možnosti triedenia;?category=zúži atribútové/cenové fasety). - Detail produktu (PDP):
GET /v1/products/{id-or-slug}?include=translations,reviews,content_sections,size_guide,GET /v1/products/{id}/related,GET /v1/products/{id}/reviews. Vypredané →POST /v1/products/notify-back-in-stock. Produkty na mieru nesúoption_groups— pozri §8. - Karty / hviezdičky / značka: každý riadok produktu (výpis aj detail) nesie
rating(priemer schválených recenzií,0keď žiadne nie sú) +reviews_counta objektmanufacturer(id/name/slug/logo_url) — bez druhého volania. Priemer si nepočítajte sami zreviews[]— je stránkovaný. - Vyhľadávanie:
GET /v1/search?q=,/v1/search/suggestions,/v1/search/autocomplete,/v1/search/popular. - Košík:
GET /v1/cart; zmeny cez/v1/cart/items,/v1/cart/discount,/v1/cart/gift-card;DELETE /v1/cartna vyprázdnenie. - Pokladňa:
GET /v1/checkout/methods→POST /v1/checkout(guest alebo prihlásený;gift_card_code,create_account). Platba kartou →POST /v1/checkout/stripe/intent, potvrdenie cez Stripe Elements na vlastnej doméne. Bankový prevod → vykreslite vrátenépayment_instructions. Žiadnecheckout_url— pozri §7. - Účet: profil
/v1/customer/profile, adresy/v1/customer/addresses, firma/v1/customer/company, objednávky/v1/orders(+/reorder,/invoice,/returns), faktúry/v1/invoices, wishlist/v1/wishlist, vernosť/v1/loyalty, súbory na stiahnutie/v1/downloads, affiliate/v1/affiliate. Hostia (bez účtu) používajú/v1/orders/track/{guest_token}— pozri §9. - Obsah:
GET /v1/pages/{slug},/v1/blog(+/categories,/{slug}),/v1/faqs. - Engagement:
POST /v1/newsletter/subscribe(+/confirm/{token},/unsubscribe),POST /v1/contact.
3. Referencia endpointov
Stĺpec Auth: — verejné · 🔑 Sanctum bearer · 🔑+ + gate na schopnosť tokenu.
Identita a účet
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
| POST | /auth/register | — | Vytvorenie účtu, vydanie tokenu (duplicitný email → 202) |
| POST | /auth/login | — | Vydanie tokenu |
| POST | /auth/forgot-password | — | Odoslanie resetovacieho odkazu (vždy 200) |
| POST | /auth/reset-password | — | Dokončenie resetu |
| GET | /me · POST /auth/verify | 🔑 identity:read | Aktuálny používateľ |
| GET | /auth/email/status | 🔑 identity:read | Overený email? |
| POST | /auth/email/resend | 🔑 identity:write | Opätovné odoslanie overovacieho mailu |
| POST | /auth/change-password | 🔑 identity:write | Zmena hesla |
| POST · DELETE | /me/avatar | 🔑 identity:write | Nastavenie / zmazanie avataru |
| DELETE | /account | 🔑 identity:write | GDPR zmazanie |
| POST | /auth/logout | 🔑 | Zrušenie tokenu |
| GET · PUT | /customer/profile | 🔑 | Profil + adresy + cenová skupina |
| GET · POST | /customer/addresses | 🔑 | Zoznam / pridanie adresy |
| GET · PUT · DELETE | /customer/addresses/{id} | 🔑 | Čítanie / úprava / zmazanie |
| POST | /customer/addresses/{id}/default | 🔑 | Nastavenie predvolenej |
| GET · PUT | /customer/company | 🔑 | B2B fakturačné údaje (IČO/DIČ/IČ DPH) |
| POST · DELETE | /customer/groups[/{code}] | 🔑+ groups:write | Priradenie/odobratie dôveryhodnej B2B skupiny |
Katalóg
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
| GET | /products · /products/{id-or-slug} | — | Zoznam (filtre category,manufacturer,tags,attr_*,search,min/max_price,sort) / detail (?include=) |
| GET | /products/facets | — | Dáta bočného panelu: kategórie, značky, tagy, atribúty+počty, cenové rozpätie, triedenie |
| POST | /products/notify-back-in-stock | — | Prihlásenie na upozornenie |
| GET | /products/{id}/related | — | Cross-sell + upsell + rovnaká kategória |
| GET | /categories · /categories/{id} | — | Zoznam (?tree=) / detail + produkty |
| GET | /brands · /brands/{slug-or-id} | — | Výrobcovia / detail + produkty |
| GET | /collections · /collections/{id}/products | — | Kolekcie |
| GET | /search · /search/{suggestions,autocomplete,popular} | — | Vyhľadávanie |
| GET · POST | /products/{id}/reviews | — / 🔑 | Zoznam / pridanie recenzie |
Košík a pokladňa
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
| GET | /cart | — (cart-session) | Aktuálny košík |
| POST | /cart/items · PUT/DELETE /cart/items/{id} | — | Pridanie / úprava / odstránenie položky |
| POST · DELETE | /cart/discount | — | Kupón |
| POST · DELETE | /cart/gift-card | — | Overenie / zrušenie darčekovej karty |
| POST | /cart/configurator/upload | — | Príloha pre voľbu typu file (§8) |
| GET | /gift-cards/{code} | — | Zostatok darčekovej karty |
| DELETE | /cart | — | Vyprázdnenie košíka |
| GET | /checkout/methods | — | Doprava + platobné metódy |
| POST | /checkout | — / 🔑 | Vytvorenie objednávky (gift_card_code, create_account) |
| POST | /checkout/stripe/intent | — / 🔑 | Stripe PaymentIntent pre headless platbu kartou |
GET /checkout/methods vráti ceny dopravy podľa aktuálneho košíka len vtedy, keď request nesie hlavičku X-Cart-Session (rovnaká, akú vraciate ku GET /cart) — inak vráti cenníkové ceny dopravy s príznakom cart_aware: false (napríklad chýbajúca doprava zadarmo od prahu košíka, lebo žiadny košík nie je k dispozícii). Odpoveď košíka (GET /cart) nesie aj loyalty_points_used, loyalty_discount a dropped_on_merge (položky vypadnuté pri zlúčení košíka hosťa s košíkom po prihlásení). Objednávka (GET /orders/{id}) nesie gift_card_amount a loyalty_discount — sumy uhradené darčekovou kartou a vernostnými bodmi.
Objednávky, faktúry, vrátenia
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
| GET | /orders · /orders/{id} | 🔑 | História / detail |
| POST | /orders/{id}/reorder | 🔑 | Pridanie položiek späť do košíka |
| GET | /invoices · /invoices/{id} | 🔑 | Zoznam / metadáta faktúry |
| GET | /orders/{id}/invoice | 🔑 | Stiahnutie PDF faktúry |
| GET | /returns · /orders/{id}/returns | 🔑 | Zoznam vrátení |
| POST | /orders/{id}/returns | 🔑 | Podanie žiadosti o vrátenie |
Zákaznícke extra
| Metóda | Cesta | Auth | Účel |
|---|---|---|---|
| GET · POST · DELETE | /wishlist[/{product}] | 🔑 | Zoznam / prepnutie obľúbeného |
| GET | /loyalty | 🔑 | Zostatok bodov + história |
| GET | /downloads · POST /downloads/{id}/url | 🔑 | Digitálne produkty + podpísaná URL |
| GET | /affiliate | 🔑 | Affiliate dashboard |
| POST · PUT | /affiliate/{apply,billing,payout,discounts} | 🔑 | Registrácia / správa / výplata |
| POST | /newsletter/{subscribe,confirm/{token},unsubscribe} | — | Newsletter (double opt-in) |
| POST | /contact | — | Kontaktný formulár |
Obsah a konfigurácia obchodu (verejné čítanie)
| Metóda | Cesta | Účel |
|---|---|---|
| GET | /store · /locales · /currencies | Branding, mena, podporované meny + jazyky, kontakt, DPH/doprava |
| GET | /menus | Navigačný strom |
| GET | /pages · /pages/{slug} | CMS stránky |
| GET | /blog · /blog/categories · /blog/{slug} | Blog |
| GET | /faqs · /faqs/{slug} | FAQ |
4. Parita web ↔ API
Každá storefrontová/zákaznícka operácia z vstavaných tém a jej API ekvivalent.
| Funkcia storefrontu | API endpoint(y) |
|---|---|
| Registrácia / prihlásenie / odhlásenie | POST /auth/register · /auth/login · /auth/logout |
| Zabudnuté / reset hesla | POST /auth/forgot-password · /auth/reset-password |
| Zmena hesla | POST /auth/change-password |
| Overenie emailu (stav / opätovné odoslanie) | GET /auth/email/status · POST /auth/email/resend |
| Avatar / zmazanie účtu | POST·DELETE /me/avatar · DELETE /account |
| Zobrazenie / úprava profilu | GET·PUT /customer/profile |
| Adresár adries | /customer/addresses CRUD + /default |
| Firemné / B2B údaje | GET·PUT /customer/company |
| Výpis produktov + filtre (kategória, značka, tagy, atribúty, cena, hľadanie, triedenie) | GET /products (+ GET /products/facets pre panel), GET /categories/{id} |
| Detail produktu + varianty | GET /products/{id} |
| Značky | GET /brands, /brands/{slug} |
| Súvisiace / cross-sell / upsell | GET /products/{id}/related |
| Hľadanie + autocomplete | GET /search, /search/suggestions, /search/autocomplete |
| Recenzie (čítanie / písanie) | GET·POST /products/{id}/reviews |
| CRUD košíka | /cart, /cart/items |
| Kupón | POST·DELETE /cart/discount |
| Darčeková karta | POST·DELETE /cart/gift-card, GET /gift-cards/{code}, checkout gift_card_code |
| Doprava + platobné metódy | GET /checkout/methods |
| Vytvorenie objednávky (guest + účet) | POST /checkout |
| Platba kartou | POST /checkout/stripe/intent · /checkout/gpwebpay/redirect-url · /checkout/coinbase/charge (§7) |
| História / detail objednávok | GET /orders, /orders/{id} |
| Sledovanie objednávky bez účtu | GET /orders/track/{guest_token} (§9) |
| Opätovná objednávka | POST /orders/{id}/reorder |
| Stiahnutie faktúry | GET /orders/{id}/invoice, GET /invoices |
| Vrátenia (vytvorenie / zoznam) | POST·GET /orders/{id}/returns, GET /returns |
| Wishlist / obľúbené | /wishlist toggle |
| Vernostné body | GET /loyalty |
| Digitálne súbory na stiahnutie | GET /downloads, POST /downloads/{id}/url (hostia: §9) |
| Konfigurovateľné produkty | option_groups na GET /products/{id}, options[] na POST /cart/items (§8) |
| Zapnuté pluginy / funkcie | GET /store → features, plugins |
| Affiliate program | /affiliate + apply/billing/payout/discounts |
| Newsletter | /newsletter/subscribe/confirm/unsubscribe |
| Kontaktný formulár | POST /contact |
| Branding obchodu / mena / jazyky | GET /store, /locales |
| Navigačné menu | GET /menus |
| CMS stránky | GET /pages, /pages/{slug} |
| Blog | GET /blog, /blog/categories, /blog/{slug} |
| FAQ | GET /faqs, /faqs/{slug} |
Zámerne nedostupné cez API: layout a sekcie domovskej stránky/témy — headless klient si vykresľuje vlastný dizajn, takže spotrebúva dátové endpointy vyššie (produkty, menu, konfigurácia obchodu, obsah), nie stromovú štruktúru platformovej témy. Administrátorské operácie (CRUD produktov, nastavenia, fulfilment) zostávajú len v administrácii.
Pluginy: čo má obchodník zapnuté sa dozviete cez GET /store → plugins, s rovnakou verejnou konfiguráciou, akú dostávajú aj naše vlastné témy (analytické ID, texty cookie lišty, …), takže si ju viete vykresliť sami. Server-side pluginy (fakturácia, newsletter sync, platobné brány) od vás nič nepotrebujú — bežia na udalostiach objednávky bez ohľadu na vás a v zozname sa objavia s config: null. Jedinou výnimkou je brána bez API iniciácie; pozri §7.
5. Minimálny Next.js flow
const api = (path: string, init: RequestInit = {}) =>
fetch(`${BASE}/api/v1${path}`, {
...init,
headers: {
'Content-Type': 'application/json',
'X-Client-Slug': CLIENT_SLUG,
...(token && { Authorization: `Bearer ${token}` }),
...(cartSession && { 'X-Cart-Session': cartSession }),
...init.headers,
},
}).then(r => r.json());
// 1. chrome
const store = await api('/store');
const menus = await api('/menus');
// 2. prehliadanie → košík (zachyťte cart_session z prvej odpovede)
await api('/cart/items', { method: 'POST', body: JSON.stringify({ variant_id, quantity: 1 }) });
// 3. pokladňa
const methods = await api('/checkout/methods');
const order = await api('/checkout', { method: 'POST', body: JSON.stringify(payload) });
// 4. výber platby (karta): potvrdenie cez Stripe Elements na VAŠEJ doméne
const { clientSecret } = await api('/checkout/stripe/intent', {
method: 'POST', body: JSON.stringify({ order_id: order.order_id }),
});
// Bankový prevod namiesto toho → vykreslite order.payment_instructions; nič iné netreba.6. API je verzia v1, aditívna
API v1 je len pridávacie — pole ani endpoint sa nikdy neodstráni ani nepremenuje na mieste: frontend hostíte vy, takže breaking change na tomto rozhraní by bol výpadok, ktorý za vás nevieme opraviť. Nové polia a nové voliteľné parametre pribúdajú bez zmeny verzie — tolerujte neznáme polia a nič vás nerozbije.
Breaking zmeny idú pod novú cestu (/api/v2/...), bežiacu súbežne s v1, kým klienti migrujú.
Odpovede prechádzajú explicitným výberom polí (nie surovým modelom), takže interné/citlivé stĺpce (nákupná cena, interné poznámky, cesty k súborom na disku, session identifikátory) sa do payloadu nikdy nedostanú. Kľúčové zjednotenia:
- Stránkované zoznamy (
/products,/orders,/returns,/invoices,/downloads,
/products/{id}/reviews, /blog) používajú obálku { data, links, meta }.
variants[].attribute_valuesje vždy zoznam objektov ({id, attribute_id, value, position, attribute:{id,name,slug,type}}),
nikdy mapa — importovaný feed bez namapovaných atribútov vráti položky s id: null a attribute_id: null, ale slug/value sú vždy vyplnené. Kľúčujte podľa attribute.slug, nikdy podľa attribute.id.
checkout_urlnaPOST /checkoutneexistuje a nikdy nefungoval — platba kartou ide cez
/checkout/stripe/intent, presmerovacie brány cez svoje vlastné endpointy (pozri §7).
7. Platobné metódy dostupné cez API
GET /checkout/methods vráti nakonfigurované platobné metódy obchodníka plus každý platobný plugin, ktorý je zapnutý, nakonfigurovaný a dá sa spustiť z /v1. is_plugin odlíši jedny od druhých; id pluginového riadku je kód brány a jeho fee je 0.
Vytvorenie objednávky a prijatie platby sú dva kroky pre každú bránu: POST /checkout uloží objednávku v stave pending, potom vymeníte jej order_id za miesto, kam poslať kupujúceho.
| Brána | Ako prijať platbu |
|---|---|
| Bankový prevod / dobierka (manuálne metódy) | Nič netreba volať — vykreslite payment_instructions z odpovede POST /checkout. |
| Stripe | POST /checkout/stripe/intent → {clientSecret, publishableKey}, potom Stripe Elements a potvrdenie na vlastnej doméne. |
| GP webpay | POST /checkout/gpwebpay/redirect-url → {redirect_url}, presmerujte kupujúceho tam (3DS stránka banky). Podpísané na serveri. |
| Coinbase Commerce | POST /checkout/coinbase/charge → {hosted_url, charge_code}, presmerujte kupujúceho na hosted_url. |
Všetky tri prijímajú {"order_id": "…"} a fungujú aj pre hostí bez účtu — vlastníctvo order_id spolu s kontextom klienta stačí na autorizáciu.
Návrat kupujúceho nič nedokazuje. Pri oboch presmerovacích bránach nezaručuje nič ani to, že sa kupujúci vrátil (krypto platba môže byť visiaca, nedoplatená alebo expirovaná). Stav platby riadi podpísaný webhook od poskytovateľa; čítajte ho späť cez GET /orders/{id} alebo `/orders/track/{token}`.
Brána, ktorú klient nevie spustiť cez API, sa z /checkout/methods skryje a POST /checkout ju odmietne s 422 PAYMENT_METHOD_NOT_AVAILABLE — objednávka tak nikdy neuviazne potichu v stave pending.
Kam sa kupujúci vráti
Čokoľvek pošleme vášmu zákazníkovi — návrat z brány aj odkazy v transakčných mailoch — sa skladá z URL šablón na vašom API klientovi, s fallbackom na náš vlastný storefront, keď nie sú nastavené. Headless tenant má vlastný storefront vypnutý, takže bez nastavenia skončí zákazník na landing page Ecommio. Nastavte aspoň:
| Stĺpec | Placeholdery | Použitie |
|---|---|---|
checkout_success_url | {order_id}, {order_number}, {guest_token} | Návrat po platbe |
checkout_cancel_url | {order_id}, {order_number} | Opustená / neúspešná platba |
account_order_url | {order_id}, {order_number}, {guest_token} | "Zobraziť objednávku" v maile |
newsletter_confirm_url | {token} | Double opt-in (bez neho nefunguje) |
newsletter_unsubscribe_url | {email}, {token} | Odhlásenie (zo zákona povinné) |
download_url | — | Stránka digitálnych súborov |
home_url, cart_url | — | Mail o darčekovej karte + opustenom košíku |
{guest_token} je spôsob, ako váš frontend ukáže objednávku hosťovi — headless hosť nemá u nás session. Podpísané odkazy na jednotlivé súbory fungujú aj bez tohto nastavenia; iba súhrnný zoznam "moje súbory" potrebuje download_url.
8. Konfigurovateľné produkty
Produkty vyrábané na mieru (gravírovanie, emblém z galérie, nahrané logo) nesú svoje voľby priamo na detaile produktu:
// GET /v1/products/{id-or-slug}
{ "product": {
"has_configurator": true,
"option_groups": [{
"id": "019f…", "name": "Emblém", "type": "image_select",
"required": true, "position": 0, "config": null,
"values": [
{ "id": "019f…", "label": "Tenis", "code": null,
"price_delta": 0.30, "image_url": "https://…", "is_default": false, "position": 0 }
]
}]
}}option_groups je vždy prítomný — prázdne pole, keď produkt nie je konfigurovateľný alebo obchodník nemá (platený) konfigurátor. Vykresľujte podľa type:
type | Vykreslenie | Odoslanie späť ako |
|---|---|---|
select / image_select | výber jednej z values | {group_id, value_id} |
text | voľný text | {group_id, text} |
file | upload → POST /v1/cart/configurator/upload (multipart file) | {group_id, file_url} — vrátená url |
Povolené prípony a limit veľkosti sú nastavenie obchodníka, nehardcodujte ich — čítajte plugins["product-configurator"] z GET /store (extensions, accept, formats_label, max_size_mb) a podľa toho ovládajte výber súboru a jeho nápovedu.
Potom pridanie do košíka:
// POST /v1/cart/items
{ "variant_id": "019f…", "quantity": 1,
"options": [{ "group_id": "019f…", "value_id": "019f…" }] }Server prevaliduje a precení každú voľbu: price_delta sa pripočíta do jednotkovej ceny položky, povinné skupiny sa vynucujú a voľby sa prenesú do objednávky (čitateľné v order.items[].metadata) aj na faktúru. Chýbajúca povinná skupina → 422 INVALID_PRODUCT_OPTIONS.
`price_delta` je len zobrazovacia hodnota — prepočítava sa do vašej X-Currency, kým košík vždy prepočítava z uloženej hodnoty v primárnej mene.
Odoslanieoptionspre obchod bez konfigurátora sa ignoruje (položka sa naceni ako jednoduchý produkt) namiesto zamietnutia, takže pred vykreslením vlastného builderu skontrolujtefeatures.product_configuratornaGET /store.
9. Samoobsluha pre hostí
Všetko pod /orders, /invoices a /downloads je viazané na prihláseného zákazníka, ktorým hosť nie je. Hostia namiesto toho používajú guest_token objednávky — hodnotu dosadenú do vašich šablón checkout_success_url / account_order_url:
| Metóda | Cesta | Účel |
|---|---|---|
| GET | /orders/track/{token} | Objednávka — rovnaký payload ako GET /orders/{id} |
| GET | /orders/track/{token}/invoice | PDF faktúra |
| GET | /orders/track/{token}/downloads | Digitálne súbory kúpené v tejto objednávke |
| POST | /orders/track/{token}/downloads/{id}/url | Nová podpísaná URL na stiahnutie |
Čo je dobré vedieť:
- Vlastníctvo tokenu je autorizácia — zaobchádzajte s ním ako s heslom. Otvára presne
jednu objednávku a nič iné.
- Podmienené nastavením obchodníka (čítajte ako
features.guest_order_trackingna
GET /store). Vypnuté → 404, a všetky doterajšie odkazy prestanú fungovať.
- Len objednávky hostí. Objednávka prihláseného zákazníka takto dostupná nie je a
vo vašich URL šablónach nikdy nenesie token — takí zákazníci sa prihlasujú.
- Digitálne doručenie funguje aj bez tohto: potvrdzujúci mail už nesie podpísané odkazy na
jednotlivé súbory. Tieto endpointy slúžia hosťovi, ktorý mail stratil alebo mu odkazy vypršali, na získanie nových bez zakladania účtu.