diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 5c00a1986..bd0058d74 100644 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -96,7 +96,7 @@ class Cart { unset($data['_token']); - //Check if the product is salable + //Check if the product is saleable if(!isset($data['product']) ||!isset($data['quantity'])) { session()->flash('error', trans('shop::app.checkout.cart.integrity.missing_fields')); @@ -171,7 +171,7 @@ class Cart { $cartData['channel_id'] = core()->getCurrentChannel()->id; - // this will auto set the customer id for the cart instances if customer is authenticated + //auth user details else they will be set when the customer is guest if(auth()->guard('customer')->check()) { $cartData['customer_id'] = auth()->guard('customer')->user()->id; @@ -191,7 +191,7 @@ class Cart { if($cart = $this->cart->create($cartData)) { $itemData['parent']['cart_id'] = $cart->id; - if ($data['is_configurable'] == "true") { + if ($this->product->find($id)->type == "configurable") { //parent item entry $itemData['parent']['additional'] = json_encode($data); if($parent = $this->cartItem->create($itemData['parent'])) { @@ -211,7 +211,7 @@ class Cart { return redirect()->back(); } } - } else if($data['is_configurable'] == "false") { + } else if($this->product->find($id)->type != "configurable") { if($result = $this->cartItem->create($itemData['parent'])) { session()->put('cart', $cart); @@ -294,13 +294,13 @@ class Cart { $itemData = $this->prepareItemData($id, $data); if(session()->has('cart')) { - $cart = session()->get('cart'); + $cart = $this->getCart(); $cartItems = $cart->items()->get(); if(isset($cartItems)) { foreach($cartItems as $cartItem) { - if($data['is_configurable'] == "false") { + if($this->product->find($id)->type == "simple") { if($cartItem->product_id == $id) { $prevQty = $cartItem->quantity; @@ -328,7 +328,7 @@ class Cart { return redirect()->back(); } - } else if($data['is_configurable'] == "true") { + } else if($this->product->find($id)->type == "configurable") { if($cartItem->type == "configurable") { $temp = $this->cartItem->findOneByField('parent_id', $cartItem->id); if($temp->product_id == $data['selected_configurable_option']) { @@ -366,7 +366,7 @@ class Cart { } } - if($data['is_configurable'] == "true") { + if($this->product->find($id)->type == "configurable") { $parent = $cart->items()->create($itemData['parent']); $itemData['child']['parent_id'] = $parent->id; @@ -374,7 +374,7 @@ class Cart { // $this->canAddOrUpdate($parent->child->id, $parent->quantity); $cart->items()->create($itemData['child']); - } else if($data['is_configurable'] == "false"){ + } else if($this->product->find($id)->type != "configurable"){ // $this->canAddOrUpdate($parent->id, $parent->quantity); $parent = $cart->items()->create($itemData['parent']); @@ -406,7 +406,7 @@ class Cart { public function update($itemIds) { if(session()->has('cart')) { - $cart = session()->get('cart'); + $cart = $this->getCart(); $items = $cart->items; @@ -446,7 +446,7 @@ class Cart { public function removeItem($itemId) { if(session()->has('cart')) { - $cart = session()->get('cart'); + $cart = $this->getCart(); $items = $cart->items; @@ -666,10 +666,10 @@ class Cart { if(session()->has('cart')) { $cart = $this->cart->findOneByField('customer_id', auth()->guard('customer')->user()->id); - $guestCart = session()->get('cart'); + $guestCart = $this->getCart(); if(!isset($cart)) { - $guestCart->update(['customer_id' => auth()->guard('customer')->user()->id]); + $guestCart->update(['customer_id' => auth()->guard('customer')->user()->id, 'is_guest' => 0]); session()->forget('cart'); diff --git a/packages/Webkul/Checkout/src/Http/ViewComposers/CartComposer.php b/packages/Webkul/Checkout/src/Http/ViewComposers/CartComposer.php deleted file mode 100644 index 5fc83ca5d..000000000 --- a/packages/Webkul/Checkout/src/Http/ViewComposers/CartComposer.php +++ /dev/null @@ -1,96 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CartComposer -{ - - /** - * The cart implementation - * for shop bundle's navigation - * menu - */ - protected $cart; - - /** - * Bind data to the view. - * - * @param View $view - * @return void - */ - public function __construct(CartRepository $cart, CartItemRepository $cartItem, ProductImage $productImage) { - $this->cart = $cart; - - $this->cartItem = $cartItem; - - $this->productImage = $productImage; - } - - public function compose(View $view) { - // session()->forget('cart'); - // return redirect()->back(); - if(auth()->guard('customer')->check()) { - $cart = $this->cart->findOneByField('customer_id', auth()->guard('customer')->user()->id); - - if(isset($cart)) { - $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]; - } - - } - session()->put('cart', $cart); - - $view->with('cart', $products); - } - } else { - if($cart = session()->get('cart')) { - if(isset($cart)) { - $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]; - } - - } - - $view->with('cart', $products); - } - } - } - } -} diff --git a/packages/Webkul/Checkout/src/Http/helpers.php b/packages/Webkul/Checkout/src/Http/helpers.php index adfa358ae..ded8b05f1 100644 --- a/packages/Webkul/Checkout/src/Http/helpers.php +++ b/packages/Webkul/Checkout/src/Http/helpers.php @@ -1,10 +1,10 @@ make(Cart::class); } } ?> \ No newline at end of file diff --git a/packages/Webkul/Checkout/src/Providers/CheckoutServiceProvider.php b/packages/Webkul/Checkout/src/Providers/CheckoutServiceProvider.php index 768a0bd21..95102d9ac 100644 --- a/packages/Webkul/Checkout/src/Providers/CheckoutServiceProvider.php +++ b/packages/Webkul/Checkout/src/Providers/CheckoutServiceProvider.php @@ -23,8 +23,6 @@ class CheckoutServiceProvider extends ServiceProvider $router->aliasMiddleware('admin', RedirectIfNotAdmin::class); $router->aliasMiddleware('customer', RedirectIfNotCustomer::class); - - $this->app->register(ComposerServiceProvider::class); } /** diff --git a/packages/Webkul/Checkout/src/Providers/ComposerServiceProvider.php b/packages/Webkul/Checkout/src/Providers/ComposerServiceProvider.php deleted file mode 100644 index 73007f3fa..000000000 --- a/packages/Webkul/Checkout/src/Providers/ComposerServiceProvider.php +++ /dev/null @@ -1,32 +0,0 @@ - + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ + +class WishlistRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + + function model() + { + return 'Webkul\Customer\Models\Wishlist'; + } + + /** + * @param array $data + * @return mixed + */ + + public function create(array $data) + { + $wishlist = $this->model->create($data); + + return $wishlist; + } + + /** + * @param array $data + * @param $id + * @param string $attribute + * @return mixed + */ + + public function update(array $data, $id, $attribute = "id") + { + $wishlist = $this->find($id); + + $wishlist->update($data); + + return $wishlist; + } +} \ No newline at end of file diff --git a/packages/Webkul/Product/src/Repositories/ProductRepository.php b/packages/Webkul/Product/src/Repositories/ProductRepository.php index 9bbb48d87..1a5b92783 100644 --- a/packages/Webkul/Product/src/Repositories/ProductRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductRepository.php @@ -395,7 +395,7 @@ class ProductRepository extends Repository ])); $params = request()->input(); - + return $this->scopeQuery(function($query){ return $query->distinct()->addSelect('products.*'); })->paginate(isset($params['limit']) ? $params['limit'] : 9, ['products.id']); diff --git a/packages/Webkul/Shop/src/Http/Controllers/CartController.php b/packages/Webkul/Shop/src/Http/Controllers/CartController.php index 4ee3c1194..30f4a4635 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/CartController.php @@ -122,7 +122,6 @@ class CartController extends Controller $data = request()->except('_token'); foreach($data['qty'] as $id => $quantity) { - // dd($id, $quantity); if($quantity <= 0) { session()->flash('warning', trans('shop::app.checkout.cart.quantity.illegal')); @@ -135,5 +134,6 @@ class CartController extends Controller } public function test() { + $result = Cart::isConfigurable(9); } } \ No newline at end of file diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php index cb7277631..fc3373cb7 100644 --- a/packages/Webkul/Shop/src/Http/routes.php +++ b/packages/Webkul/Shop/src/Http/routes.php @@ -10,6 +10,7 @@ Route::group(['middleware' => ['web']], function () { 'view' => 'shop::products.index' ]); + //checkout and cart Route::get('checkout/cart', 'Webkul\Shop\Http\Controllers\CartController@index')->defaults('_config', [ 'view' => 'shop::checkout.cart.index' ])->name('shop.checkout.cart.index'); @@ -25,7 +26,6 @@ Route::group(['middleware' => ['web']], function () { Route::get('/checkout/cart/remove/{id}', 'Webkul\Shop\Http\Controllers\CartController@remove')->defaults('_config',[ 'redirect' => 'shop.checkout.cart.index' ])->name('shop.checkout.cart.remove'); - //Routes for product cart ends Route::get('/checkout/onepage', 'Webkul\Shop\Http\Controllers\OnepageController@index')->defaults('_config', [ 'view' => 'shop::checkout.onepage' @@ -98,6 +98,11 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'customer.session.index' ])->name('customer.session.destroy'); + //wishlist + Route::get('wishlist/add/{id}', 'Webkul\Customer\Http\Controllers\WishlistController@add')->name('customer.wishlist.add'); + + Route::get('wishlist/remove/{id}', 'Webkul\Customer\Http\Controllers\WishlistController@remove')->name('customer.wishlist.remove'); + //customer account Route::prefix('account')->group(function () { @@ -119,12 +124,9 @@ Route::group(['middleware' => ['web']], function () { Route::post('profile/edit', 'Webkul\Customer\Http\Controllers\CustomerController@edit')->defaults('_config', [ 'view' => 'shop::customers.account.profile.edit' ])->name('customer.profile.edit'); - /* Profile Routes Ends Here */ - /* Routes for Addresses */ - Route::get('address/index', 'Webkul\Customer\Http\Controllers\AddressController@index')->defaults('_config', [ 'view' => 'shop::customers.account.address.address' ])->name('customer.address.index'); @@ -162,7 +164,6 @@ Route::group(['middleware' => ['web']], function () { Route::get('reviews', 'Webkul\Customer\Http\Controllers\CustomerController@reviews')->defaults('_config', [ 'view' => 'shop::customers.account.reviews.reviews' ])->name('customer.reviews.index'); - }); }); }); diff --git a/packages/Webkul/Shop/src/Providers/ComposerServiceProvider.php b/packages/Webkul/Shop/src/Providers/ComposerServiceProvider.php index b60018b7a..fb5a97bcc 100644 --- a/packages/Webkul/Shop/src/Providers/ComposerServiceProvider.php +++ b/packages/Webkul/Shop/src/Providers/ComposerServiceProvider.php @@ -5,6 +5,7 @@ namespace Webkul\Shop\Providers; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Blade; use Illuminate\Support\ServiceProvider; +use Webkul\Product\Product\ProductImage; use View; class ComposerServiceProvider extends ServiceProvider 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 3b71c287b..d78c8a394 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 @@ -83,49 +83,75 @@