Problems & solutions · ERP

Distribution and Wholesale ERP Problems: The 7 That Cost Real Money, and How to Avoid Them

ERP FOR Distribution Wholesale software overview illustration showing common problems and fixes.
The short answer

The most expensive failure in a distribution build is treating customer specific pricing as a data import rather than as an engine. Contract prices, quantity breaks, rebate accruals and account level overrides get loaded as a flat table, the exceptions stay in the spreadsheet a manager guards, and reps keep quoting from the spreadsheet because it is right and the system is not. You then carry two sources of truth on the one number that decides whether an order makes money, and the gap shows up as margin erosion nobody can attribute, plus a rebate liability discovered at year end rather than accrued per order.

Why does the pricing engine turn into the biggest scope failure?

Almost every enterprise resource planning (ERP) project for a distributor is scoped with a line that reads import existing price lists. That line is doing an enormous amount of work. A wholesale price is rarely a number on a product. It is the result of a customer tier, a contract that overrides the tier for eleven items, a quantity break table that behaves differently for a case than for a pallet, a promotional price with an end date, a rebate that accrues rather than discounting at the line, and a sales manager's authority to override any of it within a floor.

This is specific to distribution because your competitors sell the same goods. The price is the product. In manufacturing the bill of materials is the hard model, and in retail it is the catalogue. Here it is the pricing hierarchy and the order in which its rules resolve.

The fix is to make pricing the first thing built and the first thing tested, not a configuration task in month four. Take fifty historic invoice lines across your five most awkward accounts, run them through the engine, and require the output to match to the cent before anything else ships. If the engine cannot reproduce yesterday's invoices, no amount of warehouse functionality will make the system trustworthy to the people who quote.

What goes wrong when you migrate SKUs, price lists, open orders and stock balances?

Migration is where distribution projects slip, and it slips for a reason that is easy to predict and easy to underestimate. Your item master has been accumulating for fifteen years. It contains superseded part numbers, two records for the same item from different suppliers, units of measure that disagree between purchasing and selling, and items that exist only because someone needed a line on a quote in 2019. Loading all of it means paying to carry that mess into a new system and then explaining it to your own team for years.

Open orders are worse than the item master because they are moving. An order with three lines shipped, one line backordered and a partial payment applied does not import as a row. It imports as a state, and the state has to agree with what your warehouse physically did last Thursday. This is why a parallel run matters. Run the new system alongside the old one on a subset of orders for a full cycle so that the two can be compared while the old one is still authoritative.

Stock balances need a clean cutoff tied to a physical count, not a snapshot from a report. A build that imports theoretical quantities inherits every discrepancy the old system was hiding, and your team will blame the new software for drift that predates it.

Why do accounting, carrier and trading partner integrations break after launch?

They break because each one has a different owner and none of them is you. Accounting synchronisation to QuickBooks, Xero or a NetSuite general ledger breaks on chart of accounts changes and on period locks, so an invoice posted after a period closes fails silently and reappears as an unexplained variance at month end. Build the sync with an explicit failure queue that a human sees the same day, rather than a retry loop that swallows errors.

Carrier integrations through ShipStation, EasyPost or direct FedEx and UPS interfaces break on rate and service changes, address validation behaviour and label format revisions. The failure is rarely dramatic. It is a service level that quietly stops being returned, so your cheapest option disappears from the rate shop and nobody notices until freight cost per order moves.

Electronic data interchange (EDI) with large retail accounts breaks in the most expensive way, because the trading partner controls the specification and enforces compliance with chargebacks. Every partner has its own map, its own required qualifiers and its own testing cycle, and onboarding is calendar time you do not control. Treat each partner as a separate deliverable with its own certification window rather than as one integration line called EDI.

What happens when available to promise and backorder handling are not covered?

This is the gap that costs orders rather than hours. Available to promise means the quantity a rep can commit today, which is on hand stock minus allocations to open orders, plus inbound purchase orders arriving inside the promise window, adjusted for what the warehouse has already picked but not yet shipped. Systems that show on hand quantity instead of available quantity produce the exact failure distributors describe: a rep promises stock that is physically in the building and already spoken for.

