From 40e04abddfb13f83634481ced95555c3f38709d7 Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Mon, 10 Sep 2018 15:01:34 +0530 Subject: [PATCH] On the new origin --- composer.json | 3 +- .../views/users/users/index.blade.php | 1 + packages/Webkul/Cart/.gitignore | 1 + packages/Webkul/Cart/composer.json | 9 +- ..._05_150915_create_cart_products_table.php} | 4 +- .../src/Http/Controllers/CartController.php | 229 +++++++++++++++- .../Cart/src/Http/Controllers/Controller.php | 13 + packages/Webkul/Cart/src/Models/Cart.php | 10 +- .../Models/{CartItems.php => CartProduct.php} | 5 +- .../src/Providers/CartServiceProvider.php | 6 +- ...pository.php => CartProductRepository.php} | 4 +- .../Cart/src/Repositories/CartRepository.php | 5 + packages/Webkul/Core/src/Core.php | 3 +- .../Http/Controllers/AccountController.php | 1 + .../Http/Controllers/SessionController.php | 9 +- .../Webkul/Product/src/Models/Product.php | 2 + packages/Webkul/Shop/src/Http/routes.php | 15 +- .../src/Providers/ComposerServiceProvider.php | 2 +- .../Shop/src/Resources/assets/sass/app.scss | 245 +++++++++--------- .../views/home/new-products.blade.php | 1 - .../Resources/views/layouts/footer.blade.php | 8 +- .../views/layouts/header/index.blade.php | 2 +- .../Resources/views/layouts/master.blade.php | 2 +- .../Resources/views/products/index.blade.php | 10 +- .../Resources/views/products/view.blade.php | 78 +++++- .../views/products/view/attributes.blade.php | 2 +- .../views/products/view/gallery.blade.php | 43 ++- .../Webkul/Ui/src/DataGrid/ProductGrid.php | 2 +- public/themes/default/assets/css/shop.css | 237 +++++------------ 29 files changed, 603 insertions(+), 349 deletions(-) create mode 100644 packages/Webkul/Cart/.gitignore rename packages/Webkul/Cart/src/Database/migrations/{2018_09_05_150915_create_cart_items_table.php => 2018_09_05_150915_create_cart_products_table.php} (89%) create mode 100644 packages/Webkul/Cart/src/Http/Controllers/Controller.php rename packages/Webkul/Cart/src/Models/{CartItems.php => CartProduct.php} (55%) rename packages/Webkul/Cart/src/Repositories/{CartItemsRepository.php => CartProductRepository.php} (89%) diff --git a/composer.json b/composer.json index beb84f01f..7d5185860 100644 --- a/composer.json +++ b/composer.json @@ -37,7 +37,8 @@ "webkul/laravel-category": "self.version", "webkul/laravel-product": "self.version", "webkul/laravel-shop": "self.version", - "webkul/laravel-theme": "self.version" + "webkul/laravel-theme": "self.version", + "webkul/laravel-cart": "self.version" }, "autoload": { "classmap": [ diff --git a/packages/Webkul/Admin/src/Resources/views/users/users/index.blade.php b/packages/Webkul/Admin/src/Resources/views/users/users/index.blade.php index d972647e2..fc4a1d6c3 100644 --- a/packages/Webkul/Admin/src/Resources/views/users/users/index.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/users/users/index.blade.php @@ -2,6 +2,7 @@ @section('page_title') +@endsection @stop @section('content') diff --git a/packages/Webkul/Cart/.gitignore b/packages/Webkul/Cart/.gitignore new file mode 100644 index 000000000..30bc16279 --- /dev/null +++ b/packages/Webkul/Cart/.gitignore @@ -0,0 +1 @@ +/node_modules \ No newline at end of file diff --git a/packages/Webkul/Cart/composer.json b/packages/Webkul/Cart/composer.json index ea46e9c47..6422107ef 100644 --- a/packages/Webkul/Cart/composer.json +++ b/packages/Webkul/Cart/composer.json @@ -1,14 +1,15 @@ { "name": "webkul/laravel-cart", - "description": "Cart Package for customer.", "license": "MIT", "authors": [ { - "name": "prashant-webkul", - "email": "prashant.singh852@webkul.com" + "name": "Prashant", + "email": "prashant@webkul.com" } ], - "require": {}, + "require": { + "webkul/laravel-core": "dev-master" + }, "autoload": { "psr-4": { "Webkul\\Cart\\": "src/" diff --git a/packages/Webkul/Cart/src/Database/migrations/2018_09_05_150915_create_cart_items_table.php b/packages/Webkul/Cart/src/Database/migrations/2018_09_05_150915_create_cart_products_table.php similarity index 89% rename from packages/Webkul/Cart/src/Database/migrations/2018_09_05_150915_create_cart_items_table.php rename to packages/Webkul/Cart/src/Database/migrations/2018_09_05_150915_create_cart_products_table.php index 0d739e52e..5d3f4b2ce 100644 --- a/packages/Webkul/Cart/src/Database/migrations/2018_09_05_150915_create_cart_items_table.php +++ b/packages/Webkul/Cart/src/Database/migrations/2018_09_05_150915_create_cart_products_table.php @@ -4,7 +4,7 @@ use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; -class CreateCartItemsTable extends Migration +class CreateCartProductsTable extends Migration { /** * Run the migrations. @@ -13,7 +13,7 @@ class CreateCartItemsTable extends Migration */ public function up() { - Schema::create('cart_items', function (Blueprint $table) { + Schema::create('cart_products', function (Blueprint $table) { $table->increments('id'); $table->integer('product_id')->unsigned(); $table->foreign('product_id')->references('id')->on('products'); diff --git a/packages/Webkul/Cart/src/Http/Controllers/CartController.php b/packages/Webkul/Cart/src/Http/Controllers/CartController.php index 21d5008e2..54e116f8b 100644 --- a/packages/Webkul/Cart/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Cart/src/Http/Controllers/CartController.php @@ -4,9 +4,11 @@ namespace Webkul\Cart\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; -use Webkul\Cart\Repositories\CartRepository; -use Webkul\Cart\Repositories\CartItemsRepository; +use Webkul\Cart\Repositories\CartRepository as Cart; +use Webkul\Cart\Repositories\CartProductRepository as cartProduct; +use Webkul\Customer\Repositories\CustomerRepository; use Session; +use Cookie; /** * Cart controller for the customer @@ -29,17 +31,228 @@ class CartController extends Controller protected $cart; + protected $cartProduct; - public function __construct(CartRepository $cart) - { - $this->middleware(['customer', 'guest']); + protected $customer; - $this->_config = request('_config'); + public function __construct(Cart $cart, cartProduct $cartProduct, CustomerRepository $customer) { + $this->middleware('customer')->except(['add', 'remove']); + + $this->customer = $customer; $this->cart = $cart; + + $this->cartProduct = $cartProduct; } - public function add() { - return "Adding Items to Cart"; + public function add($id) { + $minutes = 5; + + $products = array(); + + $customerLoggedIn = auth()->guard('customer')->check(); + + if($customerLoggedIn) { + //customer is authenticated + + //assuming that there is data in cookie and customers' cart also. + + $data['customer_id'] = auth()->guard('customer')->user()->id; + + $data['channel_id'] = core()->getCurrentChannel()->id; + + $cookieProducts = unserialize(Cookie::get('session_c')); + + $cartCustomer = $this->cart->findOneByField('customer_id', $data['customer_id']); + + //case when cookie has products and customer also have data in cart + if(isset($cartCustomer) && isset($cartCookie)) { + //there are already items in cart of customer + + //for unsetting the cookie for the cart + // Cookie::queue(Cookie::forget('session_c')); + + //check if there is any repetition in the products + $cartId = $cartCustomer->id ?? $cartCustomer['id']; + + $previousCartProducts = $this->cart->withProducts($cartId); + + //if there are products already in cart of that customer + if(isset($previousCartProducts)) { + + foreach($previousCartProducts as $previousCartProduct) { + + dump($previousCartProducts); + + foreach($cookieProducts as $key => $cookieProduct) { + + if($previousCartProduct->id == $cookieProduct) { + + unset($cookieProducts[$key]); + } + } + } + } + + /*if the above block executes it will remove duplicates + else product in cookies will be stored in the database.*/ + + foreach($cookieProducts as $key => $cookieProduct) { + + $product['product_id'] = $cookieProduct; + + $product['quantity'] = 1; + + $product['cart_id'] = $cartId; + + $this->cartProduct->create($product); + } + + dump('Added the new items into the customer cart.'); + + return redirect()->back(); + + } else if(isset($cartCustomer) && !isset($cartCookie)){ + //case when there is no data in customer's cart + + $cartId = $cartCustomer->id ?? $cartCustomer['id']; + + $previousCartProducts = $this->cart->withProducts($cartId); + + foreach($previousCartProducts as $previousCartProduct) { + + if($previousCartProduct->id == $id) { + + dd('product already in the cart::AUTH'); + + return redirect()->back(); + } + } + $product['product_id'] = $id; + + $product['quantity'] = 1; + + $product['cart_id'] = $cartId; + + $this->cartProduct->create($product); + + dump('new item added in the cart'); + + return redirect()->back(); + + } else if(!isset($cartCustomer) && isset($cartCookie)) { + + $products = unserialize(Cookie::get('session_c')); + + if ($cart = $this->cart->create($data)) { + + foreach($products as $product) { + + $product['product_id'] = $id; + + $product['quantity'] = 1; + + $product['cart_id'] = $cart; + + $this->cartProduct->create($product); + } + return redirect()->back(); + + } else { + session()->flash('error', 'Cannot Add Your Items To Cart'); + + return redirect()->back(); + } + } + + } else { + //case when the customer is unauthenticated + if(Cookie::has('session_c')) { + $products = unserialize(Cookie::get('session_c')); + + foreach($products as $key => $value) { + if($value == $id) { + dd('product already in the cart'); + return redirect()->back(); + } + } + array_push($products, $id); + + Cookie::queue('session_c', serialize($products)); + + return redirect()->back(); + + } else { + array_push($products, $id); + + Cookie::queue('session_c', serialize($products), $minutes); + + return redirect()->back(); + } + + } + + // if(Cookie::has('session_id')) { + // //add the item to the cart if not already there + + // //Cookie::queue(\Cookie::forget('myCookie')); + // $match_prev_session = $this->cart->findOneByField('session_id', Cookie::get('session_id')); + + // if(isset($match_prev_session)) { + + // $cart_id = $match_prev_session->id; //cart ID from the existing session values from database and cookie + + // $products = $this->cart->getProducts($match_prev_session->id); //getting the products associated with that cart id. + + // $existingProductsLookup = $this->cartProduct->model->where(['product_id' => $id, 'cart_id' => $cart_id]); + + // dd($existingProductsLookup); + + // //no action to be taken if the product already exists + // if(isset($existingProductsLookup)) { + // return redirect()->back(); + // } else { + // //insert the new products using cartProduct when product is new + // $cartProduct['product_id'] = $id; + + // $cartProduct['quantity'] = 1; + + // $cartProduct['cart_id'] = $cart_id; + + // $this->cartProduct->create($cartProduct); + + // return redirect()->back(); + // } + // } else { + // return response()->json(['Cookie Already There', Cookie::get('session_id'), $id], 200); + // } + // } else { + // /* + // make the entry in database + // and show the database entry + // in cart + // */ + // Cookie::queue('session_id', session()->getId(), $minutes); + + // $data['session_id'] = session()->getId(); + + // $data['channel_id'] = core()->getCurrentChannel()->id; + + // if($cart = $this->cart->create($data)) { + // $product['product_id'] = $id; + + // $product['quantity'] = 1; + + // $product['cart_id'] = $cart; + + // $this->cartProduct->create($product); + + // return redirect()->back(); + // } + // } + } + + public function remove($id) { + dd("Removing Item from Cart"); } } \ No newline at end of file diff --git a/packages/Webkul/Cart/src/Http/Controllers/Controller.php b/packages/Webkul/Cart/src/Http/Controllers/Controller.php new file mode 100644 index 000000000..3b56110cc --- /dev/null +++ b/packages/Webkul/Cart/src/Http/Controllers/Controller.php @@ -0,0 +1,13 @@ +belongsToMany(Product::class, 'cart_products'); + } } diff --git a/packages/Webkul/Cart/src/Models/CartItems.php b/packages/Webkul/Cart/src/Models/CartProduct.php similarity index 55% rename from packages/Webkul/Cart/src/Models/CartItems.php rename to packages/Webkul/Cart/src/Models/CartProduct.php index 00999f903..8b8a9d32b 100644 --- a/packages/Webkul/Cart/src/Models/CartItems.php +++ b/packages/Webkul/Cart/src/Models/CartProduct.php @@ -1,10 +1,11 @@ loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $router->aliasMiddleware('admin', RedirectIfNotAdmin::class); $router->aliasMiddleware('customer', RedirectIfNotCustomer::class); - - $this->loadMigrationsFrom(__DIR__ . '/../Database/migrations'); } /** diff --git a/packages/Webkul/Cart/src/Repositories/CartItemsRepository.php b/packages/Webkul/Cart/src/Repositories/CartProductRepository.php similarity index 89% rename from packages/Webkul/Cart/src/Repositories/CartItemsRepository.php rename to packages/Webkul/Cart/src/Repositories/CartProductRepository.php index 72cd3c8d7..0c3636d5d 100644 --- a/packages/Webkul/Cart/src/Repositories/CartItemsRepository.php +++ b/packages/Webkul/Cart/src/Repositories/CartProductRepository.php @@ -11,7 +11,7 @@ use Webkul\Core\Eloquent\Repository; * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ -class CartItemsRepository extends Repository +class CartProductRepository extends Repository { /** * Specify Model class name @@ -21,7 +21,7 @@ class CartItemsRepository extends Repository function model() { - return 'Webkul\Cart\Models\CartItems'; + return 'Webkul\Cart\Models\CartProduct'; } /** diff --git a/packages/Webkul/Cart/src/Repositories/CartRepository.php b/packages/Webkul/Cart/src/Repositories/CartRepository.php index 27257051a..5554c3bdd 100644 --- a/packages/Webkul/Cart/src/Repositories/CartRepository.php +++ b/packages/Webkul/Cart/src/Repositories/CartRepository.php @@ -51,4 +51,9 @@ class CartRepository extends Repository return $cart; } + + public function getProducts($id) { + + return $this->model->find($id)->with_products; + } } \ No newline at end of file diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php index 5c2d895c0..119d43b41 100644 --- a/packages/Webkul/Core/src/Core.php +++ b/packages/Webkul/Core/src/Core.php @@ -140,7 +140,8 @@ class Core $channel = $this->getCurrentChannel(); - $currencyCode = $channel->base_currency->code; + // $currencyCode = $channel->base_currency->code; + $currencyCode = $channel->base_currency; return currency($price, $currencyCode); } diff --git a/packages/Webkul/Customer/src/Http/Controllers/AccountController.php b/packages/Webkul/Customer/src/Http/Controllers/AccountController.php index 17795fdb0..49f130116 100644 --- a/packages/Webkul/Customer/src/Http/Controllers/AccountController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/AccountController.php @@ -17,6 +17,7 @@ use Auth; * @author Prashant Singh * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ + class AccountController extends Controller { /** diff --git a/packages/Webkul/Customer/src/Http/Controllers/SessionController.php b/packages/Webkul/Customer/src/Http/Controllers/SessionController.php index 18a2dae23..fe6b7aa3f 100644 --- a/packages/Webkul/Customer/src/Http/Controllers/SessionController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/SessionController.php @@ -53,7 +53,14 @@ class SessionController extends Controller return back(); } - return redirect()->intended(route($this->_config['redirect'])); + $cookieProducts = unserialize(Cookie::get('session_c')); + + if(isset($cookieProducts)){ + return redirect()->action('Cart\Http\Controllers\CartController@add', [$cookieProducts]); + } else { + return redirect()->intended(route($this->_config['redirect'])); + } + } public function destroy($id) diff --git a/packages/Webkul/Product/src/Models/Product.php b/packages/Webkul/Product/src/Models/Product.php index 4dfdbedce..905a323f7 100644 --- a/packages/Webkul/Product/src/Models/Product.php +++ b/packages/Webkul/Product/src/Models/Product.php @@ -18,6 +18,8 @@ class Product extends Model protected $with = ['attribute_family', 'inventories']; + // protected $table = 'products'; + /** * Get the product attribute family that owns the product. */ diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php index ab10753f7..4885ec023 100644 --- a/packages/Webkul/Shop/src/Http/routes.php +++ b/packages/Webkul/Shop/src/Http/routes.php @@ -14,6 +14,14 @@ Route::group(['middleware' => ['web']], function () { 'view' => 'shop::products.view' ])->name('shop.products.index'); + // //Routes for product cart + // Route::post('products/cart/test', 'Webkul\Cart\Http\Controllers\CartController@test')->name('cart.test'); + + Route::post('products/cart/add/{id}', 'Webkul\Cart\Http\Controllers\CartController@add')->name('cart.add'); + + Route::post('product/cart/remove/{id}', 'Webkul\Cart\Http\Controllers\CartController@remove')->name('cart.remove'); + //Routes for product cart ends + // Product Review routes Route::get('/reviews/{slug}', 'Webkul\Shop\Http\Controllers\ReviewController@index')->defaults('_config', [ @@ -28,10 +36,6 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'admin.reviews.index' ])->name('admin.reviews.store'); - - // Route::view('/products/{slug}', 'shop::store.product.details.index'); - Route::view('/cart', 'shop::store.product.view.cart.index'); - //customer routes starts here Route::prefix('customer')->group(function () { @@ -44,7 +48,6 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'customer.account.index' ])->name('customer.session.create'); - // Registration Routes Route::get('register', 'Webkul\Customer\Http\Controllers\RegistrationController@show')->defaults('_config', [ 'view' => 'shop::customers.signup.index' //hint path @@ -113,7 +116,7 @@ Route::group(['middleware' => ['web']], function () { ])->name('customer.address.edit'); Route::post('address/edit', 'Webkul\Customer\Http\Controllers\AddressController@edit')->defaults('_config', [ - 'view' => 'shop::customers.account.address.address' + 'redirect' => 'customer.address.index' ])->name('customer.address.edit'); /* Routes for Addresses ends here */ diff --git a/packages/Webkul/Shop/src/Providers/ComposerServiceProvider.php b/packages/Webkul/Shop/src/Providers/ComposerServiceProvider.php index 470efa738..1fb2ebf9d 100644 --- a/packages/Webkul/Shop/src/Providers/ComposerServiceProvider.php +++ b/packages/Webkul/Shop/src/Providers/ComposerServiceProvider.php @@ -17,7 +17,7 @@ class ComposerServiceProvider extends ServiceProvider public function boot() { //using the class based composers... - View::composer('shop::layouts.header.index', 'Webkul\Shop\Http\ViewComposers\Categories\CategoryComposer'); + View::composer(['shop::layouts.header.index', 'shop::layouts.footer'], 'Webkul\Shop\Http\ViewComposers\Categories\CategoryComposer'); } /** diff --git a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss index 43f8929c8..ef204dbcd 100644 --- a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss @@ -998,9 +998,6 @@ section.slider-block { } //account ends here - - - //customers page css ends here // product pages css starts here @@ -1018,150 +1015,152 @@ section.product-detail, section.product-review { flex-flow: row; margin-top: 21px; - .mixed-group { + // .rating-reviews { + // margin-top: 30px; - .single-image { - padding: 2px; + // .title-inline { + // display: inline-flex; + // align-items: center; + // justify-content: space-between; + // margin-bottom: 20px; + // width: 100%; - img { - height: 280px; - width: 280px; - } - } + // button { + // float: right; + // border-radius: 0px !important; + // } + // } - .details { + // .overall { + // display: flex; + // flex-direction: row; + // align-items: center; + // justify-content: space-between; + // height: 150px; - .product-name { - margin-top: 20px; - font-size: 24px; - margin-bottom: 20px; - } + // .left-side { + // margin-bottom: 20px; - .product-price { - margin-bottom: 14px; - } - } - } + // .number{ + // font-size: 34px; + // } + // } - .rating-reviews { - margin-top: 30px; + // .right-side { + // display: block; - .title-inline { - display: inline-flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - width: 100%; + // .rater { + // display: inline-flex; + // align-items: center; - button { - float: right; - border-radius: 0px !important; - } - } + // .star { + // width: 50px; + // height: 20px; + // padding: 1px; + // margin-right: 8px; + // } - .overall { - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - height: 150px; + // .line-bar { + // height: 4px; + // width: 158px; + // margin-right: 12px; + // background: $bar-color; - .left-side { - margin-bottom: 20px; + // .line-value { + // height: 4px; + // width: 100px; + // background-color: $dark-blue-shade; + // } + // } + // } + // } + // } - .number{ - font-size: 34px; - } - } + // .reviews { + // margin-top: 34px; + // margin-bottom: 90px; - .right-side { - display: block; + // .review { + // margin-bottom: 25px; - .rater { - display: inline-flex; - align-items: center; + // .title { + // margin-bottom: 5px; + // } - .star { - width: 50px; - height: 20px; - padding: 1px; - margin-right: 8px; - } + // .stars { + // margin-bottom: 15px; + // } + // .message { + // margin-bottom: 10px; + // } + // } + // .view-all { + // margin-top:15px; + // color: $logo-color; + // margin-bottom:15px; + // } + // } + // } - .line-bar { - height: 4px; - width: 158px; - margin-right: 12px; - background: $bar-color; - - .line-value { - height: 4px; - width: 100px; - background-color: $dark-blue-shade; - } - } - } - } - - } - - .reviews { - margin-top: 34px; - margin-bottom: 90px; - - .review { - margin-bottom: 25px; - - .title { - margin-bottom: 5px; - } - - .stars { - margin-bottom: 15px; - } - .message { - margin-bottom: 10px; - } - } - .view-all { - margin-top:15px; - color: $logo-color; - margin-bottom:15px; - } - } - } - - div.product-image-group { - display:flex; - flex-direction: row; - justify-content: flex-start; + .product-gallery-group { margin-right: 2.5%; + position: inherit; - .side-group { - display: flex; - flex-direction: column; - margin-right: 4px; - } + div.product-image-group { + display:flex; + flex-direction: row; + justify-content: flex-start; - .product-hero-image { - display: block; - position: relative; - - .wishlist { - position: absolute; - top: 10px; - right: 12px; + .side-group { + display: flex; + flex-direction: column; + margin-right: 4px; } - .share { - position: absolute; - top: 10px; - right: 45px; + .product-hero-image { + display: block; + position: relative; + + .wishlist { + position: absolute; + top: 10px; + right: 12px; + } + + .share { + position: absolute; + top: 10px; + right: 45px; + } } } + .product-button-group { + display: inline-flex; + justify-content: space-between; + width: 100%; + // padding: 0.6%; + + form{ + width: 100%; + height: 45px; + .add-to-cart { + width: 100%; + border-radius: 0px; + background-color: $color-black; + } + .buy-now { + width: 100%; + border-radius: 0px; + + } + } + + } + } - .details { + .product-details { + width: 100%; .product-heading { font-size: 24px; diff --git a/packages/Webkul/Shop/src/Resources/views/home/new-products.blade.php b/packages/Webkul/Shop/src/Resources/views/home/new-products.blade.php index f2028fbd1..a6d56c3b1 100644 --- a/packages/Webkul/Shop/src/Resources/views/home/new-products.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/home/new-products.blade.php @@ -1,6 +1,5 @@