Skip to main content

Odoo - Data Mapping & Synchronisation

This article describes in detail what and how data is used for the connection with Odoo.

Marc de Graaf avatar
Written by Marc de Graaf
Updated over 2 weeks ago

Synchronisation General Board

This is an overview of what and when we synchronise data.

Entity

Sync FROM > TO

Frequency

Products

Odoo > OP

30min

Product Deletions

Odoo > OP

30min

Stocks

Odoo > OP

30min

Product Compositions

Odoo > OP

30min

Suppliers

Odoo > OP

30min

Supplier Products

Odoo > OP

30min

Supplier Products Deletions

Odoo > OP

30min

Sell Orders

Odoo > OP

30min

Sell Order Deletions

Odoo > OP

30min

Buy Orders

Odoo > OP

30min

OP > Odoo

15min

Buy Order Line Added

Odoo > OP

30min

Buy Order Line Changes

Odoo > OP

30min

Buy Order Line Cancellation

Odoo > OP

30min

Receipt Lines (Item Deliveries)

Odoo > OP

30min

Flags

We provide several customizable options based on customer requests. Below are the key flags we can adjust:

  • use_templates : This will determine whether we create products based on templates or not

  • sell_price_with_taxes: If true, we will sync prices with already included taxes for products

  • sync_purchase_price: This flag will determine if we will sync purchase prices

  • average_purchase_price: This flag will determine if we also sync average cost on Supplier Products

  • pullAllOrders: if false, will only pull sellOrders with status “sale”, or “cancel” for deletions. If true, will pull all orders.

  • map_preferred: if true, we will sync the main preferred supplier for each product

  • language: Will dictate the language brought from the remote ex: en_US, nl_NL… by default: en_US

  • map_sellOrdersPOS: if true, we will pull and sync Sell Orders from Point of Sale.


Mapping Information

Products

Optiply

Odoo

remoteId

product.id

name

product.name (*2)

skuCode

product.default_code

articleCode

product.code

price

product.price (*1)

stockLevel

product.qty_available - product.outgoing_qty

status

IF product.status = true

THEN status=enabled

Otherwise status=disabled

eanCode

product.product.barcode

assembled

If product.product.bom_count > 0 : true
(field in production module)

unlimitedStock

We only sync Product.Type = Product, unless “is_Storable” exists, if so, we will also sync Product.Type = Consu & Product.is_Storable = true

(*1) If sell_prices_with_taxes is true we will sync tax_string

(*2) The language in which the name comes from the remote is determined by the language Flag (English by Default)


Product Compositions

Optiply

Odoo

composedProductId

mrp.bom.parent_product_tmpl_id

partProductId

mrp.bom.product_id

partQuantity

mrp.bom.product_qty

remoteId

mrp.bom.id


Suppliers

Optiply

Odoo

name

res.partner.display_name

remoteId

res.partner.ID

emails

res.partner.email_normalized

Supplier Products

Optiply

Odoo

name

product.name

remoteId

optiplySupplierId_optiplyProductId

price (*1)

product.supplierinfo.price(*1)

skuCode

product.supplierinfo.product_code

status

product.supplierinfo.start_date < now and product.supplierinfo.end_date > now

minimumPurchaseQuantity

product.supplierinfo.min_qty

deliveryTime

product.supplierinfo.delay

supplier_id

optiplySupplierId

product_id

optiplyProductId

preferred(*2)

product.supplier_id

(*1) If sync_purchase_price and average_purchase_price is true we will sync avg_cost

(*2) If map_preferred, we will sync the preferred Supplier


Sell Orders

The customer can decide if he wants us to sync All Order Status or just the Completed (Status = sale).

By default, we only pull Completed (Status = Sale) Sell Orders.

Optiply

Odoo

totalValue

sale.order.amount_untaxed

remoteID (*1)

sale.order.id

placed

sale.order.date_order

We do not sync Order changes in any way; order line changes, line deletions or new lines added to existing Orders will not be updated in Optiply.

Sell Order Lines

Optiply

Odoo

product_id

sale.order.line.product_id

quantity

sale.order.line.product_uom_qty

subtotalValue

sale.order.line.price_subtotal

remoteID

sale.order.line.id

sellOrderId

sale.order.line.order_id

Sell Orders POS

Optiply

Odoo

totalValue

pos_order.amount_total

remoteID

pos_order.id

placed

pos_order.date_order

Sell Order Lines POS

Optiply

Odoo

product_id

pos_order_line.product_uom_id

quantity

pos_order_line.qty

subtotalValue

pos_order_line.price_subtotal_incl

remoteID

pos_order_line.id

sellOrderId

pos_order_line.order_id

We do not sync POS Sell Order changes in any way; order line changes, line deletions or new lines added to existing Orders will not be updated in Optiply.


Buy Orders - Odoo to Optiply

Optiply

Odoo

optiplySupplierId

purchase.order.partner_id

placed

purchase.order.date_order

completed

date.now() when total sum of buyOrderLine Products =

expectedDeliveryDate

purchase.order.date_planned

totalValue

purchase.order.amount_total

remoteId

purchase.order.id

Buy Order Lines - Odoo to Optiply

Optiply

Odoo

subtotalvalue

purchase.order.line.price_subtotal

quantity

purchase.order.line.product_qty

remoteId

purchase.order.line.id

buyOrderId

purchase.order.line.order_id

productId

purchase.order.line.product_id

Buy Orders Optiply to Odoo

Optiply

Odoo

optiplySupplierRemoteId

partner_id

optiplyBuyOrderId

name

completed

effective_date

expectedDeliveryDate

date_planned

Buy Orders Lines Optiply to Odoo

Optiply

Odoo

quantity

product_qty

optiplyProductRemoteId

productId

Receipt Lines - Odoo to Optiply

Optiply

Odoo

quantity

purchase.order.line.product_qty

occured

purchase.order.line.date

remoteID

purchase.order.line.id

Did this answer your question?