Backorders compound it. A partially shipped order needs to know what is still owed, at what price, against which purchase order, and with what allocation priority when the replenishment lands. Without that, the receipt gets allocated to whoever calls first rather than to the customer who has been waiting three weeks, and your best account learns to double order to protect itself. That behaviour then corrupts your demand signal, which corrupts reorder points, which is why nobody trusts them.

The fix is unglamorous. Model allocation explicitly as a reservation against a specific order line, make picking consume the reservation rather than the free stock, and show the promise date on the quote screen where the commitment is actually made.

Should you build custom or configure what you already own?

Configure, honestly, if your operation is standard. One or two warehouses, list pricing with straightforward discounts, no trading partner requirements and workflows that look like how NetSuite, Acumatica or Odoo already think. You will go live faster, you will not carry maintenance ownership, and the money is better spent on inventory or a second picker. That is the right answer for most distributors under a few million in revenue, and any developer who will not say so is selling.

There is a middle path that is frequently the best one. Keep your accounting package as the general ledger and build only the operational layer on top: order capture, pricing, allocation, warehouse flow and a customer portal. You get differentiation where it earns money and avoid rebuilding a ledger that already works, which usually pulls the total toward the lower end of the range.

Build the whole thing when your fulfilment promise, your pricing logic or your portal is the reason buyers choose you, and when you are already paying every year for customisations that force a boxed product to behave your way. The tell is simple. You are fighting the current system to do the specific thing that makes you money.

How do hidden costs get into the quote?

From Digital Heroes delivery experience, a distribution build that connects order management, multi location inventory, warehouse operations, purchasing, billing and a client portal runs $60,000 to $150,000 and takes five to nine months to a production ready first release. A leaner core of order management plus inventory starts near $40,000. Enterprise scope with trading partner integration, advanced replenishment, multi entity and hardware grade scanning runs $150,000 to $300,000 and beyond.

The lines that go missing are consistent. Each trading partner counts as its own deliverable. Barcode scanning on rugged hardware is a different project from a web pick list, because you are designing for gloves, cold and poor warehouse wireless coverage. Data migration and the parallel run deserve their own budget line, typically the largest single one. Payment processing inside the portal brings card industry compliance scope with it. And recurring cost is real: hosting, third party interfaces and support usually run 15 to 25 percent of the build per year, so a quote that ends at go live is not a quote for owning the system.

What separates a distribution build that works from one that fails here?

The strongest signal is a vendor who pushes back on scope. If they cut features to protect a launch date rather than quietly agreeing to everything, they have shipped this class of system before and they are protecting the launch rather than the invoice. A team that has never dealt with allocation, backorders or a three way match against receipts and invoices will agree to all of it and discover the difficulty at your expense in month six.

Ask them to walk through available to promise on a project they actually delivered, naming what they did about picked but unshipped stock and about inbound purchase orders inside the promise window. Ask which accounting package, which carrier interface and which trading partner they have certified against, by name and by direction of data. General integration experience is not the same as having survived a retailer's compliance testing.

Then insist on phased delivery with working software every few weeks, a parallel run before cutover, and written ownership of the source code, the data and the deployment. A single nine month build with one delivery at the end transfers all the risk to you, and in distribution the risk is not that the software is late. It is that the first invoice run after cutover is wrong and your customers see it before you do.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. In PMI's 2014 Pulse of the Profession report on requirements management, inaccurate requirements management is cited as a leading cause of project failure, with 47% of unsuccessful projects failing to meet goals due to poor requirements management. Source: Project Management Institute (PMI) (2014) →
  2. Across more than 5,400 IT projects studied by McKinsey and the University of Oxford BT Centre, large IT projects ran on average 45% over budget and 7% over schedule while delivering 56% less value than predicted. Source: McKinsey & Company / University of Oxford (BT Centre for Major Programme Management) (2012) →
  3. An independent Forrester Total Economic Impact study of OutSystems found a 363% three-year ROI with payback in under 6 months, illustrating that faster, lower-labor build approaches can materially shift the payback math. Source: Forrester Consulting (commissioned by OutSystems) (2024) →
  4. The performance gap between digital and AI leaders and laggards is widening: McKinsey reports leaders pull ahead on shareholder returns, and the average maturity spread between top and bottom performers jumped ~60% (from 10 points in 2016-19 to 16 points in 2020-22), reinforcing that the returns to transformation concentrate among top performers. Source: McKinsey & Company (2023) →
