Spring til indhold
Script-eksempler

Migrating a sitewide percentage discount script

The easiest script to rebuild and still worth its own page, because half the spellings put the number the shopper KEEPS in the file rather than the number taken off. Multiply by 0.85 and the discount is 15, not 85.

Genopbygget
Hvad dette Script gjorde

It reduced every line in the cart by the same percentage.

Handlende har skrevet det her på 4 forskellige måder, og de betyder ikke alle det samme. Hver variant står nedenfor med sin egen kurv og sine egne tal.

Prøv det i din egen butik

Indsæt det i Scripts-redning, og se hvad der bliver bygget

  1. Kopiér Ruby-koden med knappen ved siden af ethvert Script på siden.
  2. Åbn Stackable i Shopify-administrationen, derefter Værktøjer og så Scripts-redning.
  3. Indsæt det der, læs hvad værktøjet siger, det vil bygge, og hold det op mod indstillingerne på denne side.

Scripts-redning hører til Pro-abonnementet. Intet bliver udgivet, før du oplyser, hvad dit gamle Script gav i rabat, og de to beløb stemmer helt ned på øret.

Flat percentage off all (D9)

Genopbygget

Farligt par D9. Denne fil og dens makker ser næsten ens ud og opfører sig forskelligt, så læs dem begge, før du afgør, hvilken du har.

Den oprindelige Ruby-kode

Input.cart.line_items.each do |li|
  li.change_line_price(li.original_line_price * (1.0 - (20 / 100.0)), message: "20% off everything")
end

Output.cart = Input.cart
Hvad det bliver til

Genkendt som Percentage off og genopbygget som et tilbud af typen volume. Det her er de rigtige konfigurationsnøgler, som tilbuddet gemmes med, så du kan tjekke din egen genopbygning felt for felt.

Hver indstilling, skrevet ud
IndstillingVærdiKonfigurationsnøgle
Offer typevolumetype
Countingper_productcounting
Recurrenceoncerecurrence
Tier 1min qty 1 -> 20% offtiers[0]
Target scopealltarget.scope
MethodautomaticdiscountMethod
Allocationstandardstacking.allocation
Combines with other discountsnostacking
Du bliver bedt om at bekræfte
  • Confirm which products this applies to. We could not read product targeting from the script.
Kurven, der beviser det

Bygget i vores offentlige demobutik, Meridian Goods, så hver pris her kan efterregnes i stedet for at blive taget på tro. Rabatten nedenfor er det, som den samme motor, der kører i kassen, beregner for præcis denne kurv.

Kurven, der udløser dette tilbud, og hvad det koster
VareAntalStykpris
Braided USB-C Cable1$14.00
Subtotal$14.00
Rabat-$2.80
Total$11.20

Logget ud, eller logget ind som kunde uden tags.

Beløbet, som værktøjet holder dig op mod

Inden du udgiver, spørger værktøjet, hvad dit gamle Script gjorde ved en kurv, du allerede har. Sæt den til 1 af Braided USB-C Cable à $14.00, så ligger svaret fast.

Rabatten er $2.80. Det beløb, kunden betalte, er $11.20.

Sammenligningen er præcis, helt ned til den mindste enhed i din valuta. En øre ved siden af, og udgivelsen forbliver spærret, hvilket er hele pointen med trinnet.

Kurven, der ikke må give noget

This rule carries no condition at all, so it fires on any cart holding anything and there is no quiet cart to build. The negative check is an empty cart, which the app runs for you. That is correct behaviour, not a failure.

Flat percentage kept fraction (D12)

Genopbygget

Farligt par D12. Denne fil og dens makker ser næsten ens ud og opfører sig forskelligt, så læs dem begge, før du afgør, hvilken du har.

Den oprindelige Ruby-kode

Input.cart.line_items.each do |line_item|
  line_item.change_line_price(line_item.line_price * 0.85, message: "15% off")
end

Output.cart = Input.cart
Hvad det bliver til

Genkendt som Percentage off og genopbygget som et tilbud af typen volume. Det her er de rigtige konfigurationsnøgler, som tilbuddet gemmes med, så du kan tjekke din egen genopbygning felt for felt.

Hver indstilling, skrevet ud
IndstillingVærdiKonfigurationsnøgle
Offer typevolumetype
Countingper_productcounting
Recurrenceoncerecurrence
Tier 1min qty 1 -> 15% offtiers[0]
Target scopealltarget.scope
MethodautomaticdiscountMethod
Allocationstandardstacking.allocation
Combines with other discountsnostacking
Du bliver bedt om at bekræfte
  • Confirm which products this applies to. We could not read product targeting from the script.
Kurven, der beviser det

Bygget i vores offentlige demobutik, Meridian Goods, så hver pris her kan efterregnes i stedet for at blive taget på tro. Rabatten nedenfor er det, som den samme motor, der kører i kassen, beregner for præcis denne kurv.

