Skip to main content

ExtensionTargets

A target represents where your checkout UI extension will appear.

You register for targets in your configuration file, and you include a JavaScript function that will run at that location in checkout.

The API for each extension target is passed as an argument to your function. While all targets inherit the StandardApi, not all of them share the same properties and methods.

For example, the purchase.checkout.cart-line-item.render-after target has access to the CheckoutApi to modify a checkout, but the purchase.thank-you.cart-line-item.render-after target does not.

Anchor to types of extension targetsTypes of extension targets

See a visual representation of each extension target.

Anchor to purchase.checkout.actions.render-before
purchase.checkout.actions.render-before
< & <'purchase.checkout.actions.render-before'>, >
required

A static extension target that is rendered immediately before any actions within each step.

Anchor to purchase.checkout.cart-line-list.render-after
purchase.checkout.cart-line-list.render-after
< & <'purchase.checkout.cart-line-list.render-after'>, >
required

A static extension target that is rendered after all line items.

Anchor to purchase.checkout.cart-line-item.render-after
purchase.checkout.cart-line-item.render-after
< & & <'purchase.checkout.cart-line-item.render-after'>, >
required

A static extension target that renders on every line item, inside the details under the line item properties element.

Anchor to purchase.checkout.contact.render-after
purchase.checkout.contact.render-after
< & <'purchase.checkout.contact.render-after'>, >
required

A static extension target that is rendered immediately after the contact form element.

Anchor to purchase.checkout.delivery-address.render-before
purchase.checkout.delivery-address.render-before
< & <'purchase.checkout.delivery-address.render-before'>, >
required

A static extension target that is rendered between the shipping address header and shipping address form elements.

Anchor to purchase.checkout.block.render
purchase.checkout.block.render
< & <'purchase.checkout.block.render'>, >
required

A dynamic extension target that isn't tied to a specific checkout section or feature. Unlike static extension targets, dynamic extension targets render where the merchant sets them using the checkout editor.

The supported locations for dynamic extension targets can be previewed during development by using a URL parameter.

Anchor to purchase.thank-you.block.render
purchase.thank-you.block.render
< <'purchase.thank-you.block.render'>, >
required

A dynamic extension target that renders exclusively on the Thank you page. Unlike static extension targets, dynamic extension targets render where the merchant sets them using the checkout editor.

The supported locations for dynamic extension targets can be previewed during development by using a URL parameter.

Anchor to purchase.thank-you.cart-line-item.render-after
purchase.thank-you.cart-line-item.render-after
< & <'purchase.thank-you.cart-line-item.render-after'>, >
required

A static extension target that renders on every line item, inside the details under the line item properties element on the Thank you page.

Anchor to purchase.thank-you.cart-line-list.render-after
purchase.thank-you.cart-line-list.render-after
< <'purchase.thank-you.cart-line-list.render-after'>, >
required

A static extension target that is rendered after all line items on the Thank you page.

Anchor to purchase.thank-you.customer-information.render-after
purchase.thank-you.customer-information.render-after
< <'purchase.thank-you.customer-information.render-after'>, >
required

A static extension target that is rendered after a purchase below the customer information on the Thank you page.

Anchor to customer-account.order-status.block.render
customer-account.order-status.block.render
< & <'customer-account.order-status.block.render'>, >
required

A dynamic extension target that renders exclusively on the Order status page. Unlike static extension targets, dynamic extension targets render where the merchant sets them using the checkout editor.

The supported locations for dynamic extension targets can be previewed during development by using a URL parameter.

Anchor to customer-account.order-status.cart-line-item.render-after
customer-account.order-status.cart-line-item.render-after
< & & <'customer-account.order-status.cart-line-item.render-after'>, >
required

A static extension target that renders on every line item, inside the details under the line item properties element on the Order status page.

Anchor to customer-account.order-status.cart-line-list.render-after
customer-account.order-status.cart-line-list.render-after
< & <'customer-account.order-status.cart-line-list.render-after'>, >
required

A static extension target that is rendered after all line items on the Order status page.

