The Day Ann Discovered She Was Paying a Customer to Take Her Inventory (An Odoo clean-up story for wholesalers & manufacturers)
Ann runs a busy wholesale company. Pallets in, pallets out, orders flying in from the website, and product shipping daily from a 3PL warehouse in another state.
Like a lot of growing companies, she outgrew QuickBooks Desktop. It just couldn’t keep up with:
- Inventory at a remote 3PL
- Thousands of customer orders from the website
- The need to see what was really happening with margins and cash
So she did what many smart business owners do: upgraded to Odoo.
Only one problem… she did it without an accounting-savvy Odoo expert.
She had an excellent Odoo IT partner – great with tech, smart on the system – but they weren’t accountants. The transition from QuickBooks to Odoo happened without anyone owning the accounting logic behind it.
A few months later, the numbers in Odoo were a mess.
That’s when Ann called us at Accounting Sage.
The Hidden Problem: “We’re Busy, So We Must Be Profitable… Right?”
On the surface, everything looked fine:
- Orders were coming in
- Product was moving
- The 3PL was shipping
- The website was buzzing
But under the surface, the accounting system couldn’t answer some very basic questions:
- Which customers are actually profitable?
- What’s our gross profit by customer or channel?
- Do all shipped orders show up properly in Accounts Receivable?
- Are we accidentally giving away free inventory?
If you can’t answer those questions, you’re flying blind – especially in a high-volume, low-margin world like wholesale.
Ann’s team had never done a proper gross profit analysis by customer, and AR hadn’t been fully reconciled since the jump from QuickBooks to Odoo. The system was recording activity, but not producing insight.
That’s where things get dangerous.
What We Walked Into: An Odoo System That “Worked”… But Not For Accounting
When we first logged into Odoo, we saw what we often see after a rushed ERP changeover:
- Products not mapped correctly to accounts
- Revenue and cost of goods sold not lined up by customer
- 3PL data and website data flowing in, but not in a way that tied cleanly to accounting
- Accounts Receivable reports that didn’t quite match reality
Nothing was “broken” from a tech standpoint – orders were processing and shipments went out but the financial story was missing.
So we rolled up our sleeves.
What We Did: Turning Odoo Chaos Into Clarity
Here’s what our Accounting Sage team did step by step.
1. Cleaned Up the Accounting Setup in Odoo
We made sure:
- Products were linked to the right income and expense accounts
- Inventory movements actually lined up with accounting entries
- Website and 3PL activity flowed through in a way that could be reconciled
Basically, we rebuilt the backbone so the numbers in Odoo would mean something.
2. Built Gross Profit by Major Customer
Next, we set up reporting so we could see gross profit by customer, not just in total.
That meant:
- Matching sales, discounts, and returns
- Making sure COGS was properly tied to those sales
- Segmenting customers, so big accounts could be analyzed individually
This is where the big surprise showed up.
3. Reconciled Accounts Receivable (AR)
We then reconciled AR so we could answer a very simple question:
“Who owes you money, and are those balances correct?”
We matched:
- Odoo invoices
- 3PL and website data
- Customer payment history
And we discovered something no one expected.
The Shocking Find: A Major Customer Getting Paid to Take Inventory
Once the dust settled, one major customer jumped out from the report.
On paper, they looked like a star:
- High volume
- Frequent orders
- Long relationship
But when we looked at gross profit by customer, the truth was brutal:
This customer was being sold goods below cost. The company was effectively paying them to take inventory.
Because the initial Odoo setup wasn’t accounting-driven, no one had pulled a clean profitability report by customer before. It felt like a punch in the gut.
And it got worse.
AR Told an Even Uglier Story
When we finished the AR reconciliation, we found:
- Several orders for this same “star” customer were never paid
- The open balances had been buried in the noise of a messy system
So Ann’s company wasn’t just under-pricing this customer…
They were losing money on pricing AND not collecting all the cash.
No wonder cash felt tight.
What Ann Did With This Information
This is the part that matters most: data is only useful if you act on it.
Armed with clear numbers, Ann was able to:
- Confront the reality that this “key” customer was actually draining profit
- Review pricing and terms for that customer instead of just hoping volume would make up for thin margins
- Address unpaid invoices with confidence backed by clean AR reports
- Set guardrails so future pricing decisions wouldn’t slip below cost
Instead of guessing, Ann made decisions based on facts.
The End Result: From Silent Losses to Strategic Control
After the Odoo clean-up and analysis, Ann walked away with:
- Clarity on customer profitability – who is worth growing with and who needs a hard conversation
- Clean AR – no more mystery balances or forgotten invoices
- Stronger pricing decisions – margins no longer set by gut feel
- A system she could trust – Odoo finally reflected the real business
Most importantly, she stopped accidentally subsidizing a major customer.
That is the quiet risk in a messy accounting system: you can be working harder than ever, shipping more than ever, and still quietly losing money.
How to Avoid Ann’s Situation in Your Own Business
If you’re a wholesaler or manufacturer using Odoo (or thinking about moving to it), here’s how to protect yourself:
1. Involve an Accounting-Savvy Expert in Your ERP Setup
IT partners are fantastic at the tech — but you also need someone who understands:
- Chart of accounts
- COGS flows
- Inventory valuation
- Revenue recognition
If accounting isn’t baked into your Odoo design from day one, you’re building a beautiful house on a crooked foundation.
2. Track Gross Profit by Customer and Channel
Don’t stop at “total gross margin.”
You should be able to see:
- Gross profit by major customer
- Gross profit by channel (website, distributors, key accounts)
If you can’t, you don’t really know which relationships are fueling your business – and which ones are quietly draining it.
3. Reconcile AR Regularly (Not Once a Year)
“AR looks about right” is not a process.
You need:
- Regular AR reconciliation
- Clear aging reports you actually review
- A system to flag unpaid invoices and follow up
You shouldn’t be surprised months later that a “good customer” hasn’t paid for multiple orders.
4. Integrate 3PL & Website Data With Accounting – Properly
Data from your 3PL and e-commerce platform should tie to your accounting, not live in its own world.
If orders shipped and invoices issued don’t align, that’s how:
- Revenue gets misstated
- Inventory doesn’t match reality
- Cash leaks out without anyone noticing
How Accounting Sage Can Help