Kurven, der udløser dette tilbud, og hvad det koster
VareAntalStykpris
Braided USB-C Cable1$14.00
Subtotal$14.00
Rabat-$2.10
Total$11.90

Logget ud, eller logget ind som kunde uden tags.

Beløbet, som værktøjet holder dig op mod

Inden du udgiver, spørger værktøjet, hvad dit gamle Script gjorde ved en kurv, du allerede har. Sæt den til 1 af Braided USB-C Cable à $14.00, så ligger svaret fast.

Rabatten er $2.10. Det beløb, kunden betalte, er $11.90.

Sammenligningen er præcis, helt ned til den mindste enhed i din valuta. En øre ved siden af, og udgivelsen forbliver spærret, hvilket er hele pointen med trinnet.

Kurven, der ikke må give noget

This rule carries no condition at all, so it fires on any cart holding anything and there is no quiet cart to build. The negative check is an empty cart, which the app runs for you. That is correct behaviour, not a failure.

Flat percentage taken percent (D12)

Genopbygget

Farligt par D12. Denne fil og dens makker ser næsten ens ud og opfører sig forskelligt, så læs dem begge, før du afgør, hvilken du har.

Den oprindelige Ruby-kode

Input.cart.line_items.each do |line_item|
  line_item.change_line_price(line_item.line_price * (1.0 - (15 / 100.0)), message: "15% off")
end

Output.cart = Input.cart
Hvad det bliver til

Genkendt som Percentage off og genopbygget som et tilbud af typen volume. Det her er de rigtige konfigurationsnøgler, som tilbuddet gemmes med, så du kan tjekke din egen genopbygning felt for felt.

Hver indstilling, skrevet ud
IndstillingVærdiKonfigurationsnøgle
Offer typevolumetype
Countingper_productcounting
Recurrenceoncerecurrence
Tier 1min qty 1 -> 15% offtiers[0]
Target scopealltarget.scope
MethodautomaticdiscountMethod
Allocationstandardstacking.allocation
Combines with other discountsnostacking
Du bliver bedt om at bekræfte
  • Confirm which products this applies to. We could not read product targeting from the script.
Kurven, der beviser det

Bygget i vores offentlige demobutik, Meridian Goods, så hver pris her kan efterregnes i stedet for at blive taget på tro. Rabatten nedenfor er det, som den samme motor, der kører i kassen, beregner for præcis denne kurv.

Kurven, der udløser dette tilbud, og hvad det koster
VareAntalStykpris
Braided USB-C Cable1$14.00
Subtotal$14.00
Rabat-$2.10
Total$11.90

Logget ud, eller logget ind som kunde uden tags.

Beløbet, som værktøjet holder dig op mod

Inden du udgiver, spørger værktøjet, hvad dit gamle Script gjorde ved en kurv, du allerede har. Sæt den til 1 af Braided USB-C Cable à $14.00, så ligger svaret fast.

Rabatten er $2.10. Det beløb, kunden betalte, er $11.90.

Sammenligningen er præcis, helt ned til den mindste enhed i din valuta. En øre ved siden af, og udgivelsen forbliver spærret, hvilket er hele pointen med trinnet.

Kurven, der ikke må give noget

This rule carries no condition at all, so it fires on any cart holding anything and there is no quiet cart to build. The negative check is an empty cart, which the app runs for you. That is correct behaviour, not a failure.

Flat percentage off all 20 (D14)

Genopbygget

Farligt par D14. Denne fil og dens makker ser næsten ens ud og opfører sig forskelligt, så læs dem begge, før du afgør, hvilken du har.

Den oprindelige Ruby-kode

DISCOUNT_PERCENTAGE = 20

Input.cart.line_items.each do |line_item|
  line_item.change_line_price(
    line_item.line_price * (1.0 - (DISCOUNT_PERCENTAGE / 100.0)),
    message: "20% off"
  )
end

Output.cart = Input.cart
Hvad det bliver til

Genkendt som Percentage off og genopbygget som et tilbud af typen volume. Det her er de rigtige konfigurationsnøgler, som tilbuddet gemmes med, så du kan tjekke din egen genopbygning felt for felt.

Hver indstilling, skrevet ud
IndstillingVærdiKonfigurationsnøgle
Offer typevolumetype
Countingper_productcounting
Recurrenceoncerecurrence
Tier 1min qty 1 -> 20% offtiers[0]
Target scopealltarget.scope
MethodautomaticdiscountMethod
Allocationstandardstacking.allocation
Combines with other discountsnostacking
Du bliver bedt om at bekræfte
  • Confirm which products this applies to. We could not read product targeting from the script.
Kurven, der beviser det

