Aller au contenu
Exemples de Scripts

Migrating a flat rate shipping script

Setting a rate TO a price and taking an amount OFF a rate need different information: the second needs only the discount, the first needs the rate’s own cost. That difference is the whole entry.

Pas encore géré
Ce que faisait le Script

It rewrote every delivery rate to one flat price.

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

Pas encore géré

Paire à risque D4. 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

# GENERATED BY THE SHOPIFY SCRIPT CREATOR APP

class FixedPriceDiscount
  def initialize(amount, message)
    @amount = Money.new(cents: 100) * amount
    @message = message
  end

  def apply(rate)
    rate_discount = @amount > rate.price ? rate.price : rate.price - @amount
    rate.apply_discount(rate_discount, { message: @message })
  end
end

CAMPAIGNS = [
  ShippingDiscount.new(:all, nil, nil, FixedPriceDiscount.new(5, "Flat rate shipping $5")),
].freeze

CAMPAIGNS.each do |campaign|
  campaign.run(Input.shipping_rates, Input.cart)
end

Output.shipping_rates = Input.shipping_rates
Ce qu'il advient de celui-ci

We have not built this yet

Your Script set shipping to a fixed price. We can take an amount or a percentage off shipping, but setting a rate to a price needs the rate's own cost, which we do not read yet.

C'est notre lacune, pas celle de Shopify. Shopify l'autorise et nous ne l'avons pas construit, il n'y a donc rien à lier ici ni rien à reprocher à la plateforme.

Clé du motif : unsupported.shippingFixedPrice

Il n'y a pas de panier à tester ici, puisque rien n'est construit. Coller ceci produit le message ci-dessus et aucune campagne.

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 D4

Shipping fixed price (D4)

Pas encore géré

Non reconstruit. We have not built this yet

Les lignes qui changent
class FixedPriceDiscount
    rate_discount = @amount > rate.price ? rate.price : rate.price - @amount
  ShippingDiscount.new(:all, nil, nil, FixedPriceDiscount.new(5, "Flat rate shipping $5")),
Lire Flat rate shipping

Shipping fixed amount off (D4)

Reconstruit

Reconstruit en offre free_shipping.

Économie de livraison sur son propre panier : $5.00

Les lignes qui changent
class FixedDiscount
    rate_discount = rate.price - @amount < Money.zero ? rate.price : @amount
  ShippingDiscount.new(:all, nil, nil, FixedDiscount.new(5, "$5 off shipping")),
Lire Amount off shipping

Questions fréquentes

Will Stackable rebuild this script?
No, and the reason is stated rather than hidden: Your Script set shipping to a fixed price. We can take an amount or a percentage off shipping, but setting a rate to a price needs the rate's own cost, which we do not read yet.

Formes de Script apparentées

Amount off shipping

A flat sum off the delivery charge, floored at free.

Percentage off shipping

A share taken off every delivery rate at checkout.

Free shipping over a threshold

Delivery drops to free once the cart is worth enough.

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.