Hvad er Shopify Discount Functions?
Shopify discount functions er en specifik type Shopify Function, der beregner og anvender rabatter direkte i Shopifys eget checkout og kurv-flow. I stedet for at hægte en ekstern app oven på checkout, lægger du din rabatlogik ind i platformen som kode, der eksekveres når en kunde lægger varer i kurven eller går til betaling. Det betyder, at rabatten beregnes på Shopifys infrastruktur og ikke i en tredjepartstjeneste, der skal kaldes udefra.
En enkelt discount function kan ramme tre niveauer: rabat på de enkelte linjer i kurven (cart lines), rabat på ordrens subtotal og rabat på fragtraten. Det dækker langt de fleste rabattyper, danske brands faktisk har brug for: mængderabatter, bundles, gratis fragt over et beløb, kundespecifikke priser og kampagner, der kun gælder bestemte kollektioner.
Hvordan virker rabatter i Shopify, og hvor kommer functions ind?
Hvordan virker Shopify-rabatter i praksis? Standardrabatter dækker procent- og beløbsrabatter, gratis fragt og køb-x-få-y, enten som rabatkoder kunden indtaster, eller som automatiske rabatter, der udløses ud fra regler. Det rækker fint til simple kampagner. Men i det øjeblik logikken bliver betinget, for eksempel "15 procent på kategori A, men kun hvis kurven indeholder mindst to varer fra kategori B, og kun for VIP-segmentet", rammer standardrabatterne en grænse.
Det er præcis her discount functions kommer ind. En function tager kurvens fulde kontekst som input, kunder, varer, mængder, metafelter, og returnerer hvilke rabatter der skal anvendes og hvordan de allokeres. Du kan altså udtrykke regler, der ikke kan klikkes sammen i admin. Resultatet vises korrekt i kurv og checkout, og siden 2024 kan rabatter bygget med discount functions også anvendes i Shopify POS, så online og fysisk butik følger samme logik.
Sådan rabatterer du en vare med en function
Hvordan rabatterer man en konkret vare med en function frem for en almindelig rabat? Du målretter en cart line-rabat mod de varer, der matcher dine kriterier. Kriterierne kan være produkt-id, kollektion, tags eller metafelter, og selve rabatten kan være procent eller fast beløb pr. linje. Fordelen er, at logikken bor ét sted og er testbar, i stedet for at være spredt ud over flere overlappende automatiske rabatter, der er svære at gennemskue.
Et tilbagevendende spørgsmål er rabatallokering, altså den funktion i Shopify, der bestemmer hvordan en rabat fordeles over kurvens linjer. Når en ordrerabat på for eksempel 200 kr. skal trækkes fra, fordeler Shopify beløbet proportionalt over de relevante linjer, så moms, returneringer og regnskab stemmer linje for linje. Med discount functions styrer du hvilke linjer der overhovedet er rabatberettigede, og overlader den præcise fordeling til Shopifys allokeringslogik, så tallene altid går op.
Sådan griber Mercive komplekse rabatregler an
Vores udgangspunkt hos Mercive er enkelt: brug standardrabatter så langt de rækker, og byg kun en function, når forretningslogikken kræver det. Mange brands installerer en tung rabat-app for et behov, en velafgrænset function kan dække hurtigere, billigere i drift og uden ekstra abonnement eller performance-overhead i checkout.
Når vi bygger en discount function, starter vi med at kortlægge de faktiske rabatscenarier og deres prioritering: hvad sker der når flere kampagner overlapper, hvilke rabatter må kombineres, og hvad er den ønskede adfærd ved kanten. Derefter implementerer vi logikken som kode, knytter den til produkt- og kundedata via metafelter og tester den mod realistiske kurve, inklusive POS. Tilgangen er en del af vores arbejde med checkout extensibility og vores løbende anbefalinger om at flytte logik fra apps ind i platformen.
Hvornår en function er den rigtige løsning
En discount function giver mest mening, når rabatten er betinget, segmenteret eller skal kombineres på en måde admin ikke understøtter, og når du vil eje logikken i stedet for at leje den via en app. For brands med komplekse B2B-priser, trinvise mængderabatter eller kampagner på tværs af kollektioner er det ofte den mest holdbare vej.
Omvendt er en simpel kampagnerabat eller en enkelt rabatkode sjældent grund til at skrive kode. Skellet mellem "konfigurer i admin" og "byg en function" er netop den vurdering, vi hjælper med, så I hverken overudvikler simple ting eller presser kompleks logik ind i værktøjer, der ikke er bygget til den.
Sådan kan Mercive hjælpe
Vil du arbejde videre med det her, kan du læse mere her:

