Merged PR 1978: feat(checkout): implement hierarchical grouping on rewards order confirmation...

feat(checkout): implement hierarchical grouping on rewards order confirmation page

Implements correct grouping by delivery option and target address on the
rewards order confirmation page (Prämien-Abschlussseite).

Changes:
- Add hierarchical grouping: primary by delivery type, secondary by branch
- Show branch name only when multiple branches exist within same delivery type
- Remove duplicate "Abholfiliale" section from addresses component
- Fix undefined shoppingCartItem error by providing fallback with DisplayOrderItem features
- Fix partial order creation error handling in checkout orchestrator

Implementation:
- New helpers: groupDisplayOrdersByDeliveryType, groupDisplayOrdersByBranch
- Updated reward-order-confirmation component with groupedOrders computed signal
- Added comprehensive unit tests (15 new tests, all passing)
- Graceful error handling for backend responses with partial order creation

Bug Fixes:
- Prevent undefined features error when shopping cart item not found
- Extract orders from HTTP error responses when backend returns warnings
- Add German documentation for error handling with TODO for user feedback

Related to: #5397

Related work items: #5397
This commit is contained in:
Lorenz Hilpert
2025-10-23 14:04:31 +00:00
committed by Nino Righi
parent 4a0fbf010b
commit 1c5bc8de12
13 changed files with 784 additions and 39 deletions

View File

@@ -1,2 +1,3 @@
export * from './create-esc-abort-controller.helper';
export * from './zod-error.helper';
export * from './create-esc-abort-controller.helper';
export * from './is-response-args.helper';
export * from './zod-error.helper';

View File

@@ -0,0 +1,11 @@
import { ResponseArgs } from '../models';
export function isResponseArgs<T>(args: any): args is ResponseArgs<T> {
return (
args &&
typeof args === 'object' &&
'error' in args &&
'invalidProperties' in args &&
'message' in args
);
}