Naar de inhoud

Herhalende Multibuy-aanbiedingen in Shopify: Zo voer je '4 voor GBP 10' en '8 voor GBP 20' uit die per set herberekent

By Stackable TeamPublished on July 30, 2026Discount Strategy#quantity-breaks#volume-discounts
Herhalende Multibuy-aanbiedingen in Shopify: Zo voer je '4 voor GBP 10' en '8 voor GBP 20' uit die per set herberekent

Shopify kan een klant een vaste prijs geven zoals "4 voor GBP 10" eenmaal, maar het activeert dat aanbod niet opnieuw voor elke aanvullende set. Dus een klant die 8 van een GBP 3,49 item koopt, betaalt niet GBP 20. Ze betalen GBP 23,96, omdat Shopify de vaste korting op een enkele set van vier toepast en volledige prijs berekent voor de rest. Een echte herhalende multibuy, waarbij elke volledige set van vier opnieuw wordt geprijsd naar GBP 10, heeft een korting nodig die per set opnieuw wordt berekend. Op Shopify betekent dit een korting die op Shopify Functions is gebouwd, niet de native discount builder of een nepbundelproduct.

Deze gids legt uit wat native kortingen eigenlijk doen met set pricing, waarom het aanbod na één set stopt, de nepbundelproduct-workaround die winkeliers bereiken en waarom het meer kwaad dan goed doet, hoe een Functions-gebaseerde korting de prijs voor elke set opnieuw berekent, en een volledig uitgewerkt voorbeeld (4 voor GBP 10, 8 voor GBP 20, 12 voor GBP 30) met de exacte wiskunde naast elkaar.

Kan Shopify "4 voor GBP 10, 8 voor GBP 20" natively doen?

Deels, en dat gedeelte is precies het probleem. Je kunt een native korting maken die vier items GBP 10 kosten. Wat je natively niet kunt maken, is een aanbod waarbij dezelfde GBP 10 setprijs zichzelf herhaalt voor elke aanvullende groep van vier in de winkelwagen. De ingebouwde kortingstypes van Shopify passen een vaste hoeveelheid of een percentage een bepaald aantal keer toe, niet een herhalend "elke volledige set wordt opnieuw geprijsd naar GBP 10" regel.

Dit is een echte, terugkerende vraag van winkeliers. Op de Shopify Community rapporteerde een winkelier die "4 voor GBP 10, 8 voor GBP 20" op een collectie van 600 producten probeerde uit te voeren, dat native kortingen de totaal eenmaal prijzen, dus acht items kwamen op GBP 23,96 in plaats van de GBP 20 die ze wilden, en vroegen hoe ze elke aanvullende set het aanbod opnieuw laten activeren. Het antwoord dat ze kregen, was dat native kortingen geen herhalende set pricing kunnen doen, en de voorgestelde workaround was om een nepproduct "bundel" geprijsd op GBP 10 te bouwen. We zullen later terugkomen op waarom die workaround een valstrik is.

Kortom: native Shopify is prima voor een eenmalige setprijs op een vaste hoeveelheid. Het valt uit elkaar op het moment dat de klant meer dan één set koopt en verwacht dat het aanbod blijft gelden.

AFBEELDING PLACEHOLDER (Afbeelding 1): Eén set versus elke set
Voorgestelde visuele: Een schoon 16:9 diagram op een witte achtergrond. Linkerkant gelabeld "Native Shopify" toont een winkelwagen met 8 items met alleen de eerste groep van 4 in violet omlijnd en geprijsd op GBP 10, de resterende 4 tegen volledige prijs, totaal GBP 23,96 in rood. Rechterkant gelabeld "Herhalende multibuy" toont dezelfde 8 items verdeeld in twee violette dozen van elk 4, elk geprijsd op GBP 10, totaal GBP 20 in groen. Minimale platte vector, merkkleur violet en goud, sans-serif labels, geen fotografie.

Wat is een herhalend multibuy-aanbod?

