Native Shopify kan ge en kund ett setpris som "4 för GBP 10" en gång, men det utlöser inte erbjudandet igen för varje ytterligare set. Så en kund som köper 8 av en GBP 3,49-artikel betalar inte GBP 20. De betalar GBP 23,96 eftersom Shopify tillämpar den fasta rabatten på ett enda set med fyra och debiterar fullt pris för resten. Ett verkligt återkommande flerprisköp, där varje komplett set med fyra omprissätts till GBP 10, behöver en rabatt som räknar om per set. På Shopify betyder det en rabatt byggd på Shopify Functions, inte den ursprungliga rabattbyggaren eller en falsk paketprodukt.
Den här guiden förklarar vad ursprungliga rabatter faktiskt gör med setprissättning, varför erbjudandet slutar efter ett set, det falska paketproduktknepe som köpmän använder och varför det skadar mer än det hjälper, hur en Functions-baserad rabatt räknar om priset för varje set, och ett fullständigt utarbetat exempel (4 för GBP 10, 8 för GBP 20, 12 för GBP 30) med den exakta matematiken lagd sida vid sida.
Kan Shopify göra "4 för GBP 10, 8 för GBP 20" ursprungligen?
Delvis, och det är just det som är hela problemet. Du kan skapa en ursprunglig rabatt som gör att fyra artiklar kostar GBP 10. Det du inte kan skapa ursprungligen är ett erbjudande där samma GBP 10-setpris återkommer av sig själv för varje ytterligare grupp på fyra i varukorgen. Shopifys inbyggda rabatttyper tillämpar ett fast belopp eller en procentsats ett visst antal gånger, inte en återkommande "varje komplett set omprissätts till GBP 10"-regel.
Det här är en verklig, återkommande köpmannafråga. På Shopify Community rapporterade en köpman som försökte köra "4 för GBP 10, 8 för GBP 20" över en 600-produktsamling att ursprungliga rabatter prissätter totalen en gång, så åtta artiklar kostade GBP 23,96 istället för de GBP 20 de ville ha, och frågade hur man gör varje ytterligare set om att utlösas igen. Svaret de fick var att ursprungliga rabatter inte kan göra återkommande setprissättning, och det föreslagna knepet var att bygga en falsk "paketprodukt" prissatt till GBP 10. Vi kommer tillbaka till varför det knepet är en fälla.
Den korta versionen: ursprunglig Shopify är bra för ett engångspris på en fast mängd. Det faller isär i det ögonblick kunden köper mer än ett set och förväntar sig att erbjudandet fortsätter att gälla.
IMAGE PLACEHOLDER (Image 1): Ett set kontra varje set
Föreslagen visuell: Ett rent 16:9-diagram på vit bakgrund. Vänster sida märkt "Native Shopify" visar en varukorg med 8 artiklar där endast den första gruppen på 4 är boxad i violett och prissatt GBP 10, de återstående 4 till fullt pris, totalt GBP 23,96 i rött. Höger sida märkt "Återkommande flerprisköp" visar samma 8 artiklar uppdelade i två violetta rutor på 4, var och en prissatt GBP 10, totalt GBP 20 i grönt. Minimalistisk platt vektor, varumärkesfärger violett och guld, sans-serif-etiketter, ingen fotografi.
Vad är ett återkommande flerprisköp-erbjudande?
Ett flerprisköp-erbjudande sätter ett pris för en grupp artiklar snarare än ett pris per artikel. "3 för 2", "2 för GBP 5" och "4 för GBP 10" är alla flerprisköp-erbjudanden. Ett återkommande flerprisköp är ett där gruppriset gäller igen automatiskt varje gång kunden lägger till en annan komplett grupp. Fyra artiklar kostar GBP 10, åtta kostar GBP 20, tolv kostar GBP 30 och så vidare, med erbjudandet som räknas om för varje komplett set.
Ordet som spelar roll är "per set". Kunden får inte ett fast belopp rabatt på sin beställning och de får inte en procentsats rabatt på varje enhet. De får ett fast pris för varje komplett paket av en setstorlek, med alla återstående artiklar som inte slutför ett set debiterat till normalt pris. Den per-set-omräkningen är exakt det beteende som ursprunglig Shopify inte har, och det är det beteende som en Functions-baserad rabatt lägger tillbaka.
Varför "per set" är svårare än det ser ut
För att prissa en varukorg korrekt måste rabattmotorn räkna hur många kompletta set som finns i varukorgen vid tidpunkten för checkout, tillämpa setpriset på var och en och sedan besluta vad som ska göras med resten. En varukorg med sex artiklar är ett komplett set på fyra för GBP 10 plus två lösa artiklar till fullt pris. En varukorg med åtta är två set på GBP 20 totalt. Det antalet ändras varje gång handlaren justerar en mängd, och det måste räknas om server-sidan så att numret på varukorgssidan är det nummer de faktiskt debiteras. Ursprungliga rabatter räknar inte om ett setantal på det här sättet, vilket är roten till överraskningen "8 för 23,96".
Varför rabatterar ursprunglig Shopify endast ett set?
Ursprunglig Shopify har två rabatttyper som ser ut som att de kunde göra flerprisköp, och båda stannar kort på olika sätt.
Rabatt på produkter tillämpar den fasta rabatten en gång
Den närmaste ursprungliga passningen för "4 för GBP 10" är en "Rabatt på produkter"-rabatt med en minimikvantitet på fyra och ett fast rabattbelopp kalibrerat för att ta ned fyra artiklar till GBP 10. Enligt Shopify Help Center, rabattar på produkter tar ett fast värde eller en procentsats från de kvalificerande artiklarna. Problemet är att det fasta värdet tillämps på de kvalificerande radartiklarna som ett avdrag, inte återutlösas för varje ytterligare set. Om fyra av en GBP 3,49-artikel behöver GBP 3,96 slagna av för att nå GBP 10, subtraherar Shopify det GBP 3,96 en gång. Lägg till fyra fler artiklar och Shopify subtraherar inte ett andra GBP 3,96. Kunden får ett setpris och fullt pris på allt efter. Det är precis så att åtta artiklar landar på GBP 23,96 snarare än GBP 20.
Buy X Get Y handlar om extra artiklar, inte en setstotal
Den andra kandidaten är en "Buy X Get Y"-rabatt. Per Shopifys utvecklardokumentation, definieras en Buy X Get Y-rabatt av vad kunden köper (en förutsättningsantal artiklar) och vad de då får (ett antal artiklar till rabatterat pris eller gratis). Det är byggt för att ge handlaren ytterligare rabatterade enheter, till exempel "köp 3, få 1 gratis". Det är inte byggt för att uttrycka "dessa fyra artiklar tillsammans kostar GBP 10". Du kan inte formulera en fast setstotal i köp/få-modellen, eftersom modellen rabatterar "få"-artiklarna, den omprissätter inte hela gruppen till ett fast nummer. Buy X Get Y har också andra ursprungliga gränser som köpmän träffar, inklusive ett tak på berättigade produkter, som vi behandlar i ett separat stycke om 100-produkts Buy X Get Y-gräns.
Så den ursprungliga byggaren ger dig ett setpris som avfyras en gång (rabatt på produkter) eller en extra-artikel-mekanik som inte alls kan uttrycka en setstotal (Buy X Get Y). Ingen av dem räknar om per set, och det är inte ett fel du kan konfigurera dig ur. Det är gränsen för vad de ursprungliga typerna är utformade att göra.
Det falska paketprodukt-knepet (och varför det slår tillbaka)
Det vanligaste knepet utan app, och det som föreslogs i den Community-tråden, är att skapa en ny produkt som representerar setet. Du gör en "4-pack"-produkt, ställer in priset på GBP 10 och säljer det. På ytan fungerar det: kunden lägger till en "4-pack" och betalar GBP 10, lägger till två och betalar GBP 20. Setpriset upprepas eftersom varje enhet av den falska produkten redan är prissatt som ett set.
Det slår tillbaka på flera kostbara sätt.
- Lagret blir asynkront. Om du inte ansluter paketet till dess komponentprodukter genom Shopifys ursprungliga Bundles-funktion eller en paketeringsapp minskar försäljningen av en "4-pack" inte lagret för de fyra verkliga artiklarna inuti. Du slutar med att underhålla två lagerverkligheter som driver isär.
- Kunder kan inte köpa de mängder de vill ha. Ett verkligt flerprisköp låter någon köpa 5 eller 7 enheter och få ett setpris plus lösa artiklar till fullt pris. En falsk paketprodukt tvingar köp i multipler av setstorlek. Vill ha sex? Du kan inte, du får fyra eller åtta.
- Det skalas inte över en samling. Köpmannen i Community-tråden ville ha erbjudandet över 600 produkter med mix-och-match-set. En falsk paketprodukt behöver en separat SKU för varje kombination kunder kanske vill ha, vilket är omöjligt bortom ett fåtal artiklar. Mix-och-match över en stor samling är exakt vad en paketprodukt inte kan representera.
- Det förorenar handel och analys. Paketet visas som sin egen produkt i sökning, samlingar och rapporter. Dina försäljningsdata per artikel gömmer sig nu inuti "4-pack"-radartiklar, och kunder som bläddrar på den verkliga produktsidan ser ett annat pris än paketet, vilket är förvirrande.
- Varianter multipliceras. Om de underliggande produkterna har storlekar eller färger måste varje variantkombination inuti setet finnas på paketprodukten, och variantantalet exploderar snabbt.
Knepet handlar ett prisproblem för ett lager-, katalog- och rapporteringsproblem. För en enda hjälteprodukt utan varianter kan det halka fram. För en verklig katalog är det inte underhållbar.
Hur en Functions-baserad rabatt räknar om per set
Det tillförlitliga sättet att köra ett återkommande flerprisköp är en rabatt som körs som kod inuti Shopifys egen checkoutpipeline, med Shopify Functions. Istället för en engångspå åtgärd raderar rabatten varukorgen vid checkoutid, räknar hur många kompletta set av setstorlek som finns, tillämpar setpriset på varje komplett set och lämnar eventuell rest till normalt pris. Eftersom det räknar om vid varje varukorgsförändring och körs server-sidan räknas priset om för varje set och varukorgstotalen matchar checkuttotalen.
Här är logiken i enkelt svenska för en "4 för GBP 10"-deal på en artikel som normalt kostar GBP 3,49:
- Räkna de kvalificerande enheterna i varukorgen. Säg att kunden har 10.
- Dela med setstorlek på fyra. Det är två kompletta set (8 enheter) med en rest på 2.
- Priset för de två kompletta setten på GBP 10 vardera, för GBP 20.
- Debitera de återstående 2 enheterna på normalt GBP 3,49 var, för GBP 6,98.
- Varukorgstotal: GBP 26,98 beräknad på samma sätt på varukorgssidan, checkoutsidan och i Shop Pay.
Varje steg är deterministiskt och upprepas när setantalet växer. Tolv enheter är tre set på GBP 30 utan rest. Eftersom beräkningen finns i en Function snarare än i tema JavaScript får accelererade kassor som Shop Pay, Apple Pay och Google Pay, som hoppar över varukorgssidan, fortfarande samma pris. Det här är samma anledning till att server-rabatter undviker varukorgs-kontra-checkoutskillnaden vi täcker i hur rabattstaplning fungerar i Shopify.
IMAGE PLACEHOLDER (Image 2): Räkna kompletta set vid checkout
Föreslagen visuell: Ett 16:9-flödesdiagram. Stegboxar från vänster till höger, anslutna med guldpillar: "Varukorg har 10 enheter" sedan "Dela med setstorlek 4" sedan "2 kompletta set + 2 resten" sedan "2 set prissatta GBP 10 var = GBP 20" sedan "2 lösa enheter på GBP 3,49 = GBP 6,98" sedan ett grönt totalkort "GBP 26,98, samma överallt". Ren platt vektor, violetta rutor med guldpillar, monospace-nummer, vit bakgrund, ingen fotografi.
Utarbetat exempel: 4 för GBP 10, 8 för GBP 20, 12 för GBP 30
Låt oss göra skillnaden konkret med en enda produkt som normalt säljs för GBP 3,49. Erbjudandet är "4 för GBP 10", vilket betyder att varje komplett set med fyra bör omprissättas till GBP 10 oavsett hur många set kunden köper. För att nå GBP 10 för ett set med fyra (normalt GBP 13,96) behöver erbjudandet ta av GBP 3,96 från varje komplett set.
Tabellen nedan visar samma varukorgar på tre sätt: fullt pris utan erbjudande, ursprunglig Shopify tillämpar den fasta rabatten en gång, och ett återkommande flerprisköp som räknar om per set.
Läs raden med 8 enheter. Fullt pris är GBP 27,92. Ursprunglig subtraherar den enda GBP 3,96-setrabatt och stannar, landar på GBP 23,96, den exakta siffran som Community-köpmannen rapporterade. Det återkommande flerprisköpet subtraherar GBP 3,96 två gånger, en gång för varje komplett set, och landar på GBP 20,00. Vid 12 enheter vidgas gapet till GBP 7,92 eftersom ursprunglig fortfarande endast har tillämpat en setrabatt medan flerprisköpet har tillämpat tre.
Lägg märke till att 6-enhetsraden är identisk för ursprunglig och flerprisköp på GBP 16,98 eftersom det bara finns ett komplett set oavsett (ett set på fyra på GBP 10 plus två lösa enheter på GBP 3,49). De två metoderna skiljer sig bara när ett andra set slutförts. Det är avslöjandet: om din kampanj aldrig säljer mer än ett set per beställning räcker ursprunglig. Om kunder rutinmässigt köper multiper överdebiterar ursprunglig dem tyst i det ögonblick de övergår till ett andra set, och varje köpman som kör denna deal får så småningom supportbiljetten "varför är min 8-pack inte GBP 20".
Hur man ställer in ett återkommande flerprisköp, steg för steg
Oavsett om du använder ursprungliga rabatter för en engångs-deal eller en Functions-baserad app för en verklig återkommande, är setupptänkandet detsamma. Här är den tillförlitliga sekvensen.
1. Skriv erbjudandet som setstorlek, setpris och restrest-regel
Fastställ tre nummer innan du rör vid några inställningar: setstorlek (4), setpris (GBP 10) och vad som händer med återstående enheter som inte slutför ett set (debiteras till normalt pris är det vanliga och mest rättvisa valet). Om du inte kan ange erbjudandet i dessa termer har du inte än ett flerprisköp, du har något annat.
2. Bestäm vad som räknas som "samma produkt"
Ett flerprisköp måste veta vilka varukorgsenheter som räknas mot ett set. Är det fyra av en exakt variant, fyra av någon variant av en produkt (mixa storlekar fritt) eller fyra från en handplocka grupp av relaterade produkter? Det här "räknings"-valet är skillnaden mellan en ren deal och en som antingen aldrig utlösas eller utlösas på orelaterade artiklar. Stackable kallar dessa per_variant, per_product och per_group-räkning, och det är samma beslut bakom volymrabatter per produkt.
3. Välj din mekanism ärligt
För en engångs-promotion är en ursprunglig "Rabatt på produkter"-rabatt med en minimikvantitet genuint bra och gratis. För en återkommande deal eller en deal som sträcker sig över en samling med mix-och-match använder du en rabattapp byggd på Shopify Functions så att priset räknas om per set. Sträck dig inte efter den falska paketprodukten om du inte har en enda variantfri hjälteprodukt och ingen avsikt att skala den.
4. Ställ in kombinabilitet medvetet
Bestäm om detta flerprisköp ska staplas med något annat. Ett flerprisköp är en produktklassrabatt, så det kan kombineras med en orderrabatt eller fri frakt (olika klasser) om du slår på kombination, men det staplas inte med en annan produktrabatt på samma artikel. Ställ detta med avsikt istället för att upptäcka det vid checkout.
5. Testa ett andra set, inte bara det första
Det här är steget som fångar den ursprungliga underskuddet. Testa inte med en varukorg på fyra och kalla det klart, eftersom fyra ser korrekt ut i varje tillvägagångssätt. Testa med åtta och tolv, lägg en utkast- eller testbeställning och läs checkoutsammanfattningen rad för rad. Om totalen är GBP 23,96 istället för GBP 20 på åtta enheter tillämpas ditt erbjudande en gång, inte per set. Testa sedan en icke-multipel som sex för att bekräfta att återstående enheter debiteras korrekt.
6. Verifiera accelererad checkout
Kör åtta-enhetsvarikorgen genom Shop Pay. En ursprunglig eller Functions-baserad rabatt prissätter den identiskt eftersom matematiken är server-sidan. En tema-skript "deal" är där accelererade kassor tyst släpper rabatten, så det här är din sista försvarslinje innan kunder hittar gapet för dig.
IMAGE PLACEHOLDER (Image 3): Testa det andra setet
Föreslagen visuell: En 16:9 produktskärmbild mockup av en Shopify checkout ordersammanfattning i ren Polaris-stil. Visa en varukorg med 8 identiska artiklar med en rad som läser "Flerprisköp: 4 för GBP 10 tillämpat x2" och en ordertotal på GBP 20,00 markerad i violett, med ett litet grönt bockmetabricka läses "Omräknad per set." Referens till docs/screenshot-manifest.md slot för en checkout sammanfattning fångst för att byta i den verkliga skärmen senare. Varumärkesaccentviolett, ingen fotografi.
Kör återkommande flerprisköp pålitligt med Stackable
Om du vill ha ett setpris som faktiskt utlösas igen för varje set, utan en falsk paketprodukt och utan att manuellt kontrollera testbeställningar, är detta vad Stackable är byggt för, och det håller sig inom Shopifys verkliga regler.
- Flerprisköpet matematiken körs i en Shopify Function, så setpriset räknas om per komplett set och varukorgssidan, checkout och Shop Pay beräknar alla den identiska totalen från en motor. Åtta enheter kommer till GBP 20, inte GBP 23,96, överallt.
- Du väljer vad som räknas som "samma produkt" med per_variant, per_product eller per_group-räkning, så ett set kan vara fyra av en exakt variant, fyra av vilken storlek som helst av en produkt, eller fyra från en handplocka grupp, utan att slå ihop hela din katalog.
- Upprepningslogik är inbyggd, så erbjudandet fortsätter att tillämpas när kvantiteten växer istället för att avfyra en gång. Det är samma per-set-omräkning bakom Stackable's BOGO och Buy X Get Y-erbjudanden.
- Stackable ändrar aldrig dina produktpriser. Flerprisköpet finns bara som en checkoutjustering, så det finns ingen falsk paket-SKU i din katalog, ditt lager förblir korrekt och avinstallation lämnar dina produkter exakt som de var.
Installera Stackable gratis och bekräfta att din 8-för-20-kampanj tar 20 GBP i varukorgen, i kassan och i Shop Pay, på usestackable.com/pricing.
Slutsatsen
- Native Shopify kan prissa ett set på "4 för GBP 10", men det tillämpar den fasta rabatten en gång, så åtta enheter kommer till GBP 23,96 istället för GBP 20 och erbjudandet slutar efter det första setet.
- Buy X Get Y kan inte heller uttrycka en setstotal; det rabatterar extra "få"-artiklar snarare än att omprissa en hel grupp till ett fast nummer.
- Ett återkommande flerprisköp räknas om per set: det räknar kompletta set i varukorgen, prissätter varje till setpriset och debiterar återstående enheter till normalt pris.
- Det falska paketprodukt-knepet tvingar köp i multipler, bryter lager och analys och kan inte göra mix-och-match över en samling. Undvik det bortom en enda enkel produkt.
- En rabatt byggd på Shopify Functions räknas om per set server-sidan, så varukorgen, checkout och Shop Pay visar alla samma total.
- Testa alltid en varukorg med två eller flera set (åtta och tolv enheter), inte bara en, eftersom ett enda set ser korrekt ut i varje tillvägagångssätt och döljer underskuddet.
- Verktyg som Stackable kör flerprisköpet i en Function med per-produkt-räkning och upprepningslogik, så 8 för GBP 20 debiterar GBP 20 utan en falsk produkt i din katalog.
Relaterade artiklar
- Räkning per produkt förklarat: välj exakt vad som räknas som "samma produkt" för alla kvantitetsbaserade erbjudanden.
- Shopify quantity breaks och tiered pricing: räkna en produkts varianter, inte hela samlingen, och håll priset från varukorg till checkout.
- BOGO och Buy X Get Y med upprepningslogik: samma per-set-omräkning tillämpad på köp-och-få-erbjudanden, bortom 100-produkts-gränsen.
- Volymrabatter per produkt i Shopify: nivå efter samma produkt, inte hela samlingen.
- Shopifys 100-produktsgräns för Buy X Get Y: varför ursprunglig Buy X Get Y toppar ut och hur man kör 3-för-2 över hela butiken.
- Hur rabattstaplning fungerar i Shopify: varför ursprunglig endast tillämpar högsta rabatten och hur klasser kombineras.
- Stackable prissättning: planer, den kostnadsfria nivån och vad var och en inkluderar.



