ERP migration

Migrate from Epicor BisTrack to Odoo ERP

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

Epicor BisTrack logo

Epicor BisTrack

Source

Odoo ERP

Destination

Odoo ERP logo

Compatibility

83%

10 of 12

objects map 1:1 between Epicor BisTrack and Odoo ERP.

Complexity

BStandard

Timeline

8-12 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Epicor BisTrack to Odoo ERP is a vertical-to-horizontal migration. BisTrack is purpose-built for lumber and building materials dealers with native counter sales, special order SKU generation, kit assembly, and delivery dispatch. Odoo provides a general-purpose ERP with modular apps (Sales, Purchase, Inventory, Accounting) that the customer configures for LBM workflows. We extract data from BisTrack via Smart View SQL queries and the REST API, handling the configurable DefaultSKU prefix pattern and the bin-location inventory model, then map to Odoo's product variants, warehouse locations, and multi-warehouse stock rules. Odoo's external API enforces a 1 request per second rate limit, which constrains migration throughput and requires our batch adapter with chunking and retry logic. We do not migrate BisTrack dashboards, Smart View grids, Workflow automations, or counter-sale screen layouts as code; we deliver a written data dictionary and rebuild guide for the customer's Odoo administrator.

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

Epicor BisTrack logo

Epicor BisTrack

What's pushing teams away

  • Speed and performance lag, especially during high-volume counter-sale periods or large data-entry sessions, frustrates users who need fast transaction throughput.
  • The system freezes or hangs regularly, forcing users to restart the application—a friction point noted across multiple reviews for accounts payable and daily operational use.
  • Steep learning curve and complex navigation require significant training investment, and knowledge is concentrated in a few power users who configured the system.
  • Customer service quality is inconsistent—support responsiveness and resolution quality depend heavily on whether the customer is on a monthly payment plan.
  • Organizational instability at Epicor's executive level and uncertainty around the company's direction has made some customers hesitant to continue investing in the platform.

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 Epicor BisTrack objects map to Odoo ERP

Each row shows how a Epicor BisTrack 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.

Epicor BisTrack

Customer

maps to

Odoo ERP

res.partner

1:1
Fully supported

BisTrack Customer records map directly to Odoo res.partner with partner_type=contact. The Customer Number field becomes Odoo's internal reference (ref). Address fields (street, city, state, zip, country) map to Odoo's address fields. We extract pricing tier and credit limit from BisTrack Customer Maintenance and populate Odoo's pricelist assignment and credit_limit fields. If a default salesperson is set in BisTrack, we map it to Odoo's user_id on res.partner.

Epicor BisTrack

Vendor

maps to

Odoo ERP

res.partner

1:1
Fully supported

BisTrack Vendor records map to Odoo res.partner with partner_type=supplier. Vendor-specific fields including PO terms, lead times, and EDI settings migrate to Odoo's purchase_order_route, property_supplier_payment_term, and custom vendor fields. EDI trading partner IDs are stored in a custom field on the partner record for integration rebuild. When a default customer is not set in BisTrack, we coordinate with the customer to assign a default buyer's contact during migration.

Epicor BisTrack

Item

maps to

Odoo ERP

product.product

1:1
Fully supported

BisTrack Item master records map to Odoo product.product. SKU becomes product.default_code; description becomes name. Bin location migrates to Odoo's warehouse.location_id structure, which we pre-configure per the customer's warehouse hierarchy. Kit assembly rules (Bill of Materials in BisTrack) map to Odoo mrp.bom records with BOM type=kit. The Max Description Length setting in BisTrack (default 254 chars) may truncate item descriptions; we flag any items with descriptions exceeding Odoo's name field length during the pre-migration audit.

Epicor BisTrack

Sales Order

maps to

Odoo ERP

sale.order

1:1
Fully supported

BisTrack Sales Order headers and lines map to Odoo sale.order and sale.order.line. Special order SKUs generated with the DefaultSKU prefix pattern (e.g., zz_SOWINDOWS_0001) are resolved against the product.product records we created during Item migration; we suppress auto-generation during import to prevent SKU conflicts. Line-level pricing, back-reference to the customer (res.partner), and order status (open, closed, cancelled) migrate directly. We sequence Sales Order import after res.partner and product.product to satisfy foreign-key constraints.

