Why do my Shopify order counts still include cancelled orders?
Cancelling an order in Shopify does not remove it from reporting. To keep the timing of the original sale and the cancellation accurate, the connector never overwrites the original order. Instead, it keeps the original order record and adds a separate cancellation record for the same order. Because both records exist, a cancelled order stays visible in the data rather than disappearing. The cancellation record carries no positive sales — its monetary values are zeroed — so revenue metrics such as Gross Sales, Net Sales, and Total Sales are not inflated by the cancellation.To trace the full history of a single order across its original and cancellation records, filter on the order name as a partial match rather than an exact match — the cancellation record shares the same order name with a distinct suffix.
Why did my historical revenue import take so long?
Shopify orders and products are exported through Shopify’s Admin GraphQL Bulk Operations API, which runs asynchronously. For each sync, the connector starts a bulk operation, waits for Shopify to build the export, then downloads and parses the result. Larger stores take longer because Shopify itself takes longer to prepare the export file. Two factors extend the first import in particular:- Full historical window on first sync. The initial sync pulls the entire available history at once (up to 90 days), which is a larger export than the incremental hourly syncs that follow.
- Refunds are fetched in a second pass. Refund detail cannot be retrieved in the same bulk operation as orders, so the connector runs an extra step to identify orders with refunds and then fetch their refund detail. This adds time on stores with many refunded orders.
Why did my connection lose access after I changed the store’s app permissions?
The Shopify data source requires four read permissions to stay valid:read_customers, read_inventory, read_orders, and read_products. On each connection check, the connector reads the permissions currently granted to the app and confirms all four are present. If any one is missing, the connection is marked invalid and stops syncing.
Editing the app’s scopes in the Shopify admin — or removing a permission while reviewing installed apps — is the most common cause. The fix is to reconnect the data source and grant all four permissions again.
The
read_inventory permission (surfaced in Shopify as the “product costs” permission) is what makes Product Cost and Order Products Cost Amount populate. If those cost metrics are empty but orders and products still load, that permission is the one to check first.Why does a refunded order still show revenue on its original date?
This is expected. A refund does not erase the original sale or move it to the refund date. The original order keeps its revenue on the date it was paid, and the refund is reported separately as a return. Gross Sales stays unchanged by refunds, while the refunded amount appears in Net Returns. Metrics that already account for returns — Net Sales and Total Sales — reflect the refund. For a revenue figure that nets out refunds, build widgets on Net Sales or Total Sales rather than Gross Sales.How much Shopify order history is available?
When the data source is first connected, Adriel imports up to the last 90 days of orders; orders older than that are not back-filled at setup. Because Adriel caches each sync, order history accumulates from the connection date onward — the longer the data source stays connected, the more historical data is stored. Connecting the data source early therefore preserves history that would otherwise age out of Shopify’s 90-day import window.Why are some orders reported on a different date than when they were placed?
Shopify orders are attributed to their payment date, not their creation date. The connector uses each order’sprocessedAt timestamp — when payment was processed — as the reporting date. An order placed in one period but paid in another is reported in the period it was paid.
This is deliberate. Creation dates can be unreliable, especially on orders imported into Shopify from another system, whereas the payment date consistently reflects when the sale actually settled. All timestamps are converted from Shopify’s UTC values to the store’s local time zone before reporting, so orders land on the correct local calendar day.
Common issues
Why did a Shopify connection lose scopes or why do Shopify sales figures not match?
Why did a Shopify connection lose scopes or why do Shopify sales figures not match?
Shopify OAuth scopes must be configured as required, not optional, in the Shopify app. Optional-scope tokens can lose permissions under some conditions, causing the connection to lose access. Move scopes to the required section, delete the data source, and reconnect.On the numbers side, Shopify’s Total Sales and Net Sales are different metrics. A discrepancy between Adriel and the Shopify UI can trace back to comparing Total Sales in one place with Net Sales in the other, or applying different filters on each side. Match the metric and filters exactly to reconcile.
Related
Shopify data reference
Metrics, breakdowns, refresh cadence, and limits for the Shopify data source.
How to connect Shopify
Set up and reconnect the Shopify data source, including required permissions.
Refresh strategies
How historical backfill and incremental refresh work across data sources.
WooCommerce data reference
Reference for the alternative direct-to-consumer commerce data source.
