shopify-functions-limity-vs-vlastny-vyvoj-na-mieru
E-shopy3. apríla 2026

Shopify Functions vs. vývoj na mieru: Kde sú limity?

Jaroslav Ondruš
By Jaroslav Ondruš

Shopify Plus rieši viac B2B problémov natívne, ako si myslíte. Ale tam, kde jeho možnosti končia, začína rozhodnutie, ktoré môže stáť vaše podnikanie mesiace práce naviac.

Shopify Functions vs. vývoj na mieru: Kde sú skutočné limity?

Ak prevádzkujete B2B eshop na Shopify Plus a riešite otázku „čo z toho musíme vlastne robiť na mieru," pravdepodobne ste narazili na dve protichodné odpovede.

Prvá: „Shopify Plus to rieši natívne, prečo platiť za custom dev."

Druhá: „Shopify nie je B2B platforma, potrebujete vlastný systém."

Pravda je, ako zvyčajne, niekde medzi tým — a presná poloha tej hranice závisí od veľkosti a komplexnosti vášho B2B modelu.

Tento článok si kladie za cieľ tú hranicu pomenovať konkrétne: čo Shopify Plus rieši natívne a dobre, kde sú skutočné technické limity Shopify Functions, a kedy vlastný vývoj prestáva byť luxusom a stáva sa nevyhnutnosťou.

Čo Shopify Plus B2B rieši bez jediného riadku vlastného kódu

Toto je sekcia, ktorú mnohí konzultanti a agentúry preskakujú — buď preto, že ju nepoznajú, alebo preto, že im viac vyhovuje predávať custom development. My to povieme na rovinu.

Shopify Plus obsahuje natívny B2B modul, ktorý od roku 2022 systematicky rozširuje svoje možnosti. Podľa oficiálnej dokumentácie Shopify pokrýva tieto scenáre bez potreby externých aplikácií alebo vlastného vývoja:

  1. Individuálne cenníky (Catalogs) — každej firemnej lokalite môžete priradiť vlastný katalóg s individuálnymi cenami a zľavami. Každá lokalita môže mať priradených až 25 katalógov súčasne. Ak predávate 500 B2B klientom s rôznymi cenovými hladinami, Shopify to zvládne natívne — za predpokladu, že ceny spravujete a synchronizujete priamo v Shopify admin alebo cez API.
  2. Platobné podmienky — Net 30, Net 60, Net 90 sú natívne súčasťou B2B checkoutu. Zákazník si zvolí odložené platenie, voliteľne uloží kartu pre automatické strhnutie k dátumu splatnosti. Žiadny custom modul nie je potrebný.
  3. Buyer portál — B2B zákazníci majú prístup k dedikovanému portálu s prehľadom objednávok, rýchlym bulk orderingom a správou účtu. Firemné profily podporujú viacero kontaktov s rôznymi oprávneniami (schvaľovateľ, nákupca, len prehliadanie).
  4. Objemové zľavy a quantity rules — minimálne množstvá, cenové kroky pri väčšom odbere, balenia — všetko nastaviteľné priamo v B2B katalógoch bez kódu.
  5. Daňové výnimky — priraďovanie daňových výnimiek na úrovni firmy alebo lokality.

Pre rastúci mid-market B2B eshop — napríklad distribútora s niekoľkými stovkami odberateľov a štandardizovanými cenníkmi — je toto postačujúce. A keď sú tieto potreby pokryté natívne, Shopify Functions vstupujú do hry ako ďalšia vrstva logiky — nie ako záplata za chýbajúce funkcie.

Čo sú Shopify Functions a čo reálne vedia

Shopify Functions sú server-side rozšírenia, ktoré bežia priamo v infraštruktúre Shopify v prostredí WebAssembly. Merchant (alebo jeho vývojársky tím) napíše funkciu v Ruste alebo JavaScripte, skompiluje ju do Wasm a Shopify ju spúšťa v definovaných momentoch nákupného procesu.

