User to Cart

Shopify order status page and Thank you page customization after additional scripts

The Shopify order status page and Thank you page can no longer be customized with additional scripts, checkout.liquid or script tags. Tracking now uses web pixels. Visible content, such as surveys, loyalty, delivery info and upsells, uses Checkout UI extensions on the Thank you page and customer account UI extensions on the Order status page. Both work on every Shopify plan. If your store still relied on the old methods, those customizations have already stopped running.

The timeline

From Shopify's developer documentation:

  • February 1, 2025: apps can no longer create script tags that load on the Order status page.
  • August 28, 2025: checkout.liquid and additional scripts are sunset on the Thank you and Order status pages. Script tags stop running on the Order status page for Plus stores.
  • August 26, 2026: script tags stop running on the Order status page for all other stores.

Separately, script tags on storefront pages are being deprecated. Apps can't create or update them from October 1, 2026, and Shopify stops injecting them on March 1, 2027.

What the old code usually did, and what replaces it

Old customizationReplacement
Conversion pixels (ads, analytics, affiliates) in additional scriptsWeb pixels: an app's pixel, or a custom pixel in Customer events
Post-purchase surveyThank you page extension (block target)
Loyalty points earned / referral linkThank you page and Order status extensions
Delivery date, pickup instructionsExtensions reading order data and metafields
Upsell / reorder promptThank you page extension, or a post-purchase offer app
App-injected script tag on Order statusCustomer account UI extension, or a web pixel for tracking
Liquid conditionals on first order / customer tagsExtension logic using the Order API and buyer identity

Tracking with web pixels

Web pixels run in a sandbox and subscribe to standard customer events such as page_viewed, product_added_to_cart, checkout_started and checkout_completed. There are two kinds:

  • App pixels, installed by an app (most ad and analytics platforms provide one), or built by you as a web pixel extension.
  • Custom pixels, pasted in Settings > Customer events in the admin. This is the closest thing to the old additional scripts box, but sandboxed.

An app pixel extension that forwards completed checkouts to your own endpoint:

// extensions/order-pixel/src/index.js
import {register} from '@shopify/web-pixels-extension';

register(({analytics, settings}) => {
  analytics.subscribe('checkout_completed', (event) => {
    const checkout = event.data.checkout;
    fetch(settings.endpoint, {
      method: 'POST',
      keepalive: true,
      body: JSON.stringify({
        orderId: checkout.order?.id,
        total: checkout.totalPrice?.amount,
        currency: checkout.currencyCode,
        discountCodes: checkout.discountApplications
          .filter((d) => d.type === 'DISCOUNT_CODE')
          .map((d) => d.title),
      }),
    });
  });
});

Pixels respect the customer's privacy consent settings, so check how your consent banner and regions are configured when numbers look lower than before.

For conversions that must never be missed, such as affiliate commissions or revenue reporting, send them server-side as well, from an orders/create webhook, and deduplicate by order ID.

Content on the Thank you page

Thank you page extensions use targets such as purchase.thank-you.block.render (placed by the merchant) and purchase.thank-you.announcement.render (a dismissible announcement at the top). The order is complete, so these targets are read-only. They can read the order number, whether it's the buyer's first order, buyer identity, cost totals and lines.

// A Thank you page block for first-time buyers
import '@shopify/ui-extensions/preact';
import {render} from 'preact';

export default function extension() {
  render(<Extension />, document.body);
}

function Extension() {
  const order = shopify.orderConfirmation?.value;
  if (!order?.isFirstOrder) return null;

  return (
    <s-banner heading="Welcome! Your first order is confirmed">
      Order {order.number}. Look out for your shipping email.
    </s-banner>
  );
}

Content on the Order status page

The Order status page is part of customer accounts, so it uses customer account UI extensions, with targets such as customer-account.order-status.block.render and ones placed after the fulfillment, payment or customer information sections. These can show fulfillment-related content, loyalty balances, return or warranty links, and data from your own systems via metafields or network access.

