From 70c47f44a95f7b681a9183f12cadb4e5184c5db3 Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 18 Oct 2018 15:01:19 +0530 Subject: [PATCH 1/2] Fixed cart issues --- packages/Webkul/Checkout/src/Cart.php | 13 -- .../src/Http/Controllers/CartController.php | 8 +- .../Webkul/Shop/src/Resources/lang/en/app.php | 3 +- .../views/checkout/cart/mini-cart.blade.php | 92 ++++++++++++++ .../views/checkout/total/summary.blade.php | 6 +- .../views/layouts/header/index.blade.php | 115 ++---------------- 6 files changed, 114 insertions(+), 123 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 4128e88ca..ae14b98ee 100644 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -161,7 +161,6 @@ class Cart { */ public function add($id, $data) { - $itemData = $this->prepareItemData($id, $data); if(!$itemData) { @@ -196,8 +195,6 @@ class Cart { 'base_total' => $cartItem->price * ($prevQty + $newQty) ]); - $this->collectTotals(); - session()->flash('success', trans('shop::app.checkout.cart.quantity.success')); return true; @@ -248,8 +245,6 @@ class Cart { $parent = $cart->items()->create($itemData['parent']); } - $this->collectTotals(); - session()->flash('success', trans('shop::app.checkout.cart.item.success')); return $cart; @@ -323,8 +318,6 @@ class Cart { session()->flash('success', trans('shop::app.checkout.cart.item.success')); - $this->collectTotals(); - return $cart; } } @@ -334,8 +327,6 @@ class Cart { session()->flash('success', trans('shop::app.checkout.cart.item.success')); - $this->collectTotals(); - return $cart; } } @@ -493,8 +484,6 @@ class Cart { } $item->update(['quantity' => $quantity]); - - $this->collectTotals(); } } } @@ -515,8 +504,6 @@ class Cart { if($cart = $this->getCart()) { $this->cartItem->delete($itemId); - $this->collectTotals(); - //delete the cart instance if no items are there if($cart->items()->get()->count() == 0) { $this->cart->delete($cart->id); diff --git a/packages/Webkul/Shop/src/Http/Controllers/CartController.php b/packages/Webkul/Shop/src/Http/Controllers/CartController.php index 542b35e02..136e93254 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/CartController.php @@ -88,9 +88,11 @@ class CartController extends Controller public function add($id) { $data = request()->input(); - // dd($data); + Cart::add($id, $data); + Cart::collectTotals(); + return redirect()->back(); } @@ -102,6 +104,8 @@ class CartController extends Controller public function remove($itemId) { Cart::removeItem($itemId); + Cart::collectTotals(); + return redirect()->back(); } @@ -123,6 +127,8 @@ class CartController extends Controller Cart::update($data); + Cart::collectTotals(); + return redirect()->back(); } diff --git a/packages/Webkul/Shop/src/Resources/lang/en/app.php b/packages/Webkul/Shop/src/Resources/lang/en/app.php index eba7c0777..973b47420 100644 --- a/packages/Webkul/Shop/src/Resources/lang/en/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/en/app.php @@ -241,7 +241,8 @@ return [ 'success_remove' => 'Item removed successfully', 'error_add' => 'Item cannot be added to cart', ], - 'quantity-error' => 'Requested quantity is not available.' + 'quantity-error' => 'Requested quantity is not available.', + 'cart-subtotal' => 'Cart Subtotal' ], 'onepage' => [ diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php index e69de29bb..0a59b9b9c 100644 --- a/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php @@ -0,0 +1,92 @@ +@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage') + +getCart(); ?> + +@if($cart) + items; ?> + + + + + +@else + + +@endif \ No newline at end of file diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php index 65d200ef8..d1cefc985 100644 --- a/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php @@ -3,11 +3,7 @@
diff --git a/packages/Webkul/Shop/src/Resources/views/layouts/header/index.blade.php b/packages/Webkul/Shop/src/Resources/views/layouts/header/index.blade.php index 0136b76a3..b36efd796 100644 --- a/packages/Webkul/Shop/src/Resources/views/layouts/header/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/layouts/header/index.blade.php @@ -100,108 +100,13 @@ @@ -263,14 +168,18 @@ From 1d5e1f5a2111af192127e93c508de0c1660cb492 Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 18 Oct 2018 15:21:08 +0530 Subject: [PATCH 2/2] Cart issues fixed --- .../views/settings/exchange_rates/edit.blade.php | 6 +++--- ...054542_create_currency_exchange_rates_table.php | 2 +- .../Http/Controllers/ExchangeRateController.php | 6 +++--- .../Resources/views/checkout/cart/index.blade.php | 14 +++++++++----- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/edit.blade.php index ca1f3620b..786d65b5c 100644 --- a/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/edit.blade.php @@ -61,9 +61,9 @@ -
- - @{{ errors.first('ratio') }} +
+ + @{{ errors.first('rate') }}
diff --git a/packages/Webkul/Core/src/Database/Migrations/2018_07_20_054542_create_currency_exchange_rates_table.php b/packages/Webkul/Core/src/Database/Migrations/2018_07_20_054542_create_currency_exchange_rates_table.php index 420fb7a93..83764e3a9 100644 --- a/packages/Webkul/Core/src/Database/Migrations/2018_07_20_054542_create_currency_exchange_rates_table.php +++ b/packages/Webkul/Core/src/Database/Migrations/2018_07_20_054542_create_currency_exchange_rates_table.php @@ -17,7 +17,7 @@ class CreateCurrencyExchangeRatesTable extends Migration $table->increments('id'); $table->decimal('rate', 10, 5); - $table->integer('target_currency')->unsigned(); + $table->integer('target_currency')->unique()->unsigned(); $table->foreign('target_currency')->references('id')->on('currencies')->onDelete('cascade'); $table->timestamps(); }); diff --git a/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php b/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php index 11e8ab49b..37f6884ab 100644 --- a/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php +++ b/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php @@ -85,7 +85,7 @@ class ExchangeRateController extends Controller public function store(Request $request) { $this->validate(request(), [ - 'target_currency' => 'required', + 'target_currency' => ['required', 'unique:currency_exchange_rates,target_currency'], 'rate' => 'required|numeric' ]); @@ -121,8 +121,8 @@ class ExchangeRateController extends Controller public function update(Request $request, $id) { $this->validate(request(), [ - 'target_currency' => 'required', - 'ratio' => 'required|numeric' + 'target_currency' => ['required', 'unique:currency_exchange_rates,target_currency,' . $id], + 'rate' => 'required|numeric' ]); $this->exchangeRate->update(request()->all(), $id); diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/cart/index.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/cart/index.blade.php index f8b072085..f479b461c 100644 --- a/packages/Webkul/Shop/src/Resources/views/checkout/cart/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/cart/index.blade.php @@ -28,26 +28,30 @@ @foreach($cart->items as $item) product; - $productBaseImage = $productImageHelper->getProductBaseImage($product); + if($item->type == "configurable") + $productBaseImage = $productImageHelper->getProductBaseImage($item->child->product); + else + $productBaseImage = $productImageHelper->getProductBaseImage($item->product); ?>
- +
{{ core()->currency($item->base_price) }}
- @if ($product->type == 'configurable') + @if ($item->type == 'configurable')