Ecommerce WMS Problems: The 7 That Cost Real Money, and How to Avoid Them
The most expensive failure in an ecommerce warehouse management system (WMS) build is inventory that decrements on order rather than on pick. It looks correct in testing and it oversells every flash sale, because two buyers on two channels can both claim the last unit in the seconds before your sync fires. The cost is not the refund, it is the cancellation email, the marketplace metric it damages, and the fact that your team stops trusting the stock number and goes back to counting shelves by hand.
Why does warehouse scope creep into a full ERP so often?
Almost every warehouse management system project we see starts with a clear brief, which is scanner driven pick and pack plus a channel sync, and ends up quoted as an enterprise resource planning replacement. The path is always the same. Once you are modelling stock, someone points out that purchase orders create stock, so purchasing should be in scope. Once purchasing is in scope, supplier terms and landed cost follow, and now you are building accounting. Then somebody asks whether the system should own product data, because the channel listings are inconsistent, and you have quietly added a product information manager to a four month build.
This happens harder in ecommerce than in classic distribution because a direct to consumer brand genuinely does run everything through one small operations team. The person asking for purchasing in scope is the same person doing pick and pack, so from where they sit it is all one job. It is not one system.
The fix is a hard boundary drawn before anyone writes code. The warehouse management system owns physical state: what is on the shelf, in which bin, in whose hands, in which box, on which truck. It does not own commercial state, meaning what you paid, what you owe, or what a product is called on TikTok Shop. Write that sentence into the scope document and use it to answer every request during the build. The core release should be receiving, putaway, directed picking, pack verification, one channel sync and returns intake. Everything else waits for phase two, when you have real throughput data telling you what actually hurts.
What goes wrong with SKU, bin and open order migration?
The stock file you have is wrong and nobody in the building believes how wrong until the count runs. Brands routinely carry SKUs that were merged in a channel but never merged in the spreadsheet, bundles recorded as single units, and physical locations that exist on the floor but not in any record because a picker invented an overflow shelf in 2023 and everyone just knows.
The specific ecommerce version of this problem is bundle and kit maths. If one saleable SKU is really three components, migrating it as a single stock line means your opening balance is a fiction and every subsequent count disagrees with the system. Serialised inventory has the same shape, where the legacy record has quantity but not serials, so the new system starts with a gap it can never close retrospectively.
The fix is unglamorous and it is a real workstream, not a weekend. Reconcile the channel catalogue against the physical shelf before migration, decide explicitly which SKUs are components and which are saleable, and give bundles a bill of materials rather than a stock balance. Then do a full physical count into the new bin structure as the migration event itself, rather than importing a balance and counting later. Run both systems in parallel for two to four weeks with the new one authoritative for physical moves and the old one authoritative for money, and cut over only when a zone reconciles cleanly two counts in a row. Budget three to five weeks for this. Projects that assume one week are the ones that go live with a stock file nobody trusts.
Why do Shopify and Amazon integrations break after launch?
They break because a marketplace connection is not a feature you build once, it is a relationship you maintain. Shopify and Amazon change their APIs on their own schedule, deprecate versions, adjust rate limits, and occasionally alter the meaning of a field without telling anyone who is not reading their developer changelog. A build that treats the integration as done at launch is a build that starts failing quietly in month five.
The failure mode is rarely a loud error. It is a webhook that stops arriving during a traffic spike because your endpoint returned a timeout and the platform stopped retrying, or a rate limit hit during a flash sale that silently drops fifty inventory updates. Amazon fulfilment adds its own layer, because their fulfilment centres hold stock you never touch, so reconciliation is a scheduled comparison rather than a live sync and it needs its own error handling.
The fix is to build the integration as a queue with observable state instead of a set of direct calls. Every outbound inventory update should be a job that can be retried, backed off and replayed. Every inbound webhook should be idempotent, so receiving the same order notification three times creates one order. Then instrument it: a dashboard showing sync lag per channel, failed job count and last successful reconciliation, checked by an actual human every morning. And write into the maintenance agreement who watches the platform changelogs and who pays for the work when a version is deprecated, because that day arrives whether or not it is convenient.
What happens when returns and cycle counting are not covered?
These two get pushed to phase two more than any other feature, and they are the two that decide whether your stock number stays true. Returns are trapped working capital. A unit sitting on a receiving bench for nine days is a unit you have already refunded and cannot sell, and in a brand doing meaningful volume that bench is quietly holding a large amount of sellable goods hostage.
The deeper problem is that an uncovered returns process creates phantom stock. Somebody puts a returned unit back on the shelf without a system transaction, so the physical count and the system count diverge, and the divergence compounds. Within a quarter your team is doing shelf checks before confirming large orders, which is exactly the behaviour the system was supposed to eliminate.
The fix is to treat a return as a first class inbound movement with a disposition decision attached. Scan the return, photograph the condition, route it to restock, refurbish, or scrap, and only a restock disposition makes the unit sellable again. Pair it with rolling cycle counts by zone so you never shut the warehouse for a full physical inventory, and set a variance threshold that triggers investigation rather than a silent adjustment. If a bin is out by one unit three counts running, something in the process is wrong and you want to know which process, not just correct the number.
Should you build custom or configure what you already own?
A large share of the brands who ask us for a custom warehouse management system should configure an existing one instead, and we tell them so. If your fulfilment shape is standard, meaning single warehouse, single unit or simple multi unit orders, no serialisation, no assembly at pick time, then a configured product like ShipHero, Fishbowl or a NetSuite warehouse module will run your floor and the money is better spent on inventory and marketing. Those products are mature at directed picking, scan verification and label printing, which is most of what a standard operation needs.
The honest test is not whether the platform annoys you. It is whether you are already paying developers to work around it. Count the scripts, the middleware subscriptions, the spreadsheet that reconciles two systems every Monday, and the transaction fees. If those together would fund a build inside two to three years, and the reason you cannot leave is a workflow the platform will never support, then a build is the cheaper option. Subscriptions, kitting at pick, serialised inventory, business to business and direct to consumer running different pick rules out of one building, and multi warehouse routing are the workflows that most often push a brand over that line.
There is also a middle path that gets picked less often than it should. Keep the platform for what it does well, and build only the layer it blocks. A brand whose real problem is bundle stock accuracy does not need a new warehouse management system, it needs a component level stock service that feeds the one it has.
How do hidden costs get into the quote?
The quote covers the software. The project covers rather more than the software, and the gap is where budgets break.
- Warehouse infrastructure. Scanners, a label printer, and above all wireless coverage that actually reaches the back of the racking. Dead zones at the far aisles are discovered in week one of live picking, not during a site visit.
- Data cleanup. The three to five weeks of SKU, bundle and location reconciliation described above. It is real work and it belongs in the plan.
- Parallel running. Two to four weeks where staff do some tasks twice. That is overtime, and it is cheaper than a bad cutover.
- Each additional channel. A second marketplace is not a configuration toggle, it is an integration with its own quirks, its own reconciliation and its own failure modes.
- Ongoing maintenance. Budget 15 to 20 percent of build cost per year. Most of that is keeping channel integrations current, which is not optional.
- Training during peak. Nobody wants to train pickers in November, so either you go live well before peak or you carry the cost of doing it badly.
Ask any vendor to itemise these separately rather than folding them into a headline number. A quote that does not mention data migration or wireless coverage is a quote written by somebody who has not stood in a warehouse.
What separates a build that works from one that fails here?
The successful ones share four traits. First, the hard problems are scoped first. Oversell prevention, returns disposition and multi channel reconciliation go in phase one, because a build that leaves them for the end discovers in month six that the data model cannot support them. Second, the cutover has a written plan with a rollback, because going live means moving real inventory without losing a shipping day, and vagueness there is the single strongest predictor of a bad launch.
Third, the rollout is phased. One zone or one channel proves itself in production while the rest of the floor runs as before. A brand that attempts a full floor big bang cutover in a single weekend is a brand that ships nothing on Monday. Fourth, somebody internal owns the system. Not a committee, one named person who reviews the sync dashboard, chases variances, and decides what phase two contains. Custom software without an internal owner rots faster than anyone expects, and the rot shows up first as staff quietly returning to their old workarounds.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- Poor software quality cost the US economy an estimated $2.41 trillion in 2022, including roughly $1.52 trillion in accumulated technical debt, driven partly by unsuccessful development projects and low-quality legacy systems. Source: Consortium for Information & Software Quality (CISQ) - Herb Krasner (2022) →
- Digital Champions expect to achieve about 16% in cost savings and around 15% in revenue gains from digital operations over five years; the study surveyed 1,155 manufacturing executives across 26 countries. Source: PwC / Strategy& (2018) →
- In the Flexera 2025 State of ITAM report, respondents reported roughly 33% of SaaS spend is wasted, underscoring how paying for off-the-shelf seats and tiers that go unused erodes the supposed cost advantage of generic SaaS. Source: Flexera (2025) →
- EMARKETER reports that over 54% of mobile commerce transactions now happen within shopping apps rather than mobile browsers, underscoring the app channel's growing dominance of m-commerce. Source: EMARKETER (2025) →
Inaaya keeps client systems running at Digital Heroes: monitoring, alerting, incident response and the follow up work that stops the same failure repeating. Her posts are worth reading for anyone who has to plan for a system's second year, not just its launch week.
View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.
Frequently asked questions
How do we stop overselling across Shopify and Amazon during a flash sale?
Decrement inventory when a unit is physically picked rather than when an order is placed, and hold one source of truth for physical stock that every channel reads from. That single design decision removes the window where two buyers on two channels can both claim the last unit. Then build the outbound update as a retryable queue rather than a direct call, because rate limits bite hardest at exactly the moment a flash sale is running and a dropped update is invisible until the cancellation email goes out.
Our bundle stock is always wrong. Is that a warehouse system problem?
It is a data model problem that a warehouse system exposes. If one saleable SKU is really three components, it cannot carry its own stock balance, it needs a bill of materials so availability is computed from the components. Brands that migrate bundles as single stock lines start with a fiction in the opening balance and never reconcile afterwards. Fixing this is often worth doing on its own, before any larger build, because it removes a large share of the counting your team does by hand.
How long does warehouse data migration actually take?
Plan three to five weeks inside the wider project, and treat a full physical count into the new bin structure as the migration event itself rather than importing a balance and counting later. The surprises are consistent: SKUs merged in a channel but not in the spreadsheet, overflow locations nobody recorded, and serialised items whose legacy record has a quantity but no serials. Teams that budget one week for this are the ones who go live with a stock file nobody trusts.
What breaks first after a warehouse system goes live?
Usually the channel sync, and usually quietly. A webhook endpoint times out during a traffic spike and the platform stops retrying, or a rate limit drops a batch of inventory updates with no visible error. The second most common is returns, because the process was scoped for phase two and staff put units back on shelves without a transaction, which starts the divergence between physical and system stock. Both are prevented by instrumentation: a daily view of sync lag, failed jobs and last successful reconciliation.
Should we configure ShipHero or Fishbowl instead of building?
If your fulfilment is standard, meaning single warehouse, no serialisation, no assembly at pick time and no split business to business rules, then yes, configure one of them and spend the money on inventory instead. They are mature at directed picking, scan verification and label printing. The build case starts when you are already paying developers to work around the platform, and when the workflow forcing that, such as subscriptions, kitting at pick or multi warehouse routing, is one the product will never support.
What is not included in a typical warehouse software quote?
Wireless coverage at the back of the racking, scanners and label hardware, the data cleanup workstream, two to four weeks of parallel running with the associated overtime, each additional sales channel as its own integration, and 15 to 20 percent of build cost per year in maintenance that is largely keeping channel integrations current. Ask for these itemised separately. A quote that never mentions migration or warehouse wireless was written without a site visit.
Can we go live across the whole warehouse in one weekend?
You can, and it is the most reliable way to not ship anything on Monday. The safer pattern is a phased cutover where one zone or one channel runs on the new system in production while the rest of the floor continues as before, then you expand once a zone reconciles cleanly across two consecutive counts. Phasing also means the training load is spread across a few people at a time rather than the whole shift at once.
Who needs to own the system internally after launch?
One named person, not a committee. Their job is to check the sync dashboard daily, chase count variances rather than silently adjusting them, and decide what goes into the next phase based on what is actually slowing the floor down. Custom warehouse software without an internal owner degrades quickly, and the first sign is staff quietly reverting to the spreadsheet workarounds the system was built to replace.
We run one small warehouse. What would a custom WMS cost for a business our size?
How do we migrate off spreadsheets or our old WMS without stopping the warehouse?
What are the biggest mistakes companies make on custom WMS projects?
Is there any case where buying Manhattan or an ERP add-on beats going custom?
Can we migrate years of data out of our current system into new custom software?
Should I hire a freelancer or an agency for my software project?
How many people does it take to build a custom WMS?
Who owns the code when an agency builds our WMS?
How do I vet a software agency for a WMS project?
Who can build a custom warehouse management software system?
Digital Heroes builds custom warehouse management software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.
Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.
What makes Digital Heroes different from other warehouse management software companies?
Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.
Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.
How can I check Digital Heroes is legitimate before getting in touch?
Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.
Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.