From 8e96b65fba55e0bf4551be08847caa9ed94dc0e3 Mon Sep 17 00:00:00 2001 From: sanjeev Date: Tue, 12 Jul 2022 14:52:13 +0530 Subject: [PATCH 1/4] show warning in case coupon already applied --- .../Webkul/Shop/src/Http/Controllers/CartController.php | 7 +++++++ packages/Webkul/Shop/src/Resources/lang/ar/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/ben/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/de/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/en/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/es/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/fa/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/fr/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/he/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/hi_IN/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/it/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/nl/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/pl/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/pt_BR/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/ru/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/sin/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/tr/app.php | 1 + packages/Webkul/Shop/src/Resources/lang/zh_CN/app.php | 3 ++- 18 files changed, 25 insertions(+), 1 deletion(-) diff --git a/packages/Webkul/Shop/src/Http/Controllers/CartController.php b/packages/Webkul/Shop/src/Http/Controllers/CartController.php index 9b79bbbd8..2288879ef 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/CartController.php @@ -173,6 +173,13 @@ class CartController extends Controller try { if (strlen($couponCode)) { + if (Cart::getCart()->coupon_code && Cart::getCart()->coupon_code == $couponCode) { + return response()->json([ + 'success' => false, + 'message' => trans('shop::app.checkout.total.coupon-already-applied'), + ]); + } + Cart::setCouponCode($couponCode)->collectTotals(); if (Cart::getCart()->coupon_code == $couponCode) { diff --git a/packages/Webkul/Shop/src/Resources/lang/ar/app.php b/packages/Webkul/Shop/src/Resources/lang/ar/app.php index 152a53a9c..51fe6b25f 100644 --- a/packages/Webkul/Shop/src/Resources/lang/ar/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/ar/app.php @@ -623,6 +623,7 @@ return [ 'invalid-coupon' => 'رمز القسيمة غير صالح.', 'success-coupon' => 'تم تطبيق رمز القسيمة بنجاح.', 'coupon-apply-issue' => 'لا يمكن تطبيق رمز القسيمة.', + 'coupon-already-applied' => 'تم تطبيق رمز القسيمة بالفعل.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/ben/app.php b/packages/Webkul/Shop/src/Resources/lang/ben/app.php index 0acdad244..a29a44188 100644 --- a/packages/Webkul/Shop/src/Resources/lang/ben/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/ben/app.php @@ -609,6 +609,7 @@ return [ 'invalid-coupon' => 'কুপন কোড অবৈধ।', 'success-coupon' => 'কুপন কোড সফলভাবে প্রয়োগ করা হয়েছে।', 'coupon-apply-issue' => 'কুপন কোড প্রয়োগ করা যাবে না।', + 'coupon-already-applied' => 'কুপন কোড ইতিমধ্যেই প্রয়োগ করা হয়েছে।', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/de/app.php b/packages/Webkul/Shop/src/Resources/lang/de/app.php index 45e04a263..e992e68c8 100755 --- a/packages/Webkul/Shop/src/Resources/lang/de/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/de/app.php @@ -607,6 +607,7 @@ return [ 'invalid-coupon' => 'Gutscheincode ist ungültig.', 'success-coupon' => 'Gutscheincode erfolgreich angewendet.', 'coupon-apply-issue' => 'Gutscheincode kann nicht angewendet werden.', + 'coupon-already-applied' => 'Gutscheincode bereits angewendet.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/en/app.php b/packages/Webkul/Shop/src/Resources/lang/en/app.php index 9d30036ae..df080e0c7 100755 --- a/packages/Webkul/Shop/src/Resources/lang/en/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/en/app.php @@ -621,6 +621,7 @@ return [ 'invalid-coupon' => 'Coupon code is invalid.', 'success-coupon' => 'Coupon code applied successfully.', 'coupon-apply-issue' => 'Coupon code can\'t be applied.', + 'coupon-already-applied' => 'Coupon code already applied.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/es/app.php b/packages/Webkul/Shop/src/Resources/lang/es/app.php index 12ef3a458..6e7b6844b 100644 --- a/packages/Webkul/Shop/src/Resources/lang/es/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/es/app.php @@ -612,6 +612,7 @@ return [ 'invalid-coupon' => 'El código del cupón no es válido.', 'success-coupon' => 'Código del cupón aplicado correctamente.', 'coupon-apply-issue' => 'No se puede aplicar el código de cupón.', + 'coupon-already-applied' => 'Código de cupón ya aplicado.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/fa/app.php b/packages/Webkul/Shop/src/Resources/lang/fa/app.php index eb7dcf76a..97be695f2 100644 --- a/packages/Webkul/Shop/src/Resources/lang/fa/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/fa/app.php @@ -608,6 +608,7 @@ return [ 'invalid-coupon' => 'کد کوپن نامعتبر است', 'success-coupon' => 'کد کوپن با موفقیت اعمال شد', 'coupon-apply-issue' => 'کد کوپن نمی تواند اعمال شود', + 'coupon-already-applied' => 'کد کوپن قبلاً اعمال شده است.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/fr/app.php b/packages/Webkul/Shop/src/Resources/lang/fr/app.php index b634c7d5d..eff5cf17d 100755 --- a/packages/Webkul/Shop/src/Resources/lang/fr/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/fr/app.php @@ -611,6 +611,7 @@ return [ 'invalid-coupon' => 'Le code promo n\'est pas valide.', 'success-coupon' => 'Code promo appliqué avec succès.', 'coupon-apply-issue' => 'Le code promo ne peut pas être appliqué.', + 'coupon-already-applied' => 'Code promo déjà appliqué.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/he/app.php b/packages/Webkul/Shop/src/Resources/lang/he/app.php index 621fa4deb..6fc5d919a 100644 --- a/packages/Webkul/Shop/src/Resources/lang/he/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/he/app.php @@ -608,6 +608,7 @@ return [ 'invalid-coupon' => 'קוד הקופון אינו חוקי.', 'success-coupon' => 'קוד הקופון הוחל בהצלחה.', 'coupon-apply-issue' => 'לא ניתן להחיל קוד קופון.', + 'coupon-already-applied' => 'קוד קופון כבר הוחל.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/hi_IN/app.php b/packages/Webkul/Shop/src/Resources/lang/hi_IN/app.php index 66ec0c9c9..c74b4c6c4 100644 --- a/packages/Webkul/Shop/src/Resources/lang/hi_IN/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/hi_IN/app.php @@ -621,6 +621,7 @@ return [ 'invalid-coupon' => 'कूपन कोड अमान्य है।', 'success-coupon' => 'कूपन कोड सफलतापूर्वक लागू किया गया।', 'coupon-apply-issue' => 'कूपन कोड लागू नहीं किया जा सकता', + 'coupon-already-applied' => 'कूपन कोड पहले से ही लागू है।', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/it/app.php b/packages/Webkul/Shop/src/Resources/lang/it/app.php index 9372c36cc..2e264e176 100644 --- a/packages/Webkul/Shop/src/Resources/lang/it/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/it/app.php @@ -611,6 +611,7 @@ return [ 'invalid-coupon' => 'Il Codice Promo non è valido.', 'success-coupon' => 'Codice Promo applicato con successo.', 'coupon-apply-issue' => 'Il Codice Promo non può essere applicato.', + 'coupon-already-applied' => 'Codice coupon già applicato.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/nl/app.php b/packages/Webkul/Shop/src/Resources/lang/nl/app.php index 8e6b28717..910d40c18 100644 --- a/packages/Webkul/Shop/src/Resources/lang/nl/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/nl/app.php @@ -618,6 +618,7 @@ return [ 'invalid-coupon' => 'Couponcode is ongeldig.', 'success-coupon' => 'Couponcode succesvol toegepast.', 'coupon-apply-issue' => 'Coupon code can\'t be applied.', + 'coupon-already-applied' => 'Couponcode reeds toegepast.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/pl/app.php b/packages/Webkul/Shop/src/Resources/lang/pl/app.php index 1927e0741..dfe4a897f 100644 --- a/packages/Webkul/Shop/src/Resources/lang/pl/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/pl/app.php @@ -610,6 +610,7 @@ return [ 'invalid-coupon' => 'Kod kuponu jest nieprawidłowy.', 'success-coupon' => 'Kod kuponu został pomyślnie zastosowany.', 'coupon-apply-issue' => 'Nie można zastosować kodu kuponu.', + 'coupon-already-applied' => 'Kod kuponu został już zastosowany.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/pt_BR/app.php b/packages/Webkul/Shop/src/Resources/lang/pt_BR/app.php index 06d21b026..92bf1766c 100755 --- a/packages/Webkul/Shop/src/Resources/lang/pt_BR/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/pt_BR/app.php @@ -598,6 +598,7 @@ return [ 'invalid-coupon' => 'Código do Cupom é inválido.', 'success-coupon' => 'Cupom aplicado com sucesso.', 'coupon-apply-issue' => 'Não foi possível aplicar esse Cupom', + 'coupon-already-applied' => 'Coupon code already applied.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/ru/app.php b/packages/Webkul/Shop/src/Resources/lang/ru/app.php index 664a91ce3..a974b4ec1 100644 --- a/packages/Webkul/Shop/src/Resources/lang/ru/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/ru/app.php @@ -609,6 +609,7 @@ return [ 'invalid-coupon' => 'Код купона недействителен.', 'success-coupon' => 'Код купона успешно применен.', 'coupon-apply-issue' => 'Код купона не может быть применен.', + 'coupon-already-applied' => 'Coupon code already applied.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/sin/app.php b/packages/Webkul/Shop/src/Resources/lang/sin/app.php index 3c9dfc5b3..8ef6b2e1c 100644 --- a/packages/Webkul/Shop/src/Resources/lang/sin/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/sin/app.php @@ -609,6 +609,7 @@ return [ 'invalid-coupon' => 'කූපන් කේතය වලංගු නැත.', 'success-coupon' => 'කූපන් කේතය සාර්ථකව යොදන ලදී.', 'coupon-apply-issue' => 'කූපන් කේතය යෙදිය නොහැක.', + 'coupon-already-applied' => 'Coupon code already applied.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/tr/app.php b/packages/Webkul/Shop/src/Resources/lang/tr/app.php index 07dd64a8b..9ce7c51be 100644 --- a/packages/Webkul/Shop/src/Resources/lang/tr/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/tr/app.php @@ -609,6 +609,7 @@ return [ 'invalid-coupon' => 'Kupon kodu geçersiz.', 'success-coupon' => 'Kupon kodu başarıyla uygulandı.', 'coupon-apply-issue' => 'Kupon kodu uygulanamaz.', + 'coupon-already-applied' => 'Kupon kodu zaten uygulandı.', ], 'success' => [ diff --git a/packages/Webkul/Shop/src/Resources/lang/zh_CN/app.php b/packages/Webkul/Shop/src/Resources/lang/zh_CN/app.php index 8d54ea264..3c134d6ed 100644 --- a/packages/Webkul/Shop/src/Resources/lang/zh_CN/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/zh_CN/app.php @@ -610,7 +610,8 @@ return [ 'cannot-apply-coupon' => '不能应用优惠券', 'invalid-coupon' => '优惠券代码无效.', 'success-coupon' => '优惠券代码已应用成功.', - 'coupon-apply-issue' => '优惠券代码不能被应用.' + 'coupon-apply-issue' => '优惠券代码不能被应用.', + 'coupon-already-applied' => '優惠券代碼已應用', ], 'success' => [ From 818d56e80fea788e3cc54a73d6f84a28f5ad71c6 Mon Sep 17 00:00:00 2001 From: sanjeev Date: Wed, 13 Jul 2022 13:06:02 +0530 Subject: [PATCH 2/4] coupon status check before apply --- .../src/Http/Controllers/CartController.php | 51 +++++++++++++------ 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/packages/Webkul/Shop/src/Http/Controllers/CartController.php b/packages/Webkul/Shop/src/Http/Controllers/CartController.php index 2288879ef..bcc9e6135 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/CartController.php @@ -173,23 +173,26 @@ class CartController extends Controller try { if (strlen($couponCode)) { - if (Cart::getCart()->coupon_code && Cart::getCart()->coupon_code == $couponCode) { - return response()->json([ - 'success' => false, - 'message' => trans('shop::app.checkout.total.coupon-already-applied'), - ]); - } - - Cart::setCouponCode($couponCode)->collectTotals(); - - if (Cart::getCart()->coupon_code == $couponCode) { - return response()->json([ - 'success' => true, - 'message' => trans('shop::app.checkout.total.success-coupon'), - ]); + $validateStatus = $this->validateCouponStatus($couponCode); + if ($validateStatus) { + if (Cart::getCart()->coupon_code && Cart::getCart()->coupon_code == $couponCode) { + return response()->json([ + 'success' => false, + 'message' => trans('shop::app.checkout.total.coupon-already-applied'), + ]); + } + + Cart::setCouponCode($couponCode)->collectTotals(); + + if (Cart::getCart()->coupon_code == $couponCode) { + return response()->json([ + 'success' => true, + 'message' => trans('shop::app.checkout.total.success-coupon'), + ]); + } } } - + return response()->json([ 'success' => false, 'message' => trans('shop::app.checkout.total.invalid-coupon'), @@ -204,6 +207,24 @@ class CartController extends Controller } } + /** + * Validate coupon code. + * + * @return \Illuminate\Http\Response + */ + public function validateCouponStatus($couponCode) + { + $coupons = $this->cartRuleCouponRepository->where(['code' => $couponCode])->get(); + foreach ($coupons as $coupon) { + $cartRule = $this->cartRuleRepository->where(['id' => $coupon->cart_rule_id])->first(); + if ($cartRule->status) { + return true; + } + } + + return false; + } + /** * Remove applied coupon from the cart. * From 27ed7c9ed1e6c0f12c5076f0fbc56550da50c42d Mon Sep 17 00:00:00 2001 From: sanjeev Date: Sat, 23 Jul 2022 13:38:38 +0530 Subject: [PATCH 3/4] coupon code status check method updated --- .../src/Http/Controllers/CartController.php | 25 +++---------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/packages/Webkul/Shop/src/Http/Controllers/CartController.php b/packages/Webkul/Shop/src/Http/Controllers/CartController.php index bcc9e6135..6869ecc37 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/CartController.php @@ -173,9 +173,10 @@ class CartController extends Controller try { if (strlen($couponCode)) { - $validateStatus = $this->validateCouponStatus($couponCode); - if ($validateStatus) { - if (Cart::getCart()->coupon_code && Cart::getCart()->coupon_code == $couponCode) { + $coupon = $this->cartRuleCouponRepository->findOneByField('code', $couponCode); + + if ($coupon->cart_rule->status) { + if (Cart::getCart()->coupon_code == $couponCode) { return response()->json([ 'success' => false, 'message' => trans('shop::app.checkout.total.coupon-already-applied'), @@ -207,24 +208,6 @@ class CartController extends Controller } } - /** - * Validate coupon code. - * - * @return \Illuminate\Http\Response - */ - public function validateCouponStatus($couponCode) - { - $coupons = $this->cartRuleCouponRepository->where(['code' => $couponCode])->get(); - foreach ($coupons as $coupon) { - $cartRule = $this->cartRuleRepository->where(['id' => $coupon->cart_rule_id])->first(); - if ($cartRule->status) { - return true; - } - } - - return false; - } - /** * Remove applied coupon from the cart. * From ae8b71a93e6cf01380b3f08bdf9c6a7300714b84 Mon Sep 17 00:00:00 2001 From: sanjeev Date: Mon, 25 Jul 2022 15:56:28 +0530 Subject: [PATCH 4/4] repository class added --- packages/Webkul/Shop/src/Http/Controllers/CartController.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/Webkul/Shop/src/Http/Controllers/CartController.php b/packages/Webkul/Shop/src/Http/Controllers/CartController.php index 6869ecc37..0fd2dc78d 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/CartController.php @@ -8,6 +8,7 @@ use Illuminate\Support\Facades\Log; use Webkul\Checkout\Contracts\Cart as CartModel; use Webkul\Customer\Repositories\WishlistRepository; use Webkul\Product\Repositories\ProductRepository; +use Webkul\CartRule\Repositories\CartRuleCouponRepository; class CartController extends Controller { @@ -16,11 +17,13 @@ class CartController extends Controller * * @param \Webkul\Customer\Repositories\CartItemRepository $wishlistRepository * @param \Webkul\Product\Repositories\ProductRepository $productRepository + * @param \Webkul\CartRule\Repositories\CartRuleCouponRepository $cartRuleCouponRepository * @return void */ public function __construct( protected WishlistRepository $wishlistRepository, - protected ProductRepository $productRepository + protected ProductRepository $productRepository, + protected CartRuleCouponRepository $cartRuleCouponRepository ) { $this->middleware('throttle:5,1')->only('applyCoupon');