Skip to main content
Location availability lets customers check which stores or warehouses have a product in stock. This is especially useful for businesses with retail locations where customers might want to buy in-person or choose click-and-collect.

No-code setup

The simplest approach is to use the built-in Stockful Location Availability theme block:
  1. In the theme editor, navigate to your product template
  2. Click Add block > Apps > Stockful Location Availability
  3. Configure the button text, style, and maximum locations to show
This adds a button that opens a slide-out drawer with live stock data. See the theme blocks guide for details on settings.

Custom implementation

For full control over the UI, use the window.stockful JavaScript API.

Basic location list

If you prefer a modal over an inline list, combine the location data with a Shopify ui-modal or your own modal component:

Controlling visibility

Visible locations are controlled in the Stockful app under Settings > Storefront - choose which locations appear to customers (e.g. hide your main warehouse, show only retail stores). This applies to both the built-in theme block and the window.stockful API. Show available quantity is a per-block setting on the theme block. When enabled, customers see “42 available”; when disabled, they see “In stock” / “Out of stock”. For custom implementations using the JS API, you control this in your own code.

Tips

  • Retail stores only - most merchants hide warehouses and fulfillment centers, showing only locations where customers can visit
  • Quantities vs. status - showing exact quantities can be useful for high-demand items but may seem odd for regular products. Status labels (“In stock” / “Out of stock”) are a safer default
  • Live data - location availability is fetched live from Shopify (not from cached metafields), so it’s always up to date. The trade-off is a slightly longer load time compared to metafield-based data
  • Cache duration - location data is cached for 60 seconds (vs 30 seconds for variant/product data), so very recent inventory changes may take up to a minute to appear