Een multibuy-aanbod stelt een prijs voor een groep items in plaats van een prijs per item. "3 voor 2," "2 voor GBP 5" en "4 voor GBP 10" zijn allemaal multibuy-aanbiedingen. Een herhalende multibuy is een waarbij de groepsprijs automatisch opnieuw wordt toegepast elke keer dat de klant een andere volledige groep toevoegt. Vier items kosten GBP 10, acht kosten GBP 20, twaalf kosten GBP 30, enzovoort, met het aanbod dat voor elke voltooide set opnieuw wordt berekend.

Het woord dat ertoe doet is "per set." De klant krijgt geen vast bedrag korting op zijn bestelling en geen percentage korting op elke eenheid. Ze krijgen een vaste prijs voor elke volledige bundel van een setgrootte, met alle restartikelen die geen set voltooien tegen hun normale prijs. Die herberekening per set is precies het gedrag dat native Shopify niet heeft, en het is het gedrag dat een Functions-gebaseerde korting toevoegt.

Waarom "per set" moeilijker is dan het lijkt

Om een winkelwagen correct te prijzen, moet de discount engine tellen hoeveel volledige sets in de winkelwagen zitten op het moment van afrekenen, de setprijs op elk toepassen en vervolgens beslissen wat met de rest te doen. Een winkelwagen met zes items is één volledige set van vier voor GBP 10 plus twee losse items tegen volledige prijs. Een winkelwagen met acht is twee sets voor GBP 20 plat. Die telling verandert elke keer dat de winkelier een hoeveelheid aanpast, en deze moet aan de serverkant opnieuw worden berekend zodat het getal op de winkelwagenpagina het getal is dat ze eigenlijk betalen. Native kortingen berekenen een setaantal niet op deze manier opnieuw, wat de wortel is van de "8 voor 23,96" verrassing.

Waarom geeft native Shopify slechts één set korting?

Native Shopify heeft twee kortingstypes die eruitzien alsof ze multibuy kunnen doen, en beide vallen op verschillende manieren kort.

Bedrag korting op producten past de vaste korting eenmaal toe

De meest geschikte native optie voor "4 voor GBP 10" is een "Bedrag korting op producten" korting met een minimumhoeveelheid van vier en een vast bedrag korting dat is afgestemd om vier items tot GBP 10 te brengen. Volgens de Shopify Help Center, kortingen op bedrag van producten nemen een vaste waarde of een percentage af van de in aanmerking komende items. Het probleem is dat de vaste waarde als één aftrek wordt toegepast op de gekwalificeerde regelitems, niet opnieuw geactiveerd voor elke aanvullende set. Als vier van een GBP 3,49 item GBP 3,96 moeten worden afgetrokken om tot GBP 10 te komen, trekt Shopify die GBP 3,96 eenmaal af. Voeg vier items toe en Shopify trekt geen tweede GBP 3,96 af. De klant betaalt één setprijs en volledige prijs voor alles erna. Precies zo belanden acht items op GBP 23,96 in plaats van GBP 20.

Buy X Get Y gaat over extra items, niet over een settotaal

De andere kandidaat is een "Buy X Get Y" korting. Volgens Shopify's developer documentation, wordt een Buy X Get Y korting gedefinieerd door wat de klant koopt (een voorvereiste hoeveelheid items) en wat ze vervolgens krijgen (een hoeveelheid items tegen gereduceerde prijs of gratis). Het is ontworpen om de winkelier extra gereduceerde eenheden te geven, bijvoorbeeld "koop 3, krijg 1 gratis." Het is niet ontworpen om "deze vier items kosten samen GBP 10" uit te drukken. Je kunt een vast settotaal niet uitdrukken in het koop/krijg-model, omdat het model de "krijg" items korting geeft, het prijst de hele groep niet opnieuw naar een vast getal. Buy X Get Y brengt ook andere native limieten mee die winkeliers raken, inclusief een limiet op in aanmerking komende producten, die we in een apart stuk behandelen over de limiet van 100 producten op Buy X Get Y.

Dus de native builder geeft je een setprijs die eenmaal afgaat (bedrag korting op producten) of een extra-item mechanisme dat helemaal geen settotaal kan uitdrukken (Buy X Get Y). Geen van beide berekent per set opnieuw, en dat is geen bug waarvoor je je er uit kunt configureren. Het is de grens van wat de native types zijn ontworpen om te doen.