Anchor to customer-account.order-status.customer-information.render-after
customer-account.order-status.customer-information.render-after
< & <'customer-account.order-status.customer-information.render-after'>, >
required

A static extension target that is rendered after a purchase below the customer information on the Order status page.

Anchor to purchase.checkout.reductions.render-before
purchase.checkout.reductions.render-before
< & <'purchase.checkout.reductions.render-before'>, >
required

A static extension target that is rendered in the order summary, before the discount form element.

Anchor to purchase.checkout.reductions.render-after
purchase.checkout.reductions.render-after
< & <'purchase.checkout.reductions.render-after'>, >
required

A static extension target that is rendered in the order summary, after the discount form and discount tag elements.

Anchor to purchase.checkout.shipping-option-list.render-before
purchase.checkout.shipping-option-list.render-before
< & <'purchase.checkout.shipping-option-list.render-before'>, >
required

A static extension target that is rendered between the shipping method header and shipping method options.

Anchor to purchase.checkout.shipping-option-list.render-after
purchase.checkout.shipping-option-list.render-after
< & <'purchase.checkout.shipping-option-list.render-after'>, >
required

A static extension target that is rendered after the shipping method options.

Anchor to purchase.checkout.pickup-location-list.render-before
purchase.checkout.pickup-location-list.render-before
< & & <'purchase.checkout.pickup-location-list.render-before'>, >
required

A static extension target that is rendered before pickup location options.

Anchor to purchase.checkout.pickup-location-list.render-after
purchase.checkout.pickup-location-list.render-after
< & & <'purchase.checkout.pickup-location-list.render-after'>, >
required

A static extension target that is rendered after pickup location options.

Anchor to purchase.checkout.shipping-option-item.render-after
purchase.checkout.shipping-option-item.render-after
< & & <'purchase.checkout.shipping-option-item.render-after'>, >
required

A static extension target that is rendered after the shipping method details within the shipping method option list, for each option.

Anchor to purchase.checkout.shipping-option-item.details.render
purchase.checkout.shipping-option-item.details.render
< & & <'purchase.checkout.shipping-option-item.details.render'>, >
required

A static extension target that is rendered under the shipping method within the shipping method option list, for each option.

Anchor to purchase.checkout.pickup-point-list.render-before
purchase.checkout.pickup-point-list.render-before
< & & <'purchase.checkout.pickup-point-list.render-before'>, >
required

A static extension target that is rendered immediately before the pickup points.

Anchor to purchase.checkout.pickup-point-list.render-after
purchase.checkout.pickup-point-list.render-after
< & & <'purchase.checkout.pickup-point-list.render-after'>, >
required

A static extension target that is rendered immediately after the pickup points.

Anchor to Checkout::Actions::RenderBefore
Checkout::Actions::RenderBefore
< & <'Checkout::Actions::RenderBefore'>, >
required

A static extension target that is rendered immediately before any actions within each step.

Deprecated

Use purchase.checkout.actions.render-before instead.

Anchor to Checkout::CartLines::RenderAfter
Checkout::CartLines::RenderAfter
< & <'Checkout::CartLines::RenderAfter'> & , >
required

A static extension target that is rendered after all line items.

Deprecated

Use purchase.checkout.cart-line-list.render-after instead.

Anchor to Checkout::CartLineDetails::RenderAfter
Checkout::CartLineDetails::RenderAfter
< & & <'Checkout::CartLineDetails::RenderAfter'> & , >
required

A static extension target that renders on every line item, inside the details under the line item properties element.

Deprecated

Use purchase.checkout.cart-line-item.render-after instead.

Anchor to Checkout::Contact::RenderAfter
Checkout::Contact::RenderAfter
< & <'Checkout::Contact::RenderAfter'>, >
required

A static extension target that is rendered immediately after the contact form element.

Deprecated

Use purchase.checkout.contact.render-after instead.

Anchor to Checkout::CustomerInformation::RenderAfter
Checkout::CustomerInformation::RenderAfter
< & & <'Checkout::CustomerInformation::RenderAfter'>, >
required

A static extension target that is rendered after a purchase below the customer information.

Deprecated

