Part 2: Preparing your WooCommerce and Odoo System Checklist
Learn about the various types of software available and gain valuable tips for selecting the best solutions for your marketing agency.

Tiana Paul
Woodoo Sync Founder
Quick Start Guide

Before you get started with syncing WooCommerce to Odoo you first need to have a comprehensive understanding of your / your clients requirements. This involves an understanding of how data is setup both in WooCommerce and Odoo and also the mapping that is required / expected between the two systems.
The basic 3 datasets which will be required by almost all E-Commerce Stores is the mapping of Product, Customer, and Invoice Data.
Product Data involves defining and understand the source-of-truth, knowing your products and product types. Understanding any product dependencies and edge cases.
Customer Data includes updated and managing a central record of customers purchasing from your WooCommerce store and also other sales channels which feed into your Odoo system.
Invoice Data is the bridge which connects Products and Customer data between both systems. Orders placed in WooCommerce must be correctly synced and updated in the appropriate sales order / invoice modules in Odoo to ensure all accounting, product, and customer records remain up to date.
Take your time and engage the right people and systems - as you build your preperation checklist to implement a system integration. Time well spent in preparation will ensure all edge case, unique setups, and data mapping is supported during the sync process.
Product Data
Products in WooCommerce are of two main types. Simple and Variable products. Simple products are a one-to-one mapping, while Variable Products use a many-to-one product mapping.
For all products it is recommend having a unique and valid SKU.
WooCommerce Product Data - Simple:
Product Name
Product Description
Product Price
Original Price
Sales Price
Product Image (Main)
Product Image (Supporting)
WooCommerce Product Data - Variable Products:
Product Name
Product Description
Product Price
Original Price
Sales Price
Product Image (Main)
Product Main Image (Variant)
Product Image (Supporting)
Product Supporting Image (Variant)
Product Data in Odoo
Products in Odoo are also of two main types. This includes product.template and product.product which can be considered similar to Simple and Variable Products in WooCommerce.
Product.products are a one-to-one mapping, while Product.Templates use a many-to-one product mapping where a Product.Template can assigned many Product.Products.
Note: Variants in Odoo need to be enabled from the Odoo setting page and this is not enabled by default.
Product Attributes
Product
Customer Data
Customer Data relates to the customer information, billing details, shipping details, contact information, and location data associated with a specific customer.
When syncing WooCommerce to Odoo, customer data is one of the most important datasets to plan carefully. This is because customers may already exist in Odoo from other sales channels, manual entry, POS, wholesale accounts, or previous imports.
Before enabling customer sync, you should have a clear understanding of how customer records will be matched, created, and updated between WooCommerce and Odoo. This helps prevent duplicate customers, incorrect billing details, and disconnected sales history.
Customer Data in WooCommerce:
In WooCommerce, customer data is usually created when a customer places an order, creates an account, or updates their billing and shipping details at checkout.
WooCommerce customer data may include:
First Name
Last Name
Email Address
Phone Number
Billing Address
Shipping Address
Company Name
Country
State / Region
City
Postcode / ZIP Code
Customer User ID
Order History
Customer Notes
Tax / VAT details, if collected
WooCommerce can store both registered customers and guest customers. This is important because not every WooCommerce order will be linked to a WordPress user account.
For this reason, the email address is commonly used as the primary customer matching field when syncing WooCommerce customers to Odoo. However, some stores may also need to consider phone numbers, company names, VAT numbers, or existing customer IDs depending on their setup.
A key consideration is whether WooCommerce should create a new customer in Odoo for every new checkout customer, or whether the sync should first search for an existing Odoo contact before creating a new record.
Customer Data in Odoo:
In Odoo, customer data is generally stored as a contact record. This contact may represent an individual customer, a company, a billing contact, a delivery address, or another related contact type.
Odoo customer records may include:
Contact Name
Company Name
Email Address
Phone Number
Mobile Number
Billing Address
Delivery Address
Country
State / Region
City
ZIP / Postcode
Tax ID / VAT Number
Contact Type
Parent Company
Salesperson
Pricelist
Payment Terms
Internal Notes
Related Sales Orders
Related Invoices
Unlike WooCommerce, Odoo often separates customer contacts, companies, invoice addresses, and delivery addresses more formally. This means a single WooCommerce customer may need to map to more than one contact-related record in Odoo, depending on how the business uses Odoo.
For example, a business customer may have a company record in Odoo, with separate billing and delivery contacts attached to that company. A retail customer may only require a single contact record.
This is why it is important to understand how customer data is currently managed in Odoo before syncing from WooCommerce.
Mapping Customer Data:
The most important mapping decision is how customers will be matched between systems.
Common matching rules include:
Match by email address
Match by phone number
Match by company name
Match by VAT / Tax ID
Match by an existing external customer ID
Create a new Odoo customer if no match is found
For most WooCommerce stores, email address is the simplest and most reliable matching field. However, this may not be enough for B2B stores where multiple contacts may share the same company, or where company records are more important than individual customer records.
You should also decide how updates are handled after the first sync. For example, if a customer changes their shipping address in WooCommerce, should that update the existing Odoo delivery address, create a new delivery address, or leave the Odoo record unchanged?
Important customer mapping questions include:
Should WooCommerce or Odoo be the source-of-truth for customer data?
Should guest customers be created in Odoo?
Should every WooCommerce order create a customer record?
Should existing Odoo contacts be updated or left unchanged?
Should billing and shipping addresses be stored as separate Odoo contacts?
Should company customers be mapped differently from individual customers?
Should tax/VAT numbers be required before syncing?
What happens if two customers use the same email address?
What happens if the billing and shipping details are different?
Taking the time to define these rules will reduce duplicate records, improve reporting, and ensure that orders, invoices, and customer history remain connected correctly between WooCommerce and Odoo.
Appendix:
WooCommerce Customer Data:
Customer Data | WooCommerce Source / Field |
|---|---|
Customer User ID |
|
Username |
|
Email Address |
|
First Name |
|
Last Name |
|
Display Name |
|
Billing First Name |
|
Billing Last Name |
|
Billing Company |
|
Billing Email |
|
Billing Phone |
|
Billing Address Line 1 |
|
Billing Address Line 2 |
|
Billing City |
|
Billing State / Region |
|
Billing Postcode / ZIP |
|
Billing Country |
|
Shipping First Name |
|
Shipping Last Name |
|
Shipping Company |
|
Shipping Address Line 1 |
|
Shipping Address Line 2 |
|
Shipping City |
|
Shipping State / Region |
|
Shipping Postcode / ZIP |
|
Shipping Country |
|
Customer Note |
|
Order ID |
|
Order Number |
|
Order History | Linked through |
Odoo Customer Data:
Customer Data | Odoo Model / Field |
|---|---|
Contact Name |
|
Company Name |
|
Is Company |
|
Contact Type |
|
Parent Company / Parent Contact |
|
Email Address |
|
Phone Number |
|
Mobile Number |
|
Street Address |
|
Street Address 2 |
|
City |
|
State / Region |
|
Country |
|
ZIP / Postcode |
|
VAT / Tax ID |
|
Customer Rank |
|
Supplier Rank |
|
Salesperson |
|
Pricelist |
|
Payment Terms |
|
Fiscal Position |
|
Internal Notes |
|
Company ID |
|
Language |
|
Active Status |
|
Related Sales Orders |
|
Related Invoices |
|
Invoice Address |
|
Delivery Address |
|
Contact Address |
|
Mapping WooCommerce and Odoo Data:
Matching Rule | WooCommerce Field | Odoo Field |
|---|---|---|
Match by Email Address |
|
|
Match by Phone Number |
|
|
Match by Company Name |
|
|
Match by VAT / Tax ID | Custom field, for example |
|
Match by WooCommerce Customer ID |
| Custom field, for example |
Match by WooCommerce Order Billing Details |
|
|



