Merchants Answered
Operations answers for working Shopify merchants

A customer placed the same order twice by accident. What should you do?

First, check the fulfillment status

Everything about this request depends on one fact: has the order shipped yet. If it is unfulfilled, you have options. If it is fulfilled or in transit, you are no longer editing an order, you are arranging an exchange, and the conversation with the customer changes completely. Check the order timeline before you promise anything, because the wrong promise here creates the refund dispute you were trying to avoid.

In the Shopify admin, open the order and look at the fulfillment status first, the payment status second. An unfulfilled, paid order is the easy case. A partially fulfilled order means some items can still change and some cannot, which you need to explain clearly. Train whoever answers customer messages to check this before typing a reply; most bad outcomes in this scenario come from promising an edit that was never possible.

When you can edit the order

For unfulfilled orders, Shopify lets you edit: add or remove line items, change quantities, and adjust the order total, with the customer charged or refunded the difference. This is the cleanest path when the customer wants a different size or color of the same product. Make the edit, confirm the new total with the customer in writing, and note that the edit itself is the confirmation; do not also send a separate "we changed it" email that confuses the thread.

Edits have limits worth knowing. You cannot change the order into something unrecognizable without confusing your own records, and editing does not work once fulfillment has started. If the price difference is significant, get explicit approval before charging the extra amount; an unexpected charge on a card is how a simple size swap becomes a chargeback.

When to cancel and reorder instead

Cancel and reorder is the right call when the change is extensive (half the items are different), when the customer wants to add items that change shipping weight or method, or when the original order is already fulfilled. It is also cleaner when the customer is clearly unsure; a fresh order with a fresh confirmation beats three rounds of edits that nobody can follow.

The mechanics matter: cancel the original, issue the refund promptly, and create the new order, ideally as a draft order you send for the customer to approve and pay. Do not cancel without the replacement ready, or the customer experiences it as "my order was cancelled" rather than "my order was fixed." Speed of the refund is the whole ballgame here; a same-day refund turns a hassle into a loyalty moment.

What to tell the customer

The message template that works: confirm what you are doing, state the timeline, and name the money. "I have updated your order to the blue in size medium. The $12 difference has been refunded and should appear in 3 to 5 business days. Your order still ships Thursday." Every element answers a question the customer would otherwise ask in a follow-up message, which is the real cost driver in these exchanges.

If you cannot do what they asked, say so in the first sentence and offer the alternative immediately. "That order already shipped this morning, so I cannot change it, but here is what I can do: refuse the delivery or send it back with this prepaid label, and I will ship the correct item today." Bad news first, solution second, no hedging in between.

Preventing it next time

A sizing chart linked at the point of size selection, a clear "final sale" flag on items that cannot be changed, and an order confirmation email that arrives within minutes all reduce these requests. The confirmation email is the cheapest intervention: customers who catch their own mistake within the hour are easy to help, while customers who notice three days later are not.

Track how often this happens and why. If size swaps dominate, your size guide is failing. If customers keep adding forgotten items, your checkout may be rushing them. The pattern in the requests is free product-page research, and merchants who read it stop answering the same email every day.

Verify before you cancel

Most duplicate reports are genuine, a customer who tapped pay twice, retried after a frozen checkout, or bought the same gift as their partner. A few are not: two similar orders can be deliberate, a restock for a small business, gifts to two addresses, or a reseller. Cancelling a wanted order creates a worse problem than the one you solved, so verify first with a two minute check.

Look at the signals Shopify shows you: same customer, same items, same address, placed minutes apart, with identical totals is a true duplicate pattern. Contact the customer through the order email before shipping either order if anything is ambiguous, and pause fulfillment while you wait. A short hold and a clear message costs little; a shipped duplicate costs return postage, restocking time, and a confused customer.

Cancel and refund the duplicate cleanly

Once confirmed, cancel the second order rather than fulfilling and arranging a return. In Shopify, cancelling an unfulfilled order can release the items back to inventory and issue the refund to the original payment method, with the customer notified automatically. Check whether restocking applies to your setup so your counts stay truthful, especially for low stock items that may already have other buyers waiting.

Message the customer yourself as well, briefly: which order number was cancelled, that the refund is on its way and roughly when to expect it, and that the first order is proceeding normally. Duplicate order customers are anxious customers, they just discovered they may have paid twice, and a proactive explanation converts a scare into a story about your store being on top of things.

Stop shipped duplicates from becoming losses

If the duplicate already shipped, switch to return mode immediately. Send a prepaid return label if your policy allows, and intercept the package with the carrier where that service exists; for identical parcels, some carriers can return one to sender before delivery. The longer the delay, the more likely the customer opens, uses, or forgets the parcel, and the harder the recovery becomes.

When the item returns, inspect and restock fast, then refund. Do not hold the refund hostage to a slow warehouse queue for a mistake your store also missed; goodwill in duplicate cases is cheap marketing, and these customers were ready to buy from you twice, even if one time was an accident.

Catch the next one automatically

Build the net. A simple Shopify Flow or a daily duplicate check, same email, same address, same items, within a short window, flags pairs for review before fulfillment. Even a manual morning scan of orders sorted by customer catches most duplicates in a small store, because true duplicates cluster tightly in time.

Tell your future self why each flag was or was not a duplicate with a tag or note. Patterns emerge: one product page with a sticky buy button, one payment method timing out and inviting retries. Fixing the checkout friction that creates duplicates beats catching them forever, and the order notes are how you will find it.

Related reading

If this topic is useful, these earlier guides go deeper on connected questions: A customer says their package shows delivered but never arrived. What do you do?, How long can a customer edit a Shopify order after checkout?, and A customer wants to change items after placing the order. What do you do?.

Frequently asked questions

How can I tell if two orders are really a duplicate?

The strong pattern is the same customer, items, address, and total, placed within minutes of each other, often with the second order following a checkout error or refresh. When any signal differs, different address, different sizes, hours apart, contact the customer before cancelling. A brief fulfillment hold and one email is cheaper than cancelling a genuine second order.

Should I cancel or ship a confirmed duplicate order?

Cancel it, if it has not shipped. Cancelling an unfulfilled order in Shopify refunds the customer to their original payment method and can return the items to inventory in one step. Shipping it anyway turns a one click fix into return postage, handling, and a customer doing unpaid warehouse work for your store.

The duplicate already shipped. What now?

Act the same day. Send a prepaid return label, and try a carrier intercept or return to sender on the duplicate parcel where available. When it arrives back, inspect, restock, and refund promptly. Customers in this situation made an honest mistake, and fast, generous handling is remembered long after the incident.

Can I prevent duplicate orders in the future?

You can catch most of them. An automation or daily review that flags same customer, same address, same items within a short time window, before fulfillment, handles the bulk. Tag reviewed pairs so patterns emerge, checkout errors and double taps usually trace to one fixable friction point worth more than the catch process itself.