Guides7 min read

Post-Purchase Upsells vs Shopify Scripts: What's the Difference?

Kairo Team

If you're researching ways to increase revenue on Shopify, you've probably come across both Shopify Scripts and post-purchase upsell apps. They sound like they might do the same thing — both involve offers, discounts, and getting customers to spend more. But they're fundamentally different tools that solve different problems, and understanding the distinction helps you use each one correctly.

What Are Shopify Scripts?

Shopify Scripts are small pieces of code that run during the checkout process on Shopify Plus stores. They modify cart behavior, payment options, and shipping options in real time as the customer checks out. Scripts execute server-side within Shopify's infrastructure, so they're fast and reliable.

There are three types of Scripts:

  • Line item scripts: Modify prices, apply discounts, and change quantities in the cart. Common uses include automatic BOGO offers, tiered discounts (buy 3 get 10% off), and VIP pricing for tagged customers.
  • Shipping scripts: Modify available shipping options and their prices. You can hide certain shipping methods, rename them, reorder them, or offer free shipping based on cart contents.
  • Payment scripts: Modify available payment methods. You can hide or reorder payment gateways based on cart value, customer tags, or other conditions.

The critical thing to understand: Scripts operate during checkout, before payment. They modify the existing transaction. They don't create new offer pages or additional purchase opportunities.

What Are Post-Purchase Upsells?

Post-purchase upsells are dedicated offer pages that appear after the customer has completed payment but before the thank-you page. The customer has already entered their payment information and confirmed their order. The upsell page presents a one-click offer — if they accept, the additional product is charged to the same payment method with no need to re-enter any details.

This is what apps like Kairo provide. Using Shopify's post-purchase checkout extensions, Kairo creates a customizable page between checkout and the thank-you page. You build flows with conditions (Kairo offers 10 condition types, like product in order, subtotal thresholds, customer tags, and more) to show the right offer to the right customer. For a deeper look at the mechanics, see our guide on how one-click upsells work.

The key distinction: post-purchase upsells create a new purchase opportunity after the original transaction is complete. They add revenue on top of the order, rather than modifying the order that's in progress.

Key Differences at a Glance

Here's a direct comparison:

  • Timing: Scripts run during checkout (before payment). Post-purchase upsells run after checkout (after payment).
  • What they modify: Scripts modify the current cart/order — pricing, discounts, shipping, payment methods. Upsell apps create a separate offer page with new products.
  • Customer experience: Scripts are invisible to the customer — discounts apply automatically. Upsells are a visible, interactive page the customer actively engages with.
  • Shopify plan requirement: Scripts require Shopify Plus ($2,300/month). Post-purchase upsell apps work on all Shopify plans.
  • Payment re-entry: Not applicable for Scripts (they modify the existing checkout). Post-purchase upsells use one-click acceptance — no payment re-entry needed.
  • Revenue model: Scripts help you convert better by offering automatic discounts and smoother checkout. Upsell apps generate additional revenue per order by adding products after the sale.
  • Setup: Scripts require coding in Shopify's Script Editor (Ruby-based). Post-purchase upsell apps like Kairo use a visual drag-and-drop editor with 26 block types and 7 section types.

Scripts Deprecation and Shopify Functions

This is an important development that affects how you plan your tech stack. Shopify has announced that Scripts are being deprecated in favor of Shopify Functions — a newer, more scalable way to customize checkout logic.

What Shopify Functions do:

  • Discount Functions: Replace line item Scripts for automatic discounts, BOGO logic, tiered pricing, and conditional offers.
  • Payment Customization Functions: Replace payment Scripts for hiding, renaming, or reordering payment methods.
  • Delivery Customization Functions: Replace shipping Scripts for modifying delivery options.
  • Cart Transform Functions: Bundle products, add free gifts, and modify cart composition programmatically.

Key advantages of Functions over Scripts:

  • Available to all plans (not just Plus) when implemented through apps.
  • Better performance — Functions run in a WebAssembly sandbox with strict execution limits, making checkout faster.
  • App ecosystem: Functions can be packaged into apps, so you don't need to write custom code. Many apps on the Shopify App Store now use Functions under the hood.

The takeaway: whether you use Scripts today or migrate to Functions tomorrow, they serve a different purpose than post-purchase upsell apps. Functions/Scripts = checkout customization. Post-purchase apps = additional offer pages after payment. They're complementary, not competing.

Using Both Together

The most effective Shopify stores use checkout customization and post-purchase upsells together. Here's how they complement each other:

Example 1: BOGO at checkout + accessory upsell after

Use a Script or Function to automatically apply a "Buy 2, Get 1 Free" discount when a customer adds three of the same product. After they check out, show a post-purchase upsell for a complementary accessory. The Script/Function handles pricing logic; the upsell app handles the additional offer.

