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 THEN Otherwise |
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 |
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 |
|
completed (If Shipped date on Montapacking is empty, we’ll map complete with the Received date) |
|
remoteId |
|
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 Then |
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 |