FD-2411

Release Date: 2024-12-06

Software Version

The document refers to the following applications and corresponding software versions:

Application Version
Basket Client SDK 2.11.0
Basket Service 3.11.0
Item Registration Service 3.11.0
Checkout Service 2.25.0
Basket Finalization Service 1.25.0
Basket Event Bridge Service 1.22.0
Basket Notification Service 1.22.0
Offer Registration Service 1.11.0

What's New - Basket Service

Basket Item Count Calculation and Integration in Basket Overview

This feature introduces the real-time calculation of the itemCount in the basket after each update. The calculated itemCount is stored in the fact table and exposed through the BasketOverview GraphQL endpoint, ensuring accurate and up-to-date basket information.

The itemCount is derived by adding the quantities of non-voided items based on specified conditions:

  1. For specific item types (CO, PR, SC, PU): Includes items with ActionCode = SI.
  2. For special orders (SO): Includes orders with SalesOrderTypeCode = 04 and ActionCode = SI.

Authorization with Context Check

Introduced contextual authorization for Basket Service, ensuring only permitted users or devices can access or modify baskets based on defined roles and contexts (e.g. BYOD customer accessing their own baskets). Context is validated during basket creation and checked before executing actions.

Total Amount and Item Count added to Basket Events for Monitoring

Introduced two new attributes, totalAmount and itemCount, in specific basket events to enhance monitoring capabilities by eliminating the need for additional basket data retrieval after receiving notifications.

Issue Key Summary Change Description
POCP-74516 Added real-time item count calculation to baskets with the value stored in the fact table and exposed via the BasketOverview GraphQL endpoint. Enhanced the basket system to calculate and persist itemCount for non-voided items based on specified criteria. This value is now included in the BasketOverview GraphQL endpoint, improving the accuracy and usability of basket details.
POCP-74160 Enhanced Basket Service security by adding context-based authorization checks, restricting access and actions to authorized users or devices based on defined roles and scopes.
  1. Implemented context validation during basket creation to determine and store the appropriate authorization model.
  2. Verified user or device context against the stored model before executing Basket Service actions.
  3. Added new base roles and their associated contexts for precise access control (e.g. b:basket.bas.read-own for accessing own baskets).
  4. Defined supported contexts (e.g. customer, anonymousCustomer, device) and mapped them to authorization models.
  5. Established backward compatibility by skipping context checks for older baskets.
  6. Applied role-based filtering to ensure users only access baskets within their allowed contexts.
POCP-66833 Enhanced Basket Service notifications by adding totalAmount and itemCount attributes to relevant events, improving efficiency for monitoring applications.
  • New Attributes:
    • totalAmount: The total monetary value of items in the basket.
    • itemCount: The number of items in the basket.
  • Scope:
    • Added to events where these attributes are subject to change, based on the provided specification.
  • Purpose:
    • Enables the monitoring app to access key basket metrics directly from notifications without needing to fetch the basket separately.
  • Efficiency:
    • Reduces API calls and improves performance for monitoring services.
  • Backward Compatibility:
    • These attributes are only added to selected events, ensuring no impact on other existing events.

Resolved Issues

This release contains no resolved issues.

What's New - Item Registration Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-73946 Resolved an issue where group price was incorrectly prioritized over normal price when registering item 550 in baskets. The system now aligns with the expected price priority hierarchy. Correct the pricing logic for item registration to ensure compliance with the defined price priority order
special price -> default price -> group
      price

What's New - Checkout Service

This release contains no new features

Resolved Issues

Issue Key Summary Change Description
POCP-61067 Update Build-Kit to v3.5.1 and other updates Dependencies update

What's New - Basket Event Bridge Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-61067 Update Build-Kit to v3.5.1 and other updates Dependencies update

What's New - Basket Finalization Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-61067 Update Build-Kit to v3.5.1 and other updates Dependencies update

What's New - Basket Notification Service

Subscription for the Whole Store

A new API endpoint has been introduced to enable clients to subscribe to basket change notifications for an entire store. Implemented a new subscription endpoint allowing clients to receive notifications for basket changes across a specified store. The feature supports configuration of client types and notification preferences for push and edge notifications. New endpoint POST /baskets/subscriptions

Behavior:

  • A client subscribing to a store receives basket change notifications for all activities within the store that match the provided clientTypeList.
  • Notifications include push and/or edge events based on the configuration.
  • The API validates inputs, ensuring the businessUnitId is valid and required lists are not empty if provided.

Unsubscription for the Whole Store

A new API endpoint has been introduced to allow clients to unsubscribe from basket change notifications for the entire store - POST /baskets/subscriptions/delete

Behavior:

  • A client can unsubscribe from receiving notifications for basket changes across the entire store.
  • The request ensures that the client is no longer subscribed to basket updates for the specified store.
Issue Key Summary Change Description
POCP-66831 Implemented a new subscription endpoint allowing clients to receive notifications for basket changes across a specified store. The feature supports configuration of client types and notification preferences for push and edge notifications. New Endpoint:
  • POST/baskets/subscriptions
  • A client subscribing to a store receives basket change notifications for all activities within the store that match the provided clientTypeList.
  • Notifications include push and/or edge events based on the configuration.
  • The API validates inputs, ensuring the businessUnitId is valid and required lists are not empty if provided.
This feature provides the ability for clients to stop receiving notifications for basket changes across a specified store.
  1. A client can unsubscribe from receiving notifications for basket changes across the entire store.
  2. The request ensures that the client is no longer subscribed to basket updates for the specified store.

Resolved Issues

This release contains no resolved issues.

What's New - Offer Registration Service

This release contains no new features.

Resolved Issues

Issue Key Summary Change Description
POCP-61067 Update Build-Kit to v3.5.1 and other updates Dependencies update

What's New - Basket Client SDK

Dynamic Modification of Custom Headers

The Custom Headers feature introduces the ability to modify API request headers dynamically during the app's runtime. This enhancement allows developers to update or remove headers from the ApiConfig class as needed, offering greater flexibility for managing API calls.

Token Reset for Basket Client SDK

The Token Reset feature enables clients of the Basket Client SDK to reset the token persisted within the SDK. This functionality allows for a streamlined process to manage token lifecycle changes, ensuring secure and up-to-date authentication.

Key Capabilities:

  • Reactive Token Reset: Implements a structured process to reset tokens dynamically.
  • Customization: Allows clients to define the behavior for processing ResetTokenRequest and generating a corresponding ResetTokenResponse.
  • This feature improves flexibility and security by allowing token management directly through the SDK, ensuring seamless integration and adaptability to token lifecycle requirements.
Issue Key Summary Change Description
POCP-74461 Added support for dynamically modifying custom headers in ApiConfig during runtime. The Custom Headers feature introduces the ability to modify API request headers dynamically.
POCP-74712 Enhanced the ApiConfig class to allow adding, replacing, or removing custom headers at runtime, enabling flexible and efficient header management for API calls. Added support for resetting tokens via the Basket Client SDK, allowing clients to handle token lifecycle updates by processing ResetTokenRequest and generating a ResetTokenResponse.