All Collections
Integrations
Exact Online
Exact Online - Data Mapping & Synchronization
Exact Online - Data Mapping & Synchronization

This article describes in detail what and how data is used for the connection with Exact Online for Trade

Marc de Graaf avatar
Written by Marc de Graaf
Updated over a week ago

This article is designed to provide you with a clear understanding of how data flows between Exact Online and Optiply, ensuring your operations run smoothly and efficiently.

Synchronization Overview

Entity

Direction

Frequency

Products

Exact > Optiply

each 30 minutes

Product Deletions

Exact > Optiply

each 30 minutes

Product Compositions

Exact > Optiply

each 30 minutes

Suppliers

Exact > Optiply

  • each 30 minutes

  • When New Supplier Products are added

Supplier Deletions

(setting to ignore)

Exact > Optiply

each 30 minutes

Supplier Products

Exact > Optiply

each 30 minutes

Supplier Products Deletions

Exact > Optiply

each 30 minutes

Stocks

Exact > Optiply

each 30 minutes

Buy Orders

Exact > Optiply

each 30 minutes

Buy Orders

Optiply > Exact

each 30 minutes

Buy Order Line Added

Exact > Optiply

each 30 minutes

Buy Order Line Changes

Exact > Optiply

each 30 minutes

Buy Order Line Deletions

Exact > Optiply

each 30 minutes

Sell Orders (*1)

Exact > Optiply

each 30 minutes

Sell Order Deletions

Exact > Optiply

each 30 minutes (*2)

Sales Invoices (*1)

Exact > Optiply

each 30 minutes

Sales Invoices Deletions

Exact > Optiply

each 30 minutes

Receipt Lines (Item Deliveries)

Exact > Optiply

each 30 minutes

(*1) Sell Orders can be mapped to Exact Sales Orders OR Exact Sales Invoices (the map is slightly different)

(*2) We only handle Sell Orders deletions, not Sell Order Line deletions

Data Mapping

Below you find the data mapping per entity. Expand the desired section to view mapping.

Products

Optiply

Exact Online

remoteId

ID

name

Description

skuCode

Code

articleCode

SearchCode

price

Price

unlimitedStock

If IsPurchaseItem = false

THEN unlimitedStock = true
Otherwise unlimitedStock = false

stockLevel

CurrentStock - PlannedStockOut

status

If (EndDate<currentDate) OR (isMakeItem = 0 & isPurchaseItem = false)

THEN OP.status=disabled

Otherwise OP.status=enabled

eanCode

Barcode

assembled

If isMakeItem = 1

THEN assembled = true
Otherwise assembled = false

Product Compositions

Optiply

Exact Online

composedProductId

Id

partProductId

BillOfMaterialItemDetails.ItemId

partQuantity

BillOfMaterialItemDetails.QuantityPerBatch

remoteId

BillOfMaterialItemDetails.Id

Parent partProduct in Exact

Exact allows a partProduct to be Parent of it's own Parent, which is something Optiply does not support. Our database has a rule that prevents two products from simultaneously serving as both composed products and parts in different sets. In other words, if you've already created composed product A using part B, you won't be able to create composed product B using part A.

Suppliers

Optiply

Exact Online

name

Name

remoteId

ID

emails

(*1) Email

deliveryTime

(*1) PurchaseLeadDays

(*1) You can decide if we should map that field or not. By default we will not map this field. If you want us to sync the email but a supplier has an invalid email, that supplier will be created without email address.

Supplier Products

All "purchase" products with or without an end date after today, from Exact Online, are shown in Optiply.

Attention! Exact also has a cost price (average purchase price over multiple purchase prices). We will not read this out.

MOQ

When using the "minimum order quantity" Optiply will order at least that number of products. In Exact the MOQ is called ´minimaal aantal´.

Please note; if you cannot keep the MOQ in Exact you can manually enter these in Optiply or send us a list we will upload for you. Please find a format here.

Optiply

Exact Online

name

Item.Description (from Optiply)

remoteId

ID

price

If using LOT → supplierItem.PurchasePrice divided by supplierItem.PurchaseUnitFactor
else → supplierItem.PurchasePrice

skuCode

supplierItem.Code

status

default: “enabled”

eanCode

item.barcode

lotSize