Podľa oficiálnej dokumentácie pokrývajú tieto rozšírovacie body:

  • Zľavy — vlastná logika pre produktové, objednávkové a dopravné zľavy nad rámec natívnych katalógov
  • Doručenie — filtrovanie, premenovanie a zoraďovanie dopravných metód podľa obsahu košíka
  • Platby — zobrazovanie alebo skrývanie platobných metód na základe podmienok
  • Cart transforms — spájanie produktov do bundlov alebo ich rozkladanie
  • Validácia checkoutu — vlastné pravidlá pred dokončením objednávky
  • Order routing — smerovanie objednávok na sklady alebo fulfillment centrá

Kde Functions fungujú spoľahlivo a bez zbytočnej komplexity: vlastná logika tiered zliav nad rámec katalógov, skrytie dobierky pre B2B segmenty, podmienené zobrazovanie dopravných metód, bundle logika, validácie pred checkoutom.

Technické limity Shopify Functions: Reálne čísla

Shopify Functions nebežia bez obmedzení. Tu sú konkrétne limity, ktoré Shopify vývojárska komunita aj oficiálna dokumentácia dokumentujú:

  • Limit inštrukcií: 11 miliónov — každá funkcia môže vykonať maximálne 11 miliónov WebAssembly inštrukcií. Pre jednoduché cenové výpočty to je viac než dosť. Pri komplexnej logike s veľkým počtom SKU a zákazníckych kombinácií sa tento limit stáva reálnou prekážkou — vývojári sa s ním bežne stretávajú pri cart transform funkciách s väčšími košíkmi.
  • Limit vstupu: 128 kB — vstupné dáta, ktoré Shopify odovzdá funkcii, môžu mať maximálne 128 kB (Shopify limit nedávno zvýšil zo 64 kB). Metafieldy presahujúce 10 000 bajtov nie sú do vstupu zahrnuté vôbec.
  • Výkon pod 5 ms — funkcia musí dokončiť svoju prácu do 5 milisekúnd. Pre väčšinu výpočtov to stačí, ale určuje to aj to, aké jazyky sú praktické: Shopify odporúča Rust, ktorý kompiluje priamo do Wasm a je výrazne efektívnejší ako JavaScript.
  • Žiadny prístup k externým API — s výnimkou — toto je najdôležitejší bod a zároveň najčastejšie nepresne prezentovaný. Shopify Functions štandardne nemôžu volať externé API počas behu. Existuje funkcia Network Access, ktorá toto umožňuje — avšak je dostupná len pre vlastné aplikácie nainštalované na Shopify Plus a Enterprise plánoch a vyžaduje explicitné povolenie zo strany Shopify. Na dev storoch ani v štandardnom developer preview nie je dostupná.

Kde Shopify Plus B2B naráža na strop

Vráťme sa k natívnemu B2B modulu. Existujú scenáre, kde ani Shopify Plus s Functions nestačí — a kde čakanie na ďalší update platformy nie je biznis stratégia.

Schvaľovacie workflowy — Shopify B2B natívne nepodporuje viacúrovňové schvaľovanie objednávok. Ak vaši korporátni zákazníci vyžadujú, aby objednávky nad určitú hodnotu schválil nadriadený pred odoslaním, alebo ak potrebujete priradiť spending limity jednotlivým nákupcom v rámci firmy, toto natívne k dispozícii nie je. Dá sa riešiť third-party aplikáciami alebo custom logikou, ale nie natívne.

Real-time ceny z ERP — Shopify B2B cenníky fungujú na princípe synchronizácie: ceny z ERP systému (SAP, Helios, Navision, Pohoda) musíte do Shopify importovať vopred. Ak sa ceny menia v reálnom čase — napríklad podľa aktuálnych surovinových nákladov alebo medzibankového kurzu — Shopify natívne nepodporuje live fetch z ERP. Potrebujete buď middleware, ktorý synchronizuje ceny s prijateľnou latenciou, alebo vlastnú pricing API vrstvu.

Credit limit management — správa kreditných limitov pre B2B odberateľov (blokovanie objednávky pri prekročení dlhu, zobrazenie zostatkového kreditu) nie je súčasťou natívneho B2B modulu. Toto je štandardná požiadavka distribútorov a veľkoobchodníkov, ktorá vyžaduje integráciu s účtovným systémom.

