@@ -61,39 +61,7 @@ public function addAction(): ResponseInterface
6161
6262 $ couponWasAdded = $ this ->cart ->addCoupon ($ newCartCoupon );
6363
64- if ($ couponWasAdded == 1 ) {
65- $ this ->addFlashMessage (
66- LocalizationUtility::translate (
67- 'tx_cart.ok.coupon.added ' ,
68- 'Cart '
69- ),
70- '' ,
71- ContextualFeedbackSeverity::OK ,
72- true
73- );
74- }
75- if ($ couponWasAdded == -1 ) {
76- $ this ->addFlashMessage (
77- LocalizationUtility::translate (
78- 'tx_cart.error.coupon.already_added ' ,
79- 'Cart '
80- ),
81- '' ,
82- ContextualFeedbackSeverity::WARNING ,
83- true
84- );
85- }
86- if ($ couponWasAdded == -2 ) {
87- $ this ->addFlashMessage (
88- LocalizationUtility::translate (
89- 'tx_cart.error.coupon.not_combinable ' ,
90- 'Cart '
91- ),
92- '' ,
93- ContextualFeedbackSeverity::WARNING ,
94- true
95- );
96- }
64+ $ this ->addFlashMessageForAddedCoupon ($ couponWasAdded , $ coupon );
9765 } else {
9866 $ this ->addFlashMessage (
9967 LocalizationUtility::translate (
@@ -158,4 +126,61 @@ public function removeAction(): ResponseInterface
158126
159127 return $ this ->redirect ('show ' , 'Cart\Cart ' );
160128 }
129+
130+ private function addFlashMessageForAddedCoupon (int $ couponWasAdded , Coupon $ coupon ): void
131+ {
132+ if ($ couponWasAdded === 1 ) {
133+ $ messageBody = LocalizationUtility::translate (
134+ 'tx_cart.ok.coupon.added ' ,
135+ 'Cart '
136+ );
137+
138+ foreach ($ this ->cart ->getCoupons () as $ cartCoupon ) {
139+ if ($ cartCoupon ->getCode () !== $ coupon ->getCode ()) {
140+ continue ;
141+ }
142+
143+ if ($ cartCoupon ->isUseable ()) {
144+ $ this ->addFlashMessage (
145+ $ messageBody
146+ );
147+ } else {
148+ $ this ->addFlashMessage (
149+ LocalizationUtility::translate (
150+ 'tx_cart.error.coupon.added_but_not_usable ' ,
151+ 'Cart '
152+ ),
153+ '' ,
154+ ContextualFeedbackSeverity::WARNING ,
155+ );
156+ }
157+ }
158+
159+ return ;
160+ }
161+
162+ if ($ couponWasAdded === -1 ) {
163+ $ this ->addFlashMessage (
164+ LocalizationUtility::translate (
165+ 'tx_cart.error.coupon.already_added ' ,
166+ 'Cart '
167+ ),
168+ '' ,
169+ ContextualFeedbackSeverity::WARNING ,
170+ );
171+
172+ return ;
173+ }
174+
175+ if ($ couponWasAdded === -2 ) {
176+ $ this ->addFlashMessage (
177+ LocalizationUtility::translate (
178+ 'tx_cart.error.coupon.not_combinable ' ,
179+ 'Cart '
180+ ),
181+ '' ,
182+ ContextualFeedbackSeverity::WARNING ,
183+ );
184+ }
185+ }
161186}
0 commit comments