Example 2: Free shipping threshold + bundle upsell

Use a Script/Function to show free shipping when the cart exceeds $75. If a customer checks out at $65, the post-purchase upsell can offer a $15 product that would have pushed them over the free shipping threshold. While the free shipping logic runs at checkout, the upsell page catches customers who fell just short.

Example 3: VIP pricing + exclusive post-purchase offer

Tag your VIP customers in Shopify. Use a Script/Function to give them automatic 10% off all orders. Then use Kairo's condition targeting (customer has tag = "VIP") to show them an exclusive post-purchase upsell — maybe early access to a new product or a deeper discount on a bundle. The checkout logic and the post-purchase offer work together to create a premium experience.

Example 4: Payment method control + upsell targeting

Use a payment Script/Function to hide Cash on Delivery for orders over $200. Independently, use your upsell app to show a post-purchase offer. Since post-purchase upsells charge the same payment method (the customer accepted at checkout), the payment customization at checkout doesn't interfere with the upsell flow.

Common Scenarios: Which Tool to Use

Here's a quick decision guide:

  • "I want to automatically discount items in the cart." → Scripts/Functions. This is checkout pricing logic.
  • "I want to show a product offer after checkout." → Post-purchase upsell app. This is a post-purchase page.
  • "I want to offer a free gift with purchase." → Either can work. Scripts/Functions can auto-add a free item. A post-purchase app can offer it as a one-click add. The difference is whether it's automatic vs. opt-in.
  • "I want to run BOGO promotions." → Scripts/Functions. Automatic pricing logic during checkout.
  • "I want to recommend a complementary product." → Post-purchase upsell app. You're presenting a new product, not modifying the current cart.
  • "I want to offer a subscription after a one-time purchase." → Post-purchase upsell app. This is a new purchase decision, not a cart modification.
  • "I want to hide payment methods based on cart value." → Scripts/Functions. Checkout flow customization.
  • "I want to A/B test different offers." → Post-purchase upsell app. Kairo supports A/B testing for individual offers and entire flows. Scripts don't have built-in testing.

What Scripts Cannot Do

Despite their power, Scripts have clear limitations:

  • Cannot create new pages: Scripts modify existing checkout behavior. They can't insert a post-purchase offer page into the checkout flow.
  • Cannot add products after payment: Scripts run before payment is captured. They can't process additional charges after the transaction completes.
  • No visual customization: Scripts modify logic, not design. They don't have page builders, custom layouts, or visual editors.
  • No A/B testing: There's no built-in way to test different Script configurations against each other.
  • No analytics dashboard: Scripts don't report on performance. You need to track results through Shopify's standard analytics or third-party tools.
  • Plus only: At $2,300/month, Shopify Plus is a significant investment. Scripts are not accessible to the vast majority of Shopify merchants.

What Upsell Apps Cannot Do

Post-purchase upsell apps also have limitations:

  • Cannot modify cart pricing: Upsell apps don't change the prices of items already in the cart. If you want automatic BOGO or tiered discounts at checkout, you need Scripts/Functions.
  • Cannot control payment methods: Post-purchase apps don't modify which payment options appear during checkout.
  • Cannot modify shipping options: Shipping customization happens at checkout, outside the scope of post-purchase apps.
  • Run after payment only: Post-purchase offers can't influence the initial checkout decision. They're a separate, subsequent opportunity.

The bottom line: these tools are complementary. Scripts/Functions handle checkout logic — pricing, payments, shipping. Post-purchase apps handle the "would you also like...?" moment after the sale is already done. Most successful Shopify stores use some combination of both.

For a deeper look at customizing your checkout page beyond Scripts, see our guide on Shopify checkout page customization. And to understand exactly how the post-purchase upsell flow works from your customer's perspective, check out what is post-purchase upselling.

Ready to boost your revenue?

Try Kairo free for 14 days. Usage-based pricing starts at just $8/month — and scales with your upsell revenue.

Start Free Trial

Frequently Asked Questions

Do I need Shopify Plus to use post-purchase upsells?

No. Post-purchase upsell apps like Kairo work on all Shopify plans, not just Plus. Shopify Scripts, on the other hand, are exclusive to Shopify Plus. The post-purchase checkout extensibility feature that enables one-click upsell pages is available to all Shopify merchants.

Are Shopify Scripts being discontinued?

Shopify is deprecating Scripts in favor of Shopify Functions, which offer similar capabilities through a more modern, API-driven approach. Shopify Functions are available to all developers and support discounts, payment customizations, and delivery customizations. If you're currently using Scripts, Shopify recommends migrating to Functions.