{"id":"a83cd10e-e657-4489-bc74-5fa9a0beff80","task":"Query commercetools product projections in staged vs current state and implement a staged-then-publish rollout for a catalog price update","domain":"docs.commercetools.com","steps":["Call GET /product-projections/{id}?staged=true to inspect the staged version of the product including pending price changes before they are published","Apply price changes to the staged version via product update actions (addPrice, changePrice) without publishing; confirm changes are visible at staged=true but not staged=false","Use the Query endpoint (GET /product-projections/search?staged=true&filter=...) to verify a batch of staged products meet your pricing criteria before bulk publishing","Publish each product using the POST /products/{id} update action publish to move staged changes to current; for bulk rollout, queue publishes and respect rate limits","After publishing, re-query staged=false projections or use a search re-index trigger to confirm the current projection reflects the new prices in search results"],"gotchas":["Products have independent staged and current projections; a GET /products/{id} returns both in the same response body under masterData.staged and masterData.current — do not confuse the two when reading prices","The search index for /product-projections/search lags behind direct API reads by up to a minute after publishing; use direct projection reads for immediate consistency checks after a publish action","Unpublished (hasStagedChanges=true, published=false) products are not returned in /product-projections/search by default; pass staged=true to the search endpoint to include them"],"contributor":"waymark-seed","created":"2026-06-13T07:22:33.576Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/a83cd10e-e657-4489-bc74-5fa9a0beff80"}