From 174ab21fa763e0153dc169e2433f0e1b99eb1b2a Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Fri, 21 Sep 2018 18:57:27 +0530 Subject: [PATCH 1/4] Changed the cart to session dependent code only --- packages/Webkul/Cart/src/Cart.php | 40 +++++++++++------------- packages/Webkul/Cart/src/Models/Cart.php | 5 --- packages/Webkul/Core/src/Core.php | 3 +- public/themes/default/assets/js/shop.js | 4 --- 4 files changed, 20 insertions(+), 32 deletions(-) diff --git a/packages/Webkul/Cart/src/Cart.php b/packages/Webkul/Cart/src/Cart.php index a91dc12b6..d5b2a571a 100644 --- a/packages/Webkul/Cart/src/Cart.php +++ b/packages/Webkul/Cart/src/Cart.php @@ -27,18 +27,18 @@ use Cookie; class Cart { - protected $cart; + protected $cart; //item repository instance - protected $cartItem; + protected $cartItem; //cart item repository instance - protected $customer; + protected $customer; //customer repository instance - //Cookie expiry limit in minutes - protected $minutes; + protected $product; //product repository instance - protected $product; - - public function __construct(CartRepository $cart, CartItemRepository $cartItem, CustomerRepository $customer, $minutes = 150, ProductRepository $product) { + public function __construct(CartRepository $cart, + CartItemRepository $cartItem, + CustomerRepository $customer, + ProductRepository $product) { $this->customer = $customer; @@ -46,8 +46,6 @@ class Cart { $this->cartItem = $cartItem; - $this->minutes = $minutes; - $this->product = $product; } @@ -58,22 +56,20 @@ class Cart { * * @return mixed */ - public function createNewCart($id, $data) { - $cartData['channel_id'] = core()->getCurrentChannel()->id; if(auth()->guard('customer')->check()) { $data['customer_id'] = auth()->guard('customer')->user()->id; - $cartData['customer_full_name'] = auth()->guard('customer')->first_name .' '. auth()->guard('customer')->last_name; + $cartData['customer_full_name'] = auth()->guard('customer')->user()->first_name .' '. auth()->guard('customer')->user()->last_name; } if($cart = $this->cart->create($cartData)) { - + $data['cart_id'] = $cart->id; $data['product_id'] = $id; - if($result = $cart->items()->create($data)) { + if($result = $this->cartItem->create($data)) { session()->put('cart', $cart); session()->flash('success', 'Item Added To Cart Successfully'); @@ -94,13 +90,16 @@ class Cart { public function add($id, $data) { + // session()->forget('cart'); + + // return redirect()->back(); + if(session()->has('cart')) { $cart = session()->get('cart'); - $cartItems = $cart->items; + $cartItems = $cart->items()->get(); if(isset($cartItems)) { - foreach($cartItems as $cartItem) { if($cartItem->product_id == $id) { $prevQty = $cartItem->quantity; @@ -151,7 +150,6 @@ class Cart { * with the existing data of cart * in the cart tables; */ - public function mergeCart() { if(session()->has('cart')) { $cart = session()->get('cart'); @@ -168,7 +166,7 @@ class Cart { foreach($cartItems as $key => $cartItem) { - if($cartItem->product_id == $customerCartItem->id) { + if($cartItem->product_id == $customerCartItem->product_id) { $customerItemQuantity = $customerCartItem->quantity; @@ -176,9 +174,9 @@ class Cart { $customerCartItem->update(['cart_id' => $customerCart->id, 'quantity' => $cartItemQuantity + $customerItemQuantity]); - $cartItem->destroy(); + $this->cartItem->delete($cartItem->id); - unset($cartItems[$key]); + $cartItems->forget($key); } } } diff --git a/packages/Webkul/Cart/src/Models/Cart.php b/packages/Webkul/Cart/src/Models/Cart.php index eb1d92950..734897522 100644 --- a/packages/Webkul/Cart/src/Models/Cart.php +++ b/packages/Webkul/Cart/src/Models/Cart.php @@ -15,11 +15,6 @@ class Cart extends Model protected $hidden = ['coupon_code']; - public function with_products() { - - return $this->belongsToMany(Product::class, 'cart_items')->withPivot('id', 'product_id','quantity', 'cart_id'); - } - public function items() { return $this->hasMany('Webkul\Cart\Models\CartItem'); } diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php index 0b5d36e49..4457259e3 100644 --- a/packages/Webkul/Core/src/Core.php +++ b/packages/Webkul/Core/src/Core.php @@ -140,8 +140,7 @@ class Core $channel = $this->getCurrentChannel(); - $currencyCode = $channel->base_currency->code; - // $currencyCode = $channel->base_currency; + $currencyCode = $channel->base_currency; return currency($price, $currencyCode); } diff --git a/public/themes/default/assets/js/shop.js b/public/themes/default/assets/js/shop.js index f41490317..f5c835848 100644 --- a/public/themes/default/assets/js/shop.js +++ b/public/themes/default/assets/js/shop.js @@ -31659,10 +31659,6 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); initializeDropdown: function initializeDropdown() { this.totalitems = this.items.length; this.cart_items = this.items; -<<<<<<< HEAD -======= - console.log("The cart items here are = ", this.cart_items); ->>>>>>> 4c89e334f5b115301c5fbd345b50cb61b3c7d089 } } }); From e37bfabda7cc6f59114ad96a468baaf105ea2784 Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Fri, 21 Sep 2018 20:02:36 +0530 Subject: [PATCH 2/4] Inventory source check done --- .../src/Http/Controllers/CartController.php | 34 ++++++++++++++----- .../Product/src/Models/ProductInventory.php | 12 +++++++ 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/packages/Webkul/Cart/src/Http/Controllers/CartController.php b/packages/Webkul/Cart/src/Http/Controllers/CartController.php index cc77f47c9..c3ee9ee9f 100644 --- a/packages/Webkul/Cart/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Cart/src/Http/Controllers/CartController.php @@ -107,7 +107,7 @@ class CartController extends Controller * @return Array */ public function test() { - $cart = $this->cart->findOneByField('id', 110); + $cart = $this->cart->findOneByField('id', 144); $items = $cart->items; @@ -120,15 +120,33 @@ class CartController extends Controller foreach($items as $item) { $inventories = $item->product->inventories; - foreach($inventories as $inventory) { - $totalQty = $totalQty + $inventory->qty; + $inventory_sources = $item->product->inventory_sources; + + $totalQty = 0; + foreach($inventory_sources as $inventory_source) { + + if($inventory_source->status!=0) { + foreach($inventories as $inventory) { + $totalQty = $totalQty + $inventory->qty; + } + + array_push($allProdQty1, $totalQty); + + $allProdQty[$item->product->id] = $totalQty; + } + + } + } + + dd($allProdQty); + + foreach ($items as $item) { + $inventories = $item->product->inventory_sources->where('status', '=', '1'); + + foreach($inventories as $inventory) { + dump($inventory->status); } - - array_push($allProdQty1, $totalQty); - - $allProdQty[$item->product->id] = $totalQty; } - dd($allProdQty, $allProdQty1); } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Models/ProductInventory.php b/packages/Webkul/Product/src/Models/ProductInventory.php index 582bdfc24..cb503f8c9 100644 --- a/packages/Webkul/Product/src/Models/ProductInventory.php +++ b/packages/Webkul/Product/src/Models/ProductInventory.php @@ -9,4 +9,16 @@ class ProductInventory extends Model public $timestamps = false; protected $fillable = ['qty', 'product_id', 'inventory_source_id']; + + /** + * Use by cart for + * checking the + * inventory source + * status + * + * @return Collection + */ + // public function checkInventoryStatus() { + // return $this->leftjoin('inventory_sources', 'inventory_sources.id', 'inventory_source_id')->select('status')->where('status', '=','1'); + // } } \ No newline at end of file From c8f67009b188927164f54e5bd42f707dc02ae818 Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Sat, 22 Sep 2018 14:01:18 +0530 Subject: [PATCH 3/4] Cart Inventories now pulling up item count using inventory sources status --- packages/Webkul/Cart/src/Cart.php | 72 ++++++++----------- .../src/Http/Controllers/CartController.php | 12 ++-- .../src/Http/ViewComposers/CartComposer.php | 8 +-- .../Controllers/RegistrationController.php | 25 ++++--- .../views/customers/signup/index.blade.php | 10 +-- 5 files changed, 62 insertions(+), 65 deletions(-) diff --git a/packages/Webkul/Cart/src/Cart.php b/packages/Webkul/Cart/src/Cart.php index d5b2a571a..094ca5330 100644 --- a/packages/Webkul/Cart/src/Cart.php +++ b/packages/Webkul/Cart/src/Cart.php @@ -4,14 +4,11 @@ namespace Webkul\Cart; use Carbon\Carbon; -//Cart repositories use Webkul\Cart\Repositories\CartRepository; use Webkul\Cart\Repositories\CartItemRepository; -//Customer repositories use Webkul\Customer\Repositories\CustomerRepository; -//Product Repository use Webkul\Product\Repositories\ProductRepository; use Cookie; @@ -24,12 +21,11 @@ use Cookie; * @author Prashant Singh * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ - class Cart { - protected $cart; //item repository instance + protected $cart; //cart repository instance - protected $cartItem; //cart item repository instance + protected $cartItem; //cart_item repository instance protected $customer; //customer repository instance @@ -50,17 +46,20 @@ class Cart { } /** - * Create New Cart - * Cart, Cookie & - * Session. + * Create new cart + * instance with the + * current item added. * - * @return mixed - */ + * @param @id + * @param $data + * + * @return Mixed + */ public function createNewCart($id, $data) { $cartData['channel_id'] = core()->getCurrentChannel()->id; if(auth()->guard('customer')->check()) { - $data['customer_id'] = auth()->guard('customer')->user()->id; + $cartData['customer_id'] = auth()->guard('customer')->user()->id; $cartData['customer_full_name'] = auth()->guard('customer')->user()->first_name .' '. auth()->guard('customer')->user()->last_name; } @@ -82,18 +81,18 @@ class Cart { return redirect()->back(); } - /* - handle the after login event for the customers - when their are pruoducts in the session or cookie - of the logged in user. - */ - + /** + * Add Items in a + * cart with some + * cart and item + * details. + * + * @param @id + * @param $data + * + * @return Mixed + */ public function add($id, $data) { - - // session()->forget('cart'); - - // return redirect()->back(); - if(session()->has('cart')) { $cart = session()->get('cart'); @@ -145,11 +144,13 @@ class Cart { } /** - * Function to handle merge - * and sync the cookies products - * with the existing data of cart - * in the cart tables; - */ + * This function handles + * when guest has some of + * cart products and then + * logs in. + * + * @return Redirect + */ public function mergeCart() { if(session()->has('cart')) { $cart = session()->get('cart'); @@ -200,19 +201,4 @@ class Cart { return redirect()->back(); } } - - /** - * Destroys the session - * maintained for cart - * on customer logout. - * - * @return Mixed - */ - public function destroyCart() { - if(session()->has('cart')) { - session()->forget('cart'); - - return redirect()->back(); - } - } } \ No newline at end of file diff --git a/packages/Webkul/Cart/src/Http/Controllers/CartController.php b/packages/Webkul/Cart/src/Http/Controllers/CartController.php index c3ee9ee9f..5b77c35d4 100644 --- a/packages/Webkul/Cart/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Cart/src/Http/Controllers/CartController.php @@ -100,13 +100,14 @@ class CartController extends Controller } /** - * This is a test for - * relationship existence - * from cart item to product + * This method will return + * the quantities from + * inventory sources whose + * status are not false. * * @return Array */ - public function test() { + public function canAddOrUpdate() { $cart = $this->cart->findOneByField('id', 144); $items = $cart->items; @@ -147,6 +148,9 @@ class CartController extends Controller dump($inventory->status); } } + } + + public function test() { } } \ No newline at end of file diff --git a/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php b/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php index 210e95017..372f40d14 100644 --- a/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php +++ b/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php @@ -9,8 +9,6 @@ use Webkul\Cart\Repositories\CartRepository; use Webkul\Cart\Repositories\CartItemRepository; - -use Cookie; use Cart; /** * cart List Composer on Navigation Menu @@ -57,11 +55,11 @@ class CartComposer $view->with('cart', $cart_products); } } else { - if(Cookie::has('cart_session_id')) { - $cart = $this->cart->findOneByField('session_id', Cookie::get('cart_session_id')); + if(session()->has('cart')) { + $cart = session()->get('cart'); if(isset($cart)) { - $cart_items = $this->cart->items($cart['id']); + $cartItems = $this->cart->items($cart['id']); $cart_products = array(); diff --git a/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php b/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php index 67ea8ba65..656bb73fc 100644 --- a/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php @@ -31,7 +31,10 @@ class RegistrationController extends Controller } /** - * For showing the registration form + * Opens up the + * user's sign up + * form. + * * @return view */ public function show() @@ -40,9 +43,11 @@ class RegistrationController extends Controller } /** - * For collecting the registration - * data from the registraion form - * @return view + * Method to store + * user's sign up + * form data to DB + * + * @return Mixed */ public function create(Request $request) { @@ -52,13 +57,17 @@ class RegistrationController extends Controller 'first_name' => 'string|required', 'last_name' => 'string|required', 'email' => 'email|required', - 'password' => 'confirmed|min:6|required' - + 'password' => 'confirmed|min:6|required', + 'agreement' => 'confirmed' ]); - $registrationData = $request->except('_token'); + $data = request()->input(); - if ($this->customer->create($registrationData)) { + $data['password'] = bcrypt($data['password']); + + // $registrationData = $request->except('_token'); + + if ($this->customer->create($data)) { session()->flash('success', 'Account created successfully.'); diff --git a/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php index ecc0e4564..21c916675 100644 --- a/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/signup/index.blade.php @@ -18,31 +18,31 @@
- + @{{ errors.first('first_name') }}
- + @{{ errors.first('last_name') }}
- + @{{ errors.first('email') }}
- + @{{ errors.first('password') }}
- + @{{ errors.first('confirm_password') }}
From d99ef7eb9f2f19e1eb48f3e48fafc4bb4c87dcaf Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Mon, 24 Sep 2018 17:35:09 +0530 Subject: [PATCH 4/4] Cart Page Design Changes to be performed --- packages/Webkul/Cart/src/Cart.php | 25 ++++- .../src/Http/Controllers/CartController.php | 97 ++++++++++++++++++- .../src/Http/ViewComposers/CartComposer.php | 49 +++++++--- packages/Webkul/Shop/src/Http/routes.php | 4 + .../assets/js/components/cart-dropdown.vue | 56 ++++++++--- .../Shop/src/Resources/assets/sass/app.scss | 15 +-- .../{product => }/cart/compare.blade.php | 0 .../{product/cart => }/cart/index.blade.php | 90 ++++++++--------- .../store/product/cart/sharelinks.blade.php | 0 public/themes/default/assets/css/shop.css | 5 +- public/themes/default/assets/js/shop.js | 78 +++++++++------ 11 files changed, 303 insertions(+), 116 deletions(-) rename packages/Webkul/Shop/src/Resources/views/store/{product => }/cart/compare.blade.php (100%) rename packages/Webkul/Shop/src/Resources/views/store/{product/cart => }/cart/index.blade.php (79%) delete mode 100644 packages/Webkul/Shop/src/Resources/views/store/product/cart/sharelinks.blade.php diff --git a/packages/Webkul/Cart/src/Cart.php b/packages/Webkul/Cart/src/Cart.php index 094ca5330..21ef0a103 100644 --- a/packages/Webkul/Cart/src/Cart.php +++ b/packages/Webkul/Cart/src/Cart.php @@ -50,8 +50,8 @@ class Cart { * instance with the * current item added. * - * @param @id - * @param $data + * @param Integer $id + * @param Mixed $data * * @return Mixed */ @@ -68,6 +68,14 @@ class Cart { $data['cart_id'] = $cart->id; $data['product_id'] = $id; + if ($data['is_configurable'] == "true") { + $temp = $data['super_attribute']; + + unset($data['super_attribute']); + + $data['additional'] = json_encode($temp); + } + if($result = $this->cartItem->create($data)) { session()->put('cart', $cart); @@ -93,6 +101,10 @@ class Cart { * @return Mixed */ public function add($id, $data) { + + // session()->forget('cart'); + // return redirect()->back(); + if(session()->has('cart')) { $cart = session()->get('cart'); @@ -117,6 +129,14 @@ class Cart { $data['product_id'] = $id; + if ($data['is_configurable'] == "true") { + $temp = $data['super_attribute']; + + unset($data['super_attribute']); + + $data['additional'] = json_encode($temp); + } + $cart->items()->create($data); session()->flash('success', 'Item Successfully Added To Cart'); @@ -136,6 +156,7 @@ class Cart { * use detach to remove the * current product from cart tables * + * @param Integer $id * @return Mixed */ public function remove($id) { diff --git a/packages/Webkul/Cart/src/Http/Controllers/CartController.php b/packages/Webkul/Cart/src/Http/Controllers/CartController.php index 5b77c35d4..a27596180 100644 --- a/packages/Webkul/Cart/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Cart/src/Http/Controllers/CartController.php @@ -5,16 +5,16 @@ namespace Webkul\Cart\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; -//Cart repositories use Webkul\Cart\Repositories\CartRepository; use Webkul\Cart\Repositories\CartItemRepository; -//Product Repository use Webkul\Product\Repositories\ProductRepository; -//Customer repositories use Webkul\Customer\Repositories\CustomerRepository; +use Webkul\Product\Product\ProductImage; +use Webkul\Product\Product\View as ProductView; + use Cart; use Cookie; @@ -45,7 +45,9 @@ class CartController extends Controller protected $product; - public function __construct(CartRepository $cart, CartItemRepository $cartItem, CustomerRepository $customer, ProductRepository $product) { + protected $productView; + + public function __construct(CartRepository $cart, CartItemRepository $cartItem, CustomerRepository $customer, ProductRepository $product, ProductImage $productImage, ProductView $productView) { $this->middleware('customer')->except(['add', 'remove', 'test']); @@ -56,6 +58,12 @@ class CartController extends Controller $this->cartItem = $cartItem; $this->product = $product; + + $this->productImage = $productImage; + + $this->productView = $productView; + + $this->_config = request('_config'); } /** @@ -99,6 +107,67 @@ class CartController extends Controller return redirect()->back(); } + /** + * Method to populate + * the cart page which + * will be populated + * before the checkout + * process. + * + * @return Mixed + */ + public function beforeCheckout() { + if(auth()->guard('customer')->check()) { + $cart = $this->cart->findOneByField('customer_id', auth()->guard('customer')->user()->id); + + if(isset($cart)) { + $cart = $this->cart->findOneByField('id', 144); + + $cartItems = $this->cart->items($cart['id']); + + $products = array(); + + foreach($cartItems as $cartItem) { + $image = $this->productImage->getGalleryImages($cartItem->product); + + if(isset($image[0]['small_image_url'])) { + $products[$cartItem->product->id] = [$cartItem->product->name, $cartItem->price, $image[0]['small_image_url'], $cartItem->quantity]; + } + else { + $products[$cartItem->product->id] = [$cartItem->product->name, $cartItem->price, 'null', $cartItem->quantity]; + } + + } + } + } else { + if(session()->has('cart')) { + $cart = session()->get('cart'); + + if(isset($cart)) { + $cart = $this->cart->findOneByField('id', 144); + + $cartItems = $this->cart->items($cart['id']); + + $products = array(); + + foreach($cartItems as $cartItem) { + $image = $this->productImage->getGalleryImages($cartItem->product); + + if(isset($image[0]['small_image_url'])) { + $products[$cartItem->product->id] = [$cartItem->product->name, $cartItem->price, $image[0]['small_image_url'], $cartItem->quantity]; + } + else { + $products[$cartItem->product->id] = [$cartItem->product->name, $cartItem->price, 'null', $cartItem->quantity]; + } + + } + } + } + } + + return view($this->_config['view'])->with('products', $products); + } + /** * This method will return * the quantities from @@ -151,6 +220,26 @@ class CartController extends Controller } public function test() { + $cart = $this->cart->findOneByField('id', 144); + $cartItems = $this->cart->items($cart['id']); + + $products = array(); + + foreach($cartItems as $cartItem) { + $image = $this->productImage->getGalleryImages($cartItem->product); + + dump($cartItem->product); + + if(isset($image[0]['small_image_url'])) { + $products[$cartItem->product->id] = [$cartItem->product->name, $cartItem->price, $image[0]['small_image_url'], $cartItem->quantity]; + } + else { + $products[$cartItem->product->id] = [$cartItem->product->name, $cartItem->price, 'null', $cartItem->quantity]; + } + + } + + dd($products); } } \ No newline at end of file diff --git a/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php b/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php index 372f40d14..d1e88dfbe 100644 --- a/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php +++ b/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php @@ -6,17 +6,19 @@ use Illuminate\View\View; use Illuminate\Support\Collection; use Webkul\Cart\Repositories\CartRepository; - use Webkul\Cart\Repositories\CartItemRepository; +//Product Image Helper Class +use Webkul\Product\Product\ProductImage; + use Cart; + /** * cart List Composer on Navigation Menu * * @author Prashant Singh * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ - class CartComposer { @@ -33,10 +35,12 @@ class CartComposer * @param View $view * @return void */ - public function __construct(CartRepository $cart, CartItemRepository $cartItem) { + public function __construct(CartRepository $cart, CartItemRepository $cartItem, ProductImage $productImage) { $this->cart = $cart; $this->cartItem = $cartItem; + + $this->productImage = $productImage; } public function compose(View $view) { @@ -44,30 +48,51 @@ class CartComposer $cart = $this->cart->findOneByField('customer_id', auth()->guard('customer')->user()->id); if(isset($cart)) { - $cart_items = $this->cart->items($cart['id']); + $cart = $this->cart->findOneByField('id', 144); - $cart_products = array(); + $cartItems = $this->cart->items($cart['id']); + + $products = array(); + + foreach($cartItems as $cartItem) { + $image = $this->productImage->getGalleryImages($cartItem->product); + + if(isset($image[0]['small_image_url'])) { + $products[$cartItem->product->id] = [$cartItem->product->name, $cartItem->price, $image[0]['small_image_url'], $cartItem->quantity]; + } + else { + $products[$cartItem->product->id] = [$cartItem->product->name, $cartItem->price, 'null', $cartItem->quantity]; + } - foreach($cart_items as $cart_item) { - array_push($cart_products, $this->cartItem->getProduct($cart_item->id)); } + session()->put('cart', $cart); - $view->with('cart', $cart_products); + $view->with('cart', $products); } } else { if(session()->has('cart')) { $cart = session()->get('cart'); if(isset($cart)) { + $cart = $this->cart->findOneByField('id', 144); + $cartItems = $this->cart->items($cart['id']); - $cart_products = array(); + $products = array(); + + foreach($cartItems as $cartItem) { + $image = $this->productImage->getGalleryImages($cartItem->product); + + if(isset($image[0]['small_image_url'])) { + $products[$cartItem->product->id] = [$cartItem->product->name, $cartItem->price, $image[0]['small_image_url'], $cartItem->quantity]; + } + else { + $products[$cartItem->product->id] = [$cartItem->product->name, $cartItem->price, 'null', $cartItem->quantity]; + } - foreach($cart_items as $cart_item) { - array_push($cart_products, $this->cartItem->getProduct($cart_item->id)); } - $view->with('cart', $cart_products); + $view->with('cart', $products); } } } diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php index d8da68161..6fb7371e1 100644 --- a/packages/Webkul/Shop/src/Http/routes.php +++ b/packages/Webkul/Shop/src/Http/routes.php @@ -16,6 +16,10 @@ Route::group(['middleware' => ['web']], function () { Route::get('test', 'Webkul\Cart\Http\Controllers\CartController@test'); + Route::get('cart', 'Webkul\Cart\Http\Controllers\CartController@beforeCheckout')->defaults('_config', [ + 'view' => 'shop::store.cart.index' + ]); + Route::post('/checkout/save-address', 'Webkul\Cart\Http\Controllers\CheckoutController@saveAddress')->name('shop.checkout.save-address'); Route::post('/checkout/save-shipping', 'Webkul\Cart\Http\Controllers\CheckoutController@saveShipping')->name('shop.checkout.save-shipping'); diff --git a/packages/Webkul/Shop/src/Resources/assets/js/components/cart-dropdown.vue b/packages/Webkul/Shop/src/Resources/assets/js/components/cart-dropdown.vue index bea9aa806..d9f8b74ba 100644 --- a/packages/Webkul/Shop/src/Resources/assets/js/components/cart-dropdown.vue +++ b/packages/Webkul/Shop/src/Resources/assets/js/components/cart-dropdown.vue @@ -11,19 +11,22 @@