Feature Request: Distinguish between “Merchant Edits” and “Internal System Updates” on Orders
Currently, the updated_at field on Orders is noisy. It triggers for both meaningful changes (edits, fulfillments, tag updates) and internal Shopify processes (reindexing, backfill processing etc).
The Problem
Because updated_at conflates these two types of updates, developers cannot trust it as a reliable sync signal. This forces every app to build complex “diffing” logic—storing snapshots of order data and comparing fields on every webhook just to see if anything actually changed.
This leads to:
-
Wasted resources: Thousands of apps unnecessarily reprocessing “phantom” updates.
-
API overhead: Increased polling and fetching to verify data changes.
-
Integration bugs: Difficulty in maintaining deterministic syncs to ERPs, WMS, and accounting tools.
Proposed Solution
Expose a way to distinguish between internal system noise and merchant-relevant changes.
Option A (New Field): Add a merchant_updated_at (or similar) that only bumps when business-critical data changes (line items, totals, addresses, etc.).
Option B (New Field): Add an internal_updated_at for system-only changes, keeping the primary timestamp for actual edits.