Domain NOVA Checkout

Domain is part of the generic checkout process of NOVA.

This domain does not have its on business logic. Instead it defines the API for so called checkout actions and validations which will be called by NOVA's booking implementation in order to trigger domain specific actions through a generic interface.

Diagrams

NOVA Checkout Data Types NOVA Checkout Service Model
- Checkout Data Types - Domain
- Checkout Data Types - OpenAPI
- Checkout Service Model
- Checkout Service Model - OpenAPI

Artifacts

Artifact Icon Maturity Level since
NOVA Checkout Data Types 🐔 Crazy Chicken
NOVA Checkout Service Model 🐔 Crazy Chicken

Dependencies

Artifact Outgoing Dependencies Incoming Dependencies
NOVA Checkout Data Types - NOVA Common Data Types - NOVA Booking Master Data
- NOVA Offer Store Service Model
- NOVA Checkout Service Model
NOVA Checkout Service Model - NOVA Booking Data Types
- NOVA Booking Service Model
- NOVA Checkout Data Types
- NOVA Common Data Types
- NOVA Customer Data Types
- NOVA Offer Data Types
- NOVA System Problem

Provided REST Endpoints / Services

CheckoutActionService

This service defines a generic interface for actions that need to be executed during the checkout process.

The generic NOVA checkout process distinguishes between so called checkout validation and checkout actions. As the name implies, checkout validations describe a business validation that needs to be executed within the checkout process. Its result is rather simple: successful or not.

In addition there are also so called checkout actions. They are used for actions that need to be executed during the checkout process e.g. do some booking in external reservation systems or trigger a SwissPass card production. The result of a checkout action can also modify subject information and domain specific extensions of a bookable item e.g. the concrete seat number is assigned during the checkout process.

Purpose of this interface is to provide an generic API so that the checkout process implemented by NOVA Booking won't be "polluted" with business logic from other domains, does not need to know anything about external resources and can be dynamically extended.


REST Path / Operation Description
/internal/checkout/{resource}:book [POST]

book(CheckoutResourceKey, CheckoutActionRequest, SalesContext, IdempotencyHeader)
Operation will be called when a new booking is created.
/internal/checkout/{resource}:issue [POST]

issue(CheckoutResourceKey, CheckoutActionRequest, SalesContext, IdempotencyHeader)
Operation will be called when a booking is issued.
/internal/checkout/{resource}:fulfill [POST]

fulfill(CheckoutResourceKey, CheckoutActionRequest, SalesContext, IdempotencyHeader)
Operation will be called when a booking is fulfilled.
/internal/checkout/{resource}:confirm [POST]

confirm(CheckoutResourceKey, CheckoutActionRequest, SalesContext, IdempotencyHeader)
Operation will be called when a booking is confirmed.
/internal/checkout/{resource}:cancel [POST]

cancel(CheckoutResourceKey, CheckoutActionRequest, SalesContext, IdempotencyHeader)
Operation will be called when a booking is canceled.


CheckoutValidationService

This service defines a generic interface for checkout validations that need to be done during the checkout process.

The generic NOVA checkout process distinguishes between so called checkout validation and checkout actions. As the name implies, checkout validations describe a business validation that needs to be executed within the checkout process. Its result is rather simple: successful or not.

For further details about please refer to CheckoutValidationService.

Purpose of this interface is to provide an generic API so that the checkout process implemented by NOVA Booking won't be "polluted" with business logic from other domains, does not need to know anything about external resources and can be dynamically extended.


REST Path / Operation Description
/internal/checkout/{resource}:validate [POST]

validate(CheckoutResourceKey, CheckoutValidationRequest, SalesContext)
Operation is called to execute a checkout validation using the passed input parameters.


Planned Breaking Changes

No breaking changes planned.

Deprecations

Package ch.voev.nova.checkout.datatypes


Package ch.voev.nova.checkout.servicemodel


CheckoutActionService

Operation Parameter Description Deprecated since Planned to be removed
fulfill(CheckoutResourceKey, CheckoutActionRequest, SalesContext, IdempotencyHeader) Operation will be replaced by issues(...)` in the future. So please switch to that operation instead. 3.0 PI 2025-04


Classes with Deprecations


Type Attribute Description Deprecated since Planned to be removed
CheckoutActionExecutionInfo
updatedDomainExtension Please use updatedDomainExtensions instead. 2.6.0 PI 23
CheckoutActionPayload
domainExtension Please use domainExtensions instead. 2.6.0 PI 23
CheckoutValidationPayload
domainExtension Please use domainExtensions instead. 2.6.0 PI 23