De nepbundel-product workaround (en waarom het tegenvalt)

De meest voorkomende no-app workaround, en degene die in die Community thread wordt voorgesteld, is om een nieuw product te maken dat de set vertegenwoordigt. Je maakt een "4-pak" product, stelt de prijs in op GBP 10 en verkoopt dat. Aan de oppervlakte werkt het: de klant voegt één "4-pak" toe en betaalt GBP 10, voegt twee toe en betaalt GBP 20. De setprijs herhaalt zich omdat elke eenheid van het nepproduct al als set wordt geprijsd.

Het loopt uit op verschillende dure manieren.

  • Voorraad raakt uit synchronisatie. Tenzij je de bundel met de samenstellende producten verbindt via Shopify's native Bundles-functie of een bundeling-app, vermindert het verkopen van één "4-pak" niet de voorraad van de vier echte items erin. Je eindigt ermee twee voorraadrealiteiten te handhaven die uit elkaar drijven.
  • Klanten kunnen niet de hoeveelheden kopen die ze willen. Een echte multibuy laat iemand 5 of 7 eenheden kopen en krijgt één set geprijsd plus losse items tegen volledige prijs. Een nepbundelproduct forceert aankopen in veelvouden van de setgrootte. Wil je zes? Dat kan niet, je krijgt vier of acht.
  • Het schaalt niet over een collectie. De winkelier in de Community thread wilde het aanbod over 600 producten met mix-and-match sets. Een nepbundelproduct heeft een aparte SKU nodig voor elke combinatie die klanten willen hebben, wat onmogelijk is voorbij een handvol items. Mix-and-match over een grote collectie is precies wat een bundelproduct niet kan vertegenwoordigen.
  • Het vervuilt merchandising en analytics. De bundel verschijnt als zijn eigen product in zoeken, collecties en rapporten. Je verkoopgegevens per item verbergen nu zich in "4-pak" regelitems, en klanten die de echte productpagina doorbladeren, zien een ander prijzen dan de bundel, wat verwarrend is.
  • Varianten vermenigvuldigen. Als de onderliggende producten maten of kleuren hebben, moet elke variantcombinatie in de set op het bundelproduct voorkomen, en het variantaantal stijgt snel.

De workaround ruilt een prijsprobleem in voor een voorraadbeheer-, catalog- en rapportageprobleem. Voor een single hero product zonder varianten kan het mank gaan. Voor een echte catalog is het niet onderhoudbaar.

Hoe een Functions-gebaseerde korting per set opnieuw berekent

De betrouwbare manier om een herhalende multibuy uit te voeren, is een korting die als code in Shopify's eigen afrekenpijplijn wordt uitgevoerd, met behulp van Shopify Functions. In plaats van een vaste aftrek die eenmaal wordt toegepast, leest de korting de winkelwagen op het moment van afrekenen, telt hoeveel volledige sets van de setgrootte aanwezig zijn, past de setprijs op elke volledige set toe en laat elke rest tegen normale prijs. Omdat het op elke winkelwagenwisseling opnieuw berekent en aan de serverkant wordt uitgevoerd, wordt de prijs voor elke set opnieuw berekend en komt het winkelwagenwaartotaal overeen met het afrekenwaartotaal.

Hier is de logica in gewoon Nederlands voor een "4 voor GBP 10" aanbod op een artikel dat normaal GBP 3,49 kost:

  1. Tel de in aanmerking komende eenheden in de winkelwagen. Zeg dat de klant 10 heeft.
  2. Deel door de setgrootte van vier. Dat zijn twee volledige sets (8 eenheden) met een rest van 2.
  3. Prijs de twee volledige sets met elk GBP 10, voor GBP 20.
  4. Bereken de resterende 2 eenheden tegen normaal GBP 3,49 elk, voor GBP 6,98.
  5. Winkelwagentotaal: GBP 26,98, op dezelfde manier berekend op de winkelwagenpagina, afrekenen en in Shop Pay.

