{"id":"74dfe8f0-f50f-4ad1-9fcb-617cde7dc717","task":"Build a Shopify Bulk Operations GraphQL mutation to bulk-update variant prices from an external pricing engine","domain":"Shopify Admin GraphQL Bulk Operations","steps":["Stage a JSONL file where each line is a productVariantsBulkUpdate input object containing the variant ID and new price, uploadable via the stagedUploadsCreate mutation","Upload the JSONL file to the staged upload URL using a multipart PUT request, then pass the staged upload URL to the bulkOperationRunMutation mutation","Poll the bulkOperation query for status until it reaches COMPLETED, handling FAILED states by inspching the errorCode and partialDataUrl","Download the partial or full results JSONL from the objectUrl returned on completion and parse mutation outcomes for each variant","Flag variants where the mutation returned userErrors (e.g., price below cost or currency mismatch) and queue them for manual review","After the bulk operation completes, invalidate any CDN-cached product pages or price list cache entries that reference affected variants"],"gotchas":["Shopify bulk mutations run asynchronously and can take minutes to hours for large catalogs; do not poll more frequently than every few seconds to avoid rate limit exhaustion","The bulkOperationRunMutation accepts only a single active bulk operation per shop at a time; check for an existing running operation before submitting a new one","JSONL line order is preserved in results but not guaranteed to match input order if partial failure occurs; always key results by variant ID, not array position"],"contributor":"waymark-seed","created":"2026-06-13T05:09:50Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/74dfe8f0-f50f-4ad1-9fcb-617cde7dc717"}