Skip to main content
All CollectionsIntegrationsMonta
Monta - Data Mapping & Synchronization
Monta - Data Mapping & Synchronization

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

Marc de Graaf avatar
Written by Marc de Graaf
Updated over 5 months ago

Through the link between Optiply and Monta, newly placed orders in Optiply are reported in Monta, and deliveries from Monta are reported in Optiply.

Not only the purchase orders from Optiply are forwarded to Monta. All adjustments to orders made in Monta are reported in Optiply. As soon as all lines in Monta are stated as 'approved', the order will be closed in Optiply. The order will then automatically disappear from the 'to book' list in Optiply.

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

SIMPLE / 1st FLAVOUR (BO + Receipt Lines)

Overview

Entity

Sync FROM -> TO

Frequency

Buy Orders

BuyOrderLines

OP > Montapacking

Every 15 min

Montapacking > OP

Every 30 min

Receipt Lines (Item Deliveries)

Montapacking > OP

Every 30 min

Important notice: You need Optiply's Supplier id’s to be in Monta to make successful requests..

FULL / 2nd FLAVOUR (Prod + Supp + Supplier Products + SO + BO + Receipt Lines)

Overview

Entity

Sync FROM -> TO

Frequency

Products

Montapacking > OP

Every 30 min

Product Deletions

Montapacking > OP

Every 30 min

Suppliers

Montapacking > OP

Every 30 min

Supplier Products

Montapacking > OP

Every 30 min

Sell Orders

Montapacking > OP

Every 30 min

Buy Orders

BuyOrderLines

OP > Montapacking

Every 15 min

Montapacking > OP

Every 30 min

Receipt Lines (Item Deliveries)

Montapacking > OP

Every 30 min

Options and features

Products - stockLevel with StockInTransit (*): An option that allows a customer to decide if we should take StockInTransit into account for Product stockLevel calculation or not.

Products - Sync minimum stock (*): An option that allows a customer to decide if we should map MinimumStock or not.

Note: (*) It is not possible to change this option in our FE, please report to our Customer Support do make these changes.

Mapping Information

Now we show the specifics of how we map data for each entity.

Products

Optiply

Montapacking

name

Description

skuCode

Sku

eanCode

Barcodes (First from array)

price

SellingPrice

unlimitedStock

false

stockLevel

(Customer can decide if we should add StockInTransit to the stockLevel, in that case:

stockLevel = Stock.StockAvailable + Stock.StockInTransit)

if use_StockInTransit = true

THEN stockLevel = Stock.StockAvailable + Stock.StockInTransit

Otherwise stockLevel = Stock.StockAvailable

status

When customer deletes or inactivate a product in Monta we will not get that product info anymore. We’ll set status = disabled for the products that are not in Monta anymore.

minimumStock

MinimumStock

(Customer can decide if we should add MinimumStock to the mapping)

articleCode

productId

Products that are Inactive on Monta will not be pulled/synced to Optiply.

If the customer changes the status to Inactive for a product on Monta, this change will not be reflected in Optiply. Therefore the status needs to be changed manually in Optiply.

Suppliers

Optiply

Montapacking

name

Title

email

AddressEmail

remoteId

Code

Supplier Products

Optiply

Montapacking

name

product.Description

skuCode

product.Sku

eanCode

product.Barcodes (First from array)

price

product.PurchasePrice

lotSize

product.PurchaseStepQty

supplierId

optiplyWebshopSupplierId

productId

optiplyWebshopProductId

status

enabled

articleCode

SupplierProductCode

weight

WeightGrammes

volume

(LengthMm * WidthMm * HeightMm) / 1000

No Multiple SupplierProducts:

Each product can only have one SupplierCode in Monta, so it will have only one enabled SupplierProduct in Optiply as well.

If the SupplierCode is changed we will sync the new SupplierProduct and set the previous one with status = disabled.

Sell Orders

Optiply

Montapacking

totalValue

0

placed

Received

completed

(If Shipped date on Montapacking is empty, we’ll map complete with the Received date)

Shipped

remoteId

WebshopOrderId

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

Sell Order Lines

Optiply

Montapacking

productId

Sku

quantity

OrderedQuantity

subtotalValue

0

Buy Orders (Optiply > Monta)

Optiply

Montapacking

buyOrder.Id

inboundForecastGroup.Reference

supplier.Id

(If it is a Full Monta integration this is mapped from supplier.remoteId)

inboundForecastGroup.SupplierCode

buyOrder.placed

inboundForecastGroup.Created

buyOrder.placed + supplier.deliveryTime

inboundForecast.DeliveryDate

Attention: The order numbers from Optiply are used in Montapacking to create new orders. Do not change these order numbers manually.

This means that:

  • we will not be able to match our buyOrderID with Montapacking.Reference to get updates or to get any itemDeliveries.

  • that order will be doubled in Optiply. When syncing buyOrders from Montapacking, that unknown reference will be seen as a non-existent order in Optiply and it will be created here based on that.

We check uncompleted and updated Purchase orders and validate if they exist in Montapacking.

Buy Order Lines (Optiply > Monta)

Optiply

Montapacking

buyOrder.placed + supplier.deliveryTime

inboundForecast.DeliveryDate

skuCode

inboundForecast.Sku

quantity

inboundForecast.Quantity

We sort Buy Order Lines by skuCode ascending when sending the buyOrders to Monta, so that the customer can more easily match lines between Optiply Frontend and Monta Frontend (since our FE allows customers to sort by SKU)

Buy Orders (Monta > Optiply)

Optiply

Montapacking

supplier.Id

inboundForecastGroup.SupplierCode

placed

inboundForecastGroup.Created

expectedDeliveryDate

inboundForecastGroup.InboundForecasts.DeliveryDate

(DeliveryDate in Montapacking is an attribute for each line and we can only map one date to Optiply, so we will map the eldest DeliveryDate in orderLines.)

totalValue

0

(Monta API does not retrieve any value we could map for this field.)

remoteId

inboundForecastGroup.Reference

completed

if all buyOrderLines have Approved: true

Then optiply.completed=DateNow()

Buy Order Lines (Monta > Optiply)

Optiply

Montapacking

productId

inboundForecast.Sku

quantity

inboundForecast.Quantity

subtotalValue

0

(Monta API does not retrieve any value we could map for this field.)

buyOrderId

Optiply.buyOrderId

As soon as all lines in Montapacking are 'approved', the order is closed in Optiply and automatically disappears from the booking list in Optiply.

Monta API does not offer any way to get buyOrderLine deletions, so if a customer deletes a buyOrderLine in Monta we will not sync that and will not delete the line in Optiply.

Do not change the reference/PoNumber in Monta.

  • We will not be able to match our buyOrderID with Montapacking. Reference to get updates or to get any itemDeliveries.

  • That order will be doubled in Optiply. When syncing buyOrders from Monta, that unknown reference will be seen as a non-existent order in Optiply and it will be created here based on that.

Receipt Lines (Monta > Optiply)

Optiply

Montapacking

quantity

inbounds.Quantity

ocurred

inbounds.Created

remoteId

inbounds.Id

Did this answer your question?