There are many options available that allow you to customize and extend Shopify checkout. This guide introduces the available technologies for customizing checkout, and ways that you can extend checkout. ## Technologies You can customize Shopify checkout using the following technologies: | Technology | Customization type | Availability | |---|---|---| | [Checkout UI extensions](/docs/api/checkout-ui-extensions) | Add custom UI or content to the checkout process and **Order status** page | Shopify Plus.<br></br>Thank you and Order status extensions are available to all plans except Shopify Starter. | | [GraphQL Admin API](/docs/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert) | Customize the look and feel of checkout | Shopify Plus | | [Shopify Functions](/docs/apps/build/functions) | Extend or replace key parts of Shopify’s backend with custom logic | All plans except Shopify Starter.<br></br>Some Function APIs are only available in [developer preview](/docs/api/developer-previews).<br></br>Merchants that have [checkout.liquid](/docs/storefronts/themes/architecture/layouts/checkout-liquid) customizations need to [upgrade to Checkout Extensibility](https://help.shopify.com/manual/checkout-settings/checkout-extensibility/checkout-upgrade) to use Function APIs. | | [Post-purchase checkout extensions](/docs/apps/build/checkout/product-offers#post-purchase-product-offers) | Add new content to the post-purchase page | All plans except Shopify Starter.<br></br>Currently in beta. Can be used without restrictions in a [development store](/docs/api/development-stores). To use post-purchase extensions on a live store, you need to [request access](/docs/apps/build/checkout/product-offers/build-a-post-purchase-offer#step-5-request-access). | | [Web pixel app extensions](/docs/api/pixels) | Track customer behavior | All plans except Shopify starter. | The following diagram provides a decision tree for choosing a technology:  ## Use cases There are a variety of ways that you can customize Shopify checkout. The following table describes some common use cases that you can build: | Technology | Customization type | Use cases | |---|---|---| | [Checkout UI extensions](/docs/api/checkout-ui-extensions) | Add custom UI or content to the checkout process and **Order status** page | <ul><li><a href="/docs/apps/build/checkout/product-offers/build-a-pre-purchase-offer">Show a product offer before</a> a customer completes checkout.</li><li><a href="/docs/apps/build/checkout/fields-banners/add-field">Capture additional input</a> from customers.</li><li><a href="/docs/apps/build/checkout/fields-banners/add-banner">Build a custom banner</a> that displays in checkout.</li><li><a href="/docs/apps/build/checkout/thank-you-order-status/add-survey">Capture a survey</a> of the buying experience, or reviews when orders are fulfilled.</li><li>Provide a referral code to new customers.</li><li><a href="/docs/apps/build/checkout/cart-checkout-validation/create-client-side-validation">Add a field validation at checkout</a> that blocks customers from progressing in the checkout if they input invalid data.</li></ul> | | [GraphQL Admin API](/docs/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert) | Customize the look and feel of checkout | <ul><li><a href="/docs/apps/build/checkout/styling">Apply branding changes</a> such as changing the colors and corner radius settings on checkout form fields.</li></ul> | | [Shopify Functions](/docs/apps/build/functions) | Extend or replace key parts of Shopify’s backend with custom logic | <ul><li><a href="/docs/apps/build/discounts/build-discount-function">Create a new type of discount</a> that's offered in the cart and at checkout.</li><li>Rename, reorder, and sort the <a href="/docs/apps/build/checkout/payments">payment options</a> available to customers during checkout.</li><li>Rename, reorder, and sort the <a href="/docs/apps/build/checkout/delivery-shipping#delivery-options">delivery options</a> available to customers during checkout.</li><li>Enforce an order maximum for customers with insufficient order history and <a href="/docs/apps/build/checkout/cart-checkout-validation/create-server-side-validation-function">prevent them from proceeding through checkout</a>.</li><li><a href="/docs/apps/build/orders-fulfillment/order-routing-apps/location-rules">Use location rules</a> to rank the possible locations for a line item during checkout.</li><li><a href="/docs/apps/build/orders-fulfillment/order-routing-apps/build-fulfillment-constraints-function">Use fulfillment constraints</a> to customize fulfillment and delivery strategies during the checkout and fulfillment process.</li><li>Generate options for the <a href="/docs/apps/build/checkout/delivery-shipping/delivery-methods/generate-pickup-points">pickup points</a> that are available to customers.</li></ul> | | [Post-purchase checkout extensions](/docs/apps/build/checkout/product-offers#post-purchase-product-offers) | Add new content to the post-purchase page | <ul><li><a href="/docs/apps/build/checkout/product-offers/build-a-post-purchase-offer">Show a product offer after customers have checked out</a>, but before they arrive at the order confirmation page.</li><li>Capture additional information after customers have checked out, but before they arrive at the order confirmation page.</li></ul> | | [Web pixel app extensions](/docs/api/pixels) | Track customer behavior | <ul><li><a href="/docs/apps/build/marketing-analytics/build-web-pixels">Collect customer behavioral data</a> to measure and optimize marketing campaign performance as well as your online store's conversion funnel.</li></ul> ## Next steps - Learn how to [get started](/docs/apps/build/checkout/start-building) building for checkout. - Learn how to use checkout UI and post-purchase extensions by following [one of our use case tutorials](/docs/api/checkout-extensions#getting-started). - Learn how to use Shopify Functions by following [one of our use case tutorials](/docs/apps/build/functions#getting-started). - [Create a web pixel app extension](/docs/apps/build/marketing-analytics/build-web-pixels) to track customer behavior and subscribe to all events emitted by Shopify. - Use the GraphQL Admin API to [apply branding changes](/docs/apps/build/checkout/styling) to checkout.