User to Cart

Shopify checkout customization: what you can change and how

Shopify checkout customization means changing three things: how checkout looks (branding in the checkout editor), what it shows and asks for (Checkout UI extensions) and how it behaves (Shopify Functions for discounts, delivery, payment and validation). You can't edit checkout's HTML or add arbitrary JavaScript any more, but the supported tools cover most of what merchants used to hack in, and they survive Shopify updates.

What you can customize, and with what

You want to…UsePlan notes
Change logo, colours, fonts, cornersCheckout editor (branding)All plans
Add a custom field (PO number, delivery note, gift message)Checkout UI extensionInfo/shipping/payment steps: Plus
Show a banner, trust badges, FAQsCheckout UI extension or appInfo/shipping/payment steps: Plus
Offer an upsell in checkoutCheckout UI extensionInfo/shipping/payment steps: Plus
Add content to Thank you / Order statusCheckout / customer account UI extensionAll plans
Create a custom discount ruleDiscount FunctionPublic app: all plans; custom app: Plus
Hide, rename or reorder delivery optionsDelivery customization FunctionPublic app: all plans; custom app: Plus
Hide, rename or reorder payment methodsPayment customization FunctionSame, plus some Plus-only options
Block checkout for invalid cartsCart and checkout validation FunctionPublic app: all plans; custom app: Plus
Bundle or split cart linesCart Transform FunctionPublic app: all plans; custom app: Plus
Tracking / conversion pixelsWeb pixels (customer events)All plans

Editing the checkout page in the admin

In your admin, go to Settings > Checkout and click Customize. The checkout editor lets you:

  • set branding: logo, colours, typography, button style and so on;
  • add app blocks from installed apps to targets on each step, and configure their settings;
  • preview each step and each page, including Thank you and Order status.

Custom extensions from your own app appear in the same editor, so a merchandiser can place, configure or remove them without a developer.

Custom fields in checkout

A common request is a field that ends up on the order: a PO number, delivery instructions, a gift message or a VAT number. The current pattern:

  1. A Checkout UI extension renders the field at the right target, for example after the delivery address.
  2. It saves the value as a cart metafield, which Shopify copies to an order metafield when a matching order metafield definition allows it.
  3. If the field is required, the extension or a validation Function blocks progress with a clear error until it's filled in.
  4. The value then appears in the admin, in order notifications and in integrations.

The technical detail, with code, is in Checkout UI extensions. B2B checkouts have a native PO number field, so check that before building one.

Changing checkout logic

Discount, shipping and payment rules are not UI. They are Shopify Functions, which Shopify runs on its servers at the right moment in checkout:

  • Delivery customization: hide express shipping for PO box addresses, rename a rate, or put local delivery first.
  • Payment customization: hide cash on delivery above a cart value, or show invoice payment only for B2B customers.
  • Validation: block a cart that mixes restricted items, or require a minimum quantity per product.
  • Discounts: tiered, bundle or customer-specific rules the native discount types can't express.

See Shopify Functions.

What you can't do

  • Rewrite checkout's HTML or CSS outside branding settings.
  • Run arbitrary third-party JavaScript in checkout. Use web pixels for tracking.
  • Reorder checkout's steps or remove required fields that Shopify controls.
  • Collect card data yourself. Payment methods come from Shopify Payments and supported providers.

These limits are what keep checkout fast and secure, and they are also why extension-based customizations survive platform updates that broke checkout.liquid edits.

Build or install?

Many customizations are available as configurable apps, including Shopify's own Checkout Blocks app. If an app does what you need, use it. Custom development makes sense for business-specific logic, data that must reach an integration in a particular shape, or combinations of UI and Functions that no app offers. See Checkout Blocks vs a custom extension.

Examples of common requests and how they're built

  • "Ask for a delivery date." A Checkout UI extension with a date picker, saving to a cart metafield copied to the order. The allowed dates come from a metafield your app keeps up to date, and a validation Function rejects dates that became unavailable.
  • "Show a free shipping progress message." A Checkout UI extension that reads the cart subtotal and the threshold from a metafield. The free shipping itself is a native discount or a discount Function.
  • "Only allow invoice payment for approved trade customers." A payment customization Function that hides the invoice method unless the customer or company has an approved flag in a metafield.
  • "Stop orders with hazardous items going by air." A delivery customization Function that hides air services when the cart contains products with a hazmat metafield.
  • "Collect a tax ID for business orders." A Checkout UI extension for the field plus a validation Function for the format. B2B customers may already have tax details on their company location.
  • "Add trust badges and a returns summary." A content block, often available from an app without custom code.

Performance and conversion

Every addition to checkout adds something for the buyer to read, wait for or do. Before adding anything, ask whether it helps the buyer complete the order. Keep extensions light, avoid network calls during checkout where metafields can supply the data, and compare conversion rate before and after each change.

Decision checklist

  • Which step and which target? Info, shipping and payment need Plus.
  • Is it look (branding), UI (extension) or logic (Function)?
  • Where must the data end up: order metafield, attribute, integration?
  • Does it need to block checkout, and what's the error message?
  • Does an app already do it?

Frequently asked questions

How do I edit the checkout page in Shopify?

Go to Settings > Checkout in your Shopify admin and click Customize to open the checkout editor. There you can change branding (logo, colours, fonts) and add, move or remove app blocks from installed apps. Changes beyond that, such as custom fields or logic, come from Checkout UI extensions and Shopify Functions provided by apps.

Can I add a custom field to Shopify checkout?

Yes, with a Checkout UI extension that renders the field and saves its value, for example to a cart metafield that is copied to the order. On the information, shipping and payment steps this requires Shopify Plus. You can build it or use an app that provides configurable fields.

Can I hide a shipping or payment method at checkout?

Yes, with a delivery customization or payment customization Function. They can hide, rename or reorder options based on the cart, the customer, the address or the market. Use one from a public app on any plan, or a custom app on Shopify Plus.

Can I change the layout of the Shopify checkout?

Within limits. The checkout editor and branding settings control colours, typography, corner radius, header and some layout choices, and extensions add content at defined targets. You can't restructure checkout's steps or rewrite its HTML; Shopify keeps checkout consistent for performance, security and conversion.

Why can't I use JavaScript in Shopify checkout anymore?

Arbitrary scripts in checkout were removed with checkout.liquid and additional scripts. Extensions run in a sandbox with a defined API, which protects payment data and keeps checkout fast. Tracking uses web pixels, which also run sandboxed.

  • 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.

  • Shopify Functions

    What Shopify Functions are and what they can do: discount functions, cart transform, delivery and payment customization, cart and checkout validation. How they're built, plan requirements, limits, and example code.

  • 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.