We synchronize the status of products, product deletions, Lot size, MOQ, prices, stocks, supplier products, and purchase orders.
Synchronisation General Board
This is an overview of what and when we synchronise data.
Entity | Sync FROM -> TO | Frequency |
Products + Suppliers + Supplier Products | Logic4 → Optiply | Sunday to Thursday at 21:00 (*2) |
Saturday at 01:00 (*3) |
|
|
Products (Disable) | Logic4 → Optiply | Sunday at 16:00 (*4) |
Stocks | Logic4 → Optiply | Sunday to Thursday at 07:55, 15:55 and 23:55 (*1) and (*1.1-Extra syncs for blokpackaging) |
Buy Orders | Creation: Optiply → Logic4 | Every 15 min from 5:00 to 20:00 (*Every 5min for blokpackaging) |
| Creation + Sync + Closing: Logic4 -> Optiply | Creation + full Sync: daily at 20:00 |
|
| Closing: twice a day at 12:00 and 23:00 |
Sell Orders | Logic4 → Optiply | Between 05:00 and 20:00, every hour |
Mapping Information
Now we show the specifics of how we map data for each entity.
Products
Optiply | Logic4 |
name | Concat (ProductName1, ProductName2) |
skuCode | ProductCode |
articleCode | ProductId |
price | SellPriceGross |
UnlimitedStock | “false” |
stockLevel | FreeStock (*1) |
status | Customer can choose to “Map Default Logic4 Status” or not. |
notBeingBought | Customer can choose to “Map Default Logic4 Status” or not. |
eanCode | BarCode1 |
assembled | If IsComposedProduct = true or IsAssembledProduct = true Then “true” Otherwise “false” |
Product information
We get only products that are set to be visible in Logic4 or Webshop. We synchronize the status of products, product deletions, Lot size, MOQ, prices, stocks, and purchase orders.
With the implementation of rate limits by Logic4, we can guarantee to work with a maximum of 32k active products. Beyond that, the rate limit will most likely be exceeded, resulting in a fee by Logic4 for each additional call.
Product Statuses
Logic4 has several statuses for products by default, or you may want to customize them. If they are not customized, we map the defaults from Logic4.
However, if you have them customized, let us know to guarantee data integrity.
In this situation, we won't map them to Optiply.
Due to Logic4 data implementation, we don’t get information when a Supplier and SupplierProduct are changed. This info will only be updated when a product is changed.
This means that if the product is kept the same in any of its fields, we will only update SupplierProduct with a sync that is done by default once a week.
Below is a list of default statuses that we map:
L4 Status ID | Optiply |
1 | status = 'disabled' , notbeingBought = false |
2 | status = 'enabled' , notbeingBought = true |
10 | status = 'disabled' , notbeingBought = false |
11 | status = 'enabled' , notbeingBought = true |
Other | status = 'enabled' , notbeingBought = false |
Product Deletions
Once a week, we check the products in Logic4 by looking if they are visible on Logic4 and on the webshop and what is the product status. We will check for this and synchronize it on Saturday.
Tip: Do you no longer want to receive advice for a product?
Set the product to not available in Logic4. We will then no longer give advice. After the weekly synchronization, the product will no longer be visible in Optiply.
LotSize, MOQ, and Purchase price
We synchronize Lotsize, MinimumPurchaseQuantity, and Purchase price from Logic4.
But you may decide that you don't want to synchronize any of these by letting us know which ones we should synchronize.
Preferred Supplier
If the preferred is Active, when we get the suppliers from the products, we set this as accurate in Optiply.
Synchronization stocks
Every night we check all the products and update the ones with a stock change.
Optiply | Logic4 |
stockLevel | FreeStock |
Suppliers
Optiply | Logic4 |
name | CompanyName |
remoteId | Id |
Supplier Products
Optiply | Logic4 |
name | Concat (ProductName1, ProductName2) |
price | BuyPrice or CreditorBuyPrice (*1) (*2) |
webshop_product_Id | optiplyProductId (from Optiply) |
skuCode | CreditorProductCode |
status | If Product.StatusId =1 or 10 Then “disabled” Otherwise “enabled” |
supplierId | optiplySupplierId (from Optiply) |
preferred | if IsActive (on GetSuppliersForProduct) == true, preferred = true |
lotSize (purchase_in_quantities_of) | BuyCountIncrement (*1) |
minimumPurchaseQuantity | MinBuyAmount (*1) |
article_code | ProductId |
ean | Barcode1 |
Buy Orders
Optiply | Logic4 |
placed | CreatedAt |
buyOrderId | BuyOrderLine |
buyOrderRemoteId | Id |
totalValue | 0 |
When you have received a delivery, you must enter the purchase orders in Logic4. Regularly, the stocks of these delivered products are synchronized.
Buy Order Lines
Optiply | Logic4 |
quantity | QtyToOrder |
buyOrderLineRemoteId | BuyOrderRowId |
subtotalValue (Logic4->Optiply) | Price |
subtotalValue/quantity (Optiply-> Logic4) | Price |
Sell Orders
We can also get Sell Invoices (getting Invoices from sales that have no Order created (direct sales)).
Optiply | Logic4 |
totalValue | AmountEx |
placed | CreationDate |
completed | CreationDate |
sellOrderId | SellOrderLine |
sellOrderRemoteId | Id |