ERP migration

Migrate from JTL-Wawi to Odoo ERP

Field-level mapping, validation, and rollback between JTL-Wawi and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.

JTL-Wawi logo

JTL-Wawi

Source

Odoo ERP

Destination

Odoo ERP logo

Compatibility

91%

10 of 11

objects map 1:1 between JTL-Wawi and Odoo ERP.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from JTL-Wawi to Odoo ERP is a cross-platform migration that requires transforming JTL's German-e-commerce data model into Odoo's modular European ERP structure. JTL-Wawi organizes data around Artikels (products with Variationskombinationen), Kunden (customers with address records), Aufträge (orders with workflow state), Rechnungen (invoices with VAT), and Lieferanten (suppliers with Zusatzkosten). Odoo separates Products, Contacts, Sale Orders, Invoices, and Purchase Orders into distinct apps within its suite. We export via JTL-Ameise CSV templates, extract directly from the JTL database for relational integrity, and import into Odoo through its XML-RPC API or CSV loader depending on record volume. We preserve the German VAT tax structure, map Lagerbestände per warehouse to Odoo's virtual and physical inventory locations, and deliver a connector audit document for any JTL-Shop or PrestaShop storefronts requiring re-connection in Odoo. JTL-Workflows, JTL-WMS pick-and-pack configurations, and custom SQL views do not migrate; we provide written inventories for admin rebuild.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

JTL-Wawi logo

JTL-Wawi

What's pushing teams away

  • Support costs escalate significantly when issues require Bronze or Silver tier assistance, and the tariff model means simple questions can become billable support tickets.
  • English documentation remains incomplete with many pages still showing German screenshots and links, creating friction for non-German-speaking administrators.
  • Cloud hosting was discontinued by JTL, forcing customers to either self-host on-premises or find third-party RDP providers, disrupting existing deployment patterns.
  • Customer satisfaction scores are modest (G2 3.8, Trustpilot 2.4) with reviewers citing feature gaps and support responsiveness as recurring frustrations.

Choosing

Odoo ERP logo

Odoo ERP

What's pulling them in

  • Modular pay-as-you-grow model with 80+ apps under one database — teams start with CRM and add Accounting, Inventory, or Manufacturing without switching platforms.
  • Free Community edition lets businesses validate Odoo fit before committing to Enterprise licensing costs that scale with user count.
  • Lowest per-user pricing among mid-market ERPs, with a published free tier for one app and Standard plans starting around $24.90 per user per month.
  • Native integration between modules — a confirmed Sales Order automatically updates inventory, invoicing, and accounting without manual re-entry.
  • Strong Odoo Gold Partner ecosystem provides local implementation support, reducing risk for companies without in-house developers.

Object mapping

How JTL-Wawi objects map to Odoo ERP

Each row shows how a JTL-Wawi object lands in Odoo ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

JTL-Wawi

Artikel (Products)

maps to

Odoo ERP

Product Template + Product Variant

1:1
Fully supported

JTL Artikels (with Stammartikel as base and Variationskombinationen as variants) map to Odoo Product Templates with optional Product Attributes and Attribute Values. We extract Artikelmerkmale (item characteristics) and map them to Odoo product attributes. The JTLArtikel.nArtNr becomes the product's default_code; JTLArtikel.cArtNr maps to barcodes if present. Cross-references between base items and variants are preserved through Odoo's product variant resolution. Tier and edition constraints do not apply in Odoo Community or Enterprise for product variants.

JTL-Wawi

Kunde (Customer)

maps to

Odoo ERP

Contact (res.partner with customer rank)

1:1
Fully supported

JTL Kunden map to Odoo Contacts (res.partner with customer_rank = 1). Address records (Rechnungsadresse, Lieferadresse) merge into Odoo's address fields (street, street2, zip, city, country) using address_type flags where multiple addresses exist per partner. Payment status and customer tier flags from JTL map to custom fields on the res.partner. We preserve JTL's customer-specific Rabattgruppen (discount groups) as a custom field for pricing rule reconstruction.

JTL-Wawi

Auftrag (Sales Order)

maps to

Odoo ERP

Sale Order (sale.order)

1:1
Fully supported

JTL Aufträge map to Odoo Sale Orders. The Auftrag workflow state (erstellt, bezahlt, ausgeliefert, storniert) maps to Odoo states (draft, sent, sale, done, cancel) with a custom field jtl_workflow_state__c preserving the original German status for audit. JTL order modifications (Auftragsaenderungen) and partial shipments are preserved as order lines with backorder flags. Kunden reference resolves to res.partner lookup; Artikel references resolve to product.product lookup at migration time.

JTL-Wawi

Rechnung (Invoice)

maps to

Odoo ERP

Account Move (in invoice type)

