๐ MontaWMS: Data Mapping & Synchronisation
This guide details the data flow between MontaWMS and Optiply. Unique to this integration, there are two distinct setup "flavours" depending on how much data you wish to sync.
โฑ๏ธ Synchronisation General Board
Option 1: Simple Flavour (Purchasing Only)
This setup focuses solely on Purchase Order management and receiving.
Requirement: You must manually match Supplier IDs in Optiply with your Monta Supplier Codes.
Entity | Direction | Frequency |
Buy Orders and Buy Order Lines | Optiply โ Monta | Every 15 min |
Buy Orders and Buy Order Lines | Monta โ Optiply | Every 30 min |
Receipt Lines | Monta โ Optiply | Every 30 min |
Option 2: Full Flavour (Complete Data)
This setup synchronises your entire catalogue, suppliers, and sales history.
Entity | Direction | Frequency |
Products | Monta โ Optiply | Every 30 min |
Product Deletions | Monta โ Optiply | Every 30 min |
Suppliers | Monta โ Optiply | Every 30 min |
Supplier Products | Monta โ Optiply | Every 30 min |
Sell Orders | Monta โ Optiply | Every 30 min |
Sell Order Deletions | Monta โ Optiply | Every 30 min (*1) |
Buy Orders and Buy Order Lines | Optiply โ Monta | Every 15 min |
Buy Orders and Buy Order Lines | Monta โ Optiply | Every 30 min |
Buy Order Lines Deletions | Monta โ Optiply | Every 30 min |
Receipt Lines | Monta โOptiply | Every 30 min |
(*1) We only sync Sell Order deletions if the order is marked Deleted:true in Monta. This does NOT apply to individual lines; we do not sync deleted lines
โ๏ธ Options and Features (Configuration)
The following settings are available to customise the integration logic. These options are not visible in the front-end. Please contact Customer Support to adjust these variables.
1. Products: Stock In Transit
Variable:
use_StockInTransit(Default:false)Description: Determines if we include "Stock in Transit" in your available stock level.
Logic:
StockLevel=Stock.StockAvailable+Stock.StockInTransit.
2. Products: Sync Minimum Stock
Variable:
sync_minimum_stock(Default:false)Description: Determines if we map the
MinimumStockfield from Monta to Optiply.
3. Products: Return Forecasts
Variable:
use_return_forecasts(Default:false)Description: Determines if we include forecasted returns in your available stock level.
Logic:
StockLevel=StockLevel+ReturnQuantity(Calculated based on the last 30 days of returns).
4. Supplier Products: Custom Name Mapping
Variable: No default variable name provided in text, but logic exists.
Description: Allows the customer to decide if the Supplier Product Name should be mapped from the default field (
product.Description) or fromCustomField1in Monta.
5. Supplier Products: Delivery Time Sync
Variable:
sync_leadTime_supProducts(Default:false)Description: An optional flag that allows customers to sync supplier product lead times from Montapacking to Optiply.
Logic: When enabled, the
LeadTimefield from Monta is mapped todeliveryTimein Optiply's Supplier Products.
6. Buy Order Lines: Delete Approved Non-Received
Variable:
del_bol_completed(Default:false)Description: Determines if we should delete Buy Order Lines from OPEN buy orders that have been marked as "Approved" but have 0 products received.
Use Case: This helps clean up order lines that were approved administratively but never physically arrived.
๐บ๏ธ Data Mapping Details
1. Products
Optiply | Monta | Logic / Notes |
Name |
| - |
SKU Code |
| - |
EAN Code |
| Takes the first barcode from the array. |
Price |
| - |
Unlimited Stock |
| Hardcoded. |
Stock Level | Calculated | if
Otherwise
if f |
Status | Calculated | If a product is deleted/missing in Monta, we set |
Remote ID |
| - |
Note: Products inactive in Monta are not synced. If a product status changes to Inactive in Monta, you must manually update it in Optiply.
2. Suppliers
Optiply | Monta |
Name |
|
| |
Remote ID |
|
3. Supplier Products
Optiply | Monta | Logic / Notes |
Name |
| - |
SKU Code |
| - |
EAN Code |
| We take the First barcode from the array. |
Price |
| - |
Lot Size |
| - |
Supplier ID |
| Internal link. |
Product ID |
| Internal link. |
Status |
| Always mapped as "enabled" if the link exists. |
Article Code |
| - |
Weight |
| - |
Volume | Calculated |
|
Delivery Time |
| Only mapped if |
โ ๏ธ Important Limitation:
No Multiple Supplier Products: Each product can have only one Supplier Code in Montapacking. Consequently, it will have only one Supplier Product in Optiply.
If you change the Supplier Code in Monta, we delete the previous supplier product in Optiply and create a new one.
If you simply delete the Supplier Code in Monta, the corresponding supplier product is deleted in Optiply.
4. Sell Orders
Optiply | Monta | Notes |
Total Value |
| Not mapped. |
Placed Date |
| - |
Completed Date |
| If |
Remote ID |
| - |
5. Sell Order Lines
Optiply | Monta | Notes |
Product ID |
| - |
Quantity |
| - |
Subtotal Value |
| Monta does not retrieve this value, so it is hardcoded to 0. |
โ ๏ธ Note on Updates:
We do not sync changes to Sell Order Lines (e.g., quantity changes, deletions, or new lines) after the initial order creation. The order snapshot is taken once and not updated.
6. Buy Orders (Export: Optiply โ Monta)
Optiply | Monta | Notes |
Buy Order ID |
| - |
Supplier ID |
| In "Full Flavour", this maps from |
Placed Date |
| - |
Delivery Date |
| Calculated: |
Sorting: Buy Order Lines are sorted by SKU (Ascending) when sent to Monta to help warehouse staff match lines easily.
7. Buy Order Lines (Export: Optiply โ Monta)
Optiply | Monta | Logic / Calculation |
Delivery Date |
| Calculated: |
SKU Code |
| - |
Quantity |
| - |
โ ๏ธ Sorting Logic:
We sort Buy Order Lines by SKU Code (Ascending) when sending the buy orders to Montapacking.
Reason: This allows you to more easily match lines between the Optiply Frontend and the Montapacking Frontend, as our frontend allows sorting by SKU.
8. Buy Orders (Import: Monta โ Optiply)
Optiply | Monta | Logic / Notes |
Supplier ID |
| - |
Placed Date |
| - |
Remote ID |
| - |
Total Value |
| Monta API does not retrieve any value we could map for this field. |
Completed | Calculated | If all Buy Order Lines have โ Then |
โ ๏ธ Limitation: Monta API does not support retrieving Buy Order deletions. If you delete a PO in Monta, it will not be deleted 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.
9. Buy Order Lines (Import: Monta โ Optiply)
Optiply | Monta | Logic / Notes |
Product ID |
| - |
Quantity |
| - |
Subtotal Value |
| Monta API does not retrieve any value we could map for this field. |
Buy Order ID |
| Internal link to the parent order. |
Expected Delivery |
| Also maps |
10. Receipt Lines
Optiply | Monta |
Quantity |
|
Occurred |
|
Remote ID |
|
โ Frequently Asked Questions (FAQs)
Why aren't my inactive products updating?
Monta does not send data for products marked as "Inactive." Consequently, Optiply cannot "see" that the status has changed. You must manually disable these products in Optiply to match Monta.
Can I have multiple suppliers for one product?
No. The Monta architecture allows only one Supplier Code per product. Optiply mirrors this constraint; if you change the supplier in Monta, we delete the old supplier link in Optiply and create the new one.
Why are my Sell Orders not updating?
We do not sync changes to Sell Orders after the initial import. If you edit a line, add a product, or delete a line in a Sell Order within Monta, that change is not reflected in Optiply.
