From 449a2e1d4744ba1b13bdf67427db49303aaadddd Mon Sep 17 00:00:00 2001 From: Annika Wolff Date: Tue, 9 Jun 2020 08:15:17 +0200 Subject: [PATCH 01/53] add logging to exception thrown in cart --- packages/Webkul/Checkout/src/Cart.php | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 635764533..21059ae07 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -2,6 +2,8 @@ namespace Webkul\Checkout; +use Exception; +use Illuminate\Support\Facades\Log; use Webkul\Checkout\Models\Cart as CartModel; use Webkul\Checkout\Models\CartAddress; use Webkul\Checkout\Repositories\CartRepository; @@ -122,9 +124,11 @@ class Cart /** * Add Items in a cart with some cart and item details. * - * @param int $productId - * @param array $data - * @return \Webkul\Checkout\Contracts\Cart|\Exception|array + * @param int $productId + * @param array $data + * + * @return \Webkul\Checkout\Contracts\Cart|string|array + * @throws Exception */ public function addProduct($productId, $data) { @@ -147,7 +151,8 @@ class Cart session()->forget('cart'); } - throw new \Exception($cartProducts); + Log::error($cartProducts, ['product' => $product, 'cartData' => $data]); + throw new Exception($cartProducts); } else { $parentCartItem = null; @@ -161,7 +166,7 @@ class Cart if (! $cartItem) { $cartItem = $this->cartItemRepository->create(array_merge($cartProduct, ['cart_id' => $cart->id])); } else { - if (isset($cartProduct['parent_id']) && $cartItem->parent_id != $parentCartItem->id) { + if (isset($cartProduct['parent_id']) && $cartItem->parent_id !== $parentCartItem->id) { $cartItem = $this->cartItemRepository->create(array_merge($cartProduct, [ 'cart_id' => $cart->id ])); @@ -232,7 +237,8 @@ class Cart * Update cart items information * * @param array $data - * @return bool|void|\Exception + * + * @return bool|void|Exception */ public function updateItems($data) { @@ -246,13 +252,13 @@ class Cart if ($quantity <= 0) { $this->removeItem($itemId); - throw new \Exception(trans('shop::app.checkout.cart.quantity.illegal')); + throw new Exception(trans('shop::app.checkout.cart.quantity.illegal')); } $item->quantity = $quantity; if (! $this->isItemHaveQuantity($item)) { - throw new \Exception(trans('shop::app.checkout.cart.quantity.inventory_warning')); + throw new Exception(trans('shop::app.checkout.cart.quantity.inventory_warning')); } Event::dispatch('checkout.cart.update.before', $item); @@ -499,7 +505,7 @@ class Cart $this->saveAddressesWhenRequested($data, $billingAddressData, $shippingAddressData); $this->linkAddresses($cart, $billingAddressData, $shippingAddressData); - + $this->assignCustomerFields($cart); $cart->save(); From a32925f6ce8934313dc45770847af4298df9571b Mon Sep 17 00:00:00 2001 From: Annika Wolff Date: Tue, 9 Jun 2020 08:35:22 +0200 Subject: [PATCH 02/53] refactor used translation function --- packages/Webkul/Checkout/src/Cart.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 21059ae07..289585412 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -223,7 +223,7 @@ class Cart $cart = $this->cartRepository->create($cartData); if (! $cart) { - session()->flash('error', trans('shop::app.checkout.cart.create-error')); + session()->flash('error', __('shop::app.checkout.cart.create-error')); return; } @@ -252,13 +252,13 @@ class Cart if ($quantity <= 0) { $this->removeItem($itemId); - throw new Exception(trans('shop::app.checkout.cart.quantity.illegal')); + throw new Exception(__('shop::app.checkout.cart.quantity.illegal')); } $item->quantity = $quantity; if (! $this->isItemHaveQuantity($item)) { - throw new Exception(trans('shop::app.checkout.cart.quantity.inventory_warning')); + throw new Exception(__('shop::app.checkout.cart.quantity.inventory_warning')); } Event::dispatch('checkout.cart.update.before', $item); From dbc16cf7e62d676939fe3ee134b3f1223afdfd4d Mon Sep 17 00:00:00 2001 From: Annika Wolff Date: Tue, 9 Jun 2020 10:14:06 +0200 Subject: [PATCH 03/53] add logging of catched exception --- .../Http/Controllers/Shop/CartController.php | 81 +++++++++++-------- packages/Webkul/Checkout/src/Cart.php | 1 - .../src/Http/Controllers/CartController.php | 7 +- .../Http/Controllers/Shop/CartController.php | 7 +- 4 files changed, 59 insertions(+), 37 deletions(-) diff --git a/packages/Webkul/API/Http/Controllers/Shop/CartController.php b/packages/Webkul/API/Http/Controllers/Shop/CartController.php index c06644456..553b29fc7 100644 --- a/packages/Webkul/API/Http/Controllers/Shop/CartController.php +++ b/packages/Webkul/API/Http/Controllers/Shop/CartController.php @@ -2,7 +2,10 @@ namespace Webkul\API\Http\Controllers\Shop; +use Exception; +use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Event; +use Illuminate\Support\Facades\Log; use Webkul\Checkout\Repositories\CartRepository; use Webkul\Checkout\Repositories\CartItemRepository; use Webkul\API\Http\Resources\Checkout\Cart as CartResource; @@ -42,9 +45,9 @@ class CartController extends Controller /** * Controller instance * - * @param \Webkul\Checkout\Repositories\CartRepository $cartRepository - * @param \Webkul\Checkout\Repositories\CartItemRepository $cartItemRepository - * @param \Webkul\Checkout\Repositories\WishlistRepository $wishlistRepository + * @param \Webkul\Checkout\Repositories\CartRepository $cartRepository + * @param \Webkul\Checkout\Repositories\CartItemRepository $cartItemRepository + * @param \Webkul\Checkout\Repositories\WishlistRepository $wishlistRepository */ public function __construct( CartRepository $cartRepository, @@ -69,7 +72,7 @@ class CartController extends Controller /** * Get customer cart * - * @return \Illuminate\Http\Response + * @return JsonResponse */ public function get() { @@ -86,10 +89,11 @@ class CartController extends Controller /** * Store a newly created resource in storage. * - * @param int $id - * @return \Illuminate\Http\Response + * @param int $id + * + * @return \Illuminate\Http\JsonResponse */ - public function store($id) + public function store($id): ?JsonResponse { if (request()->get('is_buy_now')) { Event::dispatch('shop.item.buy-now', $id); @@ -97,36 +101,46 @@ class CartController extends Controller Event::dispatch('checkout.cart.item.add.before', $id); - $result = Cart::addProduct($id, request()->except('_token')); + try { + $result = Cart::addProduct($id, request()->except('_token')); - if (! $result) { - $message = session()->get('warning') ?? session()->get('error'); + if (is_array($result) && isset($result['warning'])) { + return response()->json([ + 'error' => $result['warning'], + ], 400); + } + + if ($customer = auth($this->guard)->user()) { + $this->wishlistRepository->deleteWhere(['product_id' => $id, 'customer_id' => $customer->id]); + } + + Event::dispatch('checkout.cart.item.add.after', $result); + + Cart::collectTotals(); + + $cart = Cart::getCart(); return response()->json([ - 'error' => session()->get('warning'), - ], 400); + 'message' => __('shop::app.checkout.cart.item.success'), + 'data' => $cart ? new CartResource($cart) : null, + ]); + } catch (Exception $e) { + Log::error('API CartController: ' . $e->getMessage(), + ['productID' => $id, 'cartID' => cart()->getCart() ?? 0]); + + return response()->json([ + 'error' => [ + 'message' => $e->getMessage(), + 'code' => $e->getCode() + ] + ]); } - - if ($customer = auth($this->guard)->user()) { - $this->wishlistRepository->deleteWhere(['product_id' => $id, 'customer_id' => $customer->id]); - } - - Event::dispatch('checkout.cart.item.add.after', $result); - - Cart::collectTotals(); - - $cart = Cart::getCart(); - - return response()->json([ - 'message' => __('shop::app.checkout.cart.item.success'), - 'data' => $cart ? new CartResource($cart) : null, - ]); } /** * Update the specified resource in storage. * - * @return \Illuminate\Http\Response + * @return JsonResponse */ public function update() { @@ -161,7 +175,7 @@ class CartController extends Controller /** * Remove the specified resource from storage. * - * @return \Illuminate\Http\Response + * @return JsonResponse */ public function destroy() { @@ -182,8 +196,9 @@ class CartController extends Controller /** * Remove the specified resource from storage. * - * @param int $id - * @return \Illuminate\Http\Response + * @param int $id + * + * @return JsonResponse */ public function destroyItem($id) { @@ -206,7 +221,9 @@ class CartController extends Controller /** * Function to move a already added product to wishlist will run only on customer authentication. * - * @param \Webkul\Checkout\Repositories\CartItemRepository $id + * @param \Webkul\Checkout\Repositories\CartItemRepository $id + * + * @return JsonResponse */ public function moveToWishlist($id) { diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 289585412..8052f6425 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -151,7 +151,6 @@ class Cart session()->forget('cart'); } - Log::error($cartProducts, ['product' => $product, 'cartData' => $data]); throw new Exception($cartProducts); } else { $parentCartItem = null; diff --git a/packages/Webkul/Shop/src/Http/Controllers/CartController.php b/packages/Webkul/Shop/src/Http/Controllers/CartController.php index 74b3253b9..6dc2a8d48 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/CartController.php @@ -2,6 +2,7 @@ namespace Webkul\Shop\Http\Controllers; +use Illuminate\Support\Facades\Log; use Webkul\Customer\Repositories\WishlistRepository; use Webkul\Product\Repositories\ProductRepository; use Webkul\Checkout\Contracts\Cart as CartModel; @@ -75,7 +76,7 @@ class CartController extends Controller } if ($result instanceof CartModel) { - session()->flash('success', trans('shop::app.checkout.cart.item.success')); + session()->flash('success', __('shop::app.checkout.cart.item.success')); if ($customer = auth()->guard('customer')->user()) { $this->wishlistRepository->deleteWhere(['product_id' => $id, 'customer_id' => $customer->id]); @@ -88,10 +89,12 @@ class CartController extends Controller } } } catch(\Exception $e) { - session()->flash('error', trans($e->getMessage())); + session()->flash('error', __($e->getMessage())); $product = $this->productRepository->find($id); + Log::error('Shop CartController: ' . $e->getMessage(), ['productID' => $id, 'cartID' => cart()->getCart() ?? 0]); + return redirect()->route('shop.productOrCategory.index', $product->url_key); } diff --git a/packages/Webkul/Velocity/src/Http/Controllers/Shop/CartController.php b/packages/Webkul/Velocity/src/Http/Controllers/Shop/CartController.php index eafefe287..473ba897d 100644 --- a/packages/Webkul/Velocity/src/Http/Controllers/Shop/CartController.php +++ b/packages/Webkul/Velocity/src/Http/Controllers/Shop/CartController.php @@ -3,6 +3,7 @@ namespace Webkul\Velocity\Http\Controllers\Shop; use Cart; +use Illuminate\Support\Facades\Log; use Webkul\Velocity\Helpers\Helper; use Webkul\Checkout\Contracts\Cart as CartModel; use Webkul\Product\Repositories\ProductRepository; @@ -93,16 +94,18 @@ class CartController extends Controller } catch(\Exception $exception) { $product = $this->productRepository->find($id); + Log::error('Velocity CartController: ' . $exception->getMessage(), ['productID' => $id, 'cartID' => cart()->getCart() ?? 0]); + $response = [ 'status' => 'danger', - 'message' => trans($exception->getMessage()), + 'message' => __($exception->getMessage()), 'redirectionRoute' => route('shop.productOrCategory.index', $product->url_key), ]; } return $response ?? [ 'status' => 'danger', - 'message' => trans('velocity::app.error.something_went_wrong'), + 'message' => __('velocity::app.error.something_went_wrong'), ]; } From abbd5c4a31d18d3808066c70c1043d47bff99990 Mon Sep 17 00:00:00 2001 From: Annika Wolff Date: Tue, 9 Jun 2020 14:35:02 +0200 Subject: [PATCH 04/53] slightly refactoring --- .../API/Http/Controllers/Shop/CartController.php | 12 ++++++------ .../Shop/src/Http/Controllers/CartController.php | 3 ++- .../src/Http/Controllers/Shop/CartController.php | 3 ++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/Webkul/API/Http/Controllers/Shop/CartController.php b/packages/Webkul/API/Http/Controllers/Shop/CartController.php index 553b29fc7..dbecc7c01 100644 --- a/packages/Webkul/API/Http/Controllers/Shop/CartController.php +++ b/packages/Webkul/API/Http/Controllers/Shop/CartController.php @@ -72,7 +72,7 @@ class CartController extends Controller /** * Get customer cart * - * @return JsonResponse + * @return \Illuminate\Http\JsonResponse */ public function get() { @@ -126,7 +126,7 @@ class CartController extends Controller ]); } catch (Exception $e) { Log::error('API CartController: ' . $e->getMessage(), - ['productID' => $id, 'cartID' => cart()->getCart() ?? 0]); + ['product_id' => $id, 'cart_id' => cart()->getCart() ?? 0]); return response()->json([ 'error' => [ @@ -140,7 +140,7 @@ class CartController extends Controller /** * Update the specified resource in storage. * - * @return JsonResponse + * @return \Illuminate\Http\JsonResponse */ public function update() { @@ -175,7 +175,7 @@ class CartController extends Controller /** * Remove the specified resource from storage. * - * @return JsonResponse + * @return \Illuminate\Http\JsonResponse */ public function destroy() { @@ -198,7 +198,7 @@ class CartController extends Controller * * @param int $id * - * @return JsonResponse + * @return \Illuminate\Http\JsonResponse */ public function destroyItem($id) { @@ -223,7 +223,7 @@ class CartController extends Controller * * @param \Webkul\Checkout\Repositories\CartItemRepository $id * - * @return JsonResponse + * @return \Illuminate\Http\JsonResponse */ public function moveToWishlist($id) { diff --git a/packages/Webkul/Shop/src/Http/Controllers/CartController.php b/packages/Webkul/Shop/src/Http/Controllers/CartController.php index 6dc2a8d48..d0bcb4a29 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/CartController.php @@ -93,7 +93,8 @@ class CartController extends Controller $product = $this->productRepository->find($id); - Log::error('Shop CartController: ' . $e->getMessage(), ['productID' => $id, 'cartID' => cart()->getCart() ?? 0]); + Log::error('Shop CartController: ' . $e->getMessage(), + ['product_id' => $id, 'cart_id' => cart()->getCart() ?? 0]); return redirect()->route('shop.productOrCategory.index', $product->url_key); } diff --git a/packages/Webkul/Velocity/src/Http/Controllers/Shop/CartController.php b/packages/Webkul/Velocity/src/Http/Controllers/Shop/CartController.php index 473ba897d..67f0c9f26 100644 --- a/packages/Webkul/Velocity/src/Http/Controllers/Shop/CartController.php +++ b/packages/Webkul/Velocity/src/Http/Controllers/Shop/CartController.php @@ -94,7 +94,8 @@ class CartController extends Controller } catch(\Exception $exception) { $product = $this->productRepository->find($id); - Log::error('Velocity CartController: ' . $exception->getMessage(), ['productID' => $id, 'cartID' => cart()->getCart() ?? 0]); + Log::error('Velocity CartController: ' . $exception->getMessage(), + ['product_id' => $id, 'cart_id' => cart()->getCart() ?? 0]); $response = [ 'status' => 'danger', From a5720e76d5e72a20b1e0edac06a698246eb1c681 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Wed, 10 Jun 2020 10:33:03 +0200 Subject: [PATCH 05/53] add a 'clear' button beneath date and datetime pickers --- .../Resources/assets/js/components/date.vue | 20 +++++++++++++++---- .../assets/js/components/datetime.vue | 18 ++++++++++++++--- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/packages/Webkul/Ui/src/Resources/assets/js/components/date.vue b/packages/Webkul/Ui/src/Resources/assets/js/components/date.vue index febc6d92d..cd720d55f 100755 --- a/packages/Webkul/Ui/src/Resources/assets/js/components/date.vue +++ b/packages/Webkul/Ui/src/Resources/assets/js/components/date.vue @@ -1,15 +1,20 @@ \ No newline at end of file diff --git a/packages/Webkul/Ui/src/Resources/assets/js/components/datetime.vue b/packages/Webkul/Ui/src/Resources/assets/js/components/datetime.vue index db2bda678..cf474843c 100755 --- a/packages/Webkul/Ui/src/Resources/assets/js/components/datetime.vue +++ b/packages/Webkul/Ui/src/Resources/assets/js/components/datetime.vue @@ -1,15 +1,20 @@ \ No newline at end of file From a196b7ac02059d2c5f979af8e02c6c34e8dda2c6 Mon Sep 17 00:00:00 2001 From: Annika Wolff Date: Thu, 11 Jun 2020 10:51:40 +0200 Subject: [PATCH 06/53] extend order item and cart item factories --- .../Database/Factories/CartItemFactory.php | 24 ++++++++++++++++++- .../Database/Factories/OrderItemFactory.php | 23 +++++++++--------- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/packages/Webkul/Checkout/src/Database/Factories/CartItemFactory.php b/packages/Webkul/Checkout/src/Database/Factories/CartItemFactory.php index 7c916f194..c43f66dbd 100644 --- a/packages/Webkul/Checkout/src/Database/Factories/CartItemFactory.php +++ b/packages/Webkul/Checkout/src/Database/Factories/CartItemFactory.php @@ -3,12 +3,34 @@ /** @var \Illuminate\Database\Eloquent\Factory $factory */ use Faker\Generator as Faker; +use Webkul\Checkout\Models\Cart; use Webkul\Checkout\Models\CartItem; +use Webkul\Product\Models\Product; -$factory->define(CartItem::class, function (Faker $faker) { +$factory->define(CartItem::class, function (Faker $faker, array $attributes) { $now = date("Y-m-d H:i:s"); + if (isset($attributes['product_id'])) { + $product = Product::where('id', $attributes['product_id'])->first(); + } else { + $product = factory(Product::class)->create(); + } + + $fallbackPrice = $faker->randomFloat(4, 0, 1000); + return [ + 'quantity' => 1, + 'sku' => $product->sku, + 'type' => $product->type, + 'name' => $product->name, + 'price' => $product->price ?? $fallbackPrice, + 'base_price' => $product->price ?? $fallbackPrice, + 'total' => $product->price ?? $fallbackPrice, + 'base_total' => $product->price ?? $fallbackPrice, + 'product_id' => $product->id, + 'cart_id' => function () { + return factory(Cart::class)->create()->id; + }, 'created_at' => $now, 'updated_at' => $now, ]; diff --git a/packages/Webkul/Sales/src/Database/Factories/OrderItemFactory.php b/packages/Webkul/Sales/src/Database/Factories/OrderItemFactory.php index 104f95831..b8e1f72a8 100644 --- a/packages/Webkul/Sales/src/Database/Factories/OrderItemFactory.php +++ b/packages/Webkul/Sales/src/Database/Factories/OrderItemFactory.php @@ -3,8 +3,8 @@ /** @var \Illuminate\Database\Eloquent\Factory $factory */ use Faker\Generator as Faker; -use Webkul\Product\Models\Product; use Webkul\Sales\Models\Order; +use Webkul\Product\Models\Product; use Webkul\Sales\Models\OrderItem; $factory->define(OrderItem::class, function (Faker $faker, array $attributes) { @@ -16,14 +16,16 @@ $factory->define(OrderItem::class, function (Faker $faker, array $attributes) { $product = factory(Product::class)->create(); } + $fallbackPrice = $faker->randomFloat(4, 0, 1000); + return [ - 'sku' => $product->sku, - 'type' => $product->type, - 'name' => $product->name, - 'price' => $product->price, - 'base_price' => $product->price, - 'total' => $product->price, - 'base_total' => $product->price, + 'sku' => $product->sku, + 'type' => $product->type, + 'name' => $product->name, + 'price' => $product->price ?? $fallbackPrice, + 'base_price' => $product->price ?? $fallbackPrice, + 'total' => $product->price ?? $fallbackPrice, + 'base_total' => $product->price ?? $fallbackPrice, 'product_id' => $product->id, 'qty_ordered' => 1, 'qty_shipped' => 0, @@ -37,7 +39,4 @@ $factory->define(OrderItem::class, function (Faker $faker, array $attributes) { 'updated_at' => $now, 'product_type' => Product::class, ]; -}); - - - +}); \ No newline at end of file From 1c1d99b6af5b5d9af955c1c99184f39f09235bf0 Mon Sep 17 00:00:00 2001 From: Annika Wolff Date: Thu, 11 Jun 2020 10:56:08 +0200 Subject: [PATCH 07/53] autoformat --- .../src/Database/Factories/OrderItemFactory.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/Webkul/Sales/src/Database/Factories/OrderItemFactory.php b/packages/Webkul/Sales/src/Database/Factories/OrderItemFactory.php index b8e1f72a8..895e3e209 100644 --- a/packages/Webkul/Sales/src/Database/Factories/OrderItemFactory.php +++ b/packages/Webkul/Sales/src/Database/Factories/OrderItemFactory.php @@ -19,13 +19,13 @@ $factory->define(OrderItem::class, function (Faker $faker, array $attributes) { $fallbackPrice = $faker->randomFloat(4, 0, 1000); return [ - 'sku' => $product->sku, - 'type' => $product->type, - 'name' => $product->name, - 'price' => $product->price ?? $fallbackPrice, - 'base_price' => $product->price ?? $fallbackPrice, - 'total' => $product->price ?? $fallbackPrice, - 'base_total' => $product->price ?? $fallbackPrice, + 'sku' => $product->sku, + 'type' => $product->type, + 'name' => $product->name, + 'price' => $product->price ?? $fallbackPrice, + 'base_price' => $product->price ?? $fallbackPrice, + 'total' => $product->price ?? $fallbackPrice, + 'base_total' => $product->price ?? $fallbackPrice, 'product_id' => $product->id, 'qty_ordered' => 1, 'qty_shipped' => 0, From 7b47e1f173d56e3d798d97bf7b047c6bb1eb6e3f Mon Sep 17 00:00:00 2001 From: ghermans Date: Mon, 15 Jun 2020 04:29:00 +0200 Subject: [PATCH 08/53] Added customer overview --- packages/Webkul/Admin/src/Config/menu.php | 4 +- .../Admin/src/DataGrids/AddressDataGrid.php | 30 ++-- .../Customer/CustomerController.php | 41 +++-- .../Resources/views/customers/edit.blade.php | 140 +++--------------- .../views/customers/general.blade.php | 105 +++++++++++++ 5 files changed, 163 insertions(+), 157 deletions(-) create mode 100644 packages/Webkul/Admin/src/Resources/views/customers/general.blade.php diff --git a/packages/Webkul/Admin/src/Config/menu.php b/packages/Webkul/Admin/src/Config/menu.php index 426ef3edc..e0f383edd 100755 --- a/packages/Webkul/Admin/src/Config/menu.php +++ b/packages/Webkul/Admin/src/Config/menu.php @@ -53,13 +53,13 @@ return [ 'key' => 'catalog.categories', 'name' => 'admin::app.layouts.categories', 'route' => 'admin.catalog.categories.index', - 'sort' => 3, + 'sort' => 2, 'icon-class' => '', ], [ 'key' => 'catalog.attributes', 'name' => 'admin::app.layouts.attributes', 'route' => 'admin.catalog.attributes.index', - 'sort' => 2, + 'sort' => 3, 'icon-class' => '', ], [ 'key' => 'catalog.families', diff --git a/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php b/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php index ad6a82b52..bce3a7d5e 100644 --- a/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php @@ -59,13 +59,12 @@ class AddressDataGrid extends DataGrid $queryBuilder->groupBy('ca.id') ->addSelect(DB::raw(DB::getTablePrefix() . 'country_states.default_name as state_name')); - $this->addFilter('address_id', 'ca.id'); $this->addFilter('company_name', 'ca.company_name'); $this->addFilter('address1', 'ca.address1'); + $this->addFilter('postcode', 'ca.postcode'); $this->addFilter('city', 'ca.city'); $this->addFilter('state_name', DB::raw(DB::getTablePrefix() . 'country_states.default_name')); $this->addFilter('country_name', DB::raw(DB::getTablePrefix() . 'countries.name')); - $this->addFilter('postcode', 'ca.postcode'); $this->addFilter('default_address', 'ca.default_address'); $this->setQueryBuilder($queryBuilder); @@ -73,15 +72,6 @@ class AddressDataGrid extends DataGrid public function addColumns() { - $this->addColumn([ - 'index' => 'address_id', - 'label' => trans('admin::app.customers.addresses.address-id'), - 'type' => 'number', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true, - ]); - $this->addColumn([ 'index' => 'company_name', 'label' => trans('admin::app.customers.addresses.company-name'), @@ -100,6 +90,15 @@ class AddressDataGrid extends DataGrid 'filterable' => true, ]); + $this->addColumn([ + 'index' => 'postcode', + 'label' => trans('admin::app.customers.addresses.postcode'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true, + ]); + $this->addColumn([ 'index' => 'city', 'label' => trans('admin::app.customers.addresses.city'), @@ -127,15 +126,6 @@ class AddressDataGrid extends DataGrid 'filterable' => true, ]); - $this->addColumn([ - 'index' => 'postcode', - 'label' => trans('admin::app.customers.addresses.postcode'), - 'type' => 'string', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true, - ]); - $this->addColumn([ 'index' => 'default_address', 'label' => trans('admin::app.customers.addresses.default-address'), diff --git a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php index 5a1f4de86..18ec38400 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php @@ -5,8 +5,11 @@ namespace Webkul\Admin\Http\Controllers\Customer; use Illuminate\Support\Facades\Event; use Webkul\Admin\Http\Controllers\Controller; use Webkul\Customer\Repositories\CustomerRepository; + +use Webkul\Customer\Repositories\CustomerAddressRepository; use Webkul\Customer\Repositories\CustomerGroupRepository; use Webkul\Core\Repositories\ChannelRepository; + use Webkul\Admin\Mail\NewCustomerNotification; use Mail; @@ -26,6 +29,13 @@ class CustomerController extends Controller */ protected $customerRepository; + /** + * CustomerAddress Repository object + * + * @var \Webkul\Customer\Repositories\CustomerAddressRepository + */ + protected $customerAddressRepository; + /** * CustomerGroupRepository object * @@ -44,26 +54,26 @@ class CustomerController extends Controller * Create a new controller instance. * * @param \Webkul\Customer\Repositories\CustomerRepository $customerRepository + * @param \Webkul\Customer\Repositories\CustomerAddressRepository $customerAddressRepository * @param \Webkul\Customer\Repositories\CustomerGroupRepository $customerGroupRepository * @param \Webkul\Core\Repositories\ChannelRepository $channelRepository */ public function __construct( CustomerRepository $customerRepository, + CustomerAddressRepository $customerAddressRepository, CustomerGroupRepository $customerGroupRepository, ChannelRepository $channelRepository - ) - { - $this->_config = request('_config'); - - $this->middleware('admin'); - - $this->customerRepository = $customerRepository; - - $this->customerGroupRepository = $customerGroupRepository; - - $this->channelRepository = $channelRepository; - - } + ) + + { + $this->_config = request('_config'); + $this->middleware('admin'); + $this->customerRepository = $customerRepository; + + $this->customerAddressRepository = $customerAddressRepository; + $this->customerGroupRepository = $customerGroupRepository; + $this->channelRepository = $channelRepository; + } /** * Display a listing of the resource. @@ -141,12 +151,11 @@ class CustomerController extends Controller public function edit($id) { $customer = $this->customerRepository->findOrFail($id); - + $address = $this->customerAddressRepository->find($id); $customerGroup = $this->customerGroupRepository->findWhere([['code', '<>', 'guest']]); - $channelName = $this->channelRepository->all(); - return view($this->_config['view'], compact('customer', 'customerGroup', 'channelName')); + return view($this->_config['view'], compact('customer', 'address', 'customerGroup', 'channelName')); } /** diff --git a/packages/Webkul/Admin/src/Resources/views/customers/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/customers/edit.blade.php index ee58600cc..f5a7feb64 100755 --- a/packages/Webkul/Admin/src/Resources/views/customers/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/customers/edit.blade.php @@ -6,129 +6,31 @@ @section('content')
+ + + {!! view_render_event('bagisto.admin.customer.edit.before', ['customer' => $customer]) !!} - -
- -
@stop \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/customers/general.blade.php b/packages/Webkul/Admin/src/Resources/views/customers/general.blade.php new file mode 100644 index 000000000..6118ea986 --- /dev/null +++ b/packages/Webkul/Admin/src/Resources/views/customers/general.blade.php @@ -0,0 +1,105 @@ +{!! view_render_event('bagisto.admin.customer.edit.before', ['customer' => $customer]) !!} + +
+
+
+ @csrf() + + +
 
+ +
+ {!! view_render_event('bagisto.admin.customer.edit.form.before', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('first_name') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.first_name.after', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('last_name') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.last_name.after', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('email') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.email.after', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('gender') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.gender.after', ['customer' => $customer]) !!} + +
+ + + + + @{{ errors.first('status') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.status.after', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('date_of_birth') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.date_of_birth.after', ['customer' => $customer]) !!} + +
+ + + @{{ errors.first('phone') }} +
+ + {!! view_render_event('bagisto.admin.customer.edit.phone.after', ['customer' => $customer]) !!} + +
+ + + @if (! is_null($customer->customer_group_id)) + group->id ?> + @else + + @endif + + +
+
+ +
+
+
+ {!! view_render_event('bagisto.admin.customer.edit.after', ['customer' => $customer]) !!} \ No newline at end of file From f028a0c4b151319b1d4c22500fbe4e0d12fe3d85 Mon Sep 17 00:00:00 2001 From: Shubham Mehrotra Date: Mon, 15 Jun 2020 09:56:16 +0530 Subject: [PATCH 09/53] initial --- .../Velocity/src/Resources/assets/js/app.js | 9 ++ .../Resources/assets/sass/components/app.scss | 17 ++++ .../views/shop/UI/particals.blade.php | 97 ++++++++++++++++++- .../views/shop/layouts/master.blade.php | 4 + 4 files changed, 125 insertions(+), 2 deletions(-) mode change 100644 => 100755 packages/Webkul/Velocity/src/Resources/assets/sass/components/app.scss mode change 100644 => 100755 packages/Webkul/Velocity/src/Resources/views/shop/UI/particals.blade.php mode change 100644 => 100755 packages/Webkul/Velocity/src/Resources/views/shop/layouts/master.blade.php diff --git a/packages/Webkul/Velocity/src/Resources/assets/js/app.js b/packages/Webkul/Velocity/src/Resources/assets/js/app.js index ead341372..ea4937db6 100755 --- a/packages/Webkul/Velocity/src/Resources/assets/js/app.js +++ b/packages/Webkul/Velocity/src/Resources/assets/js/app.js @@ -221,6 +221,7 @@ $(document).ready(function () { miniCartKey: 0, quickView: false, productDetails: [], + showPageLoader: false, } }, @@ -331,6 +332,14 @@ $(document).ready(function () { }) }); }, + + showLoader: function () { + this.showPageLoader = true; + }, + + hideLoader: function () { + this.showPageLoader = false; + } } }); diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/components/app.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/components/app.scss old mode 100644 new mode 100755 index 1f858a1f5..7f87ab195 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/components/app.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/components/app.scss @@ -2445,3 +2445,20 @@ display: inline-block; } } + +.image-search-container { + top: 9px; + right: 45px; + z-index: 10; + cursor: pointer; + position: absolute; + background: #fff; + height: 24px !important; +} + +.camera-icon { + width: 24px; + display: inline-block; + background-size: cover; + background-image: url(/vendor/webkul/ui/assets/images/Camera.svg); +} diff --git a/packages/Webkul/Velocity/src/Resources/views/shop/UI/particals.blade.php b/packages/Webkul/Velocity/src/Resources/views/shop/UI/particals.blade.php old mode 100644 new mode 100755 index 5d3c3dc7e..f7b60c454 --- a/packages/Webkul/Velocity/src/Resources/views/shop/UI/particals.blade.php +++ b/packages/Webkul/Velocity/src/Resources/views/shop/UI/particals.blade.php @@ -103,8 +103,10 @@ name="term" type="search" class="form-control" - :value="searchedQuery.term ? searchedQuery.term.split('+').join(' ') : ''" - placeholder="{{ __('velocity::app.header.search-text') }}" /> + placeholder="{{ __('velocity::app.header.search-text') }}" + :value="searchedQuery.term ? searchedQuery.term.split('+').join(' ') : ''" /> + +
+ + + + + \ No newline at end of file diff --git a/packages/Webkul/Velocity/src/Resources/views/shop/layouts/master.blade.php b/packages/Webkul/Velocity/src/Resources/views/shop/layouts/master.blade.php old mode 100644 new mode 100755 index 26c119d3f..0a591bbf1 --- a/packages/Webkul/Velocity/src/Resources/views/shop/layouts/master.blade.php +++ b/packages/Webkul/Velocity/src/Resources/views/shop/layouts/master.blade.php @@ -130,6 +130,10 @@ + + From 90eed2792bbf01d5a389c2b50effb26e4dba8015 Mon Sep 17 00:00:00 2001 From: "shubhammehrotra.symfony@webkul.com" Date: Mon, 15 Jun 2020 13:45:59 +0530 Subject: [PATCH 10/53] previous changes --- .../accordians/customer-group-price.blade.php | 2 +- packages/Webkul/Product/src/Type/Grouped.php | 8 ++--- .../layouts/top-nav/locale-currency.blade.php | 33 +++++++++++++++---- 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/customer-group-price.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/customer-group-price.blade.php index a8295f37d..a32509ed9 100644 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/customer-group-price.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/customer-group-price.blade.php @@ -85,7 +85,7 @@
- + @{{ errors.first(inputName + '[value]') }}
diff --git a/packages/Webkul/Product/src/Type/Grouped.php b/packages/Webkul/Product/src/Type/Grouped.php index aba9c455f..bb13a3e8a 100644 --- a/packages/Webkul/Product/src/Type/Grouped.php +++ b/packages/Webkul/Product/src/Type/Grouped.php @@ -20,7 +20,7 @@ class Grouped extends AbstractType * @var \Webkul\Product\Repositories\ProductGroupedProductRepository */ protected $productGroupedProductRepository; - + /** * Skip attribute for downloadable product type * @@ -30,7 +30,7 @@ class Grouped extends AbstractType /** * These blade files will be included in product edit page - * + * * @var array */ protected $additionalViews = [ @@ -124,7 +124,7 @@ class Grouped extends AbstractType * * @return float */ - public function getMinimalPrice() + public function getMinimalPrice($qty = null) { $minPrices = []; @@ -180,7 +180,7 @@ class Grouped extends AbstractType if (is_string($cartProducts)) { return $cartProducts; } - + $products = array_merge($products, $cartProducts); } diff --git a/packages/Webkul/Velocity/src/Resources/views/shop/layouts/top-nav/locale-currency.blade.php b/packages/Webkul/Velocity/src/Resources/views/shop/layouts/top-nav/locale-currency.blade.php index fa3937b6f..7b71afaf8 100644 --- a/packages/Webkul/Velocity/src/Resources/views/shop/layouts/top-nav/locale-currency.blade.php +++ b/packages/Webkul/Velocity/src/Resources/views/shop/layouts/top-nav/locale-currency.blade.php @@ -1,11 +1,30 @@ -{!! view_render_event('bagisto.shop.layout.header.locale.before') !!} +@php + $searchQuery = request()->input(); + if ($searchQuery && ! empty($searchQuery)) { + $searchQuery = implode('&', array_map( + function ($v, $k) { + if (is_array($v)) { + return $k. '[]=' . implode('&' . $k . '[]=', $v); + } else { + return $k . '=' . $v; + } + }, + $searchQuery, + array_keys($searchQuery) + )); + } else { + $searchQuery = false; + } +@endphp + +{!! view_render_event('bagisto.shop.layout.header.locale.before') !!}