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.

Local pickup

When buyers choose local pickup as their delivery method, checkout displays a list of available store locations where they can collect their order. Use local pickup targets to add store-specific messaging, pickup instructions, and readiness information to buyers as they browse and select a pickup location.

  • Store hours and availability: Display operating hours or holiday closures for each pickup location so buyers know when they can collect their order.
  • Pickup instructions: Show location-specific directions, such as where to park or which entrance to use.
  • Readiness estimate: Display an estimated preparation time for the order based on the selected location's current workload.
  • Location-specific promotions: Offer in-store discounts or exclusive deals tied to specific pickup locations to encourage buyers to choose local pickup.

Anchor to Location list targetsLocation list targets

These static targets render before and after the pickup location list. They're tied to the list as a whole, not to individual locations. Both targets provide access to isLocationFormVisible through useApi(), which indicates whether the buyer is viewing the location search form or the results list. Subscribe to it with useSubscription() to reactively update your extension. Read access to cart contents, buyer identity, and delivery details is available through API properties.

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

Renders before the list of pickup location options. Use this target to display introductory messaging or general pickup instructions before the buyer interacts with the location list.

Subscribe to api.isLocationFormVisible with useSubscription() to determine whether the buyer is entering their location or viewing the results list and show appropriate content.

Support
Components (59)
APIs (25)

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

Renders after the list of pickup location options. Use this target to display general pickup policies or post-selection guidance below the location list.

Subscribe to api.isLocationFormVisible with useSubscription() to determine whether the buyer is entering their location or viewing the results list.

Support
Components (59)
APIs (25)

Anchor to Location option item targetLocation option item target

This static target renders after the details of each individual pickup location in the list. Unlike the list targets above, it provides access to location-specific data through usePickupLocationOptionTarget(), which returns the pickup location option and whether the buyer has selected it. Read access to cart contents, buyer identity, and delivery details is also available through API properties.

Anchor to Render after pickup location option ,[object Object]Render after pickup location option target

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

Use this target to display location-specific information such as store hours, pickup instructions, or readiness estimates for each option. The location object includes the store name, address, and any associated metafields.

Support
Components (59)
APIs (25)

  • Adapt content based on the location form visibility: Buyers see two distinct views when selecting a local pickup location: the location search form and the results list. Subscribe to api.isLocationFormVisible with useSubscription() to show content relevant to each view rather than displaying the same message in both.
  • Keep location-specific content concise: The pickup-location-option-item.render-after target renders for every location in the list. Lengthy content for each option increases visual clutter and makes it harder for buyers to compare locations.
  • Use isTargetSelected to reduce noise: In the pickup-location-option-item.render-after target, consider rendering detailed information only for the selected location to keep the list scannable.

  • The render-before and render-after targets can't access individual pickup locations: These two targets only provide isLocationFormVisible. General checkout data like cart contents, buyer identity, and delivery details is available through API properties, but to access location-specific data, use the pickup-location-option-item.render-after target instead.
  • Location data is read-only: Extensions can read pickup location details through usePickupLocationOptionTarget() in the pickup-location-option-item.render-after target, but can't modify the location list or reorder options.

Was this page helpful?