Nabídnout zákazníkovi „vyberte si libovolné tři kávy a máte je o 15 % levněji" zní jako triviální akce. Na Shoptetu to ale znamená předem vyrobit každou možnou kombinaci jako samostatnou sadu — a při dvanácti kávách jich jsou dvě stovky. Doplněk Sestav si vlastní balíček (interně Multipack) tuhle práci odstraňuje: kombinaci vyrobí až ve chvíli, kdy si ji konkrétní zákazník opravdu složí.
Tenhle text je úvod do mechaniky doplňku. Je psaný tak, aby dával smysl majiteli e-shopu i vývojáři, který zvažuje integraci. Praktické zapojení řeší navazující návod o nasazení, technický kontrakt pak dokumentace API.
Co doplněk řeší
Na stránce e-shopu se zákazníkovi vykreslí konfigurátor: tolik výběrových míst, kolik má balíček obsahovat. Do každého si vybere jeden produkt z nabídky, kterou předem určil obchodník. U položek vidí fotku, cenu, hodnocení i skladovou dostupnost a při každé změně se přepočítá cena i úspora.
Když zákazník klikne na „Vložit do košíku", vznikne v Shoptetu skutečná produktová sada — reálný produkt s vlastním kódem, se zvýhodněnou cenou a s položkami odpovídajícími výběru. Do košíku pak putuje jako jakékoli jiné zboží.
To je celý trik. Sleva není kupón ani cenová hladina, takže se nepere s ostatními akcemi a nevyžaduje žádné výjimky. Košík, doprava, platba, objednávka, faktura, odpisy ze skladu i export do ERP pracují se sadou úplně stejně jako s produktem, který obchodník založil ručně.
Příklad, který se drží celé dokumentace
Prodejce kávy má konfiguraci Kávový balíček: 3 sloty, sleva 15 % a nabídku zrnkových káv a doplňků. Zákazník vybere Brazílii (289 Kč), Etiopii (329 Kč) a Kolumbii (299 Kč). Součet je 917 Kč, po slevě 779,45 Kč. Vznikne sada s kódem WT-SET-00042 za 779,45 Kč a ta jde do košíku jako jedna položka.
Čím se liší od nativních Sad produktů
Shoptet umí sady sám, ale jinak. Rozdíl je v okamžiku vzniku:
| Nativní sady v Shoptetu | Sestav si vlastní balíček | |
|---|---|---|
| Kdo určuje složení | obchodník předem | zákazník při nákupu |
| Kdy sada vzniká | při zakládání v administraci | v okamžiku vložení do košíku |
| Počet položek v katalogu | jedna na každou kombinaci | jedna konfigurace pro všechny kombinace |
| Údržba při změně sortimentu | ruční úprava každé sady | úprava jedné nabídky produktů |
Nativní sady dávají smysl na pevné nabídky typu „startovní set". Jakmile ale chcete nechat výběr na zákazníkovi, počet kombinací roste rychleji, než se dá spravovat, a katalog se zaplní položkami, které si nikdo nikdy neobjedná. Doplněk pracuje obráceně: v katalogu drží jen to, co někdo skutečně sestavil, a i to jen dočasně (viz životní cyklus níž).
Podstatné je, že výsledek je v obou případech tentýž typ produktu. Nekupujete si tedy paralelní svět, který by bylo potřeba ošetřovat ve skladu nebo v účetnictví.
Pojmy, které se vám budou hodit
- Konfigurace — jedno nastavení balíčku v administraci doplňku: název, počet slotů (2 až 5), sleva v procentech, režim seznamů a nabízené produkty. E-shop jich může mít víc vedle sebe (Kávový balíček, Dárkové trio…).
- Slot — jedno místo v balíčku, do kterého zákazník vybírá právě jeden produkt. Počet slotů určuje, kolik produktů musí vybrat.
- Kategorie — pojmenovaná skupina produktů uvnitř nabídky (Jednodruhová káva, Sirupy). Slouží jen k přehlednosti konfigurátoru, s kategoriemi v katalogu e-shopu nemá nic společného.
- Shortcode — veřejný identifikátor konfigurace ve tvaru
w-multipack-ABC12. V administraci se zobrazuje v hranatých závorkách a v té podobě se vkládá do obsahu stránky:[w-multipack-ABC12]. - Sada — produkt typu product set, který vznikne v Shoptetu při vložení balíčku do košíku. Má vlastní kód, cenu po slevě a položky odpovídající výběru.
- Režim seznamů —
same_listsznamená, že všechny sloty nabízejí tutéž nabídku („vyberte si libovolné 3 kávy").separate_listsdává každému slotu vlastní nabídku („1× káva + 1× čokoláda + 1× sirup").
Cesta od kliknutí po objednávku
- Načtení stránky. Skript na stránce najde v obsahu shortcode a vykreslí do jeho místa konfigurátor.
- Načtení konfigurace. Jedním požadavkem na naše API si stáhne počet slotů, výši slevy, režim seznamů a všechny nabízené produkty včetně cen ve všech měnách e-shopu, skladu, hodnocení a obrázků.
- Výběr zákazníka. Skládání balíčku probíhá čistě v prohlížeči nad daty z prvního požadavku. Žádná další komunikace se serverem neprobíhá, takže je výběr okamžitý.
- Potvrzení. Po kliknutí na „Vložit do košíku" odejde na náš backend seznam vybraných produktů.
- Založení sady. Backend spočítá závaznou cenu, přes Shoptet API založí produkt typu sada ve skryté kategorii, doplní obrázek a položky a vrátí zpět kód a cenu. Pokud tutéž kombinaci už někdo sestavil, vrátí existující sadu místo zakládání nové.
- Košík. Frontend předá vrácený kód nativní funkci košíku Shoptetu. Od té chvíle je balíček běžná položka objednávky.
Krok 5 je synchronní a stojí několik volání Shoptet API, takže trvá řádově stovky milisekund až jednotky sekund. Konfigurátor proto musí mít viditelný stav načítání a pojistku proti dvojímu odeslání — na to se v praxi zapomíná nejčastěji.
Kdo za co odpovídá
Doplněk je headless. Naše strana drží konfigurace, synchronizuje produktová data ze Shoptetu, počítá závaznou cenu, zakládá sady a stará se o jejich úklid. Frontend — tedy vzhled konfigurátoru, chování, texty, responzivita a vložení do košíku — je celý na straně e-shopu, respektive agentury, která ho spravuje.
Má to praktický důvod: agentura nemusí do klientovy šablony pouštět cizí kód a může widget vyladit přesně podle designu e-shopu. Kdo nechce začínat od nuly, může si vzít náš hotový starter a upravit ho.
Jedno pravidlo je přitom závazné: cena, kterou zákazník zaplatí, je vždy ta, kterou vrátí backend při zakládání sady. Přepočet v konfigurátoru je náhled pro zákazníka, ne obchodní slib. Obě čísla vznikají z trochu jiných vstupů — ceny v nabídce zohledňují měnu a případný ceník zákazníka, zatímco cena sady se skládá ze základních cen v základní měně e-shopu. U e-shopu s jednou měnou a bez ceníků obě čísla sedí; jinde se mohou lišit.
Životní cyklus sady
Sady vznikají ve skryté kategorii, takže je zákazník nepotká v katalogu ani ve vyhledávání. Sada, ze které vznikla objednávka, v e-shopu zůstává kvůli historii. Sady, které skončily jen v košíku a nikdo je neobjednal, uklízí každou noc automatický proces — katalog se tedy nezanáší.
Pro obchodníka je to neviditelné. Pro vývojáře z toho plyne jedno pravidlo: kód sady je dočasný, takže se neukládá do localStorage, nepoužívá ve sdílených odkazech ani se z něj nepředvyplňuje košík při další návštěvě. Uložit si jde bez problémů to, co si zákazník vybral, a při jeho návratu sadu jednoduše založit znovu.
Co k tomu potřebujete
- Shoptet Premium — doplněk pracuje se Shoptet API a s nativním košíkovým rozhraním šablony, na nižších tarifech nefunguje.
- Aktivní licenci doplňku od nás. Součástí je přístup do administrace balíčků a shortcode konfigurace.
- Vývojáře nebo agenturu pro frontend, případně převzatý starter.
Kompletní technická dokumentace doplňku je veřejně dostupná na GitHubu v repozitáři shoptet-premium-multipack — včetně popisu architektury, API reference a funkčního ukázkového widgetu. Můžete si ji projít dřív, než se rozhodnete.
Kam dál
- Nasazení balíčku na Shoptet krok za krokem — praktický postup od FTP po ověřovací checklist.
- Dokumentace na GitHubu — architektura, pojmy a životní cyklus sady v technickém detailu.
- Sestav si vlastní balíček — produktová stránka doplňku s ukázkou a ceníkem.
Nejste si jistí, jestli dává balíček pro váš sortiment smysl? Napište nám na jsme@webotvurci.cz, projdeme to s vámi nezávazně.