Mercive Logo
Caret right

Custom rabatter med Shopify Discount Functions

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:

Ofte stillede spørgsmål

Det er en type Shopify Function, der beregner og anvender rabatter direkte i Shopifys kurv- og checkout-flow. Én function kan ramme kurvlinjer, ordrens subtotal og fragtrate, og giver dig mulighed for at udtrykke betinget rabatlogik, som standardrabatterne i admin ikke understøtter.

Du målretter en cart line-rabat mod de varer, der matcher dine kriterier, for eksempel produkt-id, kollektion, tags eller metafelter, og angiver om rabatten er procent eller et fast beløb pr. linje. Logikken bor samlet i functionen, hvilket gør den nemmere at teste og vedligeholde end flere overlappende automatiske rabatter.

Rabatallokering bestemmer, hvordan et rabatbeløb fordeles over kurvens linjer. En ordrerabat fordeles typisk proportionalt over de relevante linjer, så moms, returneringer og regnskab stemmer linje for linje. Med en discount function styrer du hvilke linjer der er rabatberettigede, mens Shopify håndterer selve fordelingen.

Ja. Rabatter bygget med discount functions kan anvendes i Shopify POS, så jeres online butik og fysiske salgssteder følger samme rabatlogik. Det er en fordel for brands med både webshop og fysisk butik, der vil undgå at vedligeholde rabatregler to steder.

Når rabatten er betinget, segmenteret eller skal kombineres på en måde, admin ikke kan, og I vil eje logikken uden et ekstra abonnement eller performance-overhead i checkout. Til simple kampagner og enkeltstående rabatkoder er en standardrabat eller app ofte rigeligt.