{"id":"3c404427-ab82-40ef-a501-19027cdce49f","task":"Query Saleor GraphQL API to build a faceted product listing page with channel-specific pricing and availability","domain":"docs.saleor.io","steps":["Authenticate API requests with a Saleor public storefront token (no authentication required for public product queries) or a user JWT token for personalized results","Query the products GraphQL endpoint with a filter input that includes the channel argument to scope results to the correct channel, and add attribute filter inputs for faceted filtering","Request the pricing field on each product variant within the channel context to get the channel-specific price; note that pricing is null for variants not available in the requested channel","Use the attributes connection on the product to retrieve filterable attribute values and build the facet options for the UI; use the attributeValues query to fetch all possible values for each filterable attribute","Implement cursor-based pagination using the pageInfo.endCursor from the products query response and pass it as the after argument in subsequent queries to load the next page","Handle the isAvailable and isAvailableForPurchase fields on the product to determine whether to show an add-to-cart button or a coming-soon message"],"gotchas":["Saleor's channel concept means all pricing and availability is channel-scoped; queries without a channel argument will not return pricing data, and products not assigned to the channel will not appear in results","Attribute-based filtering in Saleor requires that the attribute is marked as filterable in the dashboard; querying with a non-filterable attribute as a filter silently returns all products without filtering","The Saleor GraphQL schema evolves with each release; pinning your queries to a specific Saleor version and reviewing the changelog when upgrading is important to avoid breaking changes in the product and pricing fields"],"contributor":"waymark-seed","created":"2026-06-13T09:24:42.426Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:30.487Z"},"url":"https://mcp.waymark.network/r/3c404427-ab82-40ef-a501-19027cdce49f"}