Guide for building and managing Shopify Extensions (Admin, Checkout, Theme, Post-purchase, etc.) using the latest Shopify CLI and APIs.
This skill provides a comprehensive guide to building Shopify Extensions. Extensions allow you to integrate your app's functionality directly into Shopify's user interfaces (Admin, Checkout, Online Store, POS) and backend logic.
npm install -g @shopify/cli@latest
Embed your app into the Shopify Admin interface.
shopify.extension.toml.
[[extensions]]
type = "ui_extension"
name = "product-action"
handle = "product-action"
[[extensions.targeting]]
target = "admin.product-details.action.render"
module = "./src/ActionExtension.jsx"
Customize the checkout flow (requires Shopify Plus for some features).
[[extensions]]
type = "ui_extension"
name = "checkout-banner"
handle = "checkout-banner"
[[extensions.targeting]]
target = "purchase.checkout.block.render"
module = "./src/CheckoutBanner.jsx"
Integrate with Online Store 2.0 themes without modifying theme code.
The shopify app generate extension command is the primary way to create new extensions.
shopify app generate extension
This runs an interactive wizard where you select the extension type and name.
You can bypass prompts by providing flags:
shopify app generate extension --name "my-extension" --template <template_type> --flavor <flavor>
--name: The name of your extension.--template: The type of extension to generate (e.g., checkout_ui, product_subscription, theme_app_extension).--flavor: The language/framework to use (e.g., react, typescript, vanilla-js). Note: Not all extensions support all flavors.Create a Checkout UI Extension (React):
shopify app generate extension --template checkout_ui --name "checkout-upsell" --flavor react
Create a Theme App Extension:
shopify app generate extension --template theme_app_extension --name "trust-badges"
Create a Shopify Function (Product Discount - Rust):
shopify app generate extension --template product_discounts --name "volume-discount" --flavor rust
--client-id <value>: Explicitly link to a specific app Client ID.--path <path>: Run the command in a specific directory.--reset: Reset the project configuration.Generate Extension:
shopify app generate extension
Select the extension type from the list.
Develop:
shopify.extension.toml.shopify app dev to preview.Deploy:
shopify app deploy
This publishes the extension version to Shopify Partners.
Publish:
useApi() hook in React extensions to access valid APIs and data for the current context.