Integration Overview
Let's start with some terminology and definitions.
The Visma entity integrating with the Inventory Optimization API is referred to as a
client or a partner, and is given a clientId
when applying for access (see
Authentication).
A client has many end customers, referred to as tenants, identified by a
tenantId
. A tenant has a number of products or stock items in their inventory,
with historical sales data for each product. The historical sales data is referred to as
a dataset, and as each product has a unique sales history, each product has its own
dataset. A product dataset is identified by its datasetId
. The tenantId
and
datasetId
are set by the client.
The rest of this page outlines how partners (clients) can integrate with the API to get demand forecasts and purchase order suggestions, and the different kinds of inventory classification offered by the API.
Demand Forecasts and Purchase Order Suggestions
The core offering of Inventory Optimization is providing demand forecasts and purchase order suggestions for product datasets, the details of which we explored in Core Concepts. We use the term predictions to encompass demand forecasts and purchase order suggestions. Predictions are created for each product dataset individually. In order to achieve this, a number of machine learning models are trained and tested for each product dataset. The best-performing model is stored, such that clients can fetch predictions for each dataset when they need these.
To create predictions for a given product dataset, clients run these processes:
- Upload historical sales data to the API (refer to Data Upload)
- Train models (refer to Training)
- Create predictions (refer to Prediction)
- Fetch predictions (refer to Prediction)
In each of these steps, clients can run the processes for the product datasets they'd like to get predictions for. Data for multiple product datasets can be uploaded in one upload data job, and each training or prediction job can specify a number of uploaded product datasets to run the jobs for. When a prediction job has finished running, the results should be fetched and stored client-side for further use in the client's application.
See the figure below for how to set up jobs in order to generate predictions for one or more product datasets. Note that if the product datasets are already uploaded, the first step can be skipped.
Inventory Classification
The inventory classification functionality offered by the API, i.e. ABC classification, demand type classification, and season and trend identification, follows a similar but slighly different process, decoupled from the prediction process. Here, the classification is run for a number of dataset IDs provided by the partner, dependent on that all these datasets have been uploaded to the API. The figure below summarizes the steps to take. Refer to Inventory Classification for more details.