Manufacturing ERP consultant
ERP that follows how Indonesian factories actually work.
Including tax, subcontracting, and customs for bonded zones and bonded logistics centres — the parts usually patched over with spreadsheets. Built and maintained by the consultant who installs it, not waiting on a release from a vendor abroad.
Demo account
- demo@haritjahjo.com
- Password
- Demo1234
Demo data is reset to its starting state every night, and this account is shared.
The demo holds sample data and is yours to click through.
If any of this sounds familiar
What I hear most often from factories and bonded warehouses:
-
System stock and warehouse stock disagree
The gap has been there a long time and nobody can say since when. Every stock count turns into a search for someone to blame.
-
Customs reports rebuilt by hand every month
One person spends days copying data into spreadsheets. When that person takes leave, the report is late.
-
Production cost is only known afterwards
The number arrives after the goods have shipped, sometimes after the invoice is issued. By then the selling price can no longer be changed.
-
Material at the subcontractor is recorded nowhere
What went out is in one book, what came back is in another. The difference surfaces at the stock count, months later.
-
Accounting and operations run on two systems
The warehouse has its own system, finance has another, and the numbers never agree without manual adjustment.
-
Every new report means waiting
The request goes to the vendor and joins a queue. What you need this week arrives next quarter.
-
Goods held for many owners mixed in one warehouse
When goods go out, who owns them, who imported them, and which inbound document they came in on all have to be traced by hand.
If two or three of these sound like your factory, the rest of this page is relevant.
What has been built
Not a plan. This is an application you can open and click through today.
- A complete system from master data through to financial statements and period closing.
- Purchasing, sales, and inventory with stock cards, moving average or FIFO valuation, and journals posted automatically from every document.
- Production: multi-level BOM, work orders, and job cards per operation with time logs.
- Subcontracting both ways — material you send out to a subcontractor, and customer-owned material worked on in your factory.
- Production planning (MRP) from sales orders and demand forecasts.
- Indonesian tax: output and input VAT, withholding tax, and recording of tax invoice numbers issued by Coretax, replacement invoices included.
- Multi-company for business groups, with a consolidated trial balance across entities.
- More than two thousand automated tests run on every code change — including tests for two users saving the same document at the same moment.
Tax invoice numbers are issued by Coretax, not by this application. What the application does is prepare the data, record the number, and keep transaction codes and replacement invoices consistent.
Modules
Two rows, clearly separated. Nothing unfinished is written as if it already exists.
Working today and visible in the demo
-
Accounting & financial reports
WorkingGeneral ledger, trial balance, profit and loss, balance sheet, cash flow, and period closing.
-
Purchasing
WorkingPurchase orders, goods receipts, purchase invoices, landed cost into inventory value, and returns.
-
Sales
WorkingQuotations, orders, delivery notes, invoices, and credit notes.
-
Inventory
WorkingStock cards per warehouse, valuation, transfers, and automatic inventory journals.
-
Production
WorkingMulti-level BOM, work orders, and job cards per operation with time logs.
-
Subcontracting, both ways
WorkingMaterial sent out to subcontractors, and customer-owned material worked on in your factory.
-
Production planning (MRP)
WorkingFrom orders and demand forecasts into work orders and material requests.
-
Multi-company
WorkingSeveral legal entities in one system, with a consolidated trial balance.
-
Batches, serial numbers, and Quality Inspection
WorkingBatches and serial numbers recorded on every stock movement, stock counts included. Documents for items that require inspection cannot be submitted without a Quality Inspection.
-
Tax invoices & Coretax
WorkingOutput and input VAT, transaction codes including 07 for bonded zones, and recording of invoice numbers and their replacements. XML files for Coretax: output invoices, other output documents for exports, and PPh 23 withholding slips. Input invoices reconciled per tax period.
-
Role-based access
WorkingRoles per department (warehouse, purchasing, sales, production, finance, quality) that separate creating a document from submitting it, plus an audit trail of who changed what.
-
PDF document printing
WorkingDelivery notes, purchase orders, goods receipts, sales orders and invoices, work orders, subcontracting orders, stock entries, and Quality Inspections, with your company name and logo.
-
Bonded zone customs documents
WorkingBC 2.3, 2.5, 2.6.1, 2.6.2, 2.7, 3.0, 4.0, and 4.1, created straight from orders, printed as forms, and laid out in the CEISA data format. The result of checking them against the official CEISA schema is shown on the document screen.
-
Bonded zone reporting
WorkingSeven IT Inventory reports in the customs format: inbound, outbound, work in process, movement, and document reconciliation.
-
Bonded logistics centres (PLB)
WorkingThe PLB licence as master data, goods owners, stock per owner, and ownership transfers. Inbound with BC 1.6, BC 4.0, and BC 2.7: received goods are recorded per lot together with their inbound document, and arrivals before SPPB are logged at the gate without becoming stock.
-
Releasing goods from a PLB with BC 2.8
WorkingRelease into the domestic market with BC 2.8, created from a sales order or from consigned lots. Import duty is billed to the importer's tax ID and import taxes (VAT, luxury goods tax, and import income tax) to the goods owner's tax ID. Import duty is rounded up to the thousand rupiah as PMK 190/PMK.04/2022 requires. The document is checked against the PLB licence before it can be submitted. For now this covers imports for use with ordinary payment; other kinds are still filed directly in CEISA. The BC 1.6 and BC 2.8 forms can be printed from the draft, marked DRAFT.
-
PLB IT Inventory reports
WorkingThe three reports of Article 42 of PER-11/BC/2018: inbound and outbound per customs document, and the movement accountability report, each downloadable as Excel, CSV, or PDF. Customs or tax officers can be given an account that can only read and download those three reports, valid until a date that can be extended or revoked. The user log records who opened a report and who changed what. Lot tracing follows a lot from its inbound document to its outbound document and what remains. The PLB dashboard summarises stock per owner, storage age, and SPPB still outstanding.
Currently being built
-
Opening data import
In progressItems, customers, suppliers, stock balances, and account balances from spreadsheets.
-
Direct submission to CEISA
In progressHost-to-host submission of customs documents to CEISA 4.0 and retrieval of the responses. Built once credentials from customs (DJBC) are available.
I update this list whenever something moves from one row to the other. If what you need is in the second row, ask me for the schedule — you will get an estimated date, not the word soon.
Who it is for
The core is the same for everyone: accounting, inventory, purchasing, sales, and Indonesian tax. Only the additional modules differ.
-
General manufacturing
Factories turning raw material into goods: BOM, work orders, production cost, and three-stage inventory.
-
Garment & textile
Size and colour variants, subcontracting both ways, and cost per sewing operation. The part general ERP systems handle least well.
-
Bonded zones & KITE
Customs documents on receipt and shipment, VAT not collected, and bonded warehouses posted to their own accounts.
Status: Seven IT Inventory reports in the customs format are working. Customs documents are laid out in the CEISA data format and checked against its official schema, with the result shown on the document screen. Direct submission to CEISA does not exist yet; it will be built once credentials from customs are available.
-
Bonded logistics centres (PLB)
Goods held for many owners are kept apart per lot, each with its origin and inbound document. Goods that arrive before SPPB are logged at the gate and only become stock once the SPPB is recorded. The PLB licence is master data: the parties, goods, and activities it lists can be checked, with the regulation article behind each result. The three-year storage limit is monitored. The PLB operator and its tenants (PDPLB) can share one system while their data stays separate.
Status: PLB licences, goods owners, stock per owner, ownership transfers, inbound with BC 1.6, BC 4.0, and BC 2.7, and release into the domestic market with BC 2.8 can be tried in the PLB demo. Inbound documents are checked automatically against the licence in force on their date: without a licence in force the document cannot be submitted, the BC 1.6 seller must be listed as a supplier on the licence, and goods outside the licensed types get a warning. The three Article 42 IT Inventory reports with their downloads, officer access, the user log, lot tracing, and the PLB dashboard are in the demo too.
Demo account
- demo@haritjahjo.com
- Password
- Demo1234
Demo data is reset to its starting state every night, and this account is shared.
Sign in as a customs officer
- pejabat@haritjahjo.com
- Password
- Pejabat2026!
This account can only read and download the three IT Inventory reports (PER-01/BC/2016 as amended by PER-11/BC/2018, Art. 42(4)); in a company, officer accounts are created by the ERP admin.
Sign in at plb.haritjahjo.com/admin (opens in a new tab) -
Trading & distribution
Without production: purchasing, multi-warehouse inventory, sales, receivables, and tax.
Bonded zone work is what I know most deeply. It deepens what I can do; it does not limit it.
Why not an ERP that already exists
A fair question, and I will not answer it by running down tools I have used myself for years.
What I should admit first
ERPNext is free and broad. Odoo is mature, its ecosystem is large, and its consultants are everywhere. I have implemented both, and if one of them already fits you, I will not suggest you move.
-
Indonesian rules handled by the person who wrote the code
A report format changes, a new tax rule is issued, or customs asks for an extra column — the change can be done in hours. No foreign release queue, and no third-party module that has to be updated alongside it.
-
Built around the factory process, not the other way round
Two-way subcontracting, bonded warehouses, and tax invoice transaction codes are not patches on top of a foreign system. They were in the design from the start.
-
The source code can be handed over to you
The system stays yours and another team can continue it if we ever stop working together.
What I do not have
A community of thousands, an add-on marketplace, and a replacement consultant in every city. If those three matter to you, ERPNext or Odoo really is the better choice — and I will say so at our first meeting.
About me
Hari Tjahjo
Manufacturing ERP consultant
I implement ERP systems for manufacturers in Indonesia — Odoo and ERPNext — focused on textile and garment factories, including plants operating inside bonded zones.
What that work taught me: ERP implementations in Indonesia rarely fail for lack of features. They usually fail because the system does not recognise how a factory here actually works — subcontracting, customs documents, tax invoices, and reports whose format is set by a government office, not by a vendor.
The application you see in the demo is one I built myself for that reason. I wrote the code, and I am the one who will install and maintain it at your site. I am now also building modules for bonded logistics centres in the same application.
How the work runs
Five steps. Six to ten weeks overall for a mid-sized factory.
-
Mapping your needs
Estimated time:1–2 weeks
I come to you and map how things run now: material flow, chart of accounts, item list, warehouses, customs flow, and the report formats already in use. The output is a scope document you can read and argue with.
-
Setup
Estimated time:~1.5 weeks
Server, domain, backups, then the basic configuration: company, chart of accounts, warehouses, units, taxes, and payment terms.
-
Opening data migration
Estimated time:1–2 weeks
Items, customers, suppliers, BOMs, stock balances, and account balances move into the new system. Balances count as correct only when the clearing account reaches zero.
-
Testing & training
Estimated time:3 weeks
Your team runs real cycles on the test system in parallel with the old one. Findings get fixed. Training is given per department, not as one session for everybody.
-
Go-live & support
Estimated time:4 weeks
The switch happens at period end: closing balances in the old system become opening balances in the new one. After that I stay close for a full month for fixes and report adjustments.
Those figures assume a mid-sized factory with reasonably tidy data. The step that slips most often is the opening data migration — and if I see the signs during the first step, I will say so then, not in week six.
Questions that come up often
-
-
Where is our data kept?
Wherever you want it. It can sit on a server inside your own factory, so production and customs data never leaves the site; or on a rented server I manage. Mid-sized bonded zone factories almost always choose the first, and I usually agree with them.
-
If the internet goes down, does production stop?
If the system is installed inside the factory, no — the warehouse and the production floor keep working because the application runs on the local network. On a rented server, yes, which is one reason I ask about your connectivity before recommending either.
-
How long does implementation take?
Six to ten weeks for a mid-sized factory, from mapping to go-live. The breakdown is in the section above.
-
What if we want to change consultant later?
The source code and all of your data can be handed over. The database is ordinary MySQL or MariaDB, so any IT team can read it without special tools. I treat this as a reasonable condition, not a concession.
-
-
-
Can it handle several companies in one group?
Yes. Several entities run in one system, each with its own chart of accounts and warehouses, and a consolidated trial balance shows the combined position. What I do not do is put two different clients in one database.
-
What does it cost?
It depends on scope, and I can only name a figure after mapping your needs. I do not publish a price list because it would mislead: the spread between factories is too wide to compress into three packages.
-
Is any company using this application yet?
Not yet. I built and tested it myself, and I keep the demo open so you can inspect it rather than take my word for it. What I have done many times over is the implementation work itself — with Odoo and ERPNext, in real factories. You would ask this at our first meeting, so I am answering it here.
-
What if our reports have a particular format?
That is the work I do most often. Because I wrote the code, a new report does not have to wait for anybody else to release it.
-
-
-
Can it be used for a bonded logistics centre (PLB)?
Yes, for inbound and for release into the domestic market with BC 2.8. The PLB module is built in the same application, with the PLB licence as master data, separate goods owners, inbound with BC 1.6, BC 4.0, and BC 2.7 checked automatically against the licence, and BC 2.8 with its levies split per tax ID. Received goods are recorded per lot together with their inbound document. The three Article 42 IT Inventory reports can be opened and downloaded, including by officers who have been given access. All of that can be tried in the PLB demo.
-
Is it connected directly to CEISA?
Not yet. Customs documents are laid out in the CEISA data format and checked against the official CEISA schema; the result is shown on the document screen, and the layout of all eight bonded zone BC types is also tested automatically. For BC 1.6 and BC 2.8 in a PLB, the data can be downloaded as a JSON file. Direct host-to-host submission will be built once credentials from customs are available for your company.
-
Discuss your needs
Tell me about your factory in a few sentences — what you produce, how many warehouses, and which part is causing the most trouble right now. I answer these myself.
Fastest on WhatsApp
If you are reading this on a phone, this is the sensible route.
Chat on WhatsApp