1:1
Fully supported

JTL Rechnungen map to Odoo Account Moves with type = out_invoice or out_refund. Tax calculations from JTL (MwSt codes for German 19%, 7%, and reduced rates) map to Odoo tax records via fiscal position configuration. We preserve the Rechnung number sequence as the Odoo move name for audit continuity. Line items map to account.move.line with tax mapping applied per line. Due date and payment terms from JTL become Odoo invoice payment terms.

JTL-Wawi

Lagerbestand (Warehouse Stock)

maps to

Odoo ERP

Inventory Quant (stock.quant)

1:1
Fully supported

JTL Lagerbestände per Lager map to Odoo stock.quant records per warehouse location. Aktuelle Bestände (current stock levels) and pending reservations migrate as separate quant records (quantity and reserved_quantity). JTL's Lager (warehouse) entity maps to Odoo's stock.warehouse with its associated stock.location tree (view, internal, partner, inventory loss). Stock valuation amounts from JTL require a value mapping to Odoo's stock.valuation.layer records if FIFO or average cost is tracked.

JTL-Wawi

Lieferant (Supplier)

maps to

Odoo ERP

Vendor (res.partner with supplier rank)

1:1
Fully supported

JTL Lieferanten map to Odoo Contacts with supplier_rank set to 1 (and optionally customer_rank if the vendor is also a customer). Lieferanten address and contact details migrate as res.partner address fields. Einkaufspreise (purchase prices) per Lieferant map to Odoo vendor Pricelist entries linked to the supplier partner. Rahmenbestellungen (blanket purchase orders) map to Odoo purchaseBlanketOrders if the purchase module is active.

JTL-Wawi

Zusatzkosten (Additional Costs on A/P Invoices)

maps to

Odoo ERP

Extra Costs on Purchase Order Line

lossy
Mapping required

JTL Zusatzkosten (transport, customs, duties, and other named cost types per Lieferantenbestellung) require configuration in Odoo. We map each unique Zusatzkosten type to an Odoo product (with type = service) that can be added as an extra cost line on purchase orders or linked via Odoo's landed costs module if the Enterprise edition is deployed. Cost allocation methods (by quantity, by weight, by volume) are preserved in custom fields for admin configuration. This is a configuration step; direct import of historical Zusatzkosten onto existing purchase orders requires a manual mapping review.

JTL-Wawi

Versand (Shipping Export)

maps to

Odoo ERP

Delivery (stock.picking) + Carrier

1:1
Fully supported

JTL shipping data (DPD, Hermes, iloxx tracking IDs and shipping method assignments) maps to Odoo stock.picking records with carrier_id resolved to the matching Odoo delivery carrier. Tracking URLs are preserved in the picking notes. We export the JTL shipping method assignment template (Versandvorlage) as a separate CSV for admin to configure Odoo delivery methods post-migration. Historical shipment records with completed pickings migrate as stock.move.line records with origin referencing the original Auftrag.

JTL-Wawi

JTL-Connector Links (Shopware, PrestaShop)

maps to

Odoo ERP

Odoo E-commerce Connector Apps

1:1
Fully supported

JTL-Connector links between JTL-Wawi and Shopware, PrestaShop, or other storefronts do not have a direct Odoo equivalent because Odoo uses its own set of connector apps (Odoo Amazon, Odoo eBay, Odoo Shopify, Odoo WooCommerce Connector, or third-party modules). We deliver a connector audit document listing each active JTL-Connector with its current configuration, credentials scope, and synchronization scope (Articles only, Orders only, Full). The customer's admin or an Odoo partner re-establishes each storefront connection in Odoo after migration.

JTL-Wawi

JTL-Workflows (Automated Workflows)

maps to

Odoo ERP

Odoo Server Actions / Automated Actions

1:1
Mapping required

JTL-Workflows define event-condition-action chains that are specific to JTL's internal engine and do not export to Odoo. We deliver a written workflow audit report listing every active JTL-Workflow with its trigger event (e.g., order created, payment received, shipment confirmed), conditions, and actions. The customer's admin or an Odoo partner maps each to Odoo Server Actions, Automated Actions (ir.actions.server and ir.cron), or Odoo Workflow Builder (available in Odoo Studio or Enterprise) post-migration.

JTL-Wawi

JTL-WMS (Warehouse Management)

maps to

Odoo ERP

Odoo Inventory App (warehouse configuration)

1:1
Mapping required

JTL-WMS extends JTL-Wawi with pick-and-pack workflows, Arbeitsstationen (workstations), and Packtisch-Konfiguration (packing table settings). These are not exposed via JTL's REST API or JTL-Ameise. We document the WMS configuration during scoping (warehouse layout, picking strategy, packing station assignments) as a written handoff for the customer's admin to reconfigure in Odoo's inventory app using routes, warehouse types, and operation types.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

