Shopifys inbyggda Köp X Få Y-rabatt begränsar hur många produkter du kan markera som berättigade, en gräns som i stor utsträckning rapporteras av handlare och Shopify-support som 100 produkter, och den tillämpas ett fast antal gånger per beställning snarare än att upprepa när vagnen växer. Denna kombination är varför du inte kan köra en verklig butiksvid 3-för-2 på en katalog med flera hundra objekt, och varför en kund som köper nio kvalificerande produkter inte automatiskt får tre av dem gratis. För att köra butiksvid eller upprepad Köp X Få Y behöver du en rabatt byggd på Shopify Functions, som inte har någon sådan produktgräns och kan tillämpa erbjudandet på nytt varje gång köpmängden uppfylls.
Den här guiden förklarar hur inbyggd Köp X Få Y fungerar, exakt var den stannar (produktgränsen, ingen-upprepa-beteendet, billigaste-objektnuansen, och hur varianter räknas), varför dessa gränser finns, de hack som handlare sträcker sig efter och varför utkastorder och duplicerade samlingar tyst bryter koder, analys och accelererad kassa, och det Functions-baserade sättet att köra 3-för-2 och köp-6-få-2 över hela din katalog.
Har Shopifys Köp X Få Y en produktgräns?
Ja. När du bygger en Köp X Få Y-rabatt i Shopify admin väljer du vilka produkter eller samlingar kunden måste köpa och vilka de får rabatterade. Att lägga till dessa berättigade objekt en och en stöter på ett tak. Handlare på Shopify-forumen rapporterar att byggaren slutar låta dem lägga till produkter när de når 100, och Shopify-support har bekräftat samma gräns i dessa trådar. I en mycket läst Shopify Partner-tråd med titeln"Letar efter ett sätt att komma runt Shopifys 100-produktsgräns för Köp X Få Y", en handlare som försöker köra en enkel 3-för-2 över en stor katalog får höra att det finns en hård 100-produktsgräns och att ingen inbyggd inställning tar bort den.
En snabb anmärkning om precision. Shopifys offentliga utvecklardokumentation beskriverKöp X Få Y-rabattobjektenoch deras beteende, men den skriver inte ut ett exakt "100" i API-referensen. Så behandla 100 som den allmänt rapporterade inbyggda gränsen som handlare och Shopify-support nämner i Hjälpcentret och gemenskapen, snarare än ett nummer inristat i plattformen. Det praktiska slutsatsen ändras inte: inbyggd Köp X Få Y är inte utformad för att täcka en hel stor katalog, och när du passerar gränsen kan du inte lägga till fler berättigade produkter.
Gränsen biter hårdast på exakt de butiker som vill ha denna kampanj mest. En 400-SKU-beklädnadsvarumärke som kör "köp vilka som helst 3, billigaste gratis" kan inte välja varje produkt. En hemvårdsbutik med 600 objekt kan inte sätta sitt fullständiga sortiment i en blanda-och-matcha 3-för-2. Du hamnar antingen på att begränsa kampanjen till ett godtyckligt 100 objekt eller dela upp den i flera rabatter, var och en med sin egen berättigadelista, vilket är skört och lätt att få fel.
BILD PLACEHOLDER (Bild 1): Vägen på 100 produkter
Föreslagen visuell: Ett rent 16:9-diagram på en vit bakgrund. Ett stort produktnät med små objektbrickor bleknar från solid violett (de första 100, märkta "berättigade") till gråade-ut brickor (märkta "kan inte läggas till"), med en djärv guldvertikal linje märkt "100-produktsgräns" som skiljer dem. En liten räknare i hörnet läser "100 / 400 produkter." Platt vektorstil, varumärkesfarger violett och guld, sans-serif-etiketter, ingen fotografering.
Hur fungerar inbyggd Köp X Få Y egentligen?
Köp X Få Y, ibland kallad BXGY eller BOGO, är en av Shopifys inbyggda rabatttyper. Det belönar en kund med rabatterade eller gratis objekt när de köper en kvalificerande mängd andra objekt. Det är en produktklassrabatt, vilket innebär att den minskar priset på specifika varukortsledare snarare än orderunderenheten eller frakt.
"Kunden köper" och "kunden får" halvorna
Varje Köp X Få Y-rabatt har två halvor. Sidan "kunden köper" ställer in utlösaren: en minimummängd (eller ett minimumspenst) av produkter eller samlingar du väljer. Sidan "kunden får" ställer in belöningen: en mängd produkter eller samlingar som blir gratis eller rabatterade med en procentsats eller fast belopp. ShopifysKöp X Få Y skapa-mutationexponerar exakt dessa fält,customerBuysochcustomerGets, och objekten på varje sida kan vara produkter eller samlingar. En klassisk inställning är köp 2 från en samling, få 1 från samma samling gratis, vilket producerar det välkända "köp 2, få 1"-erbjudandet.
Billigaste-objektnuansen
För en "3-för-2"-stilkampanj är avsikten att det billigaste av de tre kvalificerande objekten blir gratis. Inbyggd Köp X Få Y kan göra "får"-objektet gratis, men det har inte ett dedikerat "alltid rabatt det billigaste berättigade objektet i vagnen"-läge på det sätt handlare ofta antar. När köp- och få-listorna överlappar (kunden köper från och får från samma samling) tillämpar Shopify rabaten på den lägre prissatta berättigade ledaren, vilket approximerar billigaste-gratis för en enda uppsättning. Problemet börjar när vagnen innehåller mer än en uppsättning, för erbjudandet slutar inte att hitta och befria nästa billigaste objekt när kvantiteterna växer. Det är upprepningsproblemet, täckt nedan.
Hur varianter räknas
Köp X Få Y fungerar på produkt- och variantnivå, vilket är en styrka och en fälla. Du kan inkludera specifika varianter, vilket är vad en handlare vill ha när endast vissa storlekar eller färger ska kvalificeras. Men berättigande är fortfarande en begränsad lista över produkter eller samlingar, så en butik som vill ha "vilken variant som helst av vilken produkt som helst, blanda och matcha" kör rakt tillbaka in i produktgränsen. Du kan inte uttrycka "hela katalogen, alla varianter, köp vilka som helst 3" som en enda inbyggd regel när katalogen överskrider gränsen.
Varför kan inte inbyggd Köp X Få Y upprepa?
Det här är den andra väggen, och för många butiker är det värre än produktgränsen. Inbyggd Köp X Få Y tillämpar ett begränsat antal gånger per beställning snarare än att tillämpa på nytt för varje kvalificerande uppsättning i vagnen. Shopifys egen create-mutation innehåller ettusesPerOrderLimitfält, och det dokumenterade exemplet ställer det på1, vilket innebär att rabatten beviljas en gång för denna order. Det finns ingen inbyggd växel som säger "tillämpa det här erbjudandet automatiskt varje gång kunden köper en annan kvalificerande uppsättning."
Spela ut det. Du kör "köp 6, få 2 gratis." En kund lägger till 12 kvalificerande objekt i sin vagn, klart två kompletta uppsättningar. De förväntar sig 4 gratis objekt. Inbyggd Köp X Få Y ger dem 2, för erbjudandet affärerade en gång och stannade. Samma sak bryter en butiksvid 3-för-2: en kund med 9 berättigade objekt i vagnen bör få 3 gratis (tre uppsättningar på tre), men den inbyggda rabatten befriar bara ett objekt. Handlarens kampanjaffisch säger en sak och kassan en annan, vilket undergräver förtroendet och genererar supportbiljetter.
Handlare beskriver att de vill ha denna mönster exakt i forumen: "köp 6 få 2 gratis, köp 9 få 3 gratis," ett förhållande som skalbar med vagn mängd. Inbyggd Köp X Få Y byggdes inte för att beräkna på nytt per uppsättning, så erbjudandet underleverar antingen eller tvingar handlaren att begränsa kampanjen på sätt kunderna tycker är förvirrande.
Varför finns 100-produktsgränsen?
Gränsen är inte godtycklig grymhet. Inbyggda rabatter lagrar sin berättigande som en explicit lista över produkt- eller samlingsmärkningar bifogade rabattposten, och Shopify håller denna lista begränsad så att rabatten förblir snabb att utvärdera på varje vagn och vid kassa. En rabatt som var tvungen att skanna en obegränsad lista med tusentals specifika produkter på varje vagnuppdatering skulle vara långsammare och svårare att hålla konsistent över varukortssidan, kassan och accelererade kassasystem. Att begränsa berättigadelistan håller inbyggda rabatter förutsägbar.
Det designval som tar bort taket är att sluta lagra en jättestor lista med enskilda produkter och istället utvärdera berättigande med logik vid körning. Det är exakt vad Shopify Functions gör. Istället för "här är 400 specifika produkt-ID:er" kan en Function sägas "vilken artikel som helst med denna tag" eller "vilken artikel som helst i denna samling" och bestäm, artikel för artikel, när vagnen beräknas, om varje ledare kvalificeras. Eftersom regeln är logik snarare än en lagrad lista slutar katalogstorlek att spela roll. Detta är samma arkitektur som Shopify själv pekar handlare mot för rabattbeteende som den inbyggda byggaren inte kan uttrycka.
BILD PLACEHOLDER (Bild 2): Listbaserad kontra logikbaserad berättigande
Föreslagen visuell: En 16:9 delad panel illustration. Vänster panel märkt "Inbyggd: lagrad lista" visar en rabattpost som innehåller en fast stack med 100 produktbrickor med en röd "fullständig" stämpel. Höger panel märkt "Functions: en regel" visar ett enda regelchip som läser "tag = sale" med en pil som fläktar ut till ett obegränsat produktnät med alla markerade gröna. En mittre skiljevägg. Varumärkesfarger violett och guld, platt vektorstil, ingen fotografering.
Vilka hack försöker handlare och varför bryter de?
Eftersom inbyggd Köp X Få Y faller kort, griper butiker till hack. Var och en byter gränsen för ett annat, vanligtvis värre, problem.
Duplicera rabatter, en per 100 produkter
Det uppenbara draget är att dela katalogen i chunk på 100 och skapa en separat Köp X Få Y-rabatt för varje chunk. Det fungerar mer eller mindre tills du tänker på vagnen. En kund som köper två kvalificerande objekt som råkar falla i olika chunk-delar utlöser inte någon enskild rabatts köpmängd, så kampanjen misslyckas tyst för blandade vagnar. Du multiplicerar också underhållet: varje ny produkt måste arkiveras i rätt chunk, och Shopify begränsar hur många aktiva rabatter du kan köra. Detta tillvägagångssätt motsätter sig hela kampanjens punkt, som är att låta kunderna blanda och matcha fritt över sortimentet.
Utkastorder med manuella rabatter
Ett vanligt förslag är att bygga beställningen som ett utkast i admin, tillämpa rabatten för hand och skicka kunden en faktura. Detta tar bort produktgränsen, men det bryter de saker som gör att en butiksfasad fungerar. Ett utkastorder-flöde är inte den normala kassan: det låter inte kunden tillämpa sina egna rabattkoder på toppen, det körs inte genom standardanalysen på samma sätt, och det kringgår accelererade kassasystem helt och hållet. Shop Pay, Apple Pay och Google Pay-köpare ser aldrig en handbyggd utkastorder, så dina snabbaste omvandlande kunder kan inte använda erbjudandet alls. Utkastorder är bra för enstaka telefonförsäljning. De är inte en mekanism för att köra en självbetjäningskampanj i stor skala.
Tricket med den falska bundle-produkten
För upprepande set-prissättning skapar vissa handlare en enda falsk produkt prissatt till settotalt, till exempel en "3 för 2 bundle"-produkt till priset av två objekt, och döljer de verkliga produkterna. Detta förstör inventering (bundle-SKU är friskopplad från real stock), förstör merchandising (kunderna kan inte bläddra och välja fritt) och förstör rapportering (försäljning rullas upp under ett falskt SKU). Det kan inte heller uttrycka "vilka som helst 3 från detta stora sortiment," vilket är den flexibilitet en blanda-och-matcha 3-för-2 är tänkt att ge.
Mönstret över alla tre: varje lösning byter en ren, självbetjäningsbar, kassainbyggd kampanj för något manuellt, skört eller osynligt för köpare som konverterar bäst. Ingen av dem återställer vad handlare egentligen vill ha, vilket är inbyggd Köp X Få Y-beteende utan gränsen och med rätt upprepningslogik.
Hur du kör butiksvid, upprepad Köp X Få Y med Shopify Functions
Den hållbara lösningen är en rabatt byggd på Shopify Functions, samma serverfasad motor som Shopify använder för att låta appar anpassa rabattlogik. En Functions-baserad Köp X Få Y löser båda väggarna samtidigt.
För det första blir berättigandet en regel istället för en lista. Du omfattar erbjudandet efter tag eller efter samling, och Function utvärderar varje varukortsledare mot denna regel vid beräkningstid. Det finns ingen 100-produktbärande lista att fylla, så en 400-produkt eller 4 000-produktkatalog behandlas på samma sätt. Nya produkter som matchar tagen väljer in automatiskt den gång du lägger till dem, utan rabatt att redigera på nytt.
För det andra kan erbjudandet upprepa. En Function kan tillämpa köp-till-få-förhållandet på nytt för varje kvalificerande uppsättning i vagnen, så "köp 3, få 1 gratis" blir 2 gratis vid 6 objekt och 3 gratis vid 9 objekt, inom ett erbjudande. Samma logik kör "köp 6, få 2 gratis" fördubbling till 4 gratis vid 12 objekt. Och för att Function körs inuti Shopifys egen kassapipeline beräknar varukortssidan, kassasidan och accelererade kassasystem alla det identiska resultatet, så en Shop Pay-köpare får exakt vad vagen-lådan lovade.
För det tredje blir beteendet för billigaste-objektet explicit. En Function kan sägas alltid rabatt det lägsta prisobjektet i varje uppsättning, vilket är vad en verklig 3-för-2 betyder, eller tillämpa en procentsats istället för helt gratis för ett mildare erbjudande. Enligt Shopifys utvecklardokumentation ärKöp X Få Y-rabatmodellhar dokumenterade begränsningar och överväganden, och Functions är den stödda vägen för att gå bortom dem.
Arbetat exempel: en butiksvid 3-för-2 och en upprepad köp-6-få-2
Låt oss göra båda kampanjerna konkreta.
Kampanj A: 3-för-2 över en 400-produktkatalog
En beklädnadsbutik vill ha "köp vilka som helst 3, få den billigaste gratis" över sitt hela 400-SKU-sortiment, och den vill att nyankomster ska ansluta automatiskt. Med ett Functions-baserat erbjudande är berättigande en tag (säg,promo-3for2) tillämpad på hela katalogen, köpmängden är 3, få-kvantiteten är 1, rabatten är 100 procent av det billigaste berättigade objektet, och upprepning är på.
Här är hur en verklig vagn löses.
Inbyggd Köp X Få Y kan inte uttrycka detta på två nivåer: det kan inte täcka 400 produkter i en berättigadelista, och även inom en täckt uppsättning skulle den bara befria ett objekt för vagnen med 9 objekt istället för tre. Det Functions-baserade erbjudandet hanterar både katalogstorlek och upprepning.
Kampanj B: en upprepad köp-6-få-2
Ett snackvarumärke kör "köp 6 barer, få 2 gratis," och promoteringaffischen antyder att det bör fördubblas för en 12-bar vagn. Inställningen är köpmängd 6, få-kvantitet 2, upprepa på, 100 procent av få-objekten.
En 12-bar vagn får 4 gratis barer, två upprepningar av 6-för-2-uppsättningen, vilket är exakt vad affischen lovade. Inbyggd Köp X Få Y, tillämpad en gång per order, skulle ge 2 gratis barer för samma 12-bar vagn och tyst underförsälja erbjudandet.
Poängen med båda tabeller är inte att matematiken är svår. Det är att inbyggd Köp X Få Y stannar vid den första uppsättningen och på 100 produkter, och ett Functions-baserat erbjudande fortsätter.
Kör detta tillförlitligt med Stackable
Om du hellre vill konfigurera det här än bygga en anpassad Shopify Function,Stackablekör Köp X Få Y förbi de inbyggda gränserna, ärligt och inom Shopifys verkliga regler.
- Ingen 100-produktstak. Du omfattar berättigande efter tag, samling eller en explicit lista utan övre gräns, så en butiksvid 3-för-2 täcker hela katalogen och nya produkter som matchar regeln väljer in automatiskt.
- Upprepningslogik är en enda växel. "Köp 3, få 1 gratis" tillämpar på nytt när vagnen växer, så 6 objekt får 2 gratis och 9 objekt får 3 gratis, och "köp 6, få 2 gratis" fördubblas till 4 gratis vid 12 objekt, allt i ett erbjudande.
- Billigaste-objektet-gratis är standard, och du kan byta det till en procentsats för ett mildare deal, eller fixa rabatten på ett specifikt objekt.
- Matematiken körs inuti enShopify Function, så varukortssidan, kassasidan och accelererade kassasystem som Shop Pay beräknar alla samma resultat. Det finns ingen utkastorder-hack, ingen falsk bundle-SKU och ingen tema-kontra-kassa-drift.
Installera Stackable gratis och kör en återkommande 3-för-2 i hela butiken som stämmer på öret, på usestackable.com/pricing. 🚀
Poängen
- Inbyggd Köp X Få Y begränsar hur många produkter du kan markera som berättigade, en gräns som handlare och Shopify-support i stor utsträckning rapporterar som 100, så den kan inte täcka en stor katalog i en regel.
- Inbyggd Köp X Få Y tillämpas också ett fast antal gånger per beställning, så den upprepar inte: en 9-objekts vagn på en 3-för-2 befriar 1 objekt, inte 3, och en 12-bar vagn på köp-6-få-2 befriar 2, inte 4.
- Lösningarna byter gränsen för ett värre problem: duplicerade rabatter bryter blanda-och-matcha, utkastorder kringgår koder och accelererad kassa, och falska bundle-SKU:er förstör inventering och rapportering.
- Gränsen finns eftersom inbyggda rabatter lagrar berättigande som en begränsad lista. Shopify Functions utvärderar berättigande som en regel vid körning, så katalogstorlek slutar spela roll.
- En Functions-baserad Köp X Få Y körs butiksvid och kan upprepa per uppsättning, alltid rabattera det billigaste berättigade objektet, med samma total på varukortssidan, kassan och Shop Pay.
- Verktyg som Stackable ger dig ingen produktgräns, en upprepningsväxel och billigaste-objekt-gratis som standard, så en verklig 3-för-2 över hela katalogen är några inställningar snarare än en anpassad Function.
Relaterade artiklar
- BOGO och Köp X Få Y förbi 100-produktsgränsen: kör 3-för-2 butiksvid med upprepningslogik och billigaste-objektet-gratis.
- Rabattstaplning, gjord rätt: hur de tre per-klassväxlarna bestämmer vad som gäller tillsammans.
- Kvantitetsbrytningar och volymskikt: belöna större vagnar med per-produktsigrad prissättning.
- Hur rabattstaplning fungerar i Shopify: varför inbyggd bara tillämpar högsta, och hur man kombinerar erbjudanden korrekt.
- Upprepa multibuy-erbjudanden som räknar om per uppsättning: "4 för GBP 10, 8 för GBP 20" som räknar om för varje uppsättning.
- Stackable-prissättning: planer, den gratis nivån och vad var och en innehåller.


