Guide for integrating external logistics systems

Front Systems has its own logistics functions built-in for stock counting and other in-store logistics functions.  In addition, Front Systems has an out of the box integration for NedAp !DCloud RFID solution. However, we welcome any logistics solutions to integrate with Front Systems using the open API. Below you will find a guide on how such integrations can be set up.

Retrieve Product Master data

Use the Product endpoint to retrieve products in Front Systems. The product master data should be fetched on a regular basis, but to avoid too much data, please use the upt-filter so that only new date since last run is fetched. With the right filter parameters set, pricelist prices and images are included in the payload.

Get products added or updated since last run
POST /api/Product

Use a filter like this in the body:

{
"IncludeAlternativeIdentifiers": true,
"includeEmptyGTINs": false,
"includePricelists": true,
"includeStockQuantity": false,
"isDiscontinued": false,
"pageSize": "1000",
"pageSkip": 0,
"upt": "2021-02-24T14:29:23.252168"
}

Download on-hand stock quantity from Front Systems regularly

Use the StockStatus endpoint to retrieve complete on-hand quantity for a stock in Front Systems.  As this is an oData endpoint, you have the option to select only the fields that you actually need.

Get current on-hand quantity
GET /odata/Stockstatus?stock_id=1234

Stock count reconciliation / approved difference list

When a stock count is completed in the external logistics system, a request should be sent to reconcile the Front Systems stock.

Use the Stock/Adjust endpoint for this. Dependent on the functionality available in the external logistic system, there are two different approaches for reconciliation:

1. Adjust only the approved difference list from the logistics system (recommended):
Reconcile stock
GET /api/Stock/adjust

Example body

{
"stockId": 1234,
"description": "Approved difference list from System X.",
"StockCountTime": "2021-02-24T10:12:33.203", //The stockmovements will be created with this datetime
"items": [
{
"GTIN": "06031581958742",
"quantity": 3 //The counted quantity
},
{
"GTIN": "06031582144571",
"quantity": 1
},
{
"GTIN": "06031582271055",
"quantity": 2
}
]
}

2.Complete reconciliation using the counted on-hand quantity:

Example body

{
"stockId": 1234,
"description": "Complete reconciliation from System X.",
"StockCountTime": "2021-02-24T10:12:33.203",
"isCompleteStockCount": true, //This will adjust all SKUs not included in the payload to quantity 0
"items": [
{
"GTIN": "06031581958742",
"quantity": 3 //The counted quantity
},
{
"GTIN": "06031582144571",
"quantity": 1
},
{
"GTIN": "06031582271055",
"quantity": 2
}
]
}

  

Deactivate / reactivate RFID alarm

When a sale or return is completed in the POS by scanning product Datamatrix code label, Front Systems will publish a SaleCreated webhook event. Subscribe to this webhook to activate/deactivate alarm.

 

Deliveries

If the logistic system supports receiving deliveries/shipments (eg by using RFID), then a sync of deliveries can be implemented in the integration.

When deliveries are made available in Front Systems (synced from ERP), Front Systems will publish a DeliveryCreated webhook event. Subscribe to this webhook to get the relevant delivery data and insert it in the logistic system.

 

As soon as the user has received the delivery external logistics system the delivery should be updated in Front Systems by using the receive endpoint. The relevant stock qty is instantly updated in POS.

 

Product transfer between stores / IBT

If the logistics system supports transferring products between stores (Inter Branch Transfer), you can implement the sync of this like this:

Use the send endpoint for sending from stock 1 to stock 2.

 

When received in stock 2, use the receive endpoint to update the IBT. The relevant stock qty is instantly updated in POS.