← All articles

Blog

How a Bandung Manufacturer Replaced 5 Tools with Odoo in 90 Days

A 38-person Bandung textile manufacturer was running on five disconnected tools. Three months later, one system handled all of it. Here's the actual story.

6 min read
  • narrative

A Bandung textile manufacturer with 38 staff came to us with a problem we hear weekly. They had five business tools that didn’t talk to each other: an Excel-based production tracker, a desktop accounting software that the finance team refused to give up, a separate inventory app the warehouse used, a CRM the sales team had set up themselves, and a homegrown Access database the owner used to run weekly reports.

The data lived in five places. Every Monday, an admin spent four hours stitching it together so the owner could see one week’s actual numbers. By Wednesday those numbers were already stale.

This is what we did over 12 weeks, what it cost, and what the operation looks like now.

The pre-state

When we started, the operational pain was concrete:

  • Production planning: the Excel tracker had three concurrent users editing the same file. Conflicts and lost edits were normal. Two production runs a month started with the wrong material allocations because the inventory data was out of sync.
  • Order-to-invoice: a sales rep took an order in the CRM, emailed it to admin, who typed it into the desktop accounting software to issue an invoice, then notified production via WhatsApp. Average lag: 36 hours. Errors: 8–12% of orders had wrong quantities or wrong prices by the time they hit the floor.
  • Inventory accuracy: monthly stock-takes showed 12–18% variance against the inventory app. Some of that was real shrinkage. Most was just bad data flow.
  • Financial visibility: the owner saw real numbers once a week, three days late. Pricing decisions and supplier negotiations were happening with stale information.

The owner had been quoted by two other Odoo partners. The first said 9 months and Rp 480 juta. The second said 6 months and Rp 320 juta. Both planned to roll out all modules at once. The owner couldn’t afford either the time or the disruption.

The scope decision

The first conversation wasn’t about Odoo. It was about which problem to solve first.

We mapped the five tools against actual business processes. Out of 14 distinct workflows, only 6 were truly critical. The rest were workarounds for the fact that the tools didn’t connect.

We scoped a 90-day phased go-live around the critical six:

  • Phase 1 (weeks 1–6): Sales, Inventory, Purchase, and Accounting. Replace the CRM, the inventory app, and the desktop accounting software.
  • Phase 2 (weeks 7–10): Manufacturing and basic MRP. Replace the Excel production tracker.
  • Phase 3 (weeks 11–12): Reports and dashboards. Replace the Access database the owner used.

Total quoted cost: Rp 215 juta. Odoo Enterprise licences on top, USD ~28/user/month for the 12 power users who’d actually use it daily.

The owner agreed to it on the condition that we’d commit to dates with penalty clauses. We did.

What we configured, what we customised

The configuration work, which was 75% of the implementation:

  • Chart of accounts mapped to PSAK, with the specific account structure the existing accountant used so reports were drop-in replacements.
  • Indonesian tax codes for VAT and PPh 22 (relevant for some of their suppliers) and PPh 23 (for service contractors).
  • Bill of materials for the 47 main products. The owner thought this was the hardest part. It took two power users two weeks once we built a template.
  • Multi-location inventory: raw material warehouse, work-in-progress floor, finished goods warehouse.
  • Approval workflow on purchase orders above Rp 50 juta — owner approval required.

The customisation work, which was the other 25%:

  • A custom production calendar view showing each work centre’s load across the next 30 days. The standard Odoo planning view didn’t show what they needed at a glance.
  • e-Faktur output that matched their existing format. The OCA module got them 70% there; we built the last 30% as a small custom extension.
  • A Shopee integration for finished goods sales. Tokopedia wasn’t critical yet, so we deferred it.
  • Three custom dashboards: production status, cash position, and supplier performance.

We deliberately did not customise the manufacturing module beyond the calendar view. The standard Odoo MRP flow handled their build-to-stock production fine. The temptation was always there to bend the system to match exactly what the production manager was used to. We pushed back consistently.

Where we got hit

Two surprises that ate weeks.

The first: the desktop accounting software didn’t have a clean export. The finance team had been using it for 7 years. Reconstructing the historical chart of accounts and migrating opening balances took 80 hours instead of the 20 we’d budgeted. We absorbed the overrun on this one because we’d quoted it.

The second: the existing inventory data had 1,400 SKUs in the inventory app. After cleanup, the actual count was 920. Almost a third of the SKUs were duplicates, obsolete codes, or items that hadn’t moved in years. Cleaning this up was the warehouse manager’s part-time job for 3 weeks. We hadn’t scoped his time properly.

Neither broke the project. Both delayed the Phase 1 go-live by 8 working days. We renegotiated the Phase 2 and Phase 3 dates rather than compressing them.

The state at day 90

Numbers measured four weeks after Phase 3 go-live:

  • Order-to-invoice lag: 36 hours down to under 2 hours. Same-day invoicing on 92% of orders.
  • Order error rate: 8–12% down to 1.4%. Most errors now come from incorrect customer info, not internal data flow problems.
  • Inventory variance at monthly stock-take: 12–18% down to 3.1%. Real shrinkage shows up cleanly now that data flow isn’t masking it.
  • Owner’s reporting lag: weekly reports three days late, replaced by a live dashboard. The owner now checks cash position and production status daily on her phone.
  • Admin time on data stitching: 4 hours every Monday plus ad-hoc rebuilds, now zero. The admin’s time was reallocated to AP/AR follow-up, which had been chronically under-resourced.

The five tools are gone. The accounting team kept the desktop software running for 60 days in parallel as a safety net. They turned it off at day 60 voluntarily — they trusted the Odoo data more by then.

The total cost picture

Implementation: Rp 215 juta as quoted. Localisation customisation: Rp 18 juta (within scope). Two overrun items absorbed by us: roughly Rp 35 juta worth of time we didn’t bill.

Ongoing: Rp 14 juta/month for licences (12 power users), Rp 3.5 juta/month for Odoo.sh hosting, Rp 5–8 juta/month for ongoing support and small enhancements.

The owner’s framing afterwards: “I was paying about Rp 28 juta a month for the five tools when you add up licences, the bookkeeper’s extra hours, and what the lost orders were actually costing me. Now I pay Rp 23 juta a month and I actually know what’s happening in my business.”

That math wouldn’t work for every company. It worked for this one because the disconnection was the real problem, not the tools themselves.

What we’d do again, what we’d do differently

The phased go-live was the single best decision. Trying to ship all 6 critical workflows at once would have failed. Splitting them gave each team time to absorb their part before the next phase landed.

Two things we’d change next time. We’d budget more time for data cleanup up-front, not as a sub-task but as its own phase. And we’d be more aggressive about killing the desktop accounting software earlier — the parallel-run period was emotionally comforting but slowed the team’s commitment to the new flow.

If you’re running multiple disconnected tools and the math is starting to break down, an hour of conversation usually clarifies whether this kind of consolidation makes sense for your business. We do those calls free.