Skip to content
Scripts migration

Shopify Scripts migration examples

Every shape of Shopify Script we have catalogued, with the original Ruby, what it becomes, the exact cart that proves it, and the refusals written out in full.

Script shapes
42
Rebuilt today
38
Refused, with a reason
21

Why the refusals are on this page

No migration tool publishes what it cannot do, so a merchant searching for one specific Script shape finds marketing and nothing else. Every refusal here is written out with the reason, the exact wording the app shows, and a link to Shopify's own documentation wherever the reason is Shopify's rather than ours.

13 of the 21 refusals in this library are our own gap, and we say so. 2 are limits in Shopify that no discount app can work around, and 4 are not discounts at all: they need a different kind of Shopify app, named on the page.

Read about migrating off Shopify Scripts

How your Script was written

The two dialects most pasted Ruby is written in, and what each one gives away for free.

  • The dialect Shopify’s own documentation taught, with its settings block above a do-not-edit banner.

  • Generator output, with a CAMPAIGNS array at the bottom that states the merchant’s intent as data.

Prices and percentages

Setting a price, taking an amount off, and the pair that differ by a single minus sign.

Quantities, BOGO and free units

Buy-and-get offers, and the counting decisions that change how much you give away.

Spend thresholds

Rewards that unlock once the cart is worth enough.

Shipping

Discounting delivery, and the shipping scripts that turn out not to be discounts at all.

Who the discount reached

Customer tags, order history and lifetime spend.

Discount codes

Scripts that watched for a code, matched a whole family of them, or turned one away.

Scope and exclusions

What a discount was allowed to touch, and what it had to leave alone.

Not a discount at all

Scripts that changed the cart or the checkout rather than the price.

Problems with the file itself

Two ways a paste is unreadable before anything can be rebuilt from it.

Paste your dead Script and see what it becomes

The rebuild is checked against the amount your old Script charged before anything can be published.

We use essential cookies to run this site, and, only with your permission, analytics cookies to understand traffic. Read our Cookie Policy.