更新日時

How to Choose Between Shopify Checkout UI Extensions and Functions

Understanding the “Division of Roles” in Shopify Checkout Extensibility

Since 2022, Shopify has significantly updated the online store checkout experience to deliver the flexibility and extensibility required for enterprise-level ecommerce.

This has been gradually introduced as a new expansion model called Checkout Extensibility, greatly enhancing the flexibility and security required in enterprise environments.

At the core of this model are Checkout UI Extensions and Shopify Functions.

While both share the same goal—customizing Checkout—their execution environment, constraints, and responsibilities differ fundamentally. Choosing the wrong technology can break the entire architecture.

In this article, we break down the nature and appropriate use cases of Checkout UI Extensions and Shopify Functions based on their latest specifications (2024–2025), summarized in a comparison table.

1. Overview of Shopify Checkout Extensibility (Checkout Extensibility Guide)

Shopify Checkout Extensibility consists of the following technologies:

  • Checkout UI Extensions (UI customization) *Available on Shopify Plus only

  • Shopify Functions (logic customization)

  • Branding API (branding customization)*Available on Shopify Plus only

  • Web Pixel Extensions (analytics)

  • Payments Extensions (payment method customization)

Among these, the core components for real project requirements are UI Extensions and Functions.

Important limitation: Within Checkout UI Extensions, the Information, Shipping, and Payment steps are exclusive to Shopify Plus. The Thank You page and Order Status page are available for all plans.

2. Checkout UI Extensions: Extending the Customer Experience

Checkout UI Extensions enable developers to expand the UI elements displayed on the checkout page.

■ Where does it run?

It runs within a secure, isolated environment (sandbox) in the browser. This ensures safe UI customization without affecting Shopify’s core checkout logic.

■ Technologies used

  • Preact (JavaScript framework) is the standard

  • Preact became Shopify’s recommended approach starting October 2025

■ Integrating with external services

You can call external APIs, but you must enable network_access = true in the shopify.extension.toml configuration file.

The external server must also support CORS.

Reference:Checkout UI Extensions Configuration

■ Security constraints

  • Sensitive information such as API keys cannot be stored in the browser

  • Customer data access requires the use of session tokens

■ Main use cases

  • Adding additional information to shipping options
  • Gift wrapping selection UI
  • Estimated delivery date display
  • Adding custom input fields

In short, UI Extensions handle anything related to “appearance” or “user input.”

3. Shopify Functions: Extending Business Logic

Shopify Functions extend backend logic within the checkout process.

■ Where does it run?

It runs on Shopify’s servers, not in the browser—providing high speed and security.

■ Technologies used

  • Developed using Rust, JavaScript, or Go
  • Shopify recommends Rust for maximum performance within the 5 ms execution limit
  • Code is compiled into WebAssembly (Wasm) for fast execution

■ Why are there multiple Function APIs?

Each API is specialized based on the target of customization.

Changing shipping methods, computing discounts, controlling payment options—each requires different inputs and outputs, so separate APIs exist.

Examples:

  • Discount Function: Returns discount amounts for eligible items
  • Delivery Customization Function: Controls which shipping methods appear
  • Validation Function: Returns whether an order is valid

Main Function APIs:

  • Discount Function API: Unified management of product, order, and shipping discounts
  • Delivery Customization API: Show/hide or reorder shipping methods
  • Payment Customization API: Show/hide or reorder payment methods
  • Cart and Checkout Validation API: Validate orders and block checkout if needed
  • Cart Transform API: Modify how cart items are displayed (e.g., bundles)

These Functions run automatically during the checkout process and can be combined.

■ Integrating with external services

  • External calls are generally not allowed (for security and performance)
  • Only the Enterprise plan supports limited external calls
    • Exception: Pickup Point Delivery Option Generator is available to Plus users via early access (application required)   Details

■ Strict performance requirements

To ensure checkout remains fast, Shopify imposes strict limits:

  • Execution: 5 ms or less
  • Memory: up to 10 MB
  • Program size: under 256 KB

These constraints ensure that even complex logic does not slow down checkout.

■ Main use cases

  • Custom discount rules (e.g., Buy X Get Y)
  • Conditional shipping method control
  • Payment method restrictions
  • Cart validation (e.g., minimum order amounts)

4. Comparison: UI Extensions vs Functions

Checkout UI Extensions

Shopify Functions

Main Purpose

Extend UI elements and input fields in checkout

Extend calculation logic (discounts, shipping, payments)

Design Philosophy

Safely add UI without compromising checkout stability

High-speed logic execution isolated from UI

Execution Environment

Browser (customer side)

Shopify servers

Execution Timing

On screen render; re-renders based on interactions

Automatically during checkout processing

Scope

UI layer (inputs, banners, messages)

Business logic (discounts, shipping, validation)

Plan Limitations

Information/Shipping/Payment steps require Plus
Thank You / Order Status available to all

Available to all plans
External calls limited to Enterprise (some exceptions)

Technologies

Preact (JavaScript)

WebAssembly (Rust/JS/Go)

Data Access

Read-only access to cart & customer info

Read-only access to cart & customer info

External API Calls

Allowed (network_access required)

Not allowed (Enterprise-only exceptions, Only partially supported on the Plus plan)

Main Use Cases

• Display messages/banners

• Gift option UI

• Delivery estimate display

• Custom input fields

• Custom discount logic

• Adjust shipping options

• Order validation

• Payment method control

5. Practical Examples

Examples using UI Extensions

Example 1: Adding a gift message input field

Adds a gift message field and wrapping selection. Saved as cart attributes; no Functions required.

Example 2: Displaying estimated delivery dates

Fetch delivery estimates via an external API and display them. No Functions required.

Examples using Functions

Example 1: Volume discount (Buy 3 Get 1 Free)

  • API used: Discount Function API
  • Logic: Detect qualifying products and automatically apply discounts
  • Reason: Requires modifying price calculations on the server

Example 2: Minimum order amount validation

  • API used: Cart and Checkout Validation API
  • Logic: Validate customer tags and cart total; block checkout if below threshold
  • Reason: Must enforce rules server-side without bypass

Example 3: Conditional shipping rules

  • API used: Delivery Customization Function API
  • Reason: Direct modification of shipping option logic is required

6. Which should you choose?

— The two technologies are not competitors, but complements —

In conclusion, UI Extensions and Functions serve entirely different roles.

  • UI Extensions = customer experience
  • Functions = business logic

For enterprise ecommerce, the key to success is combining both appropriately: “UI with Extensions, logic with Functions.”

At Flagship, we design balanced architectures that take UI, logic, and external integrations into account based on your specific requirements.

Contact us here


References
About network access for Shopify Functions
Shopify Function API Reference
Checkout UI Extensions Configuration
Shopify Unite Insights: What's coming next for your Shopify store?
Official Shopify UI Extensions React Package (@shopify/ui-extensions-react)