At Accounting Sage, we act as the outsourced finance department for wholesalers and manufacturers who’ve outgrown basic bookkeeping and basic tools.
We help you:
- Clean up and stabilize Odoo so it tells the truth about your business
- Build customer and product profitability reporting that you can actually use
- Reconcile AR, inventory, and COGS so you stop leaking cash in the background
- Turn your accounting system into a decision-making tool, not just a tax requirement
If Ann’s story feels uncomfortably familiar – lots of volume, lots of moving parts, but no clear picture of who’s truly profitable – you don’t have to stay stuck there.
Next step:
Review your current setup and ask yourself one simple question:
“Can I see accurate gross profit by customer and know exactly who owes me what?”
If the answer is no, that’s your signal.
We can help you fix it before you discover (the hard way) that you’re paying a customer to take your inventory.
You focus on moving the product – we’ll make sure the numbers behind it actually work.
Social Summary
Ann thought her “best” customer was driving profit. After we cleaned up her Odoo (post-QuickBooks switch), our gross profit and AR review showed she was selling to them below cost and they hadn’t paid for several orders.
We helped her fix pricing, collections, and reporting so she stopped paying a customer to take her inventory. If you’re not sure which customers are actually profitable in Odoo, that’s where Accounting Sage comes in.
Subscribe to the Accounting Sage newsletter for expert insights, practical tips, and our best strategies for keeping your books balanced and your sanity intact.
Click here to join our mailing list and take your financial knowledge from zero to hero!