store_availability
Each item in variant.store_availabilities describes whether that variant can
be picked up at one active pickup-enabled location in the store’s country.
The array is defined for the URL-selected variant and the product’s first available variant. Other variants return an empty array until the buyer selects them. Re-render the variant pickup section when the selection changes.
Pickup summary
{% assign variant = product.selected_or_first_available_variant %}{% assign pickup_locations = variant.store_availabilities | where: 'pick_up_enabled', true %}
{% for availability in pickup_locations %} {% if availability.available and availability.pick_up_enabled %} <p> Pickup at {{ availability.location.name }} — {{ availability.pick_up_time }} </p> {% endif %}{% endfor %}Example output:
<p>Pickup at Indiranagar — Usually ready in 2 hours</p>Location list
{% for availability in variant.store_availabilities %} {% if availability.pick_up_enabled %} <article> <h3>{{ availability.location.name }}</h3> {{ availability.location.address | format_address }}
{% if availability.available %} <p>Available — {{ availability.pick_up_time }}</p> {% else %} <p>Unavailable at this location</p> {% endif %} </article> {% endif %}{% endfor %}The result contains at most 250 locations. The default location is first, followed by creation time and location id. Fulfilment-service locations and locations outside the store’s country are excluded.
For this Liquid property, pickup is checked for one unit. For a tracked variant
that does not allow backorders, only locations with a stocked inventory level
are returned; a stocked level with zero available units still returns an entry
with available set to false. An untracked or backorder-enabled variant is
considered available at every eligible pickup location.
pick_up_time is the location’s configured readiness label. It is not a live
transfer estimate, and this endpoint does not add in-transit inventory. Render
an empty label as absent rather than inventing a readiness time.
For a variant picker, request a small variant-scoped section through the Section Rendering API and replace only the pickup markup.
Properties
| Property | Description |
|---|---|
store_availability.available | true when the variant is pickup-available under tracked/backorder rules at this eligible location. |
store_availability.location | Active, pickup-enabled, non-fulfillment location in the store country. |
store_availability.pick_up_enabled | true for an eligible pickup location; retained as an explicit compatibility field. |
store_availability.pick_up_time | Static buyer-facing readiness label configured on the location; it is not a transfer ETA. |
Property list is generated from the storefront engine (StoreAvailabilityDrop), so it always matches what your theme can use. Use {{ availability | json }} only as a curated debug snapshot; it can omit lazy or otherwise public properties.