Common questions during the upgrade

"Our ad platform's conversions dropped after the switch." Check that the platform's app pixel is connected and consent settings match your regions. Then compare its conversion count with Shopify orders for the same days. Pixels only see customers who consent where consent is required, so some difference is expected. Server-side conversion APIs, fed from order webhooks, recover part of it where the platform supports them.

"We used Liquid in additional scripts to show content only to certain customers." Extensions can do the same with the order data and buyer identity available to them, or with metafields your app writes on the customer or order beforehand.

"An old app still says it needs a script tag." Check for an updated version of the app. If there isn't one, replace the app. Its Order status features stopped working on the dates above.

"We need the order ID in our own system when the Thank you page loads." Use an orders/create webhook on the server side instead. It's more reliable than anything in the browser, and it works even if the buyer closes the page.

Upgrade checklist

  1. Inventory everything that ran on these pages: additional scripts, checkout.liquid edits, and apps that used script tags. Shopify's upgrade guidance in the admin lists customizations it detected.
  2. Separate tracking from content. Tracking goes to web pixels, content to extensions.
  3. Check your apps. Most tracking and post-purchase apps have released pixel and extension versions. Update or replace the ones that haven't.
  4. Build custom extensions for anything specific to your store, often one small app containing a Thank you page block, an Order status block and a pixel.
  5. Verify conversions in each ad and analytics platform against Shopify's order count for a few days.
  6. Remove leftover code and old apps.

Frequently asked questions

What happened to additional scripts in Shopify?

Additional scripts, the box in checkout settings where you could paste code for the Order status page, were sunset together with checkout.liquid on the Thank you and Order status pages on August 28, 2025. Tracking moves to web pixels, and visible content moves to Checkout UI extensions and customer account UI extensions.

What is the Shopify Thank you page upgrade?

It's the move of the Thank you and Order status pages from checkout.liquid, additional scripts and script tags to extensions and web pixels. Shopify provided an upgrade guide and a report of customizations to replace; after the sunset dates, the old customizations simply stop running.

How do I add conversion tracking to the Shopify Thank you page now?

Use a web pixel. Many ad and analytics platforms provide an app that installs one; otherwise add a custom pixel in Settings > Customer events, or build an app pixel extension. Pixels subscribe to the checkout_completed event and receive the order data in a sandbox.

Can I show custom content on the Shopify order status page?

Yes. The Thank you page uses Checkout UI extension targets such as purchase.thank-you.block.render, and the Order status page in customer accounts uses customer account UI extension targets such as customer-account.order-status.block.render. Both are available on all plans.

My app used a script tag on the Order status page. Does it still work?

No. Script tags stopped running on the Order status page for Plus stores on August 28, 2025, and for all other stores on August 26, 2026. The replacement is a customer account UI extension for visible content, or a web pixel for tracking.

  • Checkout

    How Shopify checkout is customized today: Checkout UI extensions, Shopify Functions, branding, and Thank you and Order status pages, with plan requirements and when a no-code app is enough.

  • Checkout UI extensions

    How Shopify Checkout UI extensions work: targets, the Preact and Polaris web components API, settings, cart metafields, blocking progress, network access and plan limits, with a complete extension example.

  • Checkout Blocks vs custom

    When Shopify's Checkout Blocks app or another no-code checkout app is enough, and when you need a custom Checkout UI extension or Function: plan availability, typical use cases, limits and a decision checklist.

  • Checkout customization

    How to customize the Shopify checkout page in 2026: branding in the checkout editor, custom fields, content and upsells with Checkout UI extensions, discount, delivery and payment logic with Functions, and what each option needs.

  • Hire a Shopify app developer

    Freelance Shopify app developer for custom app development, ERP and accounting integrations, Checkout UI extensions and Shopify Functions. How an engagement works and what to prepare.