Elke stap is deterministisch en herhaalt zich als de setaantal groeit. Twaalf eenheden is drie sets voor GBP 30 zonder rest. Omdat de berekening in een Function leeft in plaats van in thema-JavaScript, krijgen versnelde checkouts zoals Shop Pay, Apple Pay en Google Pay, die de winkelwagenpagina overslaan, nog steeds dezelfde prijs. Dit is dezelfde reden waarom kortingen aan de serverkant de mismatch tussen winkelwagen en afrekenen voorkomen die we behandelen in hoe discount stacking in Shopify werkt.

AFBEELDING PLACEHOLDER (Afbeelding 2): Volledige sets tellen bij afrekenen
Voorgestelde visuele: Een 16:9 stroomdiagram. Stapvakken van links naar rechts, verbonden met gouden pijlen: "Winkelwagen heeft 10 eenheden" dan "Deel door setgrootte 4" dan "2 volledige sets + 2 rest" dan "2 sets geprijsd GBP 10 elk = GBP 20" dan "2 losse eenheden op GBP 3,49 = GBP 6,98" dan een groen totaalkaart "GBP 26,98, overal hetzelfde". Schone platte vector, violette vakken met gouden pijlen, monospace nummers, witte achtergrond, geen fotografie.

Uitgewerkt voorbeeld: 4 voor GBP 10, 8 voor GBP 20, 12 voor GBP 30

Laten we het verschil concreet maken met een enkel product dat normaal voor GBP 3,49 wordt verkocht. Het aanbod is "4 voor GBP 10," wat betekent dat elke volledige set van vier opnieuw moet worden geprijsd naar GBP 10, ongeacht hoeveel sets de klant koopt. Om GBP 10 voor een set van vier te bereiken (normaal GBP 13,96), moet het aanbod GBP 3,96 van elke volledige set aftrekken.

De tabel hieronder toont dezelfde winkelwagens op drie manieren: volledige prijs zonder aanbod, native Shopify past de vaste korting eenmaal toe en een herhalende multibuy die per set opnieuw berekent.

Lees de rij met 8 eenheden. Volledige prijs is GBP 27,92. Native trekt de enkele GBP 3,96 setkorting af en stopt, lands op GBP 23,96, precies het cijfer dat de Community winkelier rapporteerde. De herhalende multibuy trekt GBP 3,96 twee keer af, eenmaal voor elke volledige set, en lands op GBP 20,00. Bij 12 eenheden verwijdt de kloof zich tot GBP 7,92, omdat native nog maar één setkorting heeft toegepast terwijl de multibuy drie heeft toegepast.

Merk op dat de rij met 6 eenheden voor native en multibuy identiek is op GBP 16,98, omdat er hoe dan ook slechts één volledige set is (één set van vier op GBP 10, plus twee losse eenheden op GBP 3,49). De twee benaderingen divergeren alleen eenmaal wanneer een tweede set compleet is. Dat is het teken: als je promotie nooit meer dan één set per bestelling verkoopt, is native genoeg. Als klanten routinematig meerdere kopen, berekent native hen stiekem te veel op het moment dat ze in een tweede set stappen, en elke winkelier die dit aanbod uitvoert, krijgt uiteindelijk het "waarom is mijn 8-pak niet GBP 20" support ticket.

Hoe je een herhalende multibuy stap voor stap instelt

Of je native kortingen gebruikt voor een single-set aanbod of een Functions-gebaseerde app voor een echte herhalende, de opstellingsgedachte is dezelfde. Hier is de betrouwbare volgorde.

1. Schrijf het aanbod op als set grootte, set prijs en rest regel

Zet drie getallen vast voordat je instellingen aanraakt: de setgrootte (4), de setprijs (GBP 10) en wat er gebeurt met restunits die geen set voltooien (tegen normale prijs berekend is de gebruikelijke en eerlijkste keuze). Als je het aanbod niet in die termen kunt stellen, heb je nog geen multibuy, je hebt iets anders.

2. Bepaal wat telt als "hetzelfde product"