Vaishnavi · Client Success Rep · Lucknow

Vaishnavi is usually the first person a client hears back from. She handles incoming questions, gathers the detail a developer will need before the ticket is raised, and follows up on the things that would otherwise sit unanswered. Her posts cover what to expect from an agency in the first few weeks.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Why does nobody trust our reorder points?

Usually because the demand signal feeding them is corrupted by your own service failures. When customers learn that a backorder gets filled by whoever calls first rather than by who has waited longest, they start double ordering to protect themselves, which inflates demand for exactly the items you are already short of. Fixing reorder points therefore starts with allocation discipline rather than with a better forecasting formula. Model reservations against specific order lines, fill replenishment in priority order, and the demand data becomes worth calculating from within a couple of cycles.

A rep promised stock that had already shipped. What actually fixes that?

Showing available to promise on the screen where the commitment is made, rather than on hand quantity. Available means on hand minus allocations to open orders, plus inbound purchase orders arriving inside the promise window, less anything the warehouse has picked but not yet shipped. Most boxed systems can show this and many implementations never turn it on, because the pick step consumes free stock instead of consuming a reservation. Ask to see the quote screen and check which number a rep is looking at when they say yes.

How much of the timeline should we reserve for data migration?

More than the estimate you were given, and it should be its own line rather than a task inside another phase. The item master needs cleansing decisions that only your people can make, open orders migrate as states rather than rows, and stock balances need a cutoff tied to a physical count. A parallel run of three to six weeks on a subset of orders is the part teams try to cut and the part that catches the errors you cannot afford to find in production. Protect it in the contract, not in good intentions.

Can we keep QuickBooks or Xero and build only the operational layer?

Yes, and it is often the smartest path for a distributor. Keep the accounting package as the general ledger and build order management, pricing, multi location inventory, warehouse flow and the customer portal on top of it. You get the differentiation where it earns money and skip rebuilding a ledger that already works, which usually pulls the total toward the lower end of the $60,000 to $150,000 band. The integration then needs an explicit failure queue so a posting rejected by a closed period is visible the same day.

Why does trading partner onboarding take longer than the quote suggests?

Because the partner controls the specification and the testing calendar, and you control neither. Each large retail account has its own map, its own required qualifiers and its own certification cycle, and non compliance is enforced through chargebacks rather than through error messages. A quote with one line for electronic data interchange is a quote that has not been priced. Ask for a deliverable per partner, with the certification window named, and start the first partner's paperwork before engineering begins.

Our customer specific pricing lives in a spreadsheet. How do we get it into the system?

Not by importing the spreadsheet, because the spreadsheet is a result rather than a rule. Somebody has to state the hierarchy: which tier applies, which contract overrides it, how quantity breaks resolve for a case against a pallet, whether a rebate discounts the line or accrues, and what a manager may override and down to what floor. Then test the engine against fifty historic invoice lines from your five most awkward accounts and require an exact match before anything else ships. If it cannot reproduce yesterday's invoices, reps will keep using the spreadsheet.

Should we cut over all warehouses at once?

No. Cut over one site, ideally not your busiest, and run it for a full cycle including a month end close before extending. Multi location inventory introduces transfers, in transit stock and site level allocation rules, and those behaviours only reveal themselves under real volume. A phased cutover also gives your team somewhere to fall back to, which changes how honestly they report problems in week one. Big bang launches in distribution tend to fail at the first invoice run, in front of customers.

What should we ask a vendor to prove they have built distribution software before?

