Item Registration

Add Item

The following endpoint on the Item Registration Service allows an item to be added to the basket:

POST /baskets/{basketId}/items

The Item Registration Service loads the required master data for a given item, prepares the line item and sends it to the Basket Service (via ADD_SALE_RETURN_LINE_ITEM action) to add it to the basket.

It is possible to add piece items with a defined quantity and also dimension items (weight items, area, length, volume, measurement) with defined units.

Line items are also created for linked items of a given item.

It is possible to register items with a specific lineItemAmount (which is usually encoded in the barcode). The lineItemAmount is taken over to the line item and the quantity is calculated according to the current price.

There are supported generic attributes that are maintained on SDC and can be used as triggers in promotions. Data from the item is loaded according to the definition of the generic attributes and mapped to the transaction (SaleReturnLineItemGenericAttribute).

Items with Deposits

If the item contains deposits (e.g. bottles), the deposits are registered directly as subsequent line items.

Bulk Registration

The following endpoint on the Item Registration Service allows items to be added to the basket in bulk:

POST /baskets/{basketId}/items/bulk

Quantity Accumulation

It is possible to configure if the same items should be consolidated to one line item with an accumulated quantity or if each registered item should be registered as a new line item.

External Data

It is possible to register an existing item with additional external data (external price, external promotion, identification of an order etc.). The external data is then used instead of the master data. This functionality can be used e.g. in e-commerce. A special role is needed to allow the user to call the item registration with the external data.

Remove Item

The following endpoint on the Item Registration Service allows an item to be removed from the basket:

POST /baskets/{basketId}/items/delete

The Item Registration Service loads line items for the given item from the Basket Service and selects which line item should be removed.

Line items are voided, not physically removed. This means that the voidFlag is set to true and a voiding line item is created with an assignment to the voided line item.

Change Quantity

The following endpoint on the Item Registration Service allows the quantity of a given line item to be changed:

POST /baskets/{basketId}/line-items/{lineItemKey}/change-quantity

The endpoint is allowed for piece items only.

Add Empties Transaction

The following endpoints on the Item Registration Service allow an empties return transaction to be registered to the basket:

POST /baskets/{basketId}/empties-transactions

These external transactions are loaded from the transaction pool by the provided transactionIdentifier.

According to the configuration and the use case, the line items from the external transaction are taken over to the basket or a line item with the total amount is added to the basket. If the empties return transaction is not available in the pool or the pool is not accessible at the moment, it is possible to register it as one line item if the total amount is provided in the request.

During registration, the empties transaction is locked at the POS Server to prevent parallel registration of the same receipt on another device. If the line items of the empties transaction are voided or the basket containing the empties transaction is canceled, the empties transaction is unlocked and can be registered again.

Add Scale Transaction

The following endpoints on the Item Registration Service allow a scale transaction to be registered to the basket:

POST /baskets/{basketId}/scale-transactions

These external transactions are loaded from the transaction pool by the provided transactionIdentifier.

According to the configuration and the use case, the line items from the external transaction are taken over to the basket or a line item with the total amount is added to the basket. If the scale transaction is not available in the pool or the pool is not accessible at the moment, it is possible to register it as one line item if the total amount is provided in the request.

Add Manual Discount

The following endpoint on Item Registration Service allows a manual discount to be granted to a given line item:

POST /baskets/{basketId}/line-items/{lineItemKey}/manual-discount

It is possible to grant the manual discount only for items with discountFlag = true.

Set Manual Price

If the item requires price entry, it is possible to provide the price together with the item in the priceInput request attribute when registering the item via:

POST /baskets/{basketId}/items

The item price can also be changed afterwards by calling:

POST /baskets/{basketId}/line-items/{lineItemKey}/manual-price

In this case, it is checked whether the item allows a manual price change.

Add Gift Certificate

It is possible to sell/top up gift certificates using the following endpoint:

POST/baskets/{basketId}/gift-certificates

Gift certificates are maintained by Stored Value Server (SVS). During registration of the gift certificate, it is checked at SVS if the gift certificate is valid and can be registered. The gift certificate is activated in the finalization process after the basket is paid.