Cart Transform vs Shopify Scripts: which for personalization pricing?
Shopify Scripts (Ruby-based, Plus-only checkout customization) is being replaced by Shopify Functions (WebAssembly-based) with Cart Transform as one of the function types. For any new personalization pricing work in 2026, build on Functions, and the easiest route is a product options app like Print It My Way that handles the pricing logic for you. If you still run legacy Scripts, plan the migration now. Shopify has announced that Scripts are being retired.
Step-by-step setup
- Audit your current Scripts. Open the Script Editor and list every script that changes a line-item price. Write down what each one does in plain words, for example "adds $5 when the engraving field is filled."
- Rebuild in Cart Transform. Recreate each surcharge either through an app that already does it or through a custom Function. Personalization fees are almost always covered by an options app, so custom code is rarely needed.
- Test in dev store first. Run the same test orders through the old and new setup and compare the cart totals line by line before you switch production.
What Shopify Scripts is
Shopify Scripts are small Ruby programs that run on Shopify's servers during checkout. They were only ever available to Shopify Plus stores and were written in the Script Editor app. Merchants used them for three main jobs: changing line-item prices, stacking or blocking discounts, and hiding or renaming shipping and payment methods.
Scripts are being retired in favor of Shopify Functions. That matters for personalization stores because a lot of older setups used a line-item script to add an engraving or gift-wrap fee. Those fees need a new home.
What Cart Transform is
Cart Transform is one type of Shopify Function. It runs when the cart changes and can modify cart lines: add a surcharge, expand one line into a bundle of components, or merge lines together. Functions run in a WebAssembly sandbox on Shopify's infrastructure, so they're fast and don't depend on your theme.
The practical win for personalization is that you can charge for options without creating extra variants. Before this, the usual trick was a hidden "engraving +$5" variant or a separate fee product, and both got messy fast once a product had several paid options. Shopify now allows up to 2,048 variants per product, which our variant limit explainer covers, but paid add-ons still don't belong in the variant list.
If you want the background on how the function works, read what Shopify Cart Transform is.
Scripts vs Cart Transform side by side
| Shopify Scripts | Cart Transform (Functions) | |
|---|---|---|
| Language | Ruby, in the Script Editor | Compiled to WebAssembly (commonly Rust or JavaScript) |
| Who can use it | Shopify Plus stores only | Delivered through apps; check Shopify's docs for current plan details |
| Status | Being retired | Current, actively developed |
| Typical personalization use | Adding a fee to a line item | Adding a fee, expanding bundles, merging lines |
| Shipping and payment changes | Yes, in the same tool | No; separate Function types handle those |
Migration path
- Audit which Scripts you have that touch line items, and separate them from shipping and payment scripts, which move to different Function types.
- Rebuild each line-item script as a Cart Transform, either through an app or a custom Function.
- Test in a development store with real products and the same option combinations your buyers pick.
- Enable the new setup on production and turn off the equivalent Script at the same time, so a fee is never charged twice.
- Watch orders for a full billing cycle and spot-check totals against what the old script would have charged.
A worked example
Say a jewelry store has one Ruby script that adds $8 to any bracelet with engraving text and $4 when gift wrap is ticked. In the new setup, you add an "Engraving text" field with an $8 fee and a "Gift wrap" checkbox with a $4 fee in the options app. Our gift wrap option guide shows that second part. You run three test orders (engraving only, wrap only, both), confirm the totals match, then disable the script. That's usually an afternoon, not a project.
Print It My Way handles it
Print It My Way takes care of per-character pricing, upcharges and gift-wrap fees without Scripts and without any custom Functions to write. Fees can be set per option, per text area or per character, and each one shows as a separate line in the cart so the buyer sees what they're paying for. It works on every Shopify plan, with a Free plan for your first product and paid plans from $7.99/month with no per-sale fee.
The buyer's choices are saved on the order as line-item properties, so your team or print partner sees the engraving text right next to the fee. If you're comparing apps that price this way, see our roundup of personalizers that use Cart Transform.
When a custom Function still makes sense
An app covers the common personalization cases. You may still want a developer to write a custom Function if your pricing depends on data the app can't see, such as a customer's contract price list, a loyalty tier stored in your own system, or rules that combine several unrelated products in one cart. For straightforward fees on options, building and maintaining your own code is extra work with no real payoff.
Not sure how to structure the fees themselves? Our comparison of percentage vs flat fee add-on pricing walks through which model suits which product.
Modern pricing without Scripts
Print It My Way's Cart Transform is built in on every tier.
Install Print It My Way. Free Cart Transform vs variant pricing →Frequently asked questions
Are Shopify Scripts still supported?
Scripts are being retired in favor of Shopify Functions. If you still rely on them, move your line-item pricing, discount and shipping logic to Functions before Shopify's sunset date.
Do I need to write custom Functions?
Not for typical personalization fees. A product options app like Print It My Way charges for engraving, gift wrap and other paid options for you. Custom Functions are only worth it for unusual pricing rules that depend on your own data.
Is Cart Transform Plus-only?
No. Scripts were limited to Shopify Plus, but Functions such as Cart Transform are delivered through apps. Shopify's docs list the current details for each plan. Print It My Way works on every Shopify plan.
What replaces Scripts for shipping rate customization?
The Delivery Customization Function, which is a separate Shopify Function type from Cart Transform. Payment method rules move to the Payment Customization Function.
When does Scripts sunset?
Shopify has announced the retirement and published a timeline. Check the current Shopify Changelog for the exact date, since it has been updated before.
Will my cart totals change after migrating?
They shouldn't if you rebuild each fee with the same amounts. Run the same test orders through the old and new setup, compare the totals, and only then switch off the script.
Sources & further reading
Primary sources referenced in this article. We link to official platform documentation and standards bodies rather than secondary summaries so you can verify claims directly.