Skip to main content
Migrate to Polaris

Version 2025-07 is the last API version to support React-based UI components. Later versions use web components, native UI elements with built-in accessibility, better performance, and consistent styling with Shopify's design system. Check out the migration guide to upgrade your extension.

Delivery API

The APIs for interacting with delivery and shipping options.

Tip

Not all extension targets implement all APIs. Check the documentation for the extension target you are using to see which APIs are available.

The base API object provided to purchase extension targets.

Anchor to deliveryGroups
deliveryGroups
StatefulRemoteSubscribable<[]>
required

A list of delivery groups containing information about the delivery of the items the customer intends to purchase.

Returns the full expanded details of a delivery group and automatically re-renders your component when that delivery group changes.

Anchor to deliveryGroup
deliveryGroup
required

| undefined

Anchor to useDeliveryGroups
useDeliveryGroups()

Returns the current delivery groups for the checkout, and automatically re-renders your component when delivery address or delivery option selection changes.

[]

This API object is provided to extensions registered for the purchase.checkout.shipping-option-item.render-after and purchase.checkout.shipping-option-item.details.render extension targets.

Anchor to isTargetSelected
isTargetSelected
StatefulRemoteSubscribable<boolean>
required

Whether the shipping option the extension is attached to is currently selected in the UI.

Anchor to renderMode
renderMode
required

The render mode of the shipping option.

Anchor to target
target
StatefulRemoteSubscribable<>
required

The shipping option the extension is attached to.

Anchor to useShippingOptionTarget
useShippingOptionTarget()

Returns the shipping option the extension is attached to. This hook can only be used by extensions in the following extension targets:

  • purchase.checkout.shipping-option-item.render-after
  • purchase.checkout.shipping-option-item.details.render

{ shippingOptionTarget: ; isTargetSelected: boolean; renderMode: ; }

Anchor to ShippingOptionListApiShippingOptionListApi

This API object is provided to extensions registered for the purchase.checkout.shipping-option-list.render-before and purchase.checkout.shipping-option-list.render-after extension targets.

Anchor to deliverySelectionGroups
deliverySelectionGroups
StatefulRemoteSubscribable< [] | undefined >
required

The list of selection groups available to the buyers. The property will be undefined when no such groups are available.

Anchor to target
target
StatefulRemoteSubscribable< | undefined>
required

The delivery group list the extension is attached to. The target will be undefined when there are no groups for a given type.

Anchor to useDeliveryGroupTarget
useDeliveryGroupTarget()

Returns the delivery group the extension is attached to. This hook can only be used by extensions in the following extension targets:

  • purchase.checkout.shipping-option-list.render-before
  • purchase.checkout.shipping-option-list.render-after
Caution

Deprecated as of version 2024-07, use useDeliveryGroupListTarget() instead.

| undefined

Anchor to useDeliveryGroupListTarget
useDeliveryGroupListTarget()

Returns the delivery group list the extension is attached to. This hook can only be used by extensions in the following extension targets:

  • purchase.checkout.shipping-option-list.render-before
  • purchase.checkout.shipping-option-list.render-after

| undefined

Anchor to useDeliverySelectionGroups
useDeliverySelectionGroups()

Returns the list of delivery selection groups available to the buyers. This hook can only be used by extensions in the following extension targets:

  • purchase.checkout.shipping-option-list.render-before
  • purchase.checkout.shipping-option-list.render-after

| [] | undefined

This API object is provided to extensions registered for the purchase.checkout.pickup-point-list.render-before and purchase.checkout.pickup-point-list.render-after extension targets.

Anchor to isLocationFormVisible
isLocationFormVisible
StatefulRemoteSubscribable<boolean>
required

Reflects which view was active when the extension loaded. When the buyer moves to the next view, the extension restarts with the current value rather than updating in place.

Anchor to PickupLocationListApiPickupLocationListApi

This API object is provided to extensions registered for the purchase.checkout.pickup-location-list.render-before and purchase.checkout.pickup-location-list.render-after extension targets.

Anchor to isLocationFormVisible
isLocationFormVisible
StatefulRemoteSubscribable<boolean>
required

Whether the customer location input form is shown to the buyer.

Anchor to PickupLocationItemApiPickupLocationItemApi

The API object provided to the purchase.checkout.pickup-location-option-item.render-after extension target.

Anchor to isTargetSelected
isTargetSelected
StatefulRemoteSubscribable<boolean>
required

Whether the pickup location is currently selected.

Anchor to target
target
StatefulRemoteSubscribable<>
required

The pickup location the extension is attached to.

Anchor to usePickupLocationOptionTarget
usePickupLocationOptionTarget()

Returns the pickup location option the extension is attached to. This hook can only be used by extensions in the following extension target:

  • purchase.checkout.pickup-location-option-item.render-after

{ pickupLocationOptionTarget: ; isTargetSelected: boolean; }


Was this page helpful?