Introduction

The Basket domain is a collection of central services running in the cloud which take care of basket creation and update. It allows items to be added and removed. At the end of the trip, the checkout of the basket is processed and the basket can be paid. The payment is then processed by the Payment Service (part of the Self-Scanning product). After the basket is paid, the finalization of the basket is performed (incl. fiscalization, digital receipt) and the basket transaction is provided to the transaction pool.

The basket is used by retail clients (e.g. GK GO, Self-Scanning).

The Basket domain consists of the following central services:

  • Basket Service - Maintains the basket - it creates the basket and performs all basket modifications based on received actions
  • Item Registration Service - Allows items to be added and removed, prepares the line item and provides it to the Basket Service
  • Checkout Service - Performs the checkout (update of transaction and preparation for payment)
  • Basket Finalization Service - Sets the basket status accordingly after the transaction has been paid on a Self-Checkout
  • Basket Notification Service - Provides notifications about basket changes to subscribed clients
  • Basket Event Bridge Service - Provides basket events to other systems. For example, data about the basket to SPOT and the Coupon Service for the hyper-personalization feature.
  • Offer Registration Service - Allows to register non-personalized coupons.

Services from the Basket domain provide the REST API for basket actions and basket lookup.

It is also possible to run basket processes on a mobile device. See more in the Basket Client SDK chapter.

Services are written in Kotlin to allow multi-platform usage.