SAP Business One → Odoo Migration
90–120 day parallel-run · HANA or SQL Server extraction
usedel.ai · Figures in USD thousands
Scope note, up front: del.ai migrates NetSuite to Odoo today. SAP Business One is not a migration we sell. This article is analysis of what an SAP B1 to Odoo move involves, written because the questions come up and the published answers are thin. It is not an offer, and nothing below is a quote. Where a vendor question needs answering, ask it of whoever you actually engage.
SAP publishes no list price for Business One, and it is sold and implemented exclusively through certified Value Added Resellers, so the five-year cost of staying is something you assemble from your own invoices rather than look up. The layers to assemble are the licence, the VAR retainer, database and infrastructure, and BI add-ons on top of Crystal Reports. What follows covers the 90-120 day shape such a migration takes, the HANA-specific extraction step, the business partner data model difference, and who should not attempt this migration regardless of what the cost math says.
Three forces are driving the evaluation. None of them are new. Together, they are creating a cohort of mid-market companies where the cost of staying on SAP B1 has crossed the cost of moving off it.
SAP Business One customers look at Odoo for three converging reasons. Cost and VAR dependency: SAP sells and implements Business One exclusively through certified Value Added Resellers, so every configuration change, report, and integration routes through that relationship, and a company running standard financial management or distribution rather than complex manufacturing carries architecture depth it does not use. Board AI mandate: SAP B1's schema is not directly queryable by an external AI agent, so any AI workflow routes through SAP's API layer, which exposes a subset of the data model; Odoo's Community core is open source under LGPLv3, which removes that middleware requirement, though Odoo Enterprise modules remain proprietary and subscription-bound. Self-service configuration gap: a SAP B1 workflow change means scoping with the VAR, a signed statement of work, and a scheduled development window, even to add a field to an invoice template, while Odoo's configuration layer needs no partner engagement for standard changes. Together those three drive the evaluation, not any one alone.
Source: Odoo S.A., "Licenses," Odoo 18.0 documentation, 2026. ↗
Cost and VAR dependency. SAP Business One is sold and implemented exclusively through certified Value Added Resellers. Every configuration change, every new report, every integration with a third-party tool routes through that VAR relationship. Retainers are negotiated privately and no published figure exists, so pull yours off your own invoices rather than trusting a range in an article. Companies that are primarily running financial management and standard distribution on SAP B1 — not complex discrete manufacturing — are paying for a depth of architecture they are not using, through a dependency structure they cannot reduce without switching systems. SAP sets the maintenance rate, and the VAR sets its own hourly rates; neither is something a customer fixes in advance. If your company is running complex discrete manufacturing on SAP B1 rather than standard distribution, see Open Source ERP for Manufacturing: Who Owns Your MRP Logic? for the MRP-specific ownership and parity-risk tradeoffs before assuming this migration path applies the same way.
Board AI mandate. SAP Business One's schema is not directly queryable by an external AI agent. Any AI workflow that reads or writes SAP B1 data routes through SAP's API layer, which exposes a subset of the data model, not the full schema. For companies where the board has mandated AI deployment across financial operations, this is a structural constraint. It is not configurable. Odoo's codebase is open, and the full data model is accessible without middleware. For CFOs being asked to connect AI agents to ERP data, that distinction is operational, not theoretical.
Self-service configuration gap. When a workflow needs to change in SAP B1, the path is: scope the change with the VAR, sign a statement of work, schedule the development window, test the output. That process is correct for complex manufacturing configuration. It is expensive overhead for adding a field to an invoice template. Odoo's configuration layer is accessible without engaging a certified partner for standard workflow changes. For companies at $10M–$100M whose primary system usage is accounting, AR, AP, and reporting, that overhead is the cost of a structural mismatch between the platform and the operational use case.
The parallel run methodology is the same. Fixed-price contract, condition-based cutover, rollback gates at each phase. Two things are structurally different.
HANA vs. SQL Server extraction. SAP Business One runs on two database backends. SQL Server deployments export data through standard ODBC connectors, and the extraction step is well-defined. HANA deployments require an additional extraction phase. HANA is SAP's proprietary in-memory database. Its data is not accessible via standard connectors without an intermediate transformation step. For HANA deployments, this adds two to four weeks to the migration timeline. You cannot skip it and you cannot compress it. The HANA extraction phase has to complete before data mapping begins. This is why the SAP B1 migration timeline is 90-120 days rather than a flat 90 days.
Business partner classification. SAP B1 uses a unified business partner object: a customer, a vendor, and a prospect all live in the same object with different classifications. Odoo's contact model is unified in the same way — a single partner record, with the customer or vendor role expressed through how the record is used across the Sales and Purchase apps rather than through separate record sets. That makes this a classification and mapping exercise rather than a structural split: the migration still has to determine which partners carry which roles, and handle the subset that are both customer and vendor, but it is not translating between two different shapes of data. It is a data preparation step that has to be done correctly in discovery, or it surfaces as a reconciliation failure during the parallel run.
Neither difference changes the economics. They change the execution plan.
Source: Odoo S.A., "Contacts," Odoo 18.0 documentation, 2026. ↗
del.ai does not sell SAP Business One migrations; this is analysis of the move, not an offer. On a parallel-run model, an SAP Business One to Odoo migration is a 90 to 120 day shape rather than a fixed 90 days. The 90-day floor assumes SQL Server deployments with clean data; HANA deployments add two to four weeks for extraction alone. The clock should start after scope is confirmed in writing, not at contract signing. Discovery and data mapping occupy weeks 1–4, build and parallel run weeks 5–10, and cutover preparation and go-live weeks 10–12 for SQL Server or weeks 10–16 for HANA. Both systems run simultaneously during parallel run, with SAP B1 remaining the system of record until written reconciliation sign-off, and reconciliation done line-by-line rather than as a visual review. The parallel run window runs wider than a NetSuite migration to accommodate business partner classification verification, and it should span at least one complete month-end close. This is the shape to hold a vendor to.
Source: del.ai migration methodology, 2026 — parallel-run structure generalized from del.ai's NetSuite-to-Odoo methodology, which is the only migration del.ai offers.
This phase has one output: a signed scope document. Everything in the migration flows from it. Discovery covers your current SAP B1 configuration, chart of accounts, open periods, pending transactions, historical data depth, VAR customization inventory, and database backend. The HANA vs. SQL Server determination happens here. So does the business partner classification audit. Both are inputs to the data map, which defines exactly what moves, in what format, and what stays archived.
A fixed price should be confirmed after this phase, not before: a range before discovery, a number and a signed scope document after it. The scope document is the price anchor. Work outside it becomes a change order, approved in writing before the work starts. A vendor who names a fixed price before discovery is guessing, and you will meet the guess again as a change order.
The audit cycle constraint is also identified here. If your company has an audit scheduled during the migration window, the migration plans around it. No migration phase runs during an active audit.
Source: del.ai migration methodology, 2026 — generalized from del.ai's NetSuite-to-Odoo methodology, which is the only migration del.ai offers.
The Odoo instance is built against the signed scope document. HANA extraction, if applicable, completes before the build starts, not during it. After the build, both systems go live simultaneously: SAP B1 continues processing transactions, Odoo processes the same transactions in parallel. SAP B1 is the system of record throughout this phase.
Reconciliation runs weekly. Each reconciliation is a gate. If the gate fails, the build does not advance. The team identifies the discrepancy source, corrects it, and the gate reruns. Reconciliation means deterministic line-by-line comparison of outputs: journal entries, AR aging, AP aging, inventory positions. Not "the numbers look right." Not a visual review. Line-by-line match.
The parallel run window for SAP B1 migrations is five to six weeks, slightly wider than NetSuite migrations, to accommodate the business partner model verification. Month-end and quarter-end periods in the parallel run are deliberate: those are the conditions where systematic errors surface. Running through at least one month-end close in parallel is a requirement, not an option.
Source: del.ai migration methodology, 2026 — generalized from del.ai's NetSuite-to-Odoo methodology, which is the only migration del.ai offers.
Cutover requires written reconciliation sign-off. The sign-off document records the period covered, the comparison outputs, and confirmation that both systems match. That document is the authorization for cutover. Without it, cutover does not happen.
After sign-off, SAP B1 data is archived in a portable format. Odoo becomes the system of record. The SAP B1 licence should be maintained through this phase and cancelled only after go-live is confirmed stable. Check that a stabilization window post-cutover sits inside the scope document, and that issues relating to the migrated configuration are covered by it rather than billed. New requirements are change orders in any well-structured engagement.
HANA deployments extend this phase by two to four weeks because the HANA extraction adds time to the front of the project. The Weeks 10-16 figure applies to HANA deployments. SQL Server deployments complete in Weeks 10-12.
Source: del.ai migration methodology, 2026 — generalized from del.ai's NetSuite-to-Odoo methodology, which is the only migration del.ai offers.
Nobody can quote you an SAP Business One to Odoo migration from an article, del.ai included — del.ai sells NetSuite-to-Odoo migrations and not this one. What the cost comparison needs is a five-layer inventory on the SAP B1 side: subscription or perpetual licence, annual maintenance set by SAP as a percentage of licence value, database and infrastructure, BI add-ons on top of Crystal Reports, and the VAR support retainer. SAP publishes no list price for any of that, and the retainer is privately negotiated, so the only reliable version of the number is the one built from your own invoices. On the Odoo side the licence rate is published — $38.90 per user per month on Standard, $76.20 on Custom — and implementation is quoted by whichever partner you engage. The honest framing is that the SAP B1 side of this comparison is unknowable from outside your finance system, and any five-year figure printed without your invoices behind it is a guess dressed as analysis.
Source: Odoo S.A., "Pricing," 2026. ↗ | SAP, "SAP Business One," product documentation, 2026 — no published list price. ↗
Build the SAP B1 side from six components: subscription or perpetual licence, one-time implementation (already paid, so not part of ongoing cost), annual maintenance set by SAP as a percentage of licence value, database and infrastructure costs, BI add-ons on top of Crystal Reports, and the VAR support retainer. Our SAP Business One hidden costs analysis walks the same layers. What it cannot do — what nothing published can do — is tell you your number, because SAP publishes no rate card and your VAR retainer is a private contract.
| Layer | Where the figure comes from |
|---|---|
| SAP B1 licence | VAR quote or your renewal invoice; SAP publishes no list price |
| Annual maintenance | Your contract, as a stated percentage of licence value |
| Database and infrastructure | Your hosting or on-premise infrastructure line |
| BI add-ons | Your invoices for anything sitting on top of Crystal Reports |
| VAR support retainer | Your retainer contract; privately negotiated, never published |
| Odoo licence | Published: $38.90/user/month Standard, $76.20/user/month Custom |
| Odoo implementation | Quoted by the partner you engage |
The self-funding argument, where it holds, works like this: the year-one saving from stopping the VAR retainer, database costs, and BI add-ons offsets some portion of the migration fee, and the licence is replaced with Odoo's published per-user rate. Whether that nets to near zero in year one depends entirely on the size of the stack being switched off, which is the number only you have.
The argument breaks down if your SAP B1 stack is at the cheap end, if your VAR retainer is low because your customization needs are low, or if you have significant existing SAP B1 customization that would need rebuilding on Odoo. Those belong in the model before a migration decision is made.
Five situations make an SAP Business One to Odoo migration the wrong call. Complex manufacturing with multi-level bills of materials or batch traceability: SAP B1 earns its cost structure there, and Odoo does not replicate that depth without custom development that changes the economics substantially. Existing SAP B1 customization above $150,000 in estimated rebuild effort, since proprietary customizations do not migrate and have to be rebuilt from scratch. Active M&A diligence, where changing the system of record while a deal is under buyer scrutiny introduces unnecessary reconciliation risk. A mid-audit cycle, since an active audit and an ERP migration cannot run simultaneously without creating documentation problems. And a recent SAP B1 implementation, completed within the last 18 months and functioning correctly, where the sunk cost does not justify migrating. None of these are soft disqualifiers — if any apply, the right answer in a scoping call is to say so rather than proceed.
Source: del.ai migration methodology, 2026 — generalized from del.ai's NetSuite-to-Odoo methodology, which is the only migration del.ai offers.
Five situations where migration is the wrong call. These are disqualifiers, not caveats.
Complex manufacturing BOM or batch traceability. SAP B1 earns its cost structure in discrete and process manufacturing: multi-level bills of materials, production routing, batch traceability from raw material receipt through finished goods shipment. If your business depends on these modules, Odoo does not replicate that depth without significant custom development that changes the migration economics substantially. Manufacturing companies with live production operations should evaluate this carefully before committing.
Existing SAP B1 customization above $150,000. Customizations built on SAP's proprietary development environment do not migrate to Odoo. They have to be rebuilt. If that rebuild cost exceeds $150,000 in estimated development effort, the migration economics become unfavorable within a 5-year horizon for most company profiles. Discovery will surface the true rebuild cost.
Active M&A diligence. Do not change the system of record while a deal is in diligence. Your financial data is under scrutiny by a buyer or their advisors. This is not the time to introduce migration risk, reconciliation periods, or data model changes.
Mid-audit cycle. An active audit and an ERP migration cannot run simultaneously without creating documentation problems for the audit. Discovery identifies your audit schedule. If the migration window conflicts with an active audit, the migration schedules around it or does not proceed.
Recent or ongoing implementation investment. If your SAP B1 implementation completed in the last 18 months and is functioning correctly for your use case, the sunk cost does not justify a migration. The cost comparison only favors migration if the ongoing annual cost of SAP B1 is substantially above what Odoo would cost to operate. A recently completed implementation that cost $150,000+ changes the 5-year math.
None of these are soft disqualifiers. If any apply, the right answer in a scoping call is to say so rather than proceed.
In a well-structured engagement these are sequenced gates rather than options, and they are worth checking against whatever plan a vendor puts in front of you.
1. Discovery and scope confirmation (Weeks 1-4). VAR customization inventory, database backend determination (HANA vs. SQL Server), business partner classification audit, chart of accounts mapping, open period review, audit cycle calendar check. Output: signed scope document and confirmed fixed price.
2. HANA extraction (if applicable, runs parallel to late discovery or early build). HANA database export to an intermediate format that can be mapped to Odoo's data model. This step has no shortcut. HANA's in-memory architecture requires a dedicated extraction phase that SQL Server does not.
3. Build and data migration (Weeks 5–8). Odoo instance built against scope document. Historical data migrated. Business partner records classified and mapped. Chart of accounts configured. Open transactions staged for parallel run.
4. Parallel run (Weeks 5-10, overlapping with build completion). Both systems live. Weekly reconciliation gates. No advance without gate passage. SAP B1 is the system of record throughout.
5. Reconciliation sign-off and cutover authorization. Written document. Covers the full parallel run period. Both systems match line-by-line. No cutover without sign-off.
6. Go-live and stabilization. Odoo becomes the system of record. SAP B1 maintained until stable. Post-cutover issues within scope for the stabilization window.
The rollback condition is explicit: if reconciliation fails at any gate, the previous confirmed state is live. There is no point in this process where you are committed to Odoo before verification is complete.
Source: del.ai migration methodology, 2026 — generalized from del.ai's NetSuite-to-Odoo methodology, which is the only migration del.ai offers.
These apply to any vendor conversation, not del.ai specifically.
Before signing with any SAP B1 to Odoo migration vendor, ask four questions that separate a controlled engagement from one that produces overruns. Is the price fixed before or after discovery, and if before, what specifically defines scope in the contract? How is HANA versus SQL Server extraction handled, since HANA's proprietary in-memory architecture requires a dedicated extraction phase that SQL Server does not, and a vague answer here signals the vendor has not done this before. What is the rollback condition, and at what exact point in the migration does it stop being fully reversible? And is reconciliation done through deterministic line-by-line comparison of journal entries, AR aging, AP aging, and inventory positions, or through a manual "numbers look right" review? A vendor who cannot answer the HANA, rollback, and reconciliation questions with specifics is operating under the same structural conditions that produce budget overruns industry-wide.
Source: del.ai migration methodology, 2026 — generalized from del.ai's NetSuite-to-Odoo methodology, which is the only migration del.ai offers.
A vendor who cannot answer questions 2, 3, 5, and 6 with specifics is operating under the structural conditions that produce overruns. Vague answers on HANA extraction and reconciliation mean the risk is still on you.
To restate the scope note this article opened with: del.ai migrates NetSuite to Odoo. SAP Business One migrations are not a service we offer, and none of the above is a quote or a proposal. Use it as a checklist against whoever you do engage — the HANA question, the rollback condition, and the reconciliation method are the three that separate a controlled engagement from an expensive one.
If you are on NetSuite rather than SAP B1, that is the conversation we do have.
Sources
1. Odoo S.A., "Pricing," 2026. ↗
2. Odoo S.A., "Contacts," Odoo 18.0 documentation, 2026. ↗
3. Odoo S.A., "Licenses," Odoo 18.0 documentation, 2026. ↗
4. SAP, "SAP Business One," product documentation, 2026 — sold through certified VARs, no published list price. ↗
5. del.ai migration methodology, 2026 — parallel-run structure, generalized from NetSuite-to-Odoo work