diff --git a/packages/composables/src/hooks/useCart/index.ts b/packages/composables/src/hooks/useCart/index.ts index d7e7c3118..dd1483269 100644 --- a/packages/composables/src/hooks/useCart/index.ts +++ b/packages/composables/src/hooks/useCart/index.ts @@ -130,7 +130,7 @@ export const useCart = (rootContext: ApplicationVueContext): IUseCart => { async function submitPromotionCode(promotionCode: string) { if (promotionCode) { const result = await addPromotionCode(promotionCode, apiInstance); - ``; + broadcastUpcomingErrors(result); _storeCart.value = result; broadcast(INTERCEPTOR_KEYS.ADD_PROMOTION_CODE, { result, diff --git a/packages/default-theme/src/logic/notifications/index.js b/packages/default-theme/src/logic/notifications/index.js index 5f7b3e27c..ced8599c7 100644 --- a/packages/default-theme/src/logic/notifications/index.js +++ b/packages/default-theme/src/logic/notifications/index.js @@ -25,13 +25,15 @@ export const addToCartNotification = (payload, rootContext) => { export const addPromotionCodeNotification = (payload, rootContext) => { const { pushSuccess, pushError } = useNotifications(rootContext) - const { result } = payload + const { result, promotionCode } = payload - if (!result.errors || !result.errors.length) { + if (!result.errors || !Object.keys(result.errors).length) { return pushSuccess(rootContext.$t("Promotion code added successfully")) } - const err = Object.values(result.errors)[0] + const err = Object.values(result.errors).find( + (error) => promotionCode === error.promotionCode + ) if (err) { switch (err.messageKey) { case "promotion-not-found":