ERP migration
Field-level mapping, validation, and rollback between VISCO and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.
VISCO
Source
Odoo ERP
Destination
Compatibility
10 of 12
objects map 1:1 between VISCO and Odoo ERP.
Complexity
BStandard
Timeline
4-6 weeks
Overview
VISCO and Odoo ERP serve different operational models: VISCO is a purpose-built global trade platform where landed cost calculation, lot tracking, and shipment compliance are core features; Odoo is a modular ERP where landed cost, inventory, and purchase management are separate modules that must be configured together to replicate VISCO's integrated landed cost engine. The migration challenge is not just record mapping but reconstructing VISCO's landed cost allocations across freight, duties, insurance, and brokerage within Odoo's layered cost model. We coordinate database access with VISCO's support team since no public API exists, extract data in dependency order, clean and transform landed cost records, and import into Odoo's Product, Purchase, Inventory, and Account modules with the cost structure preserved. Workflows, compliance checklists, and document templates in VISCO do not migrate; we deliver a written inventory for your team to rebuild in Odoo Studio.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a VISCO 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.
VISCO
Product/Item
Odoo ERP
Product Template + Product Variants
1:1VISCO products carry landed cost allocation fields, unit-of-measure conversions, and product identification metadata. We map VISCO product fields to Odoo Product Template (the product definition) and generate Product Variants for each unit-of-measure or country-of-origin combination. Landed cost values from VISCO transfer as the initial Standard Price on the product; Odoo recalculates average or FIFO cost as receipts are posted through the Purchase module. SKU mapping preserves the VISCO item code as the product's default_code field for cross-system reconciliation.
VISCO
Land Costs
Odoo ERP
Valuation Layer (Stock Valuation Layer / Landed Cost via Configuration)
lossyVISCO's Land Costs object holds per-shipment cost allocations across freight, duty, insurance, and brokerage categories. Odoo does not have a native landed cost allocation object at the same level of granularity; instead, it tracks valuation layers per product (Quantity on Hand, Virtual on Hand, IN Draft, OUT Draft) and calculates average cost. We map each VISCO landed cost category to a separate Journal Entry in Odoo Inventory Valuation, and reconstruct the total allocated cost as an initial stock valuation adjustment so that on-hand inventory reflects the fully-loaded landed cost before the first Odoo receipt is posted.
VISCO
Shipment
Odoo ERP
Incoming Shipment (picking) + Purchase Order
1:1VISCO shipments track containers, ports, carriers, and dates from origin through destination. We map VISCO shipments to Odoo Receipts (Incoming Shipments under Inventory) linked to the related Purchase Order. Container numbers, carrier references, and port data migrate as custom fields on the Odoo picking record. Shipment status (in transit, customs clearance, delivered) maps to Odoo's picking state (waiting, confirmed, assigned, done) with a custom status field for customs-specific states that Odoo does not natively model.
VISCO
Inventory Lot
Odoo ERP
Lot/Serial Number (Stock Quant)
1:1VISCO tracks inventory by lot number with warehouse location assignments, expiration dates, source shipment reference, and quantity on hand. We map VISCO lots to Odoo Lots under the lot/serial number tracking feature. The warehouse location assignment maps to Odoo's location_id on the Stock Quant record. Expiration dates migrate as use_date fields on the lot. Source shipment reference maps as a custom lot property so that lot genealogy is traceable back to the original VISCO shipment record.
VISCO
Customer
Odoo ERP
Customer (res.partner)
1:1VISCO customers include company details and QuickBooks-linked fields. We map to Odoo res.partner with customer=True and supplier=False. The QuickBooks-linked identifier from VISCO migrates as a custom field qb_ref for cross-system reconciliation. Customer-specific landed cost or pricing rules in VISCO map to Odoo's Pricelist rules on the partner record.
VISCO
Contact
Odoo ERP
Contact (res.partner with contact=True)
1:1VISCO's CRM module stores contact details and inquiry assignments. We map VISCO contacts to Odoo res.partner with contact=True, linked as child addresses of the parent Customer record. The CRM inquiry-to-contact relationship is preserved by creating activity records (mail.message) on the contact in Odoo's native activity timeline. Phone, email, and address fields map directly; inquiry subject and status migrate as custom fields if the customer requires visibility into the original inquiry context.
VISCO
CRM Inquiry
Odoo ERP
Activity / Task (on Contact)
1:manyVISCO's inquiry module stores follow-up records separately from contact records. Each inquiry record maps to a Task activity on the related Contact in Odoo. The inquiry subject becomes the Task name, inquiry status becomes Task stage, and follow-up notes migrate as Task description. The inquiry creation date and last modified date become the Task's date_deadline and activity_date_deadline respectively, preserving the activity timeline order for audit purposes.
VISCO
Sales Order
Odoo ERP
Sale Order (sale.order)
1:1VISCO sales orders carry customer references, line items, pricing, and landed cost allocations. We map open and historical sales orders to Odoo sale.order. Line items map with product reference, quantity, and price. Landed cost allocations on the VISCO order (freight, duty, insurance) do not natively replicate in the Odoo sale.order line; we document these as custom fields on the order and the customer decides whether to embed them in the product price or carry them as separate cost lines in the Purchase workflow.
VISCO
Purchase Order
Odoo ERP
Purchase Order (purchase.order)
1:1VISCO purchase orders reference suppliers, products, quantities, and expected landed costs. We map open purchase orders to Odoo purchase.order with supplier address, line items, and expected dates. Landed cost categories from VISCO (freight, duty, insurance, brokerage) migrate as custom order-level fields for later allocation against the related incoming shipment.
VISCO
Compliance Document
Odoo ERP
Document (ir.attachment) + Custom Field Metadata
1:1VISCO generates and stores import/export documents including bills of lading, commercial invoices, certificates of origin, and customs forms. Document files export as binary blobs and attach in Odoo as ir.attachment records linked to the related Shipment (Incoming Shipment), Purchase Order, or Inventory Lot. Document metadata (type, issue date, authority) migrates as custom fields on the attachment record so that compliance teams can search and filter documents within Odoo without navigating to a separate system.
VISCO
Supplier
Odoo ERP
Supplier (res.partner with supplier=True)
1:1VISCO suppliers map to Odoo res.partner with supplier=True. Supplier-specific landed cost terms, payment terms, and carrier preferences from VISCO map to Odoo's vendor Pricelists, Fiscal Position (for tax mapping on imports), and Carrier configuration on the purchase workflow.
VISCO
Warehouse/Location
Odoo ERP
Warehouse + Location
1:1VISCO warehouse locations map to Odoo Warehouse records and the internal location hierarchy (view location, internal location, partner location). Each VISCO warehouse with lot-tracking enabled generates a corresponding Stock Location in Odoo. Multi-warehouse configurations in VISCO map to multiple Odoo Warehouse records under a single Odoo instance or a multi-company Odoo setup depending on the customer's organizational structure.
| VISCO | Odoo ERP | Compatibility | |
|---|---|---|---|
| Product/Item | Product Template + Product Variants1:1 | Fully supported | |
| Land Costs | Valuation Layer (Stock Valuation Layer / Landed Cost via Configuration)lossy | Mapping required | |
| Shipment | Incoming Shipment (picking) + Purchase Order1:1 | Fully supported | |
| Inventory Lot | Lot/Serial Number (Stock Quant)1:1 | Fully supported | |
| Customer | Customer (res.partner)1:1 | Fully supported | |
| Contact | Contact (res.partner with contact=True)1:1 | Fully supported | |
| CRM Inquiry | Activity / Task (on Contact)1:many | Fully supported | |
| Sales Order | Sale Order (sale.order)1:1 | Fully supported | |
| Purchase Order | Purchase Order (purchase.order)1:1 | Fully supported | |
| Compliance Document | Document (ir.attachment) + Custom Field Metadata1:1 | Fully supported | |
| Supplier | Supplier (res.partner with supplier=True)1:1 | Fully supported | |
| Warehouse/Location | Warehouse + Location1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
VISCO gotchas
No publicly documented migration API
Pricing cited varies significantly across sources
CRM module stores inquiry data separately from contact records
Odoo ERP gotchas
No rollback for CSV imports
External ID conflicts on re-import
Many2many field encoding in CSV imports
Large export timeouts require batching
Version schema drift between Odoo releases
Pair-specific challenges
Migration approach
Discovery and VISCO data export coordination
We audit VISCO's database structure for the customer's instance, identifying object schemas for products, landed costs, shipments, lots, customers, contacts, inquiry records, sales orders, purchase orders, and compliance documents. Because VISCO has no public API, we coordinate with VISCO's support team to obtain database read access or to schedule UI-based exports. We extract a full data dictionary and sample records for each object to validate schema assumptions before designing the Odoo mapping. The discovery output is a written migration scope document and a confirmed data export schedule from VISCO.
Odoo module selection and landed cost configuration design
We work with the customer to confirm which Odoo modules will be active (Inventory, Purchase, Sales, Accounting, CRM) and design the landed cost configuration approach. Because Odoo does not natively replicate VISCO's per-shipment landed cost allocation engine, we design a configuration using Odoo's stock valuation layers, product costs, and account mapping that preserves the VISCO landed cost values as initial inventory valuation. We design the warehouse location hierarchy, lot tracking configuration, and the link between Purchase Orders, Incoming Shipments, and Landed Cost Journal Entries in Odoo.
Data cleaning and landed cost transformation
VISCO landed cost allocations (freight, duty, insurance, brokerage) per shipment must be transformed into a format compatible with Odoo's cost model. We split VISCO landed cost records by category and map each category to the appropriate Odoo inventory valuation account. We flag any VISCO products with missing landed cost values for manual review before import. We deduplicate customer and supplier records, resolve address conflicts, and clean lot records with missing expiration dates or warehouse assignments. Data cleaning typically reveals 5-15 percent record issues requiring manual correction in VISCO before export.
Sandbox migration and schema validation
We run a full migration into an Odoo Sandbox or staging database using production-like data volume. The customer's operations team reconciles record counts (products, shipments, lots, landed costs, customers, contacts, orders), spot-checks 25-50 records against the VISCO source, and validates landed cost totals in Odoo's inventory valuation report. Any mapping corrections, custom field additions, or Odoo module configuration changes happen in this phase. We specifically validate that landed cost totals from VISCO match the inventory valuation adjustment in Odoo before committing to production migration.
Production migration in dependency order
We run production migration in record-dependency order: Product Templates and Variants first (because all inventory and purchase records reference them), then Warehouses and Locations, then Suppliers, then Customers and Contacts with inquiry activities reconstructed, then Inventory Lots with source shipment references, then Purchase Orders and Incoming Shipments, then Landed Cost Journal Entries applied to inventory valuation, then Sales Orders, then Compliance Documents attached to the related records. Each phase emits a row-count reconciliation report. Odoo's external API is used for records requiring lookup resolution; native CSV import is used for high-volume lot and product records to stay within the 1-request-per-second rate limit.
Cutover, validation, and compliance rebuild handoff
We freeze VISCO writes during cutover, run a final delta migration of any records modified during the migration window, then enable Odoo ERP as the system of record. We deliver a written inventory of VISCO compliance checklists and document templates requiring rebuild in Odoo Studio, along with a landed cost allocation configuration guide. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's operations or finance team. We do not rebuild VISCO automations or workflows in Odoo as part of the migration scope; those are documented separately for the customer's Odoo administrator or implementation partner.
Platform deep dives
VISCO
Source
Strengths
Weaknesses
Odoo ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 3 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across VISCO and Odoo ERP.
Object compatibility
3 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
VISCO: Not publicly documented.
Data volume sensitivity
VISCO doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during VISCO to Odoo ERP migration scoping. Not seeing yours? Book a call.
Walk through your VISCO to Odoo ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave VISCO
Other ways to arrive at Odoo ERP
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.