Přizpůsobení checkout business logiky se Shopify Functions
Aby platforma Shopify vyhověla specifickým potřebám obchodníků, nabízí efektivní možnosti customizace pomocí Shopify Functions, zejména co se procesu platby týče. V tomto článku se podíváme na to, co jsou Shopify Functions, jak fungují, pro co je využít a jaká jsou jejich omezení. Také si ukážeme příklad vč. kódu, jak tyto funkce využít k přizpůsobení procesu platby.
Co jsou Shopify Functions?
Shopify Functions jsou nový typ rozšíření, který umožňuje vývojářům přizpůsobit backendovou logiku Shopify obchodů. Na rozdíl od tradičních Shopify aplikací, které běží na externích serverech a komunikují s obchodem prostřednictvím API, Shopify Functions běží přímo na infrastruktuře Shopify. To umožňuje efektivnější a bezpečnější přizpůsobení, zejména procesu platby.
Shopify Functions umožňují vývojářům měnit nebo rozšiřovat základní funkcionalitu Shopify škálovatelným a bezpečným způsobem. Používají se především k úpravě aspektů, jako jsou ceny, doprava, slevy a další obchodní logika během platby.
Jak Shopify Functions fungují
Shopify Functions využívají technologii WebAssembly (WASM), což je odlehčený binární formát, který umožňuje běh kódu s téměř nativním výkonem v rámci platformy Shopify. Vývojáři mohou psát tyto funkce v programovacích jazycích, jako je JavaScript, TypeScript, Rust apod., které jsou následně kompilovány do WASM. Tento přístup zajišťuje spolehlivý a bezpečný běh funkcí s minimální latencí. Funkce jsou spouštěny specifickými eventy v ekosystému Shopify, jako je dosažení platební stránky nebo výběr možnosti dopravy zákazníkem.
Zdroj: shopify.com
Klíčové vlastnosti Shopify Functions
- Funkce jsou spouštěny eventy, jako je zahájení platebního procesu, aplikace slevy nebo výběr dopravy.
- Jsou definovány pomocí manifestu, který specifikuje vstupy a výstupy, stejně jako logiku funkce.
- Shopify Functions běží v sandbox prostředí, což zajišťuje bezpečnost a stabilitu platformy.
Zjednodušený tok fungování Shopify Functions:
- Událost (např. platba nebo výběr způsobu dopravy) spustí funkci.
- Shopify poskytne relevantní vstupní data funkci (např. detaily košíku, informace o zákazníkovi).
- Funkce provede svou logiku na základě těchto vstupů.
- Funkce vrátí výstup, který upraví proces platby, například přidá slevu nebo nabídne vlastní sazbu dopravy.
Kdo může využívat Shopify Functions?
Shopify Functions jsou primárně určeny pro obchodníky na Shopify Plus a vývojáře, kteří pro ně vytvářejí vlastní funkce.
Zdroj: shopify.com
Běžné případy použití Shopify Functions
Shopify Functions poskytují efektivní způsob, jak přizpůsobit a vylepšit platební proces. Zde je několik běžných případů jejich použití:
Dynamické slevy: Můžete vytvářet vysoce customizovanou logiku slev, kterou nelze nastavit pomocí vestavěných funkcí Shopify. Například funkce může nabízet „Kup jeden, dostaneš druhý zdarma“ pro specifické produkty nebo vytvářet odstupňované slevy na základě celkového počtu položek v košíku.
Specifická pravidla pro platby: Můžete zavést pravidla, která platí pouze pro určité produkty. Například pokud je určitý produkt v košíku, můžete vyžadovat minimální množství pro objednávku nebo omezit dostupné způsoby platby.
Vlastní metody a sazby dopravy: Shopify Functions mohou být použity k definování vlastních metod dopravy na základě různých podmínek, jako je lokalita zákazníka, obsah košíku nebo hodnota objednávky. Například obchodník může nabízet dopravu zdarma pro objednávky nad 1 000 Kč pouze zákazníkům z určitých regionů.
Výběr vlastních způsobů platby: Shopify Functions umožňují obchodníkům přizpůsobit dostupné způsoby platby na základě různých podmínek, například obsahu košíku nebo atributů zákazníka. Můžete například omezit určité platební metody pro objednávky s vysokou hodnotou.
Další informace naleznete v tutoriálech o vytváření přizpůsobení plateb a přizpůsobení doručení.
Příklad: Vytvoření vlastní možnosti dopravy
Na tomto příkladu si ukážeme, jak vytvořit vlastní možnost dopravy pomocí Shopify Functions. Nabídneme expresní dopravu zdarma pro zákazníky z České republiky, kteří mají v košíku položky za více než 5 000 Kč.
Krok 1: Definování Shopify Function
Pro tento příklad napíšeme funkci v JavaScriptu s použitím šablony Shopify Function. Logiku definujeme v souboru run.liquid.
export default function run(
input,
{
deliveryGroups: {
deliveryOptions: deliveryOptions,
cartLines: cartLines,
customer: customer,
},
}
) {
let availableDeliveryOptions = [];
const totalCartValue = cartLines.reduce((acc, line) => {
return acc + line.priceSet.presentmentMoney.amount;
}, 0);
const isCustomerInCzechRepublic = customer && customer.address && customer.address.countryCode === 'CZ';
if (isCustomerInCzechRepublic && totalCartValue > 5000) {
availableDeliveryOptions.push({
title: 'Free Express Shipping',
handle: 'free_express_shipping',
price: 0,
});
}
availableDeliveryOptions = [...availableDeliveryOptions, ...deliveryOptions];
return { availableDeliveryOptions };
}
Tato JavaScriptová funkce zjišťuje, zda je zákazník z České republiky, a zda celková hodnota jeho košíku přesahuje 5 000 Kč. Pokud jsou obě podmínky splněny, je během platby přidána možnost „Expresní doprava zdarma“.
Krok 2: Nasazení a testování funkce
Jakmile je logika napsána, je potřeba funkci nasadit pomocí Shopify CLI nebo jiných nástrojů pro nasazení.
- Aktualizujte přístupová oprávnění
- Nasaďte aplikaci
- Vytvořte přizpůsobení doručení pomocí GraphQL – více informací najdete zde.
Omezení Shopify Functions
I když jsou Shopify Functions velmi užitečné, je třeba vzít v úvahu některá jejich omezení:
- Shopify Functions jsou obvykle dostupné pouze na Shopify Plus plánu.
- Funkce je nunté psát v jazycích, které se kompilují do WebAssembly.
- Shopify Functions jsou momentálně omezeny na specifické eventy související s platbami (např. možnosti dopravy, slevy).
Závěr
Shopify Functions poskytují vývojářům učinný nástroj pro customizaci platebního procesu v obchodech na platformě Shopify. Nabízejí vysokou míru flexibility, škálovatelnosti a bezpečnosti pro obchodníky na Shopify Plus, kteří chtějí implementovat unikátní business logiku. Díky jejich event-driven přístupu a schopnosti běžet přímo na infrastruktuře Shopify otevírají nové možnosti pro vytváření pokročilých funkcionalit.
Podrobnější dokumentaci a další příklady najdete na Shopify Functions Documentation.