diff --git a/libs/checkout/data-access/src/lib/helpers/get-shopping-cart-item-key.helper.ts b/libs/checkout/data-access/src/lib/helpers/get-shopping-cart-item-key.helper.ts
index d35a8cb8e..dccdb5038 100644
--- a/libs/checkout/data-access/src/lib/helpers/get-shopping-cart-item-key.helper.ts
+++ b/libs/checkout/data-access/src/lib/helpers/get-shopping-cart-item-key.helper.ts
@@ -4,12 +4,13 @@ import {
} from '@isa/checkout/data-access';
/**
- * Creates a unique key for an item based on EAN, destination, and orderItemType.
+ * Creates a unique key for an item based on EAN, targetBranchId, and orderItemType.
* Items are only considered identical if all three match.
*/
export const getItemKey = (item: ShoppingCartItem): string => {
const ean = item.product.ean ?? 'no-ean';
- const destinationId = item.destination?.data?.id ?? 'no-destination';
+ const targetBranchId =
+ item.destination?.data?.targetBranch?.id ?? 'no-target-branch-id';
const orderType = getOrderTypeFeature(item.features) ?? 'no-orderType';
- return `${ean}|${destinationId}|${orderType}`;
+ return `${ean}|${targetBranchId}|${orderType}`;
};
diff --git a/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item-quantity-control.component.ts b/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item-quantity-control.component.ts
index 16dbf523c..deb05128a 100644
--- a/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item-quantity-control.component.ts
+++ b/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item-quantity-control.component.ts
@@ -66,7 +66,8 @@ export class RewardShoppingCartItemQuantityControlComponent {
if (
orderType === OrderTypeFeature.Delivery ||
orderType === OrderTypeFeature.DigitalShipping ||
- orderType === OrderTypeFeature.B2BShipping
+ orderType === OrderTypeFeature.B2BShipping ||
+ orderType === OrderTypeFeature.Pickup
) {
return 999;
}
diff --git a/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item.component.html b/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item.component.html
index 863f822ac..c7f6bf2f3 100644
--- a/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item.component.html
+++ b/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item.component.html
@@ -37,11 +37,20 @@
-@if (quantityControl.maxQuantity() < 2 && !isDownload()) {
-
-
-
Geringer Bestand - Artikel holen vor Abschluss
-
+@if (!isDownload()) {
+ @if (showLowStockMessage()) {
+
+
+
{{ inStock() }} Exemplare sofort lieferbar
+
+ } @else if (quantityControl.maxQuantity() < 2) {
+
+
+
Geringer Bestand - Artikel holen vor Abschluss
+
+ }
}
diff --git a/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item.component.ts b/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item.component.ts
index 7f2b1ec42..2b9881f5d 100644
--- a/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item.component.ts
+++ b/libs/checkout/feature/reward-shopping-cart/src/lib/reward-shopping-cart-item/reward-shopping-cart-item.component.ts
@@ -72,6 +72,16 @@ export class RewardShoppingCartItemComponent {
hasOrderTypeFeature(this.item().features, ['Download']),
);
+ isAbholung = computed(() =>
+ hasOrderTypeFeature(this.item().features, ['Abholung']),
+ );
+
+ inStock = computed(() => this.item().availability?.inStock ?? 0);
+
+ showLowStockMessage = computed(() => {
+ return this.isAbholung() && this.inStock() < 2;
+ });
+
async updatePurchaseOption() {
const shoppingCartItemId = this.itemId();
const shoppingCartId = this.shoppingCartId();
diff --git a/libs/checkout/shared/reward-selection-dialog/src/lib/reward-selection-dialog/reward-selection-error/reward-selection-error.component.css b/libs/checkout/shared/reward-selection-dialog/src/lib/reward-selection-dialog/reward-selection-error/reward-selection-error.component.css
index 4fe16d287..f7d6a9448 100644
--- a/libs/checkout/shared/reward-selection-dialog/src/lib/reward-selection-dialog/reward-selection-error/reward-selection-error.component.css
+++ b/libs/checkout/shared/reward-selection-dialog/src/lib/reward-selection-dialog/reward-selection-error/reward-selection-error.component.css
@@ -1,3 +1,3 @@
:host {
- @apply text-isa-accent-red isa-text-body-2-bold flex flex-row gap-2 items-center;
+ @apply text-isa-accent-red isa-text-body-2-bold flex flex-col gap-2 items-start;
}
diff --git a/libs/checkout/shared/reward-selection-dialog/src/lib/reward-selection-dialog/reward-selection-error/reward-selection-error.component.html b/libs/checkout/shared/reward-selection-dialog/src/lib/reward-selection-dialog/reward-selection-error/reward-selection-error.component.html
index 201f2e798..cf478c74a 100644
--- a/libs/checkout/shared/reward-selection-dialog/src/lib/reward-selection-dialog/reward-selection-error/reward-selection-error.component.html
+++ b/libs/checkout/shared/reward-selection-dialog/src/lib/reward-selection-dialog/reward-selection-error/reward-selection-error.component.html
@@ -1,8 +1,10 @@
@if (store.totalLoyaltyPointsNeeded() > store.customerRewardPoints()) {
-