(*1) IF useLOT = true

THEN lotSize = supplierItem.PurchaseUnitFactor
Otherwise we don’t map lotSize from Exact

minimumPurchaseQuantity

(*1) IF useMOQ = true

THEN minimumPurchaseQuantity = supplierItem.MinimumQuantity
Otherwise we don’t map MinimumQuantity from Exact

deliveryTime

(*1) IF use_lead_time = true

THEN deliveryTime = PurchaseLeadTime
Otherwise we don’t map deliveryTime from Exact

preferred

(*2) IF preferred_supplier = true

THEN supplierItem.MainSupplier

supplierItem.MainSupplier

Otherwise we don’t map deliveryTime from Exact

(*1) (*2)This field is optional to include in the connection. By default this field is not mapped.

Orders

The following Exact Orders are supported with this connection:

  • Sales Orders

  • Sales Invoices

Sell Orders - Using Exact Sales Orders

Optiply

Exact Online

totalValue

AmountDC

remoteID (*1)

OrderID

placed

OrderDate

completed

DeliveryDate

(*1) We only get OrderID since 2021 May. And only for new ones

Sell Order changes are not synced in any way to Optiply. Nor are order line changes, line deletions or new lines added to existing Sell Orders.

Sell Orders - Using Exact Sales Invoices

Optiply

Exact Online

totalValue

AmountDC

remoteID (*1)

InvoiceID

placed

InvoiceDate

completed

InvoiceDate

(*1) We only get OrderID since 2021 May. And only for new ones

Sell Order changes are not synced in any way to Optiply. Nor are order line changes, line deletions or new lines added to existing Sell Orders.

Sell Order Lines - Using Exact Sales Orders or Sales Invoices

Optiply

Exact Online

optiplyWebshopProductArticleCode

ItemCode

quantity

Quantity

subtotalValue

AmountDC

Buy Orders - Optiply to Exact

Synchronizing purchase orders

By default we synchronize the placed Buy Orders from Optiply to Exact Online. If you do not want this, please let us know. We will then turn it off for you.

Optiply

Exact Online

optiplyBuyOrderId

OrderNumber

optiplySupplierId

Supplier

placed

OrderDate

OrderSyncDateTime + OP.supplier.deliveryTime (*1)

ReceiptDate (*1)

(*1) Synchronizing ReceiptDate

We will set Exact BuyOrder “ReceiptDate” according to the number of linear days associated to the Supplier as deliveryTime (OP.supplier.deliveryTime).

If deliveryTime is null or empty, we will set ReceiptDate equal to the DateTime we send the Order to Exact (OrderSyncDateTime).

Calculation is:

ReceiptDate = OrderSyncDateTime + OP.supplier.deliveryTime

Example 1:

  • OP.supplier.deliveryTime = 10

  • DateTime we are sending the Order to Exact = 2023-07-18T07:38:36Z

  • Final ReceiptDate = 2023-07-28T07:38:36Z

Example 2:

  • OP.supplier.deliveryTime=null

  • DateTime we are sending the Order to Exact = 2023-07-18T07:38:36Z

  • Final ReceiptDate = 2023-07-18T07:38:36Z

Buy Order Lines - Optiply to Exact

ptiply

Exact Online

optiplyWebshopProductId

item

quantity

IF useLot=true

THEN QuantityInPurchaseUnits = quantity / supplierProduct.lotSize

Otherwise QuantityInPurchaseUnits = quantity

remoteId

ID

Buy Orders - Exact to Optiply

Optiply

Exact Online

remoteID

PurchaseOrderID

totalValue

AmountDC

placed

OrderDate

completed (*1)

DateNow (*1)

Buy Order Lines - Exact to Optiply

Optiply

Exact Online

optiplyWebshopProductRemoteID

Item

quantity

Quantity

subtotalValue

AmountDC

remoteID

ID

Exact allows it to change a Supplier in an existing BuyOrder. Optiply doesn't support that for now. If a Supplier is changed in the Order it will still have the same initial Supplier in Optiply.

Receipt Lines - Exact to Optiply

Optiply

Exact Online

quantity

IF useLot=true

THEN quantity = QuantityReceived * lotSize

Otherwise quantity = QuantityReceived

occured

Created

remoteID

ID

Did this answer your question?