← Back to writing
Writing · b2b ecommerce

Why B2B orders break at the ERP export (and fix)

By Leo Nguyen · Oct 29, 2026 · 3 min read
Why B2B orders break at the ERP export (and fix)
Jump to section›

Short version: in B2B ecommerce the catalog is the easy part. The step that quietly eats the budget is the export: moving each web order into the ERP and the accounting system without a human re-typing it. On a recent build (~15,000 SKUs, 5 customer price tiers, ~500 orders a month), that one step took about 35 real tickets. What made it hold up was a health check that validates every order before it's pushed. Bad orders stop at preview. Not at month-end reconciliation.

#The catalog is not where B2B projects fail

A per-customer price list and a logged-in storefront are well-trodden ground. What breaks is the handoff to the back office.

A trade order isn't done when the buyer clicks "order". It's done when it's correctly in the ERP, and again in accounting for the VAT invoice. Do that by hand at a few dozen orders a day and you've built a month-end surprise generator.

#The five things that actually break

From one real build, the export layer had to handle, per order:

  1. Unmapped SKUs. A product the storefront knows but the ERP doesn't: aliases, temporary SKUs, duplicates.
  2. Missing customer code. A new buyer with no ERP account yet, so the order has nowhere to land.
  3. Unit-of-measure mismatch. Boxes on the web, individual units in the ERP.
  4. Shipping and Incoterms. Shipping that has to be its own line, and two-step delivery terms.
  5. VAT by company. The right tax treatment depends on which legal entity is buying.

None of these show up in a demo. All of them show up at reconciliation.

#The fix: a health check in front of the export

Don't push orders straight through and clean up later. Validate every order before it leaves the storefront, with each rule above as its own check.

An order that fails stops at a preview screen. Someone fixes it in a minute, while they still remember the call with the buyer, instead of an accountant finding it three weeks later with no idea why the numbers don't tie.

On the build this is drawn from, the check layer alone was ~35 tickets, because each order type had its own trap. Once it existed, ~500 orders a month went into the ERP and into accounting with nobody re-typing them. The errors that used to surface at month-end now surface at the moment of ordering.

#Why design it as one system

Pricing, ordering and ERP sync aren't three plugins. They're one system. Each rule (price tier, unit conversion, VAT) lives in exactly one place, so changing it doesn't quietly break the next order.

That's also what keeps the data clean enough for AI assistants to read later. Different post, though. If you're weighing platforms for this kind of build, the Shopify Plus vs Magento 2 for B2B comparison covers where each one puts the ERP seam.

See the full case, with the numbers: B2B distributor: 15,000 SKUs, ERP orders without re-typing


Re-keying trade orders today? A free async read maps where your order-to-ERP flow leaks, before you touch the build: luma-e.com/ai-readiness. No call required.

Frequently asked
What's the hardest part of a B2B ecommerce build?›
The order-to-ERP export, not the catalog. Getting each web order into the ERP and the accounting system without anyone re-typing it, with prices, units and VAT correct, is where the budget quietly goes.
What is an order health check?›
A validation layer that checks every order before it's pushed to the ERP: unmapped SKU, missing customer code, unit-of-measure mismatch, shipping and Incoterms, VAT by company. An order that fails stops at a preview screen, so a person fixes it while the context is fresh instead of at month-end.
How many orders can this handle?›
On the build this is drawn from, about 500 orders a month flow into the ERP and about 500 a month into accounting, none of them re-typed by hand.
NEWSLETTER

More like this, only when it's worth it

Occasional email on AI x ecommerce - how agents read stores, what breaks, what we shipped. No weekly filler.

No spam, no sequence-drip. Unsubscribe anytime.