We move up to 6,000 orders a day across our two warehouses. At that volume you stop believing in "random" failures. Almost everything that goes wrong with an online store's logistics traces back to one of seven causes, and all seven repeat month after month. This is not a theory piece about "customer experience." It is what we actually pull out of boxes on the receiving dock, the cost it carries, and the fix.
Every fix below comes from running a real operation: 2.6 million parcels shipped, zero downtime since 2022, across 3,700 m² of warehouse space. None of these mistakes is fatal on its own. The danger is how they feed each other.
Mistake 1: Products arrive with no barcode and no real SKU
A store sends a delivery where three sneaker models share one price tag, half the units have no marking at all, and the "SKU" lives in the owner's head. Our WMS scans every unit at every step, from receiving to packing. When there is nothing to scan, receiving stalls: a worker sorts the cartons by hand, and a delivery that should take two hours sits for half a day.
The fix: give every SKU its own barcode, even a label off a thermal printer, and treat one variant as one code. "Blue and light-blue are the same thing" is exactly how mispicks start. Clean SKU and barcode handling is the first thing we set up when onboarding a store, and it runs through everything in our warehouse and order-handling services.
Mistake 2: No cut-off discipline
"Just grab this one, it's urgent" at 17:40, while the carrier's van is already loading. One unplanned order means a re-run picking wave, a shifted queue, and a late dispatch for ten other clients. Stores that hold a 6,000-order-a-day flow without downtime do not bend here: a fixed cut-off, and everything after it ships tomorrow. Boring, but predictable.
The fix: publish an honest cut-off to your customers (for example, orders before 14:00 ship today) and stop breaking it for "hot" requests. The exception costs more than it looks.
Mistake 3: Saving on packaging, paying it back in returns
The classic scene: a fragile item in a poly mailer with no void fill, because "a box costs more." Then comes transit damage, a claim, a re-ship, and an angry review. Under-packing does not save money; it moves the money into the "returns and replacements" line. The opposite extreme costs too: a phone in a 40x30 box that the carrier bills as volumetric weight.
The fix: 3-5 box sizes that cover your range, proper void fill, and co-packing matched to the product. For us that is part of the rate card, not a surprise on the invoice.
Mistake 4: Treating returns as free. They are not.
Owners build shipping into their unit economics and forget that a return is another operation: receiving, inspection, repacking, putting stock back. Our return unpacking fee is half of the combined shipping plus co-packing charge, because it is real labour, not air. If your category runs 20-30% returns (apparel, footwear) and you never costed them, your margin is not what the spreadsheet says.
The fix: put returns as a separate line in the cost of each order, and track the reasons. Half of returns are cured by an accurate size on the product page.
Mistake 5: One carrier, one point of failure
In 2022 we watched stores with a single carrier lose weeks of sales when some routes went down. Even in calm times, carrier lock-in is overspend: Ukrposhta wins on some destinations, Nova Poshta is faster on others, and Meest fits certain weight bands better. We run Nova Poshta, Ukrposhta, Meest, Justin, Avtolux and KastaPost, and the route for each shipment is chosen by destination and weight. Behind that sits real redundancy: 3 generators, 2 fibre ISPs and Starlink, which is how we have kept 0 days of downtime since 2022.
The fix: at least two carriers and a routing rule, instead of "everything through one because that's how we started."
Mistake 6: Excel stops working past a few hundred SKUs
Manual tracking in a spreadsheet survives up to roughly 100-200 article numbers. After that you get overselling (sold something you do not have) or cash frozen in dead stock because a bestseller never got reordered. A WMS deducts stock at the moment of picking and syncs with your storefront. Our integrations are already wired in: KeyCRM, SalesDrive, LP-CRM, Sitniks, Horoshop, OpenCart, WooCommerce, Rozetka, Prom and Kasta.
The fix: the moment your catalogue passes a couple of hundred lines, swap the spreadsheet for a system. Otherwise you pay the difference in errors.
Mistake 7: Nobody reconciles carrier payments
A cash-on-delivery amount lands short, a tariff is charged higher than quoted, a COD payout runs late. In a busy week it disappears into the noise, and the store simply comes up short without knowing where. We watch this with a tool we call the Payments Sheriff, which pushes Telegram alerts on carrier payments so a mismatch shows up the same day.
The fix: reconcile what the carrier paid you against what should have arrived, on a regular cadence. This is the line item where money leaks the quietest.
Why these seven compound
A bad SKU causes a mispick. A mispick becomes a return. A slow return holds stock in limbo. Inaccurate stock triggers the next mispick. It is a loop that speeds up over time, and no single fix breaks it on its own. The stores that escape either build genuinely disciplined internal operations or hand the floor to a partner who already has the systems in place.
The best logistics system is one you never have to think about. Every minute you spend chasing a lost parcel is a minute you are not spending on the product.
If you would rather hand off receiving, picking, packing and payment reconciliation than fight all seven of these yourself, here is what sits inside our 3PL fulfillment service.