location
A location in shop.locations is an active location that the seller has
marked as a physical storefront. The list is ordered with the default location
first and then by name. It is separate from the narrower
store_availability.location
snapshot returned for one variant.
Example
{% for location in shop.locations %} <article> <h2>{{ location.name | escape }}</h2> {{ location.address | format_address }}
{% if location.is_open_now %} <p>Open now</p> {% endif %}
{% for period in location.today_hours.periods %} <p>{{ period.open }}–{{ period.close }}</p> {% endfor %} </article>{% endfor %}is_open_now compares the configured HH:MM periods with the current time in
the store’s IANA time zone. A period includes its opening time and excludes its
closing time. Missing hours produce an empty today_hours.periods array and
is_open_now is false.
Pickup labels and instructions are location configuration, not variant stock or
transfer estimates. Use variant.store_availabilities when you need current
per-variant pickup eligibility.
Properties
| Property | Description |
|---|---|
location.address | Postal address. |
location.hours | Buyer-visible hours value for this location. |
location.id | Unique identifier. |
location.is_open_now | true when this location is open now. |
location.is_physical_store | true when this location is physical store. |
location.name | Name. |
location.phone | Phone number. |
location.pickup_enabled | true when pickup is enabled. |
location.pickup_instructions | Buyer-visible pickup instructions. |
location.pickup_ready_label | Buyer-visible pickup ready label. |
location.today_hours | Buyer-visible today_hours value for this location. |
Property list is generated from the storefront engine (LocationDrop), so it always matches what your theme can use. Use {{ location | json }} only as a curated debug snapshot; it can omit lazy or otherwise public properties.