Epicor BisTrack

Purchase Order

maps to

Odoo ERP

purchase.order

1:1
Fully supported

BisTrack PO records extract via Smart View SQL and map to Odoo purchase.order and purchase.order.line. Line items reference Vendor (res.partner, supplier type) and Item (product.product), so we load Vendors and Items before POs to maintain referential integrity. PO terms and expected delivery dates migrate to Odoo's date_planned and order_line fields. If the PO references a blanket order in BisTrack, we create an Odoo blanket purchase agreement as the parent document.

Epicor BisTrack

Quote

maps to

Odoo ERP

sale.order

1:1
Fully supported

BisTrack Quotes accessible via API and the outside sales module map to Odoo sale.order records with state=draft. Quote status, expiration dates, and conversion history are preserved in custom fields (quote_validity_date, quote_status, converted_to_order_id). Quoted line items reference current item pricing from the product.pricelist. We flag any quotes with expired dates for customer review before import.

Epicor BisTrack

Inventory

maps to

Odoo ERP

stock.quant

1:many
Mapping required

BisTrack inventory levels, bin locations, and on-hand quantities per warehouse map to Odoo stock.quant records. Each unique bin location in BisTrack becomes a location_id within the customer's warehouse location hierarchy in Odoo. We extract via Smart View SQL and map to the stock.quant table with product_id, location_id, quantity, and reserved_quantity. Stock history (valuation layers) is available but may require additional transformation if the customer needs full valuation trail; we scope this during pre-migration audit.

Epicor BisTrack

Accounts Receivable

maps to

Odoo ERP

account.move

1:1
Mapping required

BisTrack AR invoices and payment records migrate to Odoo account.move with move_type=out_invoice and related out_payment records. The invoice-to-payment reconciliation (reconciled boolean on account.move.line) is computed during import. Open invoices import as draft for customer review before posting; paid invoices import as posted. We extract via Smart View SQL and map to Odoo's account.move and account.move.line structure.

Epicor BisTrack

Accounts Payable

maps to

Odoo ERP

account.move

1:1
Mapping required