Een multibuy moet weten welke winkelwageneenheden naar een set tellen. Is het vier van één exacte variant, vier van elke variant van één product (meng maten vrij), of vier uit een handgelezen groep gerelateerde producten? Deze "tellings" keuze is het verschil tussen een schoon aanbod en een dat ofwel nooit afgaat ofwel afgaat op niet-gerelateerde items. Stackable noemt deze per_variant, per_product en per_group tellen, en het is dezelfde beslissing achter per-product volume kortingen.

3. Kies je mechanisme eerlijk

Voor een one-set-only promotie is een native "Bedrag korting op producten" korting met een minimumhoeveelheid echt prima, en gratis. Voor een herhalend aanbod of een aanbod dat een collectie met mix-and-match omvat, gebruikt u een korting-app die op Shopify Functions is gebouwd, zodat de prijs per set opnieuw wordt berekend. Grijp niet naar het nepbundelproduct tenzij je een enkel no-variant hero product hebt en niet van plan bent het te schalen.

4. Stel combineerbaarheid opzettelijk in

Bepaal of deze multibuy met iets anders zou moeten stapelen. Een multibuy is een korting op productklasse, dus het kan combineren met een orderkorting of gratis verzending (verschillende klassen) als je combineren inschakelt, maar het zal niet stapelen met een ander productkorting op dezelfde item. Stel dit opzettelijk in in plaats van het bij afrekenen te ontdekken.

5. Test een tweede set, niet alleen de eerste

Dit is de stap die de native tekortkoming vangt. Test niet met een winkelwagen van vier en zeg dat het klaar is, want vier ziet er in elke benadering correct uit. Test met acht en twaalf, plaats een concept- of testorder en lees de afrekensamenvattingslijn voor lijn. Als het totaal GBP 23,96 is in plaats van GBP 20 voor acht eenheden, wordt uw aanbod eenmaal toegepast, niet per set. Test vervolgens een niet-meervoud zoals zes om te bevestigen dat restunits correct worden berekend.

6. Controleer versnelde afrekening

Voer de winkelwagen met acht eenheden door Shop Pay. Een native of Functions-gebaseerde korting prijst het identiek omdat de wiskunde aan de serverkant is. Een thema-script "aanbod" is waar versnelde checkouts stiekem de korting loslaten, dus dit is uw laatste verdedigingslinie voordat klanten de kloof voor u vinden.

AFBEELDING PLACEHOLDER (Afbeelding 3): Test de tweede set
Voorgestelde visueel: Een 16:9 productschermafbeelding van een Shopify-afrekenordersamenvattingweergave in schone Polaris-stijl. Toon een winkelwagen met 8 identieke items met een regel die luidt "Multibuy: 4 voor GBP 10 toegepast x2" en een ordertotaal van GBP 20,00 gemarkeerd in violet, met een klein groen vinkje badge dat luidt "Herberekend per set." Verwijs naar de docs/screenshot-manifest.md slot voor een afrekensamenvattingafbeelding om later het echte scherm in te wisselen. Merkaccent violet, geen fotografie.

Voer herhalende multibuy betrouwbaar uit met Stackable

Als je een setprijs wilt die eigenlijk opnieuw voor elke set activeert, zonder een nepbundelproduct en zonder handmatig testen ordervolgorde, is dit wat Stackable voor is gebouwd, en het blijft binnen Shopify's echte regels.

  • De multibuy-wiskunde wordt uitgevoerd in een Shopify Function, dus de setprijs berekent per volledige set opnieuw en de winkelwagenpagina, afrekenen en Shop Pay berekenen allemaal dezelfde totaal van één engine. Acht eenheden komen op GBP 20, niet GBP 23,96, overal.
  • Je kiest wat telt als "hetzelfde product" met per_variant, per_product of per_group tellen, dus een set kan vier van één exacte variant zijn, vier van elke maat van één product, of vier uit een handgelezen groep, zonder je gehele catalog samen te voegen.
  • Herhalingslogica is ingebouwd, dus het aanbod blijft toepassen naarmate de hoeveelheid groeit in plaats van eenmaal af te gaan. Het is dezelfde herberekening per set achter Stackable's BOGO and Buy X Get Y offers.
  • Stackable verandert nooit je productprijzen. De multibuy bestaat alleen als een afrekenkorting, dus er is geen nepbundel SKU in je catalog, je voorraad blijft nauwkeurig, en desinstallatie laat je producten precies als ze waren.

