Hi Thomas Correct and reliable information about the availability of goods is essential for any seller and buyer, so thank you very much for paying due attention to this matter. Before focusing on the implementation details and signature of the endpoint, please consider the following basic use cases. They should be applicable to any solution which presents inventory items from Visma.net for online sale to end users, and they are described with the point of view of such customers in mind, e.g. interacting with a webshop application. Use case 1: Browsing or searching for products. At this stage, the customer might be interested in knowing about which products are available for purchase immediately, and which are not - with or without details about future availability. The customer may or may not be interested in availability at particular locations / warehouses. A typical service call might include a large list of product (inventory item) numbers, for any number of locations / warehouses. Use case 2: Looking at individual products. At this stage, the customer is beginning to decide which product(s) to actually buy. Availability at particular locations / warehouses, as well as details about future availability may be important to some (e.g. if considering click-and-collect options, or looking for the seller who can deliver the most recent PlayStation quickest). A typical service call might include one or a small list (in case of bundle or variant products) of product (inventory item) numbers, for any number of locations / warehouses. A detailed response may be required, so that sufficient options can be presented to the customer to maintain interest. Use case 3: Creating an order. At this stage, it might be crucial for the customer to be informed about any product(s) which can and cannot be delivered immediately - e.g. if that PlayStation of which there was only one remaining unit in stock a few minutes ago has been sold, and no delivery can be expected for several weeks or months. A typical service call might include a list of product (inventory item) numbers, for any number of locations / warehouses. Accurate information is critical, and a detailed response may be required, so that sufficient options can be presented to make sure the customer completes the order. Use case 4: Filtering for only in-stock products. Customers value their time, and some are only interested in buying products which can be delivered immediately. In this case, product availability should be known in advance so that it may be filtered upon when performing queries, rather than querying first and then calling your endpoint to check for availability (which would impact performance and responsiveness adversely). Typical service calls might include regular pagination of data, with or without filter parameters and/or a last modified datetime parameter. The above use cases differ in terms of how they translate into inventory summary service calls in several ways which should be analyzed and understood. A good implementation may be driving sales and customer retention, while a poor one may be losing both. General considerations Product availability is highly volatile information which can change rapidly and by significant amounts. It is also critical information to customers, in that unavailability of certain products may be a deal-breaker, making the customer not commit to a purchase if available products are falsely presented as unavailable - or disappointing and potentially losing the customer if unavailable products are falsely presented as available. You must therefore take necessary steps to understand and cater well for the realistic use cases, so that it is easy for integrators to meet our clients' requirements while at the same time not abusing your services (or incurring large costs for high-volume use). We understand that our implementations should be able to minimize load on your services, but at the same time our need for reliable and up-to-date data must be understood and met. We are aware of web hooks, but until they can be relied upon 100.00% (and for other reasons) other mechanisms that can handle the pressure must be available as well. Extra information like restockability and expected longevity might also be relevant and useful information (e.g. to decide how often to refresh cached data)
... View more