BisTrack AP data including vendor invoices and payment records map to Odoo account.move with move_type=in_invoice and related in_payment records. Duplicate invoice controls native to BisTrack are flagged during import scoping to avoid re-triggering duplicate detection in Odoo (Odoo does not have an equivalent built-in; we document the check for the customer's AP team to review post-migration). Vendor invoice numbers map to Odoo's ref for cross-reference.

Epicor BisTrack

Chart of Accounts

maps to

Odoo ERP

account.account

1:1
Mapping required

BisTrack GL accounts accessible via Smart View map to Odoo account.account records. Account numbers and hierarchies migrate directly. Segment structures (e.g., department cost centers) may require mapping to Odoo's analytic accounting model if the customer uses cost center segmentation. We note any multi-segment account structures during pre-migration audit and discuss whether analytic accounts or a separate dimension are appropriate for the customer's reporting needs.

Epicor BisTrack

Custom Fields (UD codes)

maps to

Odoo ERP

ir.model.fields (custom)

lossy
Fully supported

BisTrack user-defined fields (UD codes) with per-field user-level security via Field Security Maintenance extract as field definitions and data. We pre-create equivalent custom fields in Odoo (ir.model.fields with groups restriction matching the source security model), then migrate the data. UD code field types (text, numeric, date, picklist) are mapped to Odoo field types (char, float, datetime, selection). Custom field metadata is documented in the handoff data dictionary.

Epicor BisTrack

Bill of Materials / Kit Assembly

maps to

Odoo ERP

mrp.bom

1:1
Fully supported

BisTrack kit assembly rules (Bill of Materials structures) map to Odoo mrp.bom records with type=kit or normal depending on the assembly method. Component quantities and routing steps migrate to mrp.bom.line and mrp.routing.workcenter records. Kit pricing rules from BisTrack are captured as custom fields on mrp.bom for the customer's admin to implement as Odoo product variants or multi-step pricing rules post-migration.

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.

Epicor BisTrack logo

Epicor BisTrack gotchas

High

Web Service License Throttling Affects API Migration Speed

High

FTP-Based Import Requires BisTrack-Side Setup

Medium

Special Order SKU Generation is Configurable and Must Match

Medium

Dashboard and Smart View Configurations Are Not API Exportable

Low

Epicor Cloud Migration Requires Ascend Program Enrollment

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

  • Odoo external API rate limit is 1 request per second

    Odoo's community-documented external API enforces a rate limit of approximately 1 request per second for standard XML-RPC or JSON-RPC calls. BisTrack's Web Service licenses may allow higher concurrent throughput on the extraction side, but Odoo's inbound rate limit constrains how fast we can write records. For a migration of 20,000+ Items and 50,000+ transactions, this means a single-threaded API write could take days. We implement batch write adapters using Odoo's Model.create() with record lists, and we coordinate with the customer to evaluate Odoo Enterprise's improved bulk import endpoint if throughput becomes a blocking constraint.

  • Web Service license throttling limits BisTrack extraction speed

    BisTrack licenses Web Service seats separately from named-user seats. When Web Service licenses are exhausted, API response times double incrementally, degrading migration throughput unpredictably during large record exports. We request a count of available Web Service licenses during scoping and throttle our extraction calls to stay within the licensed window, or we coordinate with the customer to temporarily increase Web Service seats before migration day. Smart View SQL exports are an alternative for large dataset extraction but require database read access that may not be provisioned for all customers.

  • Special order SKU generation patterns may conflict with Odoo product references

    BisTrack generates special order SKUs using a configurable DefaultSKU prefix pattern (e.g., zz_SOWINDOWS_0001). Odoo uses product.default_code for item reference but does not have a native auto-generation pattern. If the destination Odoo instance uses different SKU logic, we suppress BisTrack's auto-generation during import to avoid conflicts with existing product records. We capture the customer's SKU generation settings during pre-migration audit and replicate the pattern logic in our import adapter as a custom field or reference code mapping.

  • Odoo kit assembly (BOM) differs from BisTrack kit pricing rules

    BisTrack kit assembly rules bundle items for counter-sale pricing with specific discount logic. Odoo's mrp.bom with type=kit handles the component structure but kit-specific pricing rules (e.g., percentage discount off component total) require custom configuration. We migrate the BOM structure as mrp.bom records with component lines and quantities, and we document the pricing rule as a custom field for the customer's Odoo administrator to implement via Odoo's pricelist rules post-migration. This is a configuration handoff item, not a data migration item.

  • Dashboards and Smart View grids do not migrate

    BisTrack's role-based dashboards and Smart View grid configurations are user-built and stored in a format not accessible via API. We cannot migrate them automatically. During scoping, we document which dashboards and Smart Views are in active use and provide a data dictionary export of the underlying data so the customer's team can rebuild views in Odoo using its reporting and dashboard tools. This is a rebuild scope item, not a migration scope item.

Migration approach

Six steps for a successful Epicor BisTrack to Odoo ERP data migration

  1. Pre-migration audit and scoping

    We audit the source BisTrack instance across Web Service license count, Smart View SQL access, item count and SKU generation pattern, customer/vendor/order volume, BOM and kit structures, bin-location warehouse hierarchy, open AR/AP balances, and active custom field (UD code) definitions. We pair this with an Odoo edition decision: Community (self-hosted, free) covers open-source migrations; Odoo Standard ($31.10/user/month) covers standard sales, purchase, and inventory; Odoo Custom ($46.70/user/month) covers advanced manufacturing and multi-warehouse if the LBM dealer needs it. The audit output is a written migration scope, data volume estimate, and Odoo edition recommendation.

  2. Schema design and Odoo module activation

    We design the destination Odoo schema: activating the relevant apps (Sales, Purchase, Inventory, Manufacturing, Accounting), creating the warehouse location hierarchy to match BisTrack bin locations, defining product categories to match BisTrack item groups, configuring product variants for special order items, and setting up the chart of accounts to match BisTrack GL account structure. Custom fields (UD code equivalents) are pre-created with matching access groups. Schema is deployed into a test database first for validation.

  3. Test migration and reconciliation

    We run a full migration into an Odoo test instance using production-like data volume. The customer's operations lead reconciles record counts (Customers in, Vendors in, Items in, Orders in, Inventory quantities in), spot-checks 25-50 random records against the BisTrack source, and validates that bin locations, kit assemblies, and open balances match. Any mapping corrections happen in this phase, not in production. Special attention is paid to special order SKUs and kit BOM structures during reconciliation.

  4. Master data import in dependency order

    We run production migration in record-dependency order: res.partner (Customers and Vendors, in a single pass with partner_type differentiation), product.product (Items with bin locations mapped to stock.location), mrp.bom (kit assemblies from BisTrack BOM rules), stock.quant (inventory levels per location). Each phase emits a row-count reconciliation report before the next phase begins. We throttle extraction to stay within the customer's Web Service license window and throttle writes to stay within Odoo's 1 request/second rate limit using our batch adapter.

  5. Transactional data import

    We import Sales Orders, Purchase Orders, Quotes, and historical inventory transactions in dependency order after master data is validated. Open AR/AP balances are imported as draft invoices for customer review before posting. Special order Sales Orders reference the product.product records created during Item migration with the resolved SKU. We flag any records with missing parent references (orphaned lines referencing deleted customers or items) for the customer's admin to resolve before final posting.

  6. Cutover, validation, and rebuild handoff

    We freeze BisTrack writes during the cutover window, run a final delta migration of any records created or modified during migration, then enable Odoo as the system of record. We deliver the dashboard and Smart View rebuild guide with a data dictionary of all migrated tables and fields. We support a one-week hypercare window for reconciliation issues. We do not rebuild BisTrack Workflow automations, counter-sale screen layouts, or EDI integrations inside the migration scope; those are separate configuration engagements documented in our handoff report.

Platform deep dives

Context on both ends of the pair

Epicor BisTrack logo

Epicor BisTrack

Source

Strengths

  • Industry-specific ERP built natively for LBM dealers—no vertical configuration required for counter sales, special orders, or kit pricing.
  • Centralized data eliminates duplicate tracking between in-store POS and online sales channels.
  • Smart View SQL access provides direct data extraction without relying on canned reports or developer support.
  • Browser-based interface supports remote and mobile access for outside sales representatives.
  • Automation Studio powered by Workato offers 2,000+ pre-built connectors for integrating BisTrack with external platforms.

Weaknesses

  • Performance lags under high-volume data entry or large transaction loads, requiring users to restart the application.
  • No publicly documented pricing tiers—quotes are provided on request, complicating budget planning for migrations.
  • Steep learning curve and complex navigation mean new users and administrators require significant training time.
  • Web Service license gating can throttle API response times, affecting automated migration throughput.
  • Epicor corporate stability concerns (leadership turnover, ownership changes) have created uncertainty for long-term customers.
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. 3 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 Epicor BisTrack and Odoo ERP.

  • Object compatibility

    B

    3 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

    Epicor BisTrack: Not publicly documented; Web Service license exhaustion causes exponential backoff.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Epicor BisTrack 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 Epicor BisTrack to Odoo ERP data migrations

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

Can't find your answer?

Walk through your Epicor BisTrack 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 eight and twelve weeks for accounts under 15,000 Items and 8,000 Customers with standard SKU logic and no EDI integrations. Migrations with kit assemblies, multi-warehouse bin-location hierarchies, large open-order backlogs, AR/AP carryover balances, or EDI trading partner integrations move to fourteen to twenty-two weeks because of BOM structure resolution, warehouse location mapping, and financial balance reconciliation. Odoo version selection (Standard vs Custom) and whether the customer self-hosts or uses Odoo Online also affect timeline.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Epicor BisTrack.
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