Installeer Stackable gratis en bevestig dat je 8-voor-20 aanbod GBP 20 berekent in de winkelwagen, bij afrekenen en in Shop Pay op usestackable.com/pricing.

De onderste lijn

  • Native Shopify kan één set prijzen op "4 voor GBP 10," maar het past de vaste korting eenmaal toe, dus acht eenheden komen op GBP 23,96 in plaats van GBP 20 en het aanbod stopt na de eerste set.
  • Buy X Get Y kan een settotaal evenmin uitdrukken; het geeft korting op extra "krijg" items in plaats van een hele groep opnieuw in te prijzen naar een vast getal.
  • Een herhalende multibuy berekent per set opnieuw: het telt volledige sets in de winkelwagen, prijst elk tegen de setprijs en berekent restunits tegen normale prijs.
  • De nepbundel-product workaround forceert aankopen in veelvouden, verbreekt voorraadbeheer en analytics, en kan mix-and-match over een collectie niet doen. Vermijd het voorbij een enkel eenvoudig product.
  • Een korting gebouwd op Shopify Functions berekent per set aan de serverkant opnieuw, dus de winkelwagen, afrekenen en Shop Pay tonen allemaal hetzelfde totaal.
  • Test altijd een winkelwagen met twee of meer sets (acht en twaalf eenheden), niet alleen één, omdat een enkele set in elke benadering correct lijkt en het tekort verbergt.
  • Hulpmiddelen zoals Stackable voeren de multibuy in een Function uit met per-product tellen en herhalingslogica, dus 8 voor GBP 20 berekent GBP 20 zonder een nepproduct in je catalog.

Gerelateerde artikelen

Veelgestelde vragen

Vind antwoorden op veelgestelde vragen

  • Alleen voor een enkele set. Je kunt een native "Korting op producten" discount maken die vier items GBP 10 kosten, maar Shopify past die vaste korting slechts eenmaal toe, dus acht items kosten niet GBP 20. Bij een GBP 3,49 item landen acht eenheden op GBP 23,96 omdat alleen de eerste set korting krijgt. Een aanbod dat elke set opnieuw prijst, heeft een korting nodig die op Shopify Functions is gebouwd.

  • Omdat native "Korting op producten" een vaste waarde slechts eenmaal van de gekwalificeerde items aftrekt, in plaats van opnieuw te activeren voor elke aanvullende set. Het heeft geen concept van het tellen van complete sets en het opnieuw toepassen van de prijs. Eenheden buiten de eerste set worden tegen volledige prijs berekend, daarom zien winkeliers totalen zoals GBP 23,96 in plaats van GBP 20 voor acht items.

  • Een multibuy stelt een prijs in voor een groep items, zoals "4 voor GBP 10." Een herhalende multibuy past die groepsprijs opnieuw toe voor elke aanvullende volledige groep, dus 4 is GBP 10, 8 is GBP 20 en 12 is GBP 30, met resterende eenheden tegen normale prijs. Het belangrijkste gedrag is dat het aanbod per set opnieuw wordt berekend in plaats van eenmaal toe te passen.

  • Nee. Shopify's Buy X Get Y korting geeft de klant extra items tegen een gereduceerde prijs of gratis, bijvoorbeeld "koop 3, krijg 1 gratis." Het wordt gedefinieerd door een voorvereiste hoeveelheid en een beloningshoeveelheid, dus het kan niet "deze vier items kosten samen GBP 10" uitdrukken. Buy X Get Y heeft ook eigen beperkingen, inclusief een limiet op in aanmerking komende producten, dus het is de verkeerde tool voor set pricing.

Stackable Team

The team building Stackable, the reliability-first bulk and volume discount app for Shopify. We write about discount stacking, Shopify Functions, and how to run promotions that hold up at checkout.

We gebruiken essentiële cookies om deze site te laten werken en, alleen met uw toestemming, analytische cookies om verkeer te begrijpen. Lees ons Cookiebeleid.