Hoppa till innehåll

Kuponger

Skapa rabattkoder som kunder kan använda i kassan. Procentuella eller fasta belopp, tidsbegränsade eller med ett maxtak, engångs- eller återkommande.

Kuponger hanteras i Builder’s Commerce panel > Products > Coupons-fliken, eller via SDK:t på proyecta.commerce.coupons.

FältAnteckningar
codeKampanjkoden som kunder skriver in i kassan (t.ex. LAUNCH20)
percent_off eller amount_offÖmsesidigt uteslutande. Procent är 1–100. Belopp anges i den minsta valutaenheten (ören/cent).
currencyKrävs för amount_off-rabatter (trebokstavlig ISO-kod). Används vid skapandet och skickas vidare till Stripe, men sparas eller returneras inte av API:et efteråt.
durationonce (endast första betalningen), repeating (för duration_in_months), eller forever
duration_in_monthsKrävs när duration är repeating
max_redemptionsTotalt tak för alla kunder
redeem_byUtgångsdatum efter vilket kupongen slutar fungera
nameVisningsnamn som visas för kunder
activeVäxla för att aktivera/inaktivera utan att radera

Från Coupons-fliken, klicka på Add coupon och fyll i fälten. Eller via SDK:t:

// 20% off forever
await proyecta.commerce.coupons.create({
code: 'LAUNCH20',
name: 'Launch discount',
percent_off: 20,
duration: 'forever',
});
// $10 off, single use, expires in 30 days
await proyecta.commerce.coupons.create({
code: 'WELCOME10',
amount_off: 1000,
currency: 'USD',
duration: 'once',
max_redemptions: 1,
redeem_by: new Date(Date.now() + 30 * 86400 * 1000).toISOString(),
});
// 50% off for the first 3 months of a subscription
await proyecta.commerce.coupons.create({
code: 'EARLY3',
percent_off: 50,
duration: 'repeating',
duration_in_months: 3,
});

Kunder kan själva ange kupongkoden på Stripes kassasida — fältet för kampanjkoder visas automatiskt.

await proyecta.commerce.checkout({
customer_id,
line_items: [{ variant_id: 'var_pro_monthly' }],
success_url: 'https://myapp.com/welcome',
});

Att skicka en kupongkod programmatiskt i kassaanropet stöds inte ännu.

// Browse every coupon (only lists coupons created via the SDK)
const { data } = await proyecta.commerce.coupons.list();
for (const coupon of data.data) {
console.log(coupon.code, coupon.times_redeemed, '/', coupon.max_redemptions);
}
// Paginate using data.has_more and the starting_after query parameter if needed.
// Disable a coupon (without deleting)
await proyecta.commerce.coupons.update({ couponId: 'coupon_123', active: false });

Observera: coupons.list() returnerar endast kuponger som skapats via SDK:t. Kuponger som skapats i Builder Dashboard är inte synliga via coupons.list().

  • Koder och rabattbelopp är oföränderliga. Du kan uppdatera visningsnamnet name och växla active, men inte percent_off, amount_off eller code i sig. Skapa en ny kupong om du behöver andra villkor.
  • times_redeemed ökas automatiskt och är skrivskyddad — användbar för att följa upp kampanjresultat.
  • Kuponger gäller per kund, inte per order — om en kupong är forever och en kund prenumererar får varje förnyelse rabatten.