Getting started with querying products and collections
The Storefront API lets you build custom storefronts with any language and technology. It provides public access using GraphQL to products, collections, customers, carts, checkouts, and other store resources that you can use to build custom purchasing experiences. After you've requested access tokens for your app and generated a Storefront API access token, you can make queries using the Storefront API.
Anchor to What you'll learnWhat you'll learn
After you've finished this tutorial, you'll have accomplished the following:
- Requested public, unauthenticated Storefront API access scopes for your app
- Generated a Storefront API access token
- Queried products and collections
If you're a Shopify Partner, then you can create a development store to test Storefront API queries.
Anchor to RequirementsRequirements
- You've completed the Getting started with the Storefront API guide.
- If instead of completing the Getting started, you've created a public or custom app with Storefront API access enabled in the Configuration page. If you've created a public app, then you need to turn your app into a sales channel.
- You've completed the Getting started with the Storefront API guide.
- You've created products, product variants, and collections in your store.
Anchor to Query productsQuery products
You can use the products
query to retrieve a list of products. The products
query uses an argument (for example, first
) to specify the number of results to query.
The following example shows how to query the IDs of the first 5 products in your store. For more information on selecting which set of results to query, refer to Paginating results with GraphQL.
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to Query a single productQuery a single product
Products are identified by a globally unique ID, which can be used to query for information. You can use the product
query to retrieve a single product. The following example shows how to pass in the product ID to the product
query.
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to Query product variantsQuery product variants
A product variant represents a different version of a product, such as differing sizes or differing colors. You can query the variants associated with a product by querying variants
on the Product
object.
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to Query product recommendationsQuery product recommendations
Product recommendations can help merchants boost sales and conversions. You can use the productRecommendations
query to retrieve a list of up to ten recommended products that display to customers. In your query, provide the following arguments:
productId
: The global ID of the product that's published to the storefront. This is the product for which the recommended products are generated.intent
: The type of recommendation set that will be generated. This helps you tailor recommendations for a particular surface on a storefront or selling strategy. For more information, refer to recommendation intents.
The following example shows how to retrieve related product recommendations for a given product. The query returns the product IDs for each recommended product.
Shopify provides auto-generated product recommendations. Merchants can also customize their product recommendations using the Shopify Search & Discovery app.
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to Query product mediaQuery product media
You can use the Storefront API to query a product's media and display it on a storefront.
Specify the media
field on the Product
object to query for a product's media. Then use a fragment to specify the fields that you want to return for each possible media type.
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to Query collectionsQuery collections
A collection represents a grouping of products that a store owner can create to organize them or make their stores easier to browse. For example, a merchant might create a collection for a specific type of product that they sell, such as footwear.
Merchants can create collections by selecting products individually or by defining rules that automatically determine whether products are included.
The following example shows how to query for collections and the products that belong to those collections.
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to Next stepsNext steps
- Filter products in a collection with the Storefront API.
- Create and update a cart with the Storefront API.
- Learn about the different tools that you can use to create unique buying experiences anywhere your customers are, including websites, apps, and video games.