Aller au contenu
Exemples de Scripts

Migrating a capped percentage discount script

Common on high-value carts and the one place where getting it wrong is wrong in both directions at once: read the cap as the discount and you give $50 flat, drop the cap and you give an uncapped quarter of the cart.

Reconstruit
Ce que faisait le Script

It worked out a percentage of the cart and then refused to take off more than a stated maximum.

Essayez-le sur votre propre boutique

Collez-le dans Sauvetage des Scripts et regardez ce qu'il reconstruit

  1. Copiez le Ruby avec le bouton placé à côté de chaque Script de cette page.
  2. Dans votre interface Shopify, ouvrez Stackable, puis Outils, puis Sauvetage des Scripts.
  3. Collez-le, lisez ce que l'outil annonce qu'il va construire et comparez-le aux réglages de cette page.

Sauvetage des Scripts fait partie du forfait Pro. Rien n'est publié tant que vous n'avez pas indiqué la remise de votre ancien Script et que les deux chiffres ne correspondent pas au centime près.

Le Script

Reconstruit

Paire à risque D10. Ce fichier et son jumeau se ressemblent presque à l'identique et se comportent différemment, alors lisez les deux avant de décider lequel vous avez.

Le Ruby d'origine

DISCOUNT_PERCENTAGE = 25
MAX_DISCOUNT = 50

cart_subtotal_float = Float((Input.cart.subtotal_price.cents / 100).to_s)
raw_discount = cart_subtotal_float * (DISCOUNT_PERCENTAGE / 100.0)
total_discount = [raw_discount, MAX_DISCOUNT].min

Input.cart.line_items.each do |line_item|
  line_price_float = Float((line_item.line_price.cents / 100).to_s)
  percentage = 1 - (((line_price_float / cart_subtotal_float) * total_discount) / line_price_float)
  line_item.change_line_price(line_item.line_price * percentage, message: "25% off, up to $50")
end

Output.cart = Input.cart
Ce que cela devient

Reconnu comme Spend threshold discount et reconstruit en offre de type spend_goal. Voici les vraies clés de configuration avec lesquelles l'offre est enregistrée, pour que vous puissiez comparer votre propre reconstruction champ par champ.

Chaque réglage, en détail
RéglageValeurClé de configuration
Offer typespend_goaltype
Countingper_cartcounting
Recurrenceoncerecurrence
Tier 1min spend $0.00 -> 25% offtiers[0]
Target scopealltarget.scope
Maximum discount$50.00maxDiscountAmount
MethodautomaticdiscountMethod
Allocationstandardstacking.allocation
Combines with other discountsnostacking
Il vous sera demandé de confirmer
  • Confirm which products this applies to. We could not read product targeting from the script.
Vous serez informé
  • The maximum applies to the whole order and is shared across the discounted items. If your Script capped each line on its own, that gave more away than this does.
Le panier qui le prouve

Construit sur notre boutique de démonstration publique, Meridian Goods, pour que chaque prix ici puisse être reproduit plutôt que cru sur parole. La remise ci-dessous est ce que le moteur qui tourne au paiement calcule pour ce panier précis.

Le panier qui déclenche cette offre, et ce qu'elle coûte
ArticleQtéPrix unitaire
Canvas Belt Bag1$42.00
Aria Wireless Earbuds2$79.00
Sous-total$200.00
Remise-$50.00
Total$150.00

Déconnecté, ou connecté en tant que client sans tag.

Le chiffre auquel l'outil vous compare

Avant la publication, l'outil demande ce que votre ancien Script faisait à un panier que vous avez déjà. Réglez-le sur 8 de Walnut Desk Organizer à $26.00 et la réponse est fixée.

La remise est de $50.00. Le total payé par l'acheteur est de $158.00.

La comparaison est exacte, jusqu'à la plus petite unité de votre devise. Un centime d'écart et la publication reste bloquée, ce qui est tout l'intérêt de l'étape.

Le panier qui ne doit rien produire

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.

Deux fichiers qui se ressemblent

Chaque paire ci-dessous est une même forme de Script écrite de deux façons. Une ou deux lignes les séparent et elles ne font pas la même chose, alors lisez les deux avant de décider laquelle vous avez.

Paire piégeuse D10

Capped percentage discount (D10)

Reconstruit

Reconstruit en offre spend_goal.

Remise sur son propre panier : $50.00

Les lignes qui changent
DISCOUNT_PERCENTAGE = 25
MAX_DISCOUNT = 50
cart_subtotal_float = Float((Input.cart.subtotal_price.cents / 100).to_s)
raw_discount = cart_subtotal_float * (DISCOUNT_PERCENTAGE / 100.0)
total_discount = [raw_discount, MAX_DISCOUNT].min
  line_price_float = Float((line_item.line_price.cents / 100).to_s)

Et 2 autres lignes différentes, sur sa propre page.

Lire Capped percentage discount

Fixed total discount cart (D10)

Reconstruit

Reconstruit en offre spend_goal.

Remise sur son propre panier : $14.00

Les lignes qui changent
MAX_DISCOUNT = Money.new(cents: 10000)
remaining = MAX_DISCOUNT
  break if remaining <= Money.zero
  share = [line_item.line_price, remaining].min
  line_item.change_line_price(line_item.line_price - share, message: "$100 off your order")
  remaining = remaining - share
Lire Amount off the order

Questions fréquentes

Will Stackable rebuild this script?
Yes. Every spelling on this page is rebuilt today as a spend_goal offer, and the cart above is the one that proves it.
What cart proves it works?
1 x Canvas Belt Bag at $42.00 plus 2 x Aria Wireless Earbuds at $79.00. The engine takes $50.00 off, and checkout charges $150.00.
What will I have to check before publishing?
Confirm which products this applies to. We could not read product targeting from the script. The maximum applies to the whole order and is shared across the discounted items. If your Script capped each line on its own, that gave more away than this does.

Formes de Script apparentées

Amount off the order

One lump sum off the whole cart, spread across the lines.

Fixed price per item

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

Amount off each item

A flat sum taken off every unit, however many the shopper bought.

Collez votre Script et voyez sa reconstruction

La reconstruction est comparée au montant que facturait votre ancien Script avant que vous puissiez la publier.

Nous utilisons des cookies essentiels pour faire fonctionner ce site et, uniquement avec votre autorisation, des cookies d'analyse pour comprendre le trafic. Consultez notre Politique de cookies.