At 9:02 on a Tuesday night, Wren's last speckled bud vase sells on Etsy. At 9:09 it sells again, on her Shopify store, to someone who has already written a gift note. There is one vase. It is wrapped in tissue on the shelf, and at this moment it belongs to two people.
Wren will spend Wednesday morning writing an apology, refunding a stranger and wondering whether running two shops was a mistake. It wasn't. But her two shops have no idea the other one exists, and seven minutes was enough to prove it.
(Wren, and every seller below, is a composite: a made-up maker built from the situations that cause overselling, not a real customer.)
The short answer: to stop overselling on Etsy and Shopify, link every Etsy listing and every Shopify variant to one shared stock count, test one listing without variations and then switch on automatic pushes (keeping Etsy listings with variations off automatic pushes, or splitting those listings), put a safety buffer on the Shopify side, switch off Shopify's Continue selling when out of stock, and record every stock change in one place instead of typing it into either shop. The five seller stories below show where each of those breaks, and the checklist puts them in the order to do them.
Why Etsy and Shopify oversell the same item
Etsy keeps a quantity on every listing (or on each variation). Shopify keeps an available count for every variant at every location. Neither one reads the other, so a sale on one side changes one number and leaves the other exactly where it was.
Nothing built into either platform joins them. Shopify's own multichannel app, Marketplace Connect (opens in new tab), lists Amazon, Target Plus, eBay and Walmart on its App Store page as of October 2026. Etsy isn't one of them. That leaves three ways to keep the counts in step:
- By hand. You change the other shop every time something sells. This works exactly as long as you're awake and paying attention.
- A Shopify-to-Etsy sync app from the Shopify App Store. CedCommerce's Etsy Integration (opens in new tab) is one example. Its listing describes syncing listings, inventory, orders and pricing in real time, and as of October 2026 its Beginner plan is $9 a month for up to 10 products, with inventory syncing from Shopify to Etsy.
- One inventory count that both shops read. Each product becomes one item, linked to its Etsy listing and its Shopify variant. A sale on either side comes off that count, and the new number is pushed (sent out) to the other shop. This is how Ardent Seller's Shopify integration and Etsy integration work together, and it's the setup the fixes below are written for.
Whichever you choose, overselling between two shops comes down to five gaps. Each seller below found one of them the hard way.
Etsy-to-Shopify sync lag (Wren's vase)
Wren's setup was right. Both listings were linked to the same item, and automatic pushes were on. The problem was which shop sold first.
Sales don't travel between Etsy and Shopify at the same speed in both directions. According to Ardent Seller's Shopify sync docs, Shopify reports new orders as they happen, so a Shopify sale usually lowers the Etsy quantity within a few minutes. Etsy orders arrive on a 15-minute schedule, so an Etsy sale can take up to about 15 minutes to reach Shopify. Wren's vase sold on Etsy, which left Shopify a window of up to 15 minutes. Seven of them were enough.
For a candle you hold 20 of, that window barely matters. For the last unit, or for a one-of-a-kind piece, it's the whole risk.
The fix. A safety buffer holds back units from what a shop is shown. It's set per connection, under Safety Buffer in the connection's Settings. Ardent Seller pushes your on-hand count minus that buffer, so a buffer of 1 on the Shopify connection means Shopify shows 4 when you hold 5. Since Etsy sales are the slow ones to arrive, put the buffer on Shopify, the shop that needs protecting from them, and leave Etsy at 0.
The buffer applies to every listing on that connection, though, and that's where Wren's shop is different. A buffer of 1 shows Shopify zero of anything she holds just one of, which for a ceramicist who makes one-offs is most of the shop. So she takes the other route: each one-of-a-kind piece gets one home shop. Her finished one-offs go on Etsy, where her search traffic is, and Shopify carries the glazes she makes in runs of a dozen. One shop per piece leaves nothing to race.
Shopify's Continue selling when out of stock (Theo's candles)
Theo ran a preorder for a holiday scent last November. To take orders before the wax had cured, he switched on Shopify's Continue selling when out of stock for that candle. The preorder ended. The setting didn't.
In February the candle sold out on Etsy, the push dropped Shopify to zero as it should, and Shopify kept selling it anyway. Shopify's help center (opens in new tab) is plain about what the setting does: it lets customers buy items that are out of stock. A sync can push the count to zero, but it can't stop Shopify from selling past it. By the time Theo noticed, the count was at −3.
The fix. In your Shopify admin, open each product's Inventory section and make sure Continue selling when out of stock is unchecked. Stopping at zero is what Shopify describes as the default (opens in new tab). Check the variants too, since the setting can be turned on for a single variant. Do it after every preorder, every made-to-order experiment and every product you duplicated from one of those. Also confirm Inventory tracked is on. Shopify's out-of-stock page (opens in new tab) notes that Continue selling when out of stock can only be selected on a tracked product, and a product that isn't tracked has no count for a sync to lower.
One more exception from the same Shopify page: Continue selling when out of stock doesn't govern Shopify POS. Staff can keep ringing up an item at zero and below, after a warning. If you run a register at markets, that's a third way to sell the same piece.
Etsy listings with variations (Marisol's soap)
Marisol sells her goat-milk soap as one Etsy listing with a scent dropdown (lavender, oatmeal, unscented) and as one Shopify product with three variants. On Shopify each variant links to its own item, so each scent keeps its own count. On Etsy the whole listing links to one item.
That mismatch causes the trouble. In Ardent Seller, a push to an Etsy listing with variations today sets every variation to the same quantity. Marisol had 9 unscented bars and 1 lavender, so Etsy showed 9 lavender. It took four orders to find out.
The fix. Either keep multi-variation Etsy listings on Manual only (open the listing's details from the connection's Listings tab and set Inventory Sync to Manual only), which leaves their Etsy quantities alone so you update each scent by hand, or split the listing into one listing per scent and link each to its own item. Marisol split hers. Three listings are more to manage than one, but they give her three counts that are always right, which she decided beat four apologies a month. Shopify needs no change: its variants already link one by one.
Unlinked listings and Manual only (Dev's two shops)
Dev connected his Etsy shop on a Sunday, his Shopify store on Monday, watched both product lists import, and assumed the hard part was over. On Thursday a leather wallet oversold.
Two things were missing, and both are deliberate:
- New links start on Manual only by default. In Ardent Seller, a newly linked listing leaves your shop's quantity alone until you push by hand. That way a wrong count shows up on one listing instead of across your shop. It also means nothing pushes automatically until you switch it on.
- Unlinked listings deduct nothing. Ardent Seller links Etsy listings and Shopify variants to your items by SKU when the SKU matches exactly. Dev's Etsy listings used "WLT-BRN" and his Shopify variants used "wallet-brown," so half his catalog matched nothing, and those sales came off no count.
The fix, in this order:
- On each connection's Listings tab, filter to Unlinked and link what's left. If the SKUs don't match, fix them in Etsy and Shopify themselves first: the sync reads SKUs from those catalogs and doesn't rewrite them. The free SKU Naming & Barcode System Starter Kit gives you one naming scheme to apply across both catalogs in a sitting.
- Recount anything you aren't sure of. Automatic pushes send counts out exactly as they are.
- Pick one well-stocked item whose Etsy listing has no variations. Open its listing's details on each connection's Listings tab and set Inventory Sync to Auto push to marketplace. Record an adjustment taking its count down by one, check that both shops drop, then put it back.
- Once that works, open each connection's Settings, set Default Inventory Sync to Auto push to marketplace, and turn on Also apply to listings already linked. That switches every linked listing, so straight away, before a sale comes in or you record any stock change, set each multi-variation Etsy listing back to Manual only (see Marisol's section). From then on, a newly linked listing can start on Auto push, whether you link it yourself or Ardent Seller matches it by SKU on its next listing sync. So whenever you add an Etsy listing with variations, find it on the Listings tab once it's linked and set its Inventory Sync to Manual only.
Hand edits and sleeping Etsy listings (June's restock)
June makes beaded earrings. When a new batch came off the bench, she typed the new count straight into Shopify, because Shopify was open. Two days later an Etsy sale came in and the push set Shopify back to the old count minus one, wiping out her new stock.
When stock lives in one place, a number typed straight into a shop is the one most likely to be overwritten. The next push sends the shared count, not yours. Ardent Seller's daily reconciliation will flag the difference in the connection's sync log as a stock change made directly in Shopify, but by then a day of sales has gone through.
Her Etsy side had the opposite problem. One style had sold out the week before, and when a push takes an Etsy listing to zero, Ardent Seller's Auto-deactivate out of stock setting (on by default) stops syncing that listing until you reactivate it. Restocking doesn't wake it up on its own. So the new earrings sat at zero on Etsy while June wondered why the style had stopped selling. That isn't overselling. It's underselling, which costs her sales instead of apologies.
The fix. Record every restock in one place, as a production run or an adjustment on the item, and let the push carry it to both shops. Never type a count into either shop directly. After a restock, check any Etsy listing that hit zero: renew it on Etsy if Etsy shows it as sold out, then open its details from the connection's Listings tab in Ardent Seller and click Reactivate Listing. Shopify listings don't get switched off at zero, so they come back as soon as the count goes up.
The pattern: one count, changed in one place
Put the five side by side and they're the same mistake in different clothes. Overselling happens when there's more than one count for the same item:
- Wren had one count, but it took up to 15 minutes to reach Shopify.
- Theo's Shopify ignored the count.
- Marisol's Etsy listing held three items behind one quantity.
- Dev's unlinked listings had no shared count at all.
- June kept a second count in her head and typed it into Shopify.
So the checklist is short: five steps, in the order to do them, that close all five gaps.
- Link every Etsy listing and every Shopify variant to one item, and check the Unlinked filter until it's empty (Dev).
- Recount, test one listing with no variations, then turn on automatic pushes (Dev). Right after that, set the Inventory Sync of every multi-variation Etsy listing back to Manual only; you can split those listings into one per variation later. Whenever you add an Etsy listing with variations, set it to Manual only once it's linked, whether you linked it or Ardent Seller matched it by SKU (Marisol).
- Put a buffer on Shopify, the shop exposed to Etsy's 15-minute lag, unless most of your stock is one-of-a-kind; then give each one-off a single home shop instead (Wren).
- Uncheck Continue selling when out of stock on every Shopify product and variant that isn't a genuine preorder, and keep Inventory tracked on. Remember that Shopify POS can still sell at zero (Theo).
- Record stock changes in one place, never in a shop's admin, and reactivate Etsy listings after a restock (June).
If you'd rather keep both shops on one count without updating either one by hand, see how Ardent Seller works for Shopify sellers. It links each product to its Etsy listing and Shopify variants, imports both shops' orders, and pushes the shared count back out to both. Each connection works on every plan. Running Etsy and Shopify together needs two shop slots. The Artisan plan and higher include them, and so does pay-as-you-go; the pricing page lists each plan's limit.
Related reading
- How to Sync Inventory Between Square and Etsy — if your second channel is a market register rather than a Shopify store, the step-by-step setup for keeping Square and Etsy on one count.
- Shopify Inventory Limitations for Makers — what Shopify's own inventory can't record once the sync is fixed: materials, batches, lots and a cost that stays current.
- Etsy Inventory Management Limitations — the same teardown for an Etsy listing, including why its quantity box is a capacity promise as much as a count.
- SKU Design for Small Sellers — how to build SKUs that stay identical in two catalogs, which is what lets Dev's listings link themselves.
Free resources
One free download that pairs well with this post:
- SKU Naming & Barcode System Starter Kit — a naming scheme you can apply to your Etsy and Shopify catalogs in one sitting, so the same product carries the same SKU in both shops and links itself.