Use purchase.thank-you.customer-information.render-after or customer-account.order-status.customer-information.render-after instead.

Anchor to Checkout::DeliveryAddress::RenderBefore
Checkout::DeliveryAddress::RenderBefore
< & <'Checkout::DeliveryAddress::RenderBefore'>, >
required

A static extension target that is rendered between the shipping address header and shipping address form elements.

Deprecated

Use purchase.checkout.delivery-address.render-before instead.

Anchor to Checkout::Dynamic::Render
Checkout::Dynamic::Render
< & & <'Checkout::Dynamic::Render'>, >
required

A dynamic extension target that isn't tied to a specific checkout section or feature. Unlike static extension targets, dynamic extension targets render where the merchant sets them using the checkout editor.

The supported locations for dynamic extension targets can be previewed during development by using a URL parameter.

Deprecated

Use purchase.checkout.block.render instead.

Anchor to Checkout::ThankYou::Dynamic::Render
Checkout::ThankYou::Dynamic::Render
< <'Checkout::ThankYou::Dynamic::Render'>, >
required

A dynamic extension target that renders exclusively on the Thank you page. Unlike static extension targets, dynamic extension targets render where the merchant sets them using the checkout editor.

The supported locations for dynamic extension targets can be previewed during development by using a URL parameter.

Deprecated

Use purchase.thank-you.block.render instead.

Anchor to Checkout::ThankYou::CartLineDetails::RenderAfter
Checkout::ThankYou::CartLineDetails::RenderAfter
< & <'Checkout::ThankYou::CartLineDetails::RenderAfter'>, >
required

A static extension target that renders on every line item, inside the details under the line item properties element on the Thank you page.

Deprecated

Use purchase.thank-you.cart-line-item.render-after instead.

Anchor to Checkout::ThankYou::CartLines::RenderAfter
Checkout::ThankYou::CartLines::RenderAfter
< <'Checkout::ThankYou::CartLines::RenderAfter'>, >
required

A static extension target that is rendered after all line items on the Thank you page.

Deprecated

Use purchase.thank-you.cart-line-list.render-after instead.

Anchor to Checkout::ThankYou::CustomerInformation::RenderAfter
Checkout::ThankYou::CustomerInformation::RenderAfter
< <'Checkout::ThankYou::CustomerInformation::RenderAfter'>, >
required

A static extension target that is rendered after a purchase below the customer information on the Thank you page.

Deprecated

Use purchase.thank-you.customer-information.render-after instead.

Anchor to Checkout::OrderStatus::Dynamic::Render
Checkout::OrderStatus::Dynamic::Render
< & <'Checkout::OrderStatus::Dynamic::Render'>, >
required

A dynamic extension target that renders exclusively on the Order status page. Unlike static extension targets, dynamic extension targets render where the merchant sets them using the checkout editor.

The supported locations for dynamic extension targets can be previewed during development by using a URL parameter.

Deprecated

Use customer-account.order-status.block.render instead.

Anchor to Checkout::OrderStatus::CartLineDetails::RenderAfter
Checkout::OrderStatus::CartLineDetails::RenderAfter
< & & <'Checkout::OrderStatus::CartLineDetails::RenderAfter'>, >
required

A static extension target that renders on every line item, inside the details under the line item properties element on the Order status page.

Deprecated

Use customer-account.order-status.cart-line-item.render-after instead.

Anchor to Checkout::OrderStatus::CartLines::RenderAfter
Checkout::OrderStatus::CartLines::RenderAfter
< & <'Checkout::OrderStatus::CartLines::RenderAfter'>, >
required

A static extension target that is rendered after all line items on the Order status page.

Deprecated

Use customer-account.order-status.cart-line-list.render-after instead.

Anchor to Checkout::OrderStatus::CustomerInformation::RenderAfter
Checkout::OrderStatus::CustomerInformation::RenderAfter
< & <'Checkout::OrderStatus::CustomerInformation::RenderAfter'>, >
required

A static extension target that is rendered after a purchase below the customer information on the Order status page.

Deprecated

Use customer-account.order-status.customer-information.render-after instead.