Bygget i vores offentlige demobutik, Meridian Goods, så hver pris her kan efterregnes i stedet for at blive taget på tro. Rabatten nedenfor er det, som den samme motor, der kører i kassen, beregner for præcis denne kurv.

Kurven, der udløser dette tilbud, og hvad det koster
VareAntalStykpris
Braided USB-C Cable1$14.00
Subtotal$14.00
Rabat-$2.80
Total$11.20

Logget ud, eller logget ind som kunde uden tags.

Beløbet, som værktøjet holder dig op mod

Inden du udgiver, spørger værktøjet, hvad dit gamle Script gjorde ved en kurv, du allerede har. Sæt den til 1 af Braided USB-C Cable à $14.00, så ligger svaret fast.

Rabatten er $2.80. Det beløb, kunden betalte, er $11.20.

Sammenligningen er præcis, helt ned til den mindste enhed i din valuta. En øre ved siden af, og udgivelsen forbliver spærret, hvilket er hele pointen med trinnet.

Kurven, der ikke må give noget

This rule carries no condition at all, so it fires on any cart holding anything and there is no quiet cart to build. The negative check is an empty cart, which the app runs for you. That is correct behaviour, not a failure.

To filer, der ligner hinanden

Hvert par herunder er den samme Script-form skrevet på to måder. De adskiller sig på en eller to linjer og gør noget forskelligt, så læs dem begge, før du afgør, hvilken du har.

Farligt par D9

Flat percentage off all (D9)

Genopbygget

Bygges om til et volume-tilbud.

Rabat i dens egen kurv: $2.80

Linjer der er forskellige
  li.change_line_price(li.original_line_price * (1.0 - (20 / 100.0)), message: "20% off everything")
Læs Sitewide percentage off

Scope targeting family tag (D9)

Genopbygget

Bygges om til et volume-tilbud.

Rabat i dens egen kurv: $4.40

Linjer der er forskellige
  next unless li.variant.product.tags.include?('sale')
  li.change_line_price(li.original_line_price * (1.0 - (20 / 100.0)), message: "20% off sale")
Læs Scoped to a tag or vendor

Farligt par D12

Flat percentage kept fraction (D12)

Genopbygget

Bygges om til et volume-tilbud.

Rabat i dens egen kurv: $2.10

Linjer der er forskellige
  line_item.change_line_price(line_item.line_price * 0.85, message: "15% off")
Læs Sitewide percentage off

Flat percentage taken percent (D12)

Genopbygget

Bygges om til et volume-tilbud.

Rabat i dens egen kurv: $2.10

Linjer der er forskellige
  line_item.change_line_price(line_item.line_price * (1.0 - (15 / 100.0)), message: "15% off")
Læs Sitewide percentage off

Farligt par D14

Flat percentage off all 20 (D14)

Genopbygget

Bygges om til et volume-tilbud.

Rabat i dens egen kurv: $2.80

Linjer der er forskellige
DISCOUNT_PERCENTAGE = 20
Input.cart.line_items.each do |line_item|
  line_item.change_line_price(
    line_item.line_price * (1.0 - (DISCOUNT_PERCENTAGE / 100.0)),
    message: "20% off"
  )
Læs Sitewide percentage off

Vat removal by country (D14)

Genopbygget

Bygges om til et volume-tilbud.

Rabat i dens egen kurv: $2.33

Linjer der er forskellige
VAT = 20
VAT_REMOVAL_MESSAGE = "VAT removed"
COUNTRY_CODES_EU = %w[AT BE BG CY CZ DK EE FI FR DE GR HU IE IT LV LT LU MT NL PL PT RO SK SI ES SE GB]
country_code = Input.cart.shipping_address&.country_code
unless country_code.nil? || COUNTRY_CODES_EU.include?(country_code)
  vat_only_fraction = VAT / (100.0 + VAT)

Og 5 flere forskellige linjer, på dens egen side.

Læs Remove VAT outside the EU

Ofte stillede spørgsmål

Will Stackable rebuild this script?
Yes. Every spelling on this page is rebuilt today as a volume offer, and the cart above is the one that proves it.
What cart proves it works?
1 x Braided USB-C Cable at $14.00. The engine takes $2.80 off, and checkout charges $11.20.
What will I have to check before publishing?
Confirm which products this applies to. We could not read product targeting from the script.

Beslægtede Script-typer

Scoped to a tag or vendor

A discount limited to products carrying one tag, vendor or type.

Remove VAT outside the EU

Tax-inclusive prices reduced for shoppers outside the VAT area.

Fixed price per item

Everything in the clearance line repriced to one round number per unit.

Indsæt dit Script og se det blive genopbygget

Genopbygningen holdes op mod det beløb, dit gamle Script opkrævede, før du kan udgive den.

Vi bruger essentielle cookies til at drive dette site, og kun med din tilladelse, analysecookies til at forstå trafik. Læs vores Cookiepolitik.