Reading the Shopify changelog for breaking changes: 18 of 49 entries can break code
What changed
The Shopify developer changelog is a firehose. Of the 49 Shopify change records in the mendapi database (2024 through 2026), most are additive features, docs updates, or fixes that cannot break a working integration. The entries that can are a minority: 14 classified breaking and 4 deprecations — 18 records in total that deserve your attention when you skim the changelog.
The split, straight from the database:
- additive: 18
- breaking: 14
- fix: 7
- deprecation: 4
- docs-only: 4
- unknown: 2
That ratio is the practical problem with changelog-driven maintenance. If you read every entry you burn hours on features you do not use; if you skip reading you miss the one entry that removes a field your checkout flow queries.
Who is affected
The 18 breaking and deprecation entries cluster into patterns worth knowing:
- GraphQL surface removals and renames.
Customer.lastIncompleteCheckoutand theCheckouttypes leave the Customer Account API in 2026-10.discountedUnitPriceonDraftOrderLineItemis deprecated in favor ofapproximateDiscountedUnitPrice. If your GraphQL documents touch these fields, they stop working on the deadline, not gradually. - Semantic changes behind a stable schema.
OrderDisplayFulfillmentStatusnow returns a new enum value,FULFILLMENT_NOT_REQUIRED, for orders with nothing to fulfill. The schema still validates; exhaustive switches over the enum silently fall through. POS UI extensions 2026-07 changed fixed-amount line item discounts from order-total to per-unit — same API shape, different math. - Policy and infrastructure requirements. mTLS on the card deposit endpoint, Theme Store requirements for the shopify-account component, App Pricing migration. No codemod fixes these; they need account or infrastructure work.
The fixability verdicts reflect that spread: of the 18, we adjudicate 6 as code-fixable — the mend is a deterministic edit at your call sites — and 12 as not-code-fixable, where the fix is operational. Every verdict with its reasoning is on the Shopify tracker page.
How to fix it
Reading a changelog tells you what changed, not whether your code uses the affected surface. The scanner answers that locally — file and line, no code leaving your machine:
npx mendapi scan --repo .
For the code-fixable entries, migration packs draft the edit as a reviewable diff. The Customer Account checkout removal is a deterministic dead-subtree deletion; the discountedUnitPrice rename is covered by the shopify-customer-account-draftorder-price pack; the fulfillment status enum gets handling added at exhaustive switch sites:
npx mendapi fix --repo . --dry-run
Dry run is the default posture: you get a patch to review, not a mutated working tree. The Shopify GraphQL migration guide documents each pack and its honest scope — what it mends and what it deliberately leaves to you.
Related
- shopify breaking-change guide — every tracked shopify entry on one page, with fixability verdicts.
- Shopify GraphQL API migration — the full migration guide with pack-backed fixes.
- All monitored providers — live change counts for shopify and 19 others.
- Migration pack catalog — every deterministic fix mendapi ships.
- Getting started — scan your repo in 30 seconds, no code leaves your machine.