JTL-Wawi logo

JTL-Wawi gotchas

Medium

SCX API per-endpoint rate limits return HTTP 429

High

UNC paths required for all file-based imports and exports

High

JTL Cloud hosting discontinued forces third-party RDP reliance

Low

Incomplete English documentation with untranslated content

Odoo ERP logo

Odoo ERP gotchas

High

No rollback for CSV imports

High

External ID conflicts on re-import

Medium

Many2many field encoding in CSV imports

Medium

Large export timeouts require batching

Medium

Version schema drift between Odoo releases

Pair-specific challenges

  • JTL discontinued Cloud forces database access dependency

    JTL-Wawi no longer offers its own cloud hosting. Existing cloud customers migrated to third-party RDP providers or self-hosted on-premises deployments. In RDP-hosted environments, the only known credentials for direct database access are often the RDP credentials provided by the third-party host, which may have limited database export permissions. We validate the current hosting arrangement during discovery and configure UNC path access or direct database read credentials accordingly before any extraction begins.

  • Variationskombinationen explode product variant count

    JTL Artikels with multiple attribute dimensions (e.g., size, color, material) generate n-to-m Variationskombinationen that can produce 50,000+ variant combinations in catalogs with 10+ attribute options per dimension. Odoo handles variants natively but imports them more efficiently from a flattened product-attribute CSV than from JTL's relational structure. We pre-flatten the JTL variant matrix during extraction and generate the Odoo product.template, product.attribute, product.attribute.value, and product.product records in the correct dependency order to avoid constraint violations.

  • German VAT and ELSTER tax mapping requires manual configuration

    JTL Rechnungen carry German VAT codes (19%, 7%, 0%) with regional variations. Odoo maps these to tax records tied to fiscal positions for intra-EU B2B transactions (reverse charge) and domestic B2C (VAT collected). We extract the tax configuration from JTL but cannot create Odoo fiscal positions or tax records automatically because these depend on the customer's German tax advisor confirmation and DATEV account mapping. We deliver a tax mapping spreadsheet and the customer configures fiscal positions before invoice import begins.

  • JTL supplier Zusatzkosten do not map directly to Odoo purchase order lines

    JTL's Zusatzkosten (transport, customs, duties) are defined as named cost types per Lieferantenbestellung but are not standard purchase order line items in the same sense as ordered products. Odoo's landed costs module (Enterprise) or manual service product lines (Community) handle these differently. We preserve each Zusatzkosten type as a service product and a cost category mapping, but the actual allocation of these costs to specific incoming shipments requires admin-level configuration in Odoo's purchase or inventory module post-migration.

  • JTL-Connector storefront re-establishment is manual post-migration

    JTL-Connector credentials for Shopware, PrestaShop, and other storefronts are tightly coupled to JTL-Wawi's authentication and are not reusable in Odoo. We deliver a connector audit document during migration scoping, but the actual Odoo marketplace connector installation, configuration, and credential re-establishment falls outside standard migration scope. The customer or an Odoo partner handles storefront reconnection as a post-migration configuration task.

Migration approach

Six steps for a successful JTL-Wawi to Odoo ERP data migration

  1. Discovery and hosting assessment

    We audit the JTL-Wawi installation: database version, hosting arrangement (on-premises, RDP provider, or self-hosted), active JTL-Connector links, JTL-Workflow count and complexity, supplier Zusatzkosten definitions, and warehouse structure. We also identify which Odoo apps the customer will deploy (Sales, Purchase, Inventory, Accounting, e-commerce) and whether they choose Community or Enterprise. The discovery output is a written migration scope with object inventory, JTL-Connector audit list, and Odoo module selection recommendation.

  2. JTL database extraction via JTL-Ameise and direct SQL

    We extract data from JTL-Wawi using a hybrid approach. Standard business objects (Artikels, Kunden, Aufträge, Rechnungen, Lagerbestände) export via JTL-Ameise CSV templates. Complex relational structures (Variationskombinationen, Stammartikel cross-references, Auftragsaenderungen) extract directly from the JTL SQL database using read-only queries to preserve relationships that CSV denormalizes. We configure UNC paths for all file exports and verify path accessibility from the extraction workstation. SCX API endpoints, if used, are throttled per JTL's rate limits with exponential backoff.

  3. Odoo schema provisioning and German tax configuration

    We provision the destination Odoo database: install required apps (sale, purchase, inventory, account), create product attributes and attribute values from JTL Variationskombinationen, configure warehouse locations per JTL Lager, and set up German fiscal positions and tax codes. We create a tax mapping spreadsheet from the JTL export that the customer reviews with their tax advisor before we proceed with invoice import. This step deploys into an Odoo test database first.

  4. Sandbox migration and reconciliation

    We run a full migration into an Odoo test database (Odoo supports database cloning for sandbox). The customer's team reconciles record counts, spot-checks 25-50 records per object against the JTL source, and validates that Variationskombinationen resolved correctly, tax codes applied to invoices, and stock levels match the JTL Lagerbestände snapshot. We correct any mapping errors in the extraction and transform scripts before production migration begins.

  5. Production migration in dependency order

    We run production migration in sequence: product templates and variants (since all other objects reference them), warehouses and locations, supplier partners (for purchase order lookups), customer partners, sale orders, purchase orders, invoices, and stock quants last. Each phase emits a row-count reconciliation report. For invoices, we apply the tax mapping and fiscal position configuration before final validation. JTL-Workflows, WMS configurations, and connector credentials are not migrated; they appear in the audit handoff document delivered alongside the migration.

  6. Cutover, validation, and connector handoff

    We freeze JTL-Wawi writes during cutover, run a final delta migration of any records modified during the migration window, then enable Odoo as the system of record. We deliver the JTL-Connector audit document, the JTL-Workflow inventory, and the WMS configuration notes as written handoffs. We support a one-week hypercare window where we resolve reconciliation issues. We do not reinstall JTL-Connector storefronts or rebuild JTL-Workflows in Odoo as part of the migration scope; those are separate configuration tasks for the customer's admin or an Odoo partner.

