From 5deb1ddc7698159cc4f4aa21986541cba0d99874 Mon Sep 17 00:00:00 2001 From: jitendra Date: Tue, 12 Jul 2022 11:18:58 +0530 Subject: [PATCH] Fixed duplicate query issue for cart --- packages/Webkul/Checkout/src/Cart.php | 18 ++++++++++-------- .../src/Providers/CheckoutServiceProvider.php | 4 ---- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 85198b8d6..62428adb8 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -65,7 +65,9 @@ class Cart { $this->getCart(); - $this->removeInactiveItems(); + if ($this->cart) { + $this->removeInactiveItems(); + } } /** @@ -154,9 +156,9 @@ class Cart return ['warning' => __('shop::app.checkout.cart.item.error-add')]; } - $product = $this->productRepository->findOneByField('id', $productId); + $product = $this->productRepository->find($productId); - if ($product->status === 0) { + if (! $product->status) { return ['info' => __('shop::app.checkout.cart.item.inactive-add')]; } @@ -363,9 +365,7 @@ class Cart */ private function removeInactiveItems() { - if (! $cart = $this->getCart()) { - return; - } + $cart = $this->getCart(); foreach ($cart->items as $item) { if ($this->isCartItemInactive($item)) { @@ -591,7 +591,9 @@ class Cart return false; } - if (count($cart->items) === 0) { + $cartItems = $cart->items()->get(); + + if (count($cartItems) === 0) { $this->removeCart($cart); return false; @@ -599,7 +601,7 @@ class Cart $isInvalid = false; - foreach ($cart->items()->get() as $item) { + foreach ($cartItems as $item) { $validationResult = $item->product->getTypeInstance()->validateCartItem($item); if ($validationResult->isItemInactive()) { diff --git a/packages/Webkul/Checkout/src/Providers/CheckoutServiceProvider.php b/packages/Webkul/Checkout/src/Providers/CheckoutServiceProvider.php index 408ac0860..951c86c0b 100755 --- a/packages/Webkul/Checkout/src/Providers/CheckoutServiceProvider.php +++ b/packages/Webkul/Checkout/src/Providers/CheckoutServiceProvider.php @@ -45,10 +45,6 @@ class CheckoutServiceProvider extends ServiceProvider $loader->alias('cart', Cart::class); - $this->app->singleton('cart', function () { - return new Cart(); - }); - $this->app->singleton('cart', \Webkul\Checkout\Cart::class); } }