Ask them to describe available to promise from a project they shipped, including what they did about picked but unshipped stock and inbound purchase orders. Ask for the specific accounting package, carrier interface and trading partner they certified against, and in which direction data flowed. Then watch whether they cut scope to protect the launch date. A team that agrees to every feature in the first meeting has not yet met a three way match, a partial shipment or a retailer compliance test, and you will fund that education.

How many SaaS seats do we need before building custom becomes cheaper?
The crossover usually shows up between 20 and 50 seats on premium tiers. Salesforce Enterprise lists at $165 per user per month, so 40 users cost about $79,000 a year in subscriptions, which is real money against a custom system you would own outright. Run the comparison over three years: if subscription spend beats the build cost plus 15-20% annual maintenance, custom wins on price before you even count workflow fit.
Is customizing Odoo cheaper than building an ERP from scratch?
Usually yes in year one, and often no by year three if your workflows sit far from Odoo's assumptions. Odoo's published pricing starts around $25 per user per month and the Community edition is free, but heavy customization means every version upgrade can break your modules and needs paid rework. If you expect to rewrite more than about a third of the core flows, a scratch build with clean ownership tends to cost less over the life of the system.
What are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
Is custom software more secure than off-the-shelf SaaS?
Neither is secure by default; security tracks the practices of whoever builds and operates the system, not the model. SaaS gives you the vendor's certifications and patching but puts your data in a shared multi-tenant platform on their terms, while custom gives you full control over data residency, access rules, and compliance requirements like HIPAA, with the responsibility sitting with you and your agency. Before hiring anyone for a system holding sensitive data, ask for their security checklist: encryption at rest and in transit, an OWASP Top 10 review, role-based access, and a penetration test before launch.
Why do agencies charge for a discovery phase instead of quoting for free?
Because an accurate quote requires real work: mapping your workflows, finding the edge cases, and writing a specification, which typically takes 1 to 3 weeks and costs $2,000 to $10,000 at Digital Heroes depending on system complexity. You leave discovery owning a written spec and a fixed price you can take to any vendor, so the money is not locked into one agency. Free estimates are guesses, and the guess usually becomes your budget overrun six months later.
Can a freelancer build an ERP, or do I need an agency?
An ERP is too wide for one person: it needs backend, frontend, database design, integrations, QA, and someone mapping your business processes. A solo freelancer can extend an existing ERP or ship one small internal tool, but full ERP builds by single developers are the most common rescue scenario Digital Heroes takes on. If budget is tight, shrink the scope to one module rather than shrinking the team below three or four people.
What should I prepare before contacting an ERP development agency?
Bring a list of your current tools and spreadsheets, a rough map of how an order or job moves through the company today, your user count by role, and the three problems costing you the most hours. You do not need a formal specification; a good agency writes that with you during discovery. Companies that arrive with those four things typically cut two to three weeks off scoping in our experience.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
Can I start with one ERP module instead of the full system?
Yes, and it is how most successful custom ERP projects at Digital Heroes begin. We build the single module causing the worst pain first, typically inventory or order management, get it live in 10 to 14 weeks, and let it prove ROI before the next phase gets funded. Starting with one module also derisks data migration because you move one dataset at a time.
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Yes, and connecting your existing tools is one of the main reasons to build custom: mainstream platforms like QuickBooks, Stripe, Shopify, and Google Workspace all publish documented APIs. Budget 1 to 3 weeks of work per integration depending on API quality and how much data flows in both directions. Ask any vendor whether they have integrated with your specific tools before, because quirks like QuickBooks' OAuth token handling and API rate limits get learned on someone's project, and it should not be yours.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
Why do companies replace NetSuite with custom software?
The three reasons we hear most at Digital Heroes are per-user license growth, SuiteScript customizations that became fragile, and workflows the platform cannot model without workarounds. A company adding 50 users to NetSuite takes on roughly $59,000 per year in extra licenses at the commonly quoted $99 per user rate, which is often the moment the custom math starts winning. Replacements usually keep the accounting structure intact and migrate module by module.
Who can build a custom ERP software system?

Digital Heroes builds custom ERP 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 ERP 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.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?