Anchor to Checkout::Reductions::RenderBefore
Checkout::Reductions::RenderBefore
< & <'Checkout::Reductions::RenderBefore'>, >
required

A static extension target that is rendered in the order summary, before the discount form element.

Deprecated

Use purchase.checkout.reductions.render-before instead.

Anchor to Checkout::Reductions::RenderAfter
Checkout::Reductions::RenderAfter
< & <'Checkout::Reductions::RenderAfter'>, >
required

A static extension target that is rendered in the order summary, after the discount form and discount tag elements.

Deprecated

Use purchase.checkout.reductions.render-after instead.

Anchor to Checkout::ShippingMethods::RenderBefore
Checkout::ShippingMethods::RenderBefore
< & <'Checkout::ShippingMethods::RenderBefore'>, >
required

A static extension target that is rendered between the shipping method header and shipping method options.

Deprecated

Use purchase.checkout.shipping-option-list.render-before instead.

Anchor to Checkout::ShippingMethods::RenderAfter
Checkout::ShippingMethods::RenderAfter
< & <'Checkout::ShippingMethods::RenderAfter'>, >
required

A static extension target that is rendered after the shipping method options.

Deprecated

Use purchase.checkout.shipping-option-list.render-after instead.

Anchor to Checkout::PickupLocations::RenderBefore
Checkout::PickupLocations::RenderBefore
< & & <'Checkout::PickupLocations::RenderBefore'>, >
required

A static extension target that is rendered before pickup location options.

Deprecated

Use purchase.checkout.pickup-location-list.render-before instead.

Anchor to Checkout::PickupLocations::RenderAfter
Checkout::PickupLocations::RenderAfter
< & & <'Checkout::PickupLocations::RenderAfter'>, >
required

A static extension target that is rendered after pickup location options.

Deprecated

Use purchase.checkout.pickup-location-list.render-after instead.

Anchor to Checkout::ShippingMethodDetails::RenderAfter
Checkout::ShippingMethodDetails::RenderAfter
< & & <'Checkout::ShippingMethodDetails::RenderAfter'>, >
required

A static extension target that is rendered after the shipping method details within the shipping method option list, for each option.

Deprecated

Use purchase.checkout.shipping-option-item.render-after instead.

Anchor to Checkout::ShippingMethodDetails::RenderExpanded
Checkout::ShippingMethodDetails::RenderExpanded
< & & <'Checkout::ShippingMethodDetails::RenderExpanded'>, >
required

A static extension target that is rendered under the shipping method within the shipping method option list, for each option.

Deprecated

Use purchase.checkout.shipping-option-item.details.render instead.

Anchor to Checkout::PickupPoints::RenderBefore
Checkout::PickupPoints::RenderBefore
< & & <'Checkout::PickupPoints::RenderBefore'>, >
required

A static extension target that is rendered immediately before the pickup points.

Deprecated

Use purchase.checkout.pickup-point-list.render-before instead.

Anchor to Checkout::PickupPoints::RenderAfter
Checkout::PickupPoints::RenderAfter
< & & <'Checkout::PickupPoints::RenderAfter'>, >
required

A static extension target that is rendered immediately after the pickup points.

Deprecated

Use purchase.checkout.pickup-point-list.render-after instead.

Was this section helpful?
import {
reactExtension,
Banner,
useApi,
} from '@shopify/ui-extensions-react/checkout';

function Extension() {
const {extension} = useApi();
const {target} = extension;

return (
<Banner>
This extension is rendering in the {target}
extension target.
</Banner>
);
}

// You can export a single extension target per file

// ./Actions.jsx
export default reactExtension(
'purchase.checkout.actions.render-before',
() => <Extension />,
);

// ./Delivery.jsx
export default reactExtension(
'purchase.checkout.delivery-address.render-before',
() => <Extension />,
);

// ./ShippingOptions.jsx
export default reactExtension(
'purchase.checkout.shipping-option-list.render-after',
() => <Extension />,
);

// ./Block.jsx
export default reactExtension(
'purchase.checkout.block.render',
() => <Extension />,
);