Document Properties
Kbid2X3276
Last Modified22-Jun-2020
Added to KB18-Jun-2012
Public AccessEveryone
StatusOnline
Doc TypeGuidelines, Concepts & Cookbooks
Product
  • ICM 7.6
  • ICM 7.7
  • ICM 7.8
  • ICM 7.9
  • ICM 7.10

Concept - Inventory

1 Introduction

The inventory service is a service that supplies information about stock ratios of products and may also manage reservations on those products, i.e. it combines the two aspects:

  • Availability/Quantity information
  • Reservation (booking) capabilities

There are different use cases for inventory. Just to name a few:

  • On a product detail page a consumer may want to see how many pieces are in stock.
  • On a product configuration page a back office user may want to see if and how many pieces of the certain products are available.
  • When adding/updating products to the cart, a check can be useful if the products are actually orderable at all.
  • During submission of an order there might be several approval levels, so it may be required to reserve products and either reject the reservation or to actually release the order later on.

Different scenarios may require different functionality, thus it may be necessary to add a different approach than the one implemented in the INTERSHOP platform's standard.

Strongly simplified order process (inventory)

The diagram above shows a strongly simplified order process. There is a quantity request twice and the reservation part and finally the "order acceptance". While the "order acceptance" is not a part of the inventory service, the quantity request and the reservation are parts of the inventory service. Not shown is the rejection of a reservation which would be triggered if something in the automated checkout process will eventually result in not being able to actually place the order.

2 Glossary

Terms that are not inventory-specific, but part of the  Managed Service Framework, are described here. It is a good idea to read this documentanyway.  

This glossary describes the terms used in this document:

Term

Description

Availability

The availability reflects if a product is generally available (which means it can be bought)

Stock

The actual availability (amount of available pieces) of a product

Inventory

A system that controls/manages product stocks, i.e. it reflects the actual quantities, back-order information and reservation capabilities

Severity

Denotes quality-of-service for a request, i.e. the desired precision of the availability information.

Reservation

A reservation locks a product in a stock, so that no other client of the stock is able to get the reserved pieces.
Usually, a reservation has a timeout when the reservation will be rejected or the rejection will be explicitly triggered.
The common scenario will be that a reservation is confirmed by placing an order.

Rejection

A reservation can be rejected. That means the locked products in the inventory are unlocked and thus available for other clients to be reserved

Place an order

In contrast to a reservation a "placed order" may not be rejected. A "placed order" means the inventory may start processes to actually deliver the order to a customer. The only way to stop the delivery of the order would be a cancellation, but that process is out of focus here.

3 References

Please also have a look at related questions in the cookbooks ( Cookbook - Inventory and Cookbook - Inventory (valid to 7.1) ).

4 Inventory Request Severity

As can be seen in the Simplified Order Process, there can be multiple quantity requests during the same order process. That's why it is possible to configure the request for speed or accuracy with the Inventory Request Severity. There are two possible values for this configuration:

  • Exact (the default) - used to retrieve the most accurate inventory information.
  • Fast - used to retrieve the inventory information as quickly as possible (possibly by using a local cache).

The Inventory Request Severity is configured for the whole channel. It acts as a hint for the inventory service adapter and could be ignored, so that both Exact and Fast behave the same way.

5 Availability Information

5.1 Stock

This is the actual information about the quantity available for a product. If the product is not in stock, the stock amount is zero. Otherwise either the actual amount is given or a negative number (usually -1) indicating that there is an unspecified number of this product available (or the stock is not known at all for some reasons).

It is recommended that -1 be returned if there is an unspecified number of products available, but any negative value is permitted. There are some additional boolean values in the inventory status result that reflect the availability. It is preferred to use these to check for the availability.

5.2 Inventory Level

An additional indicator organized as a traffic light:

  • Green - the product is available and there is a sufficient amount in stock.
  • Yellow - the product is available, but the stock amount is insufficient to cover the expected demand.
  • Red - the product is not available.

It is up to the concrete inventory service adapter to determine the threshold at which the stock amount is considered sufficient.

5.3 Back Order

Indicates if the product has to be back-ordered in case of an order.

5.4 Estimated Delivery Date

Indicates the date at which the delivery is expected to start if the product is ordered at the current time. The inventory service adapter is not required to supply this information.

6 Reservation Capabilities

6.1 Reservation (Booking)

Booking a group of products locks the requested amounts, so that the requested stock is not available for other consumers. After booking is requested, the following information will be given by the inventory service:

  • A flag indicating whether there was at least one unit of one product booked.
  • A map of the partially booked products along with the amount that was successfully booked. The products that were not booked are included with zero as booked amount. The products that were completely booked are not included. If nothing at all was booked, this information may not be correct and should not be used.
  • Availability information for the requested products in case none of them was booked. If at least one unit of one product was booked, this information may not be correct and should not be used.

6.2 Reject Reservation

It is possible to reject a specified quantity for given products. The rejection is done for quantity of products and is not explicitly related to a previous reservation. It is possible to reject only a part of a previous reservation.

7 Simple Inventory Service

A built-in "adapter" that does not require any external call, but only checks the availability flag of a product. Thus, it is neither able to provide quantity information nor does it support any reservation capabilities. Since the result values of the inventory service show quantity values, this "simple" implementation must provide any quantity. A simple rule defines the quantity which will be delivered:

isAvailable()

Quantity value

true

-1

false

0

8 Usage

Here are some of the places where the inventory service is used in the Intershop reference application.

8.1 Product Details

The inventory service is used to determine if the product is in stock.

8.2 Cart

The inventory service is used to adjust the product quantities in the cart according to the currently available stock.

8.3 Checkout

The inventory service is used to adjust the product quantities that can be ordered according to the currently available stock.

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Support Tickets