Why Your Shopify Order Date Looks Wrong (Timezones, Imports, Drafts)
A wrong-looking Shopify order date is almost always one of a few causes: the store time zone in Settings > General doesn't match where you are, a timestamp was written as midnight UTC, the order came from a draft completed later, an import used the import date, or a report or export is reading a different date field than the order page.
- Shopify stores order timestamps in UTC and shows them in the store's time zone, set under Settings > General > Store defaults.
- A date saved as midnight UTC lands on the previous evening for stores in the Americas, so it looks one day early.
- An order created from a draft is dated when the draft is completed, not when the draft was started.
- Shopify's sales reports put refunds and returns on the day they're processed, not on the original order date.
- The order page shows processed_at, while the CSV export's Created at column describes when the customer completed the order, so the two can disagree.
When a Shopify order date looks wrong, the order is usually fine and something around it isn't. The most common causes are a store time zone that doesn't match your location, a timestamp written as midnight UTC, a draft order completed days after it was started, an import that used the import date, and reports or exports that read a different date than the order page. This guide walks through each cause, how to recognize it, and what to change, so you fix the right thing instead of editing orders that were never wrong.
Why does my Shopify order date look wrong?
Because "the order date" can mean several different timestamps, and each screen picks one. Shopify keeps a creation time, a processed time, a payment time and others on every order, stores them in UTC, and converts them to your store's time zone for display.
Start by naming the symptom. The pattern almost always points to the cause:
| What you see | Likely cause | Where to check |
|---|---|---|
| Order is one day early or late, usually late-evening or early-morning orders | Store time zone mismatch | Settings > General, Store defaults |
| Imported or scripted orders all land one day early | Timestamp written as midnight UTC | The order's raw processedAt value |
| Order is days or weeks later than when you took it | Draft order completed late, or a phone order entered late | Draft's created vs completed time |
| Hundreds of orders share the same date | Migration import used the import date | Your import tool's date mapping |
| Order page is right but the CSV export isn't | Export reads a creation timestamp | The Created at column in the export |
| Order page is right but a report shows a different day | Refund, return or edit recorded on its own day | The sales report breakdown |
| Order page is right but your accounting tool isn't | Integration reads a different field | The connector's settings or support docs |
The first five rows mean the date on the order really is wrong, or at least not what you meant. The last two mean the order is correct and a downstream tool disagrees. That split matters, because the fixes are completely different.
Is your store time zone set correctly?
Check this first, because it affects every date in your admin. Shopify's help center puts the store time zone under Settings > General, in the Store defaults section, in the Time zone list. On mobile it's Settings > General > Store defaults as well.
Two details trip people up:
- The store time zone and your account time zone are separate settings. Your personal Shopify account has its own time zone in your profile. The one that controls the store is the one in Settings > General. If you run several stores, each one has its own.
- Stores are often set up in the wrong zone. A store created by an agency, a freelancer or a founder who has since moved can keep a time zone that no longer matches where you sell. A store set to London time but selling to customers in California will show a 9:30 pm Pacific order on the next calendar day.
A Shopify team member on the developer forum confirmed that order created_at values are stored in UTC and returned in a configured time zone, usually the shop's. In practice that means the moment an order happened never changes, only the day it's displayed under. An order placed at 11:30 pm in Los Angeles is 6:30 or 7:30 am UTC the next morning, depending on daylight saving time.
What Shopify's help docs don't spell out is how changing the time zone affects past orders and reports. Before you change it on an established store, run a sales report for a recent week and save it. Change the setting, run the same report again, and compare the daily totals. Expect orders near midnight to move between days. If you've already closed those months in your books, talk to your accountant before switching.
Why do imported or backdated orders land one day early?
Because the date was written as midnight UTC. A timestamp like 2026-05-13T00:00:00Z is May 13 in London, but it's the evening of May 12 in New York, Chicago, Denver and Los Angeles. Shopify then shows that order on May 12.
This happens when an import file has only a date column (2026-05-13) and the tool adds midnight UTC to it, or when a script sends a bare date. Shopify's order creation input accepts a processedAt in the past for exactly this kind of import, so the data goes in without an error. The mistake only shows up when you look at the order.
The fix is to always write a time and an offset in your store's time zone, ideally midday. 2026-05-13T12:00:00-07:00 stays on May 13 whichever way it's converted, because noon has 12 hours of room on both sides. If you're preparing an import file, add the time and offset to every date before you upload it. If the orders are already in Shopify, they need their processed date corrected, which we cover in how to backdate orders in Shopify.
The same thing works in reverse when you read data out. Shopify's GraphQL Admin API returns timestamps in UTC, so a script that groups orders by processedAt without converting to the store's time zone will put late-evening orders on the wrong day and won't match Shopify's own daily totals.
Why is my draft order dated later than when I made it?
Because a draft isn't an order yet. The order is created when you complete the draft, and it's dated then. Shopify's API keeps two separate timestamps on a draft: createdAt, when the draft was created, and completedAt, when it was converted to a regular order.
A typical example: a customer calls on the 3rd, you build a draft and send an invoice, and the customer pays on the 10th. The order appears on the 10th. If you sell with payment terms, the order is created when you complete the draft, not when payment is due or received, so the timing depends on your workflow.
The draft order screen has no date picker for the resulting order. If the sale really belongs on the 3rd, for example because that's when the customer committed and you shipped, you have two options:
- Complete drafts promptly. For phone and email orders, complete the draft the same day, with payment due later if the customer hasn't paid yet.
- Correct the date afterwards. Change the order's processed date to the real sale date. The draft keeps its own history, and the order shows the corrected date.
Late manual entry works the same way. If you record Saturday's market sales on Tuesday, they're Tuesday's orders until you change them.
Why do reports and exports show a different date than the order?
Because they don't all read the order date. The order page and the Orders list show the processed date (processed_at). Reports, exports and integrations each make their own choice, and some of them record changes on the day the change happened. For a full breakdown of the two main date fields, see Shopify created_at vs processed_at.
Sales reports split one order across several days
Shopify's sales report documentation says sales appear as a positive value on the day they were made, and reversals appear as a negative value on the day they were processed. A return or refund processed on June 4 for an order from May 28 reduces June 4's sales, not May 28's. An edit made after the order's first day also shows up separately in the Total sales over time report.
This is correct accounting, but it surprises people who expect every change to collapse onto the original order date. If a May order's refund shows in June, nothing is broken.
The CSV export reads a different column
Shopify's export describes its Created at column as when the order was completed by the customer, and there's no column labeled as the processed date. For a normal checkout those are the same. For an imported or backdated order, the export can show the date the order entered Shopify while the order page shows the sale date. Export one corrected order and compare before relying on the export for anything date-sensitive.
Integrations pick their own field
Accounting, ERP and analytics connectors may book a sale on the processed date, the creation date or the payment date, and some keep the first date they synced. If your bookkeeping tool disagrees with Shopify, find out which field it reads before changing any orders.
How to fix a wrong order date, cause by cause
Once you know the cause, the fix is usually short. Here's the full list in one place:
| Cause | Fix | Changes the order? |
|---|---|---|
| Store time zone wrong | Change Time zone in Settings > General after saving a before report | No |
| Midnight UTC timestamps | Correct the processed date to midday in your time zone; fix the import template | Yes, processed date only |
| Draft completed late | Correct the processed date; complete future drafts the same day | Yes, processed date only |
| Late manual entry (phone, market, wholesale) | Correct the processed date | Yes, processed date only |
| Import used the import date | Map the original sale date to processedAt in the import, or correct after | Yes, processed date only |
| Refund or return on a later day | Nothing; this is how Shopify's reports work | No |
| Export or integration reads another field | Use a tool that reads the processed date, or change the connector's setting | No |
Two rules keep this from coming back. First, never change orders to fix a report; fix the report's source. Second, when you do correct an order date, add a note or tag saying why, such as date corrected: phone order 2026-05-13, so the change is explainable later.
One limit to keep in mind: no fix changes created_at. Shopify sets it when the order is created and doesn't allow it to be modified, so anything that reads creation time will keep showing when the order entered Shopify.
How RetroOrder helps
When the order date itself is wrong, the fix is the processed date, and Shopify's admin has no way to edit it. RetroOrder adds Backdate with RetroOrder to the Orders page bulk actions: select the orders, choose More actions (⋯), pick the date, and click Backdate. It anchors every date to noon in your store's time zone, which avoids the midnight UTC problem, and it works on orders older than 60 days. Line items, totals, taxes, the customer and fulfillment are untouched. The free plan covers 10 backdated orders per calendar month, and RetroOrder Unlimited ($9.99/month, 14-day free trial) removes the limit. It won't fix a store time zone setting or a report that reads a different field; those are settings, not order data.
Frequently asked questions
Why is my Shopify order showing yesterday's date?
Usually a time zone mismatch. Either the store time zone under Settings > General doesn't match where you or your customers are, or the date was written by an import or script as midnight UTC, which is the previous evening in the Americas. Check the store time zone first, then look at the order's raw processedAt value.
Does changing my Shopify store time zone change existing order dates?
Shopify's help docs explain where to change the time zone but don't say how the change affects past orders or reports. Timestamps are stored in UTC, so the underlying moment doesn't change, but orders near midnight can display under a different day. Run a sales report for a recent week before and after the change to see the effect on your store.
Why does my draft order have a different date than when I created it?
Because the order didn't exist until you completed the draft. Shopify records the draft's creation time and its completion time separately, and the order created from it is dated at completion. If you build a draft on the 3rd and the customer pays on the 10th, the order shows the 10th.
Why do my Shopify reports show a sale on a different day than the order?
Shopify's sales reports record a sale on the day it was made and record reversals such as refunds and returns on the day they were processed. An edit made after the order's first day also shows separately. So a single order can affect several days in your reports, which is expected behavior, not an error.
How do I fix an order that already has the wrong date?
Shopify's admin has no date field on orders. If the order date itself is wrong, you need to change the order's processed date (processedAt) through the Admin API, usually with a backdating app. If the order date is right and only a report, export or integration disagrees, fix the setting or the tool instead of the order.
Sources
- Shopify Help Center: Set up your business settings (store time zone)
- Shopify Help Center: Sales report
- Shopify Admin GraphQL API: DraftOrder object (createdAt, completedAt)
- Shopify Admin GraphQL API: OrderCreateOrderInput (processedAt)
- Shopify Help Center: Exporting orders
- Shopify Developer Community: REST to GraphQL order timezone issue