Komplexná front-end customizácia — Shopify front-end je úzko previazaný s backendom. Ak vaši B2B zákazníci očakávajú špecifickú UX logiku — napríklad bulk upload objednávok cez CSV s validáciou SKU, hierarchické zobrazenie produktov podľa internej kategorizácie klienta, alebo integráciu s ich procurement systémom — táto úroveň customizácie si vyžaduje vlastný vývoj, prípadne headless architektúru cez Shopify Hydrogen.

Príklad z praxe: Kde línia prechádza

Predstavte si dvoch výrobcov priemyselných komponentov:

Firma A má 300 B2B odberateľov, tri cenové hladiny (zlatá, strieborná, štandardná), platobné podmienky Net 30 a štandardný produktový katalóg s 800 SKU. Shopify Plus B2B natívne rieši 90 % ich požiadaviek. Shopify Functions dopĺňajú logiku dopravných metód a validáciu minimálnej objednávky. Vlastný vývoj tu nie je opodstatnený.

Firma B má 4 000 B2B odberateľov, každý s individuálnou zmluvnou cenou naviazanou na ERP, credit limitmi, viacúrovňovým schvaľovaním a požiadavkou zobraziť reálnu dostupnosť z WMS priamo na produktovej stránke. Tu Shopify Plus B2B nestačí — nie preto, že by bol zlý, ale preto, že tento stupeň komplexity bol navrhnutý pre dedikované B2B platformy alebo custom riešenia.

Rozdiel medzi týmito dvoma firmami nie je veľkosť — je to hĺbka integrácie a miera individuality každej zákazníckej relácie.

Časté chyby pri rozhodovaní

„Custom dev je vždy drahší" — závisí od časového horizontu. Natívne riešenie s množstvom workaroundov môže za rok stáť viac na internom čase a technickej dlhu ako jednorazový vlastný modul.

„Shopify Functions to vyriešia" — Functions sú vrstva logiky, nie náhrada za chýbajúcu infraštruktúru. Ak váš problém je v dátovej architektúre (ceny žijú v ERP a nie v Shopify), Functions ho nevyriešia — len ho skomplikujú.

„Počkáme, Shopify to príde" — Shopify B2B modul sa rýchlo vyvíja a v roku 2025 pokrýva výrazne viac ako pred dvoma rokmi. Ale niektoré architektonické obmedzenia (real-time ERP, credit management, komplexné schvaľovanie) sú štrukturálne — nie len chýbajúce features.

Zámena Checkout Extensions a Functions — Checkout Extensions riešia UI (vlastné polia, bannery, bloky v checkoutu). Functions riešia logiku (čo sa vypočíta, zobrazí, overí). Sú to rôzne vrstvy a správne pochopenie ich vzájomného vzťahu ušetrí kolo zbytočného predimensovania.

Záver: Správna otázka nie je „Shopify alebo custom"

Väčšina B2B merchantov na Shopify Plus nepotrebuje vlastný vývoj namiesto Shopify — potrebujú vlastný vývoj popri Shopify. Platformu využívajú pre to, čo vie natívne (cenníky, platobné podmienky, buyer portál, checkout logiku), a vlastný vývoj alebo middleware dopĺňajú tam, kde platforma naráža na architektonický strop.

Správna otázka teda nie je „Shopify alebo custom development," ale „kde presne leží hranica v mojom konkrétnom prípade a čo nás bude stáť jej ignorovanie?"

Ak hľadáte odpoveď na túto otázku pre váš projekt, v METINAS radi posúdime váš aktuálny stack a navrhneme architektúru, ktorá bude rásť s vaším biznisom — nie ho spomaľovať.

Najnovšie články

Vybrané projekty

(PROJECT)

GUMIDECK - Eshop

Kategoria

E-shopy

Klient

GUMIDECK

Trvanie

2 týždne

(PROJECT)

Dr. LUCULLUS

Kategoria

Vývoj na mieru

Klient

Dr. Lucullus MEDICAL

Trvanie

1.3. 2025 - súčasnosť

(PROJECT)

Pneugrup - eshop

Kategoria

E-shopy

Klient

Pneuservis pod rondlom

Trvanie

2 mesiace

(PROJECT)

Dolce Felicita

Kategoria

E-shopy

Klient

Dolce Felicita

Trvanie

5 týždňov