Platform deep dives

Context on both ends of the pair

JTL-Wawi logo

JTL-Wawi

Source

Strengths

  • Integrated multi-channel selling across eBay, Amazon, and custom storefronts via JTL-Connector ecosystem.
  • Automated workflow engine (JTL-Workflows) reduces manual tasks using event-driven process chains.
  • JTL-Ameise provides CSV-based import/export for all core business objects without requiring API access.
  • Active German e-commerce partner network with certified service partners and 72,000-post community forum.
  • RDP-based hosting option eliminates on-premises Windows server maintenance for small teams.

Weaknesses

  • English documentation is incomplete with German-language screenshots persisting even on translated pages.
  • Support model transitioned to paid tiers, making basic issues potentially billable under Bronze or Silver plans.
  • No standalone cloud offering from JTL itself forces customers to third-party RDP providers.
  • Modest review scores (G2 3.8, Trustpilot 2.4) reflect ongoing customer satisfaction concerns.
  • JTL-Connector ecosystem is tightly coupled to JTL-Wawi, making cross-platform migrations more complex.
Odoo ERP logo

Odoo ERP

Destination

Strengths

  • Modular architecture with 80+ apps sharing one database — add Sales, Accounting, Inventory, and Manufacturing incrementally.
  • Free Community edition for self-hosting with no per-user license cost, backed by an active open-source community.
  • Per-user pricing starting around $24.90/month on Standard, significantly lower than comparable ERPs like NetSuite or SAP.
  • Automatic workflow propagation across modules — a confirmed sales order updates inventory, triggers invoicing, and posts accounting entries without manual steps.
  • Odoo.sh provides a managed cloud hosting environment with CI/CD for custom module deployment and staging databases.

Weaknesses

  • Performance suffers under heavy customization — large implementations with many active modules require dedicated optimization.
  • No single-click migration between Odoo major versions; each release introduces ORM changes, deprecated API calls, and schema revisions requiring manual adaptation.
  • Per-user and per-module licensing costs can escalate unpredictably for growing teams adding multiple apps.
  • Steep learning curve with hundreds of configuration options across dozens of modules creates adoption friction and training requirements.
  • Support tiers on Enterprise have inconsistent response times, pushing some customers toward alternatives with more reliable SLAs.

Complexity grading

How hard is this migration?

Standard ERP migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across JTL-Wawi and Odoo ERP.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    JTL-Wawi: Per-endpoint rate limits enforced; HTTP 429 returned on exceed (specific limits not publicly documented).

  • Data volume sensitivity

    B

    JTL-Wawi doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your JTL-Wawi to Odoo ERP migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about JTL-Wawi to Odoo ERP data migrations

Answers to the questions buyers ask most during JTL-Wawi to Odoo ERP migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your JTL-Wawi to Odoo ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 10,000 Artikels, 2,000 Kunden, and 5,000 Aufträge with a single Lager and straightforward Variationskombinationen. Migrations with multiple warehouses, large variant catalogs (over 50,000 combinations), complex supplier Zusatzkosten definitions, or JTL-Connector storefronts requiring Odoo marketplace re-integration move to eight to fourteen weeks because of extraction complexity, German tax configuration mapping, and connector audit scope.

Adjacent paths

Related migrations to explore

Ready when you are

Move from JTL-Wawi.
Land in Odoo ERP, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day