Skip to main content
The Storefront API organizes products into collections. There is no standalone “List Products” endpoint—instead, you fetch products through collections.

The all Collection

Every shop has a built-in all collection that contains all public products. This is the easiest way to get all products:

Common Patterns

Get all products (paginated)

Get products from a specific collection

Get a single product by slug

Use this when you already know the product slug (e.g., from a URL like /products/cool-t-shirt):

Bundles

A shop can sell bundles - a fixed set of products sold together for one price. The product endpoints return bundles alongside regular products, so every result is one of two shapes, discriminated by type:
  • price is the bundle price for the cheapest selection of variants, converted to the requested currency. compareAtPrice is the undiscounted sum of the products and is null when the creator disabled it or the bundle is not discounted.
  • pricingStrategy is one of SAME_AS_INDIVIDUAL (sum of the products), DISCOUNT_BASED (discountPercentage off the sum) or FIXED_PRICE (price).
  • state is SOLD_OUT when the creator marked the bundle as sold out or any of its products is unavailable.

Displaying the price for a selection

price is the bundle price for the cheapest selection of variants. When the bundled products have variants with different prices (say a 3XL shirt costs more than S), recompute the price client-side whenever the customer changes a variant - the response contains everything you need: the pricingStrategy and the raw unitPrice of every variant, already converted to the requested currency:
The upcharge for a more expensive variant flows into the sum, so a DISCOUNT_BASED bundle discounts it too - the same math the checkout applies to the variants actually in the cart. Round once, at the end, to the currency’s scale.
This is a display-time preview. The binding amount is always computed server-side from the items in the cart; when requesting a currency other than the shop’s, the preview can differ from the cart by at most one cent due to per-variant conversion rounding.
A bundle and the products it contains can both be members of the same collection, in which case the products appear twice in a listing: standalone and inside offers. Control this by composing your collections (for example a collection without the bundled products, or one without the bundle).

Why Collections?

Collections let you:
  • Organize products into categories (e.g., “Apparel”, “Accessories”)
  • Control which products appear on your storefront
  • Create featured or seasonal groupings
The all collection is always available as a catch-all.