From 6fd67e56d70ae153e217928d68e190b1db08ad18 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 22 Jun 2019 01:02:33 +0530 Subject: [PATCH 001/172] New repo with base sync --- app/Http/Kernel.php | 2 + composer.json | 13 +- config/app.php | 14 +- config/auth.php | 12 +- config/concord.php | 8 +- config/purge-pool.php | 5 + packages/Webkul/AdminAuthCheck/composer.json | 27 + .../CustomerApprovalController.php | 33 + .../Listeners/LoginAuthenticationAttempt.php | 54 ++ .../src/Providers/AdminAuthCheckProvider.php | 32 + .../src/Providers/EventServiceProvider.php | 20 + .../src/Providers/ModuleServiceProvider.php | 11 + .../src/Resources/lang/en/app.php | 5 + .../Webkul/AdminAuthCheck/src/Routes/web.php | 2 + packages/Webkul/BulkAddToCart/composer.json | 24 + .../Webkul/BulkAddToCart/src/Config/menu.php | 12 + .../Controllers/BulkAddToCartController.php | 170 ++++++ .../src/Http/Controllers/Controller.php | 13 + .../Webkul/BulkAddToCart/src/Http/routes.php | 22 + .../BulkAddToCartServiceProvider.php | 45 ++ .../src/Resources/lang/en/app.php | 17 + .../views/products/bulk-add-to-cart.blade.php | 50 ++ .../CustomerCreditMax/src/Config/system.php | 23 + .../CustomerCreditMax/src/Listeners/Cart.php | 68 +++ .../src/Providers/CustomerCreditMax.php | 33 + .../src/Providers/EventServiceProvider.php | 19 + .../src/Resources/lang/en/app.php | 11 + .../Webkul/CustomerDocument/composer.json | 24 + .../CustomerDocument/src/Config/menu.php | 12 + .../src/Contracts/CustomerDocument.php | 7 + ..._06_07_122059_customer_documents_table.php | 36 ++ .../src/Http/Controllers/Controller.php | 13 + .../Http/Controllers/DocumentController.php | 127 ++++ .../src/Http/admin-routes.php | 26 + .../src/Http/front-routes.php | 21 + .../src/Models/CustomerDocument.php | 13 + .../src/Models/CustomerDocumentProxy.php | 10 + .../CustomerDocumentServiceProvider.php | 53 ++ .../src/Providers/EventServiceProvider.php | 21 + .../src/Providers/ModuleServiceProvider.php | 12 + .../CustomerDocumentRepository.php | 25 + .../src/Resources/lang/en/app.php | 21 + .../views/admin/customers/upload.blade.php | 87 +++ .../views/shop/customers/document.blade.php | 57 ++ ...4_create_customer_group_products_table.php | 34 ++ ...create_customer_group_categories_table.php | 34 ++ .../Admin/CustomerGroupController.php | 139 +++++ .../src/Http/admin-routes.php | 23 + .../src/Models/CustomerGroup.php | 26 + .../CustomerGroupCatalogServiceProvider.php | 37 ++ .../src/Repositories/CategoryRepository.php | 70 +++ .../Repositories/CustomerGroupRepository.php | 102 ++++ .../src/Resources/lang/en/app.php | 13 + .../admin/customers/groups/create.blade.php | 211 +++++++ .../admin/customers/groups/edit.blade.php | 227 +++++++ .../shop/layouts/footer/footer.blade.php | 94 +++ .../layouts/header/nav-menu/navmenu.blade.php | 137 +++++ .../views/shop/products/index.blade.php | 128 ++++ packages/Webkul/SAASCustomizer/.gitignore | 1 + packages/Webkul/SAASCustomizer/composer.json | 27 + .../SAASCustomizer/customization-readme.md | 31 + packages/Webkul/SAASCustomizer/package.json | 25 + .../publishable/saas/assets/css/saas.css | 1 + .../publishable/saas/assets/js/saas.js | 1 + .../publishable/saas/assets/mix-manifest.json | 4 + packages/Webkul/SAASCustomizer/readme.md | 70 +++ .../src/Commands/Console/GenerateSU.php | 117 ++++ .../Webkul/SAASCustomizer/src/Company.php | 133 +++++ .../SAASCustomizer/src/Config/super-menu.php | 11 + .../src/DataGrids/CompaniesDataGrid.php | 92 +++ .../src/Database/DatabaseManager.php | 48 ++ .../src/Database/Eloquent/Builder.php | 14 + ...19_03_26_151001_create_companies_table.php | 45 ++ ..._26_152524_alter_all_unique_contraints.php | 248 ++++++++ ..._create_company_personal_details_table.php | 38 ++ ...05_20_102233_create_super_admins_table.php | 35 ++ ...6_11_164314_alter_catalog_rules_tables.php | 32 + .../SAASCustomizer/src/Exceptions/Handler.php | 108 ++++ .../SAASCustomizer/src/Facades/Company.php | 18 + .../SAASCustomizer/src/Helpers/DataPurger.php | 562 ++++++++++++++++++ .../src/Helpers/StatsPurger.php | 77 +++ .../Http/Controllers/CompanyController.php | 234 ++++++++ .../src/Http/Controllers/Controller.php | 13 + .../src/Http/Controllers/PurgeController.php | 55 ++ .../Http/Controllers/SuperUserController.php | 69 +++ .../src/Http/Middleware/ValidatesDomain.php | 83 +++ .../src/Listeners/CompanyRegistered.php | 25 + .../src/Models/Attribute/Attribute.php | 29 + .../src/Models/Attribute/AttributeFamily.php | 27 + .../src/Models/Attribute/AttributeGroup.php | 29 + .../src/Models/Attribute/AttributeOption.php | 20 + .../Attribute/AttributeOptionTranslation.php | 20 + .../Models/Attribute/AttributeTranslation.php | 19 + .../src/Models/Category/Category.php | 28 + .../Models/Category/CategoryTranslation.php | 29 + .../src/Models/Checkout/Cart.php | 27 + .../src/Models/Checkout/CartAddress.php | 22 + .../src/Models/Checkout/CartItem.php | 19 + .../src/Models/Checkout/CartPayment.php | 19 + .../src/Models/Checkout/CartShippingRate.php | 19 + .../SAASCustomizer/src/Models/Company.php | 25 + .../src/Models/CompanyDetails.php | 17 + .../src/Models/Core/Channel.php | 27 + .../src/Models/Core/CoreConfig.php | 27 + .../src/Models/Core/Currency.php | 27 + .../src/Models/Core/CurrencyExchangeRate.php | 27 + .../SAASCustomizer/src/Models/Core/Locale.php | 28 + .../SAASCustomizer/src/Models/Core/Slider.php | 27 + .../src/Models/Core/SubscribersList.php | 27 + .../src/Models/Customer/Customer.php | 27 + .../src/Models/Customer/CustomerAddress.php | 28 + .../src/Models/Customer/CustomerGroup.php | 27 + .../src/Models/Customer/Wishlist.php | 29 + .../src/Models/Discount/CartRule.php | 27 + .../src/Models/Inventory/InventorySource.php | 27 + .../src/Models/Product/Product.php | 27 + .../Models/Product/ProductAttributeValue.php | 21 + .../src/Models/Product/ProductFlat.php | 27 + .../src/Models/Product/ProductImage.php | 21 + .../src/Models/Product/ProductInventory.php | 27 + .../Product/ProductOrderedInventory.php | 21 + .../src/Models/Product/ProductReview.php | 27 + .../src/Models/Sales/Invoice.php | 27 + .../src/Models/Sales/InvoiceItem.php | 27 + .../SAASCustomizer/src/Models/Sales/Order.php | 27 + .../src/Models/Sales/OrderAddress.php | 27 + .../src/Models/Sales/OrderItem.php | 27 + .../src/Models/Sales/OrderPayment.php | 27 + .../src/Models/Sales/Shipment.php | 26 + .../src/Models/Sales/ShipmentItem.php | 28 + .../Models/StripeConnect/StripeConnect.php | 27 + .../SAASCustomizer/src/Models/SuperAdmin.php | 25 + .../src/Models/Tax/TaxCategory.php | 28 + .../SAASCustomizer/src/Models/Tax/TaxMap.php | 19 + .../SAASCustomizer/src/Models/Tax/TaxRate.php | 27 + .../SAASCustomizer/src/Models/User/Admin.php | 36 ++ .../SAASCustomizer/src/Models/User/Role.php | 30 + .../Attribute/AttributeFamilyObserver.php | 17 + .../Attribute/AttributeGroupObserver.php | 17 + .../Observers/Attribute/AttributeObserver.php | 17 + .../Attribute/AttributeOptionObserver.php | 15 + .../AttributeOptionTranslationObserver.php | 14 + .../AttributeTranslationObserver.php | 14 + .../Observers/Category/CategoryObserver.php | 17 + .../Category/CategoryTranslationObserver.php | 17 + .../Checkout/CartAddressObserver.php | 14 + .../Observers/Checkout/CartItemObserver.php | 14 + .../src/Observers/Checkout/CartObserver.php | 17 + .../Checkout/CartPaymentObserver.php | 14 + .../Checkout/CartShippingRateObserver.php | 14 + .../src/Observers/Core/ChannelObserver.php | 34 ++ .../src/Observers/Core/CoreConfigObserver.php | 17 + .../Observers/Core/CurrencyExchangeRate.php | 17 + .../src/Observers/Core/CurrencyObserver.php | 17 + .../src/Observers/Core/LocaleObserver.php | 32 + .../src/Observers/Core/SliderObserver.php | 17 + .../Core/SubscribersListObserver.php | 17 + .../Customer/CustomerAddressObserver.php | 17 + .../Customer/CustomerGroupObserver.php | 17 + .../Observers/Customer/CustomerObserver.php | 17 + .../Observers/Customer/WishlistObserver.php | 17 + .../Observers/Discount/CartRuleObserver.php | 17 + .../Inventory/InventorySourceObserver.php | 17 + .../Product/ProductAttributeValueObserver.php | 17 + .../Observers/Product/ProductFlatObserver.php | 17 + .../Product/ProductImageObserver.php | 17 + .../Product/ProductInventoryObserver.php | 17 + .../src/Observers/Product/ProductObserver.php | 17 + .../ProductOrderedInventoryObserver.php | 14 + .../Product/ProductReviewObserver.php | 17 + .../ProductSalableInventoryObserver.php | 14 + .../Observers/Sales/InvoiceItemObserver.php | 17 + .../src/Observers/Sales/InvoiceObserver.php | 17 + .../Observers/Sales/OrderAddressObserver.php | 17 + .../Sales/OrderItemInventoryObserver.php | 17 + .../src/Observers/Sales/OrderItemObserver.php | 17 + .../src/Observers/Sales/OrderObserver.php | 17 + .../Observers/Sales/OrderPaymentObserver.php | 17 + .../Observers/Sales/ShipmentItemObserver.php | 17 + .../src/Observers/Sales/ShipmentObserver.php | 16 + .../StripeConnect/StripeConnectObserver.php | 17 + .../src/Observers/Tax/TaxCategoryObserver.php | 17 + .../src/Observers/Tax/TaxRateObserver.php | 17 + .../src/Observers/User/AdminObserver.php | 19 + .../src/Observers/User/RoleObserver.php | 19 + .../src/Providers/EventServiceProvider.php | 19 + .../src/Providers/ModuleServiceProvider.php | 14 + .../SAASCustomizerServiceProvider.php | 324 ++++++++++ .../Repositories/CompanyDetailsRepository.php | 24 + .../src/Repositories/CompanyRepository.php | 24 + .../StripeSuperAdminRepository.php | 24 + .../src/Repositories/SuperAdminRepository.php | 24 + .../src/Resources/assets/js/app.js | 0 .../src/Resources/assets/sass/app.scss | 79 +++ .../src/Resources/lang/en/app.php | 25 + .../views/companies/auth/login.blade.php | 36 ++ .../views/companies/auth/register.blade.php | 267 +++++++++ .../views/companies/company/edit.blade.php | 92 +++ .../views/companies/company/index.blade.php | 41 ++ .../Resources/views/companies/index.blade.php | 20 + .../views/companies/layouts/master.blade.php | 65 ++ .../companies/layouts/nav-aside.blade.php | 37 ++ .../companies/layouts/nav-left.blade.php | 13 + .../views/companies/layouts/nav-top.blade.php | 40 ++ .../views/companies/layouts/tabs.blade.php | 0 .../src/Resources/views/errors/400.blade.php | 34 ++ .../src/Resources/views/errors/401.blade.php | 38 ++ .../src/Resources/views/errors/403.blade.php | 38 ++ .../src/Resources/views/errors/404.blade.php | 38 ++ .../src/Resources/views/errors/500.blade.php | 34 ++ .../src/Resources/views/errors/503.blade.php | 32 + .../src/Resources/views/errors/auth.blade.php | 34 ++ .../Webkul/SAASCustomizer/src/Routes/web.php | 37 ++ .../Validation/DatabasePresenceVerifier.php | 27 + packages/Webkul/SAASCustomizer/webpack.mix.js | 22 + packages/Webkul/SAASPreOrder/package.json | 20 + .../publishable/assets/css/preorder-admin.css | 1 + .../publishable/assets/css/preorder.css | 1 + .../assets/images/Icon-Preorder-Active.svg | 14 + .../assets/images/Icon-Preorder.svg | 13 + .../publishable/assets/mix-manifest.json | 4 + .../src/Commands/Console/GenerateData.php | 196 ++++++ .../SAASPreOrder/src/Config/admin-menu.php | 11 + .../SAASPreOrder/src/Config/purge-pool.php | 5 + .../Webkul/SAASPreOrder/src/Config/system.php | 54 ++ .../src/Contracts/PreOrderItem.php | 7 + .../src/DataGrids/Admin/Order.php | 164 +++++ .../src/DataGrids/Admin/PreOrder.php | 179 ++++++ ...04_163237_create_pre_order_items_table.php | 50 ++ .../src/Database/Seeders/AttributeSeeder.php | 69 +++ .../src/Database/Seeders/DatabaseSeeder.php | 18 + .../src/Helpers/PreOrderDataPurger.php | 98 +++ .../SAASPreOrder/src/Helpers/Product.php | 60 ++ .../src/Http/Controllers/Admin/Controller.php | 13 + .../Controllers/Admin/PreorderController.php | 94 +++ .../src/Http/Controllers/Shop/Controller.php | 12 + .../Controllers/Shop/PreOrderController.php | 123 ++++ .../SAASPreOrder/src/Http/admin-routes.php | 22 + .../SAASPreOrder/src/Http/front-routes.php | 5 + .../SAASPreOrder/src/Listeners/Cart.php | 197 ++++++ .../SAASPreOrder/src/Listeners/Invoice.php | 59 ++ .../SAASPreOrder/src/Listeners/Order.php | 99 +++ .../src/Mail/ProductInStockNotification.php | 48 ++ .../SAASPreOrder/src/Models/PreOrderItem.php | 89 +++ .../src/Models/PreOrderItemProxy.php | 10 + .../src/Observers/PreOrderObserver.php | 17 + .../src/Providers/EventServiceProvider.php | 35 ++ .../src/Providers/ModuleServiceProvider.php | 12 + .../src/Providers/PreorderServiceProvider.php | 87 +++ .../Repositories/PreOrderItemRepository.php | 77 +++ .../assets/images/Icon-Preorder-Active.svg | 14 + .../Resources/assets/images/Icon-Preorder.svg | 13 + .../src/Resources/assets/sass/admin.scss | 40 ++ .../src/Resources/assets/sass/app.scss | 27 + .../src/Resources/assets/sass/icons.scss | 17 + .../src/Resources/lang/en/app.php | 93 +++ .../views/admin/layouts/style.blade.php | 1 + .../views/admin/preorders/index.blade.php | 26 + .../views/admin/sales/orders/index.blade.php | 42 ++ .../views/admin/sales/orders/view.blade.php | 503 ++++++++++++++++ .../Resources/views/emails/in-stock.blade.php | 44 ++ .../customers/account/orders/view.blade.php | 414 +++++++++++++ .../views/shop/products/add-buttons.blade.php | 36 ++ .../shop/products/preorder-info.blade.php | 93 +++ .../shop/products/view/product-add.blade.php | 21 + packages/Webkul/SAASPreOrder/src/Shipping.php | 62 ++ packages/Webkul/SAASPreOrder/webpack.mix.js | 22 + .../ShowPriceAfterLogin/Config/system.php | 51 ++ .../Webkul/ShowPriceAfterLogin/composer.json | 26 + .../Webkul/ShowPriceAfterLogin/package.json | 16 + .../Http/Middleware/ShowShopAfterLogin.php | 26 + .../ShowPriceAfterLogin/src/Http/routes.php | 284 +++++++++ .../ShowPriceAfterLoginServiceProvider.php | 52 ++ .../src/Resources/lang/en/app.php | 19 + .../views/Shop/add-buttons.blade.php | 71 +++ .../views/Shop/add-to-cart.blade.php | 24 + .../Resources/views/Shop/buy-now.blade.php | 21 + .../src/Resources/views/Shop/price.blade.php | 66 ++ .../views/Shop/review-price.blade.php | 15 + .../views/Shop/view/product-add.blade.php | 28 + .../ShowPriceAfterLogin/vendor/autoload.php | 7 + .../vendor/composer/ClassLoader.php | 445 ++++++++++++++ .../vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 9 + .../vendor/composer/autoload_namespaces.php | 9 + .../vendor/composer/autoload_psr4.php | 10 + .../vendor/composer/autoload_real.php | 52 ++ .../vendor/composer/autoload_static.php | 31 + .../Webkul/ShowPriceAfterLogin/webpack.mix.js | 22 + packages/Webkul/StripeConnect/.gitignore | 3 + packages/Webkul/StripeConnect/composer.json | 25 + packages/Webkul/StripeConnect/package.json | 25 + .../StripeConnect/src/Config/admin-menu.php | 19 + .../src/Config/paymentmethods.php | 11 + .../StripeConnect/src/Config/system.php | 127 ++++ .../src/Contracts/StripeCart.php | 7 + .../src/Contracts/StripeConnect.php | 7 + ...02_20_131808_create_stripe_cards_table.php | 38 ++ ...9_152250_create_stripe_companies_table.php | 37 ++ ..._06_11_174319_create_stripe_cart_table.php | 34 ++ .../src/Http/Controllers/Controller.php | 12 + .../SellerRegistrationController.php | 107 ++++ .../Controllers/StripeConnectController.php | 333 +++++++++++ .../Webkul/StripeConnect/src/Http/routes.php | 38 ++ .../StripeConnect/src/Models/StripeCart.php | 15 + .../src/Models/StripeCartProxy.php | 10 + .../src/Models/StripeConnect.php | 15 + .../src/Models/StripeConnectProxy.php | 10 + .../StripeConnect/src/Payment/Stripe.php | 62 ++ .../src/Payment/StripePayment.php | 33 + .../src/Providers/EventServiceProvider.php | 30 + .../src/Providers/ModuleServiceProvider.php | 12 + .../StripeConnectServiceProvider.php | 61 ++ .../src/Repositories/StripeCartRepository.php | 24 + .../Repositories/StripeConnectRepository.php | 24 + .../fonts/montserrat-v12-latin-regular.eot | Bin 0 -> 21800 bytes .../images/icons/Icon-Stripe-Active.svg | 15 + .../assets/images/icons/Icon-Stripe.svg | 15 + .../assets/images/icons/calender copy 2.png | Bin 0 -> 581 bytes .../assets/images/icons/calender copy 2.svg | 13 + .../assets/images/icons/calender copy.png | Bin 0 -> 334 bytes .../assets/images/icons/calender copy.svg | 13 + .../assets/images/icons/calender.png | Bin 0 -> 279 bytes .../assets/images/icons/calender.svg | 15 + .../Resources/assets/images/icons/card.png | Bin 0 -> 275 bytes .../Resources/assets/images/icons/card.svg | 13 + .../Resources/assets/images/icons/check-1.png | Bin 0 -> 690 bytes .../Resources/assets/images/icons/check-1.svg | 16 + .../assets/images/icons/close-icon.svg | 13 + .../Resources/assets/images/icons/close.svg | 11 + .../assets/images/icons/cross-icon.svg | 16 + .../Resources/assets/images/icons/logo.png | Bin 0 -> 2316 bytes .../Resources/assets/images/icons/logo.svg | 11 + .../Resources/assets/images/icons/master.svg | 16 + .../Resources/assets/images/icons/mastro.svg | 14 + .../src/Resources/assets/images/icons/pci.svg | 14 + .../assets/images/icons/stripe-logo.png | Bin 0 -> 34204 bytes .../assets/images/icons/successful.png | Bin 0 -> 3206 bytes .../assets/images/icons/successful.svg | 11 + .../Resources/assets/images/icons/visa.svg | 17 + .../src/Resources/assets/sass/stripe.scss | 141 +++++ .../src/Resources/lang/en/app.php | 19 + .../views/checkout/card-script.blade.php | 290 +++++++++ .../Resources/views/checkout/card.blade.php | 19 + .../Resources/views/checkout/style.blade.php | 1 + .../views/components/add-card.blade.php | 7 + .../views/components/saved-cards.blade.php | 31 + .../views/components/stripe-form.blade.php | 53 ++ .../src/Resources/views/connect.blade.php | 35 ++ .../views/super-admin/create.blade.php | 91 +++ .../views/super-admin/edit.blade.php | 85 +++ packages/Webkul/StripeConnect/webpack.mix.js | 19 + .../admin/customers/groups/create.blade.php | 211 +++++++ .../admin/customers/groups/edit.blade.php | 227 +++++++ .../vendor/admin/sales/orders/index.blade.php | 42 ++ .../vendor/admin/sales/orders/view.blade.php | 503 ++++++++++++++++ .../customers/account/orders/view.blade.php | 414 +++++++++++++ .../shop/layouts/footer/footer.blade.php | 94 +++ .../layouts/header/nav-menu/navmenu.blade.php | 137 +++++ .../shop/products/add-buttons.blade.php | 36 ++ .../vendor/shop/products/index.blade.php | 128 ++++ .../shop/products/view/product-add.blade.php | 21 + 362 files changed, 17088 insertions(+), 6 deletions(-) create mode 100644 config/purge-pool.php create mode 100644 packages/Webkul/AdminAuthCheck/composer.json create mode 100644 packages/Webkul/AdminAuthCheck/src/Http/Controllers/CustomerApprovalController.php create mode 100644 packages/Webkul/AdminAuthCheck/src/Listeners/LoginAuthenticationAttempt.php create mode 100644 packages/Webkul/AdminAuthCheck/src/Providers/AdminAuthCheckProvider.php create mode 100644 packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php create mode 100644 packages/Webkul/AdminAuthCheck/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/AdminAuthCheck/src/Resources/lang/en/app.php create mode 100644 packages/Webkul/AdminAuthCheck/src/Routes/web.php create mode 100644 packages/Webkul/BulkAddToCart/composer.json create mode 100644 packages/Webkul/BulkAddToCart/src/Config/menu.php create mode 100644 packages/Webkul/BulkAddToCart/src/Http/Controllers/BulkAddToCartController.php create mode 100644 packages/Webkul/BulkAddToCart/src/Http/Controllers/Controller.php create mode 100644 packages/Webkul/BulkAddToCart/src/Http/routes.php create mode 100644 packages/Webkul/BulkAddToCart/src/Providers/BulkAddToCartServiceProvider.php create mode 100644 packages/Webkul/BulkAddToCart/src/Resources/lang/en/app.php create mode 100644 packages/Webkul/BulkAddToCart/src/Resources/views/products/bulk-add-to-cart.blade.php create mode 100644 packages/Webkul/CustomerCreditMax/src/Config/system.php create mode 100644 packages/Webkul/CustomerCreditMax/src/Listeners/Cart.php create mode 100755 packages/Webkul/CustomerCreditMax/src/Providers/CustomerCreditMax.php create mode 100644 packages/Webkul/CustomerCreditMax/src/Providers/EventServiceProvider.php create mode 100644 packages/Webkul/CustomerCreditMax/src/Resources/lang/en/app.php create mode 100644 packages/Webkul/CustomerDocument/composer.json create mode 100644 packages/Webkul/CustomerDocument/src/Config/menu.php create mode 100644 packages/Webkul/CustomerDocument/src/Contracts/CustomerDocument.php create mode 100644 packages/Webkul/CustomerDocument/src/Database/migrations/2019_06_07_122059_customer_documents_table.php create mode 100644 packages/Webkul/CustomerDocument/src/Http/Controllers/Controller.php create mode 100644 packages/Webkul/CustomerDocument/src/Http/Controllers/DocumentController.php create mode 100644 packages/Webkul/CustomerDocument/src/Http/admin-routes.php create mode 100644 packages/Webkul/CustomerDocument/src/Http/front-routes.php create mode 100644 packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php create mode 100644 packages/Webkul/CustomerDocument/src/Models/CustomerDocumentProxy.php create mode 100644 packages/Webkul/CustomerDocument/src/Providers/CustomerDocumentServiceProvider.php create mode 100644 packages/Webkul/CustomerDocument/src/Providers/EventServiceProvider.php create mode 100644 packages/Webkul/CustomerDocument/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/CustomerDocument/src/Repositories/CustomerDocumentRepository.php create mode 100644 packages/Webkul/CustomerDocument/src/Resources/lang/en/app.php create mode 100644 packages/Webkul/CustomerDocument/src/Resources/views/admin/customers/upload.blade.php create mode 100644 packages/Webkul/CustomerDocument/src/Resources/views/shop/customers/document.blade.php create mode 100644 packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171024_create_customer_group_products_table.php create mode 100644 packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171240_create_customer_group_categories_table.php create mode 100644 packages/Webkul/CustomerGroupCatalog/src/Http/Controllers/Admin/CustomerGroupController.php create mode 100644 packages/Webkul/CustomerGroupCatalog/src/Http/admin-routes.php create mode 100644 packages/Webkul/CustomerGroupCatalog/src/Models/CustomerGroup.php create mode 100755 packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php create mode 100644 packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php create mode 100755 packages/Webkul/CustomerGroupCatalog/src/Repositories/CustomerGroupRepository.php create mode 100644 packages/Webkul/CustomerGroupCatalog/src/Resources/lang/en/app.php create mode 100644 packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/create.blade.php create mode 100644 packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/edit.blade.php create mode 100755 packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/footer/footer.blade.php create mode 100755 packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/header/nav-menu/navmenu.blade.php create mode 100755 packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/products/index.blade.php create mode 100755 packages/Webkul/SAASCustomizer/.gitignore create mode 100755 packages/Webkul/SAASCustomizer/composer.json create mode 100644 packages/Webkul/SAASCustomizer/customization-readme.md create mode 100755 packages/Webkul/SAASCustomizer/package.json create mode 100644 packages/Webkul/SAASCustomizer/publishable/saas/assets/css/saas.css create mode 100644 packages/Webkul/SAASCustomizer/publishable/saas/assets/js/saas.js create mode 100644 packages/Webkul/SAASCustomizer/publishable/saas/assets/mix-manifest.json create mode 100644 packages/Webkul/SAASCustomizer/readme.md create mode 100644 packages/Webkul/SAASCustomizer/src/Commands/Console/GenerateSU.php create mode 100644 packages/Webkul/SAASCustomizer/src/Company.php create mode 100644 packages/Webkul/SAASCustomizer/src/Config/super-menu.php create mode 100644 packages/Webkul/SAASCustomizer/src/DataGrids/CompaniesDataGrid.php create mode 100644 packages/Webkul/SAASCustomizer/src/Database/DatabaseManager.php create mode 100644 packages/Webkul/SAASCustomizer/src/Database/Eloquent/Builder.php create mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_03_26_151001_create_companies_table.php create mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_03_26_152524_alter_all_unique_contraints.php create mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_04_05_105951_create_company_personal_details_table.php create mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_05_20_102233_create_super_admins_table.php create mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_06_11_164314_alter_catalog_rules_tables.php create mode 100644 packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php create mode 100644 packages/Webkul/SAASCustomizer/src/Facades/Company.php create mode 100644 packages/Webkul/SAASCustomizer/src/Helpers/DataPurger.php create mode 100644 packages/Webkul/SAASCustomizer/src/Helpers/StatsPurger.php create mode 100644 packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php create mode 100755 packages/Webkul/SAASCustomizer/src/Http/Controllers/Controller.php create mode 100644 packages/Webkul/SAASCustomizer/src/Http/Controllers/PurgeController.php create mode 100644 packages/Webkul/SAASCustomizer/src/Http/Controllers/SuperUserController.php create mode 100644 packages/Webkul/SAASCustomizer/src/Http/Middleware/ValidatesDomain.php create mode 100644 packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php create mode 100644 packages/Webkul/SAASCustomizer/src/Models/Attribute/Attribute.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeFamily.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeGroup.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeOption.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeOptionTranslation.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeTranslation.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Category/Category.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Category/CategoryTranslation.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Checkout/Cart.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Checkout/CartAddress.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Checkout/CartItem.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Checkout/CartPayment.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Checkout/CartShippingRate.php create mode 100644 packages/Webkul/SAASCustomizer/src/Models/Company.php create mode 100644 packages/Webkul/SAASCustomizer/src/Models/CompanyDetails.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/Channel.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/CoreConfig.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/Currency.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/CurrencyExchangeRate.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/Locale.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/Slider.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/SubscribersList.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Customer/Customer.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerAddress.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerGroup.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Customer/Wishlist.php create mode 100644 packages/Webkul/SAASCustomizer/src/Models/Discount/CartRule.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Inventory/InventorySource.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Product/Product.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Product/ProductAttributeValue.php create mode 100644 packages/Webkul/SAASCustomizer/src/Models/Product/ProductFlat.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Product/ProductImage.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Product/ProductInventory.php create mode 100644 packages/Webkul/SAASCustomizer/src/Models/Product/ProductOrderedInventory.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Product/ProductReview.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/Invoice.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/InvoiceItem.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/Order.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/OrderAddress.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/OrderItem.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/OrderPayment.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/Shipment.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/ShipmentItem.php create mode 100644 packages/Webkul/SAASCustomizer/src/Models/StripeConnect/StripeConnect.php create mode 100644 packages/Webkul/SAASCustomizer/src/Models/SuperAdmin.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Tax/TaxCategory.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Tax/TaxMap.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/Tax/TaxRate.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/User/Admin.php create mode 100755 packages/Webkul/SAASCustomizer/src/Models/User/Role.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeFamilyObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeGroupObserver.php create mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeOptionObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeOptionTranslationObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeTranslationObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryTranslationObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartAddressObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartItemObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartPaymentObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartShippingRateObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/ChannelObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/CoreConfigObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyExchangeRate.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/LocaleObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/SliderObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/SubscribersListObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerAddressObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerGroupObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Customer/WishlistObserver.php create mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Discount/CartRuleObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Inventory/InventorySourceObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductAttributeValueObserver.php create mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductFlatObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductImageObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductInventoryObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductObserver.php create mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductOrderedInventoryObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductReviewObserver.php create mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductSalableInventoryObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/InvoiceItemObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/InvoiceObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderAddressObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemInventoryObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderPaymentObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentItemObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentObserver.php create mode 100644 packages/Webkul/SAASCustomizer/src/Observers/StripeConnect/StripeConnectObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxCategoryObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxRateObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/User/AdminObserver.php create mode 100755 packages/Webkul/SAASCustomizer/src/Observers/User/RoleObserver.php create mode 100644 packages/Webkul/SAASCustomizer/src/Providers/EventServiceProvider.php create mode 100755 packages/Webkul/SAASCustomizer/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/SAASCustomizer/src/Providers/SAASCustomizerServiceProvider.php create mode 100644 packages/Webkul/SAASCustomizer/src/Repositories/CompanyDetailsRepository.php create mode 100644 packages/Webkul/SAASCustomizer/src/Repositories/CompanyRepository.php create mode 100644 packages/Webkul/SAASCustomizer/src/Repositories/StripeSuperAdminRepository.php create mode 100644 packages/Webkul/SAASCustomizer/src/Repositories/SuperAdminRepository.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/assets/js/app.js create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/assets/sass/app.scss create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/lang/en/app.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/login.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/edit.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/index.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/index.blade.php create mode 100755 packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/master.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-aside.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-left.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-top.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/tabs.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/errors/400.blade.php create mode 100755 packages/Webkul/SAASCustomizer/src/Resources/views/errors/401.blade.php create mode 100755 packages/Webkul/SAASCustomizer/src/Resources/views/errors/403.blade.php create mode 100755 packages/Webkul/SAASCustomizer/src/Resources/views/errors/404.blade.php create mode 100755 packages/Webkul/SAASCustomizer/src/Resources/views/errors/500.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/errors/503.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/errors/auth.blade.php create mode 100644 packages/Webkul/SAASCustomizer/src/Routes/web.php create mode 100644 packages/Webkul/SAASCustomizer/src/Validation/DatabasePresenceVerifier.php create mode 100644 packages/Webkul/SAASCustomizer/webpack.mix.js create mode 100644 packages/Webkul/SAASPreOrder/package.json create mode 100644 packages/Webkul/SAASPreOrder/publishable/assets/css/preorder-admin.css create mode 100644 packages/Webkul/SAASPreOrder/publishable/assets/css/preorder.css create mode 100644 packages/Webkul/SAASPreOrder/publishable/assets/images/Icon-Preorder-Active.svg create mode 100644 packages/Webkul/SAASPreOrder/publishable/assets/images/Icon-Preorder.svg create mode 100644 packages/Webkul/SAASPreOrder/publishable/assets/mix-manifest.json create mode 100644 packages/Webkul/SAASPreOrder/src/Commands/Console/GenerateData.php create mode 100644 packages/Webkul/SAASPreOrder/src/Config/admin-menu.php create mode 100644 packages/Webkul/SAASPreOrder/src/Config/purge-pool.php create mode 100644 packages/Webkul/SAASPreOrder/src/Config/system.php create mode 100644 packages/Webkul/SAASPreOrder/src/Contracts/PreOrderItem.php create mode 100644 packages/Webkul/SAASPreOrder/src/DataGrids/Admin/Order.php create mode 100644 packages/Webkul/SAASPreOrder/src/DataGrids/Admin/PreOrder.php create mode 100644 packages/Webkul/SAASPreOrder/src/Database/Migrations/2019_06_04_163237_create_pre_order_items_table.php create mode 100755 packages/Webkul/SAASPreOrder/src/Database/Seeders/AttributeSeeder.php create mode 100755 packages/Webkul/SAASPreOrder/src/Database/Seeders/DatabaseSeeder.php create mode 100644 packages/Webkul/SAASPreOrder/src/Helpers/PreOrderDataPurger.php create mode 100644 packages/Webkul/SAASPreOrder/src/Helpers/Product.php create mode 100644 packages/Webkul/SAASPreOrder/src/Http/Controllers/Admin/Controller.php create mode 100644 packages/Webkul/SAASPreOrder/src/Http/Controllers/Admin/PreorderController.php create mode 100644 packages/Webkul/SAASPreOrder/src/Http/Controllers/Shop/Controller.php create mode 100644 packages/Webkul/SAASPreOrder/src/Http/Controllers/Shop/PreOrderController.php create mode 100644 packages/Webkul/SAASPreOrder/src/Http/admin-routes.php create mode 100644 packages/Webkul/SAASPreOrder/src/Http/front-routes.php create mode 100644 packages/Webkul/SAASPreOrder/src/Listeners/Cart.php create mode 100644 packages/Webkul/SAASPreOrder/src/Listeners/Invoice.php create mode 100644 packages/Webkul/SAASPreOrder/src/Listeners/Order.php create mode 100644 packages/Webkul/SAASPreOrder/src/Mail/ProductInStockNotification.php create mode 100644 packages/Webkul/SAASPreOrder/src/Models/PreOrderItem.php create mode 100644 packages/Webkul/SAASPreOrder/src/Models/PreOrderItemProxy.php create mode 100644 packages/Webkul/SAASPreOrder/src/Observers/PreOrderObserver.php create mode 100644 packages/Webkul/SAASPreOrder/src/Providers/EventServiceProvider.php create mode 100644 packages/Webkul/SAASPreOrder/src/Providers/ModuleServiceProvider.php create mode 100755 packages/Webkul/SAASPreOrder/src/Providers/PreorderServiceProvider.php create mode 100755 packages/Webkul/SAASPreOrder/src/Repositories/PreOrderItemRepository.php create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/assets/images/Icon-Preorder-Active.svg create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/assets/images/Icon-Preorder.svg create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/assets/sass/admin.scss create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/assets/sass/app.scss create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/assets/sass/icons.scss create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/lang/en/app.php create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/views/admin/layouts/style.blade.php create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/views/admin/preorders/index.blade.php create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/index.blade.php create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/view.blade.php create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/views/emails/in-stock.blade.php create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/add-buttons.blade.php create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/preorder-info.blade.php create mode 100644 packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/view/product-add.blade.php create mode 100644 packages/Webkul/SAASPreOrder/src/Shipping.php create mode 100644 packages/Webkul/SAASPreOrder/webpack.mix.js create mode 100644 packages/Webkul/ShowPriceAfterLogin/Config/system.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/composer.json create mode 100644 packages/Webkul/ShowPriceAfterLogin/package.json create mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Http/Middleware/ShowShopAfterLogin.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Http/routes.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Providers/ShowPriceAfterLoginServiceProvider.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Resources/lang/en/app.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/add-buttons.blade.php create mode 100755 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/add-to-cart.blade.php create mode 100755 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/buy-now.blade.php create mode 100755 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/price.blade.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/review-price.blade.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/view/product-add.blade.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/vendor/autoload.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/vendor/composer/ClassLoader.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/vendor/composer/LICENSE create mode 100644 packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_classmap.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_namespaces.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_psr4.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_real.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_static.php create mode 100644 packages/Webkul/ShowPriceAfterLogin/webpack.mix.js create mode 100644 packages/Webkul/StripeConnect/.gitignore create mode 100644 packages/Webkul/StripeConnect/composer.json create mode 100644 packages/Webkul/StripeConnect/package.json create mode 100644 packages/Webkul/StripeConnect/src/Config/admin-menu.php create mode 100644 packages/Webkul/StripeConnect/src/Config/paymentmethods.php create mode 100644 packages/Webkul/StripeConnect/src/Config/system.php create mode 100644 packages/Webkul/StripeConnect/src/Contracts/StripeCart.php create mode 100644 packages/Webkul/StripeConnect/src/Contracts/StripeConnect.php create mode 100644 packages/Webkul/StripeConnect/src/Database/Migrations/2019_02_20_131808_create_stripe_cards_table.php create mode 100644 packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_09_152250_create_stripe_companies_table.php create mode 100644 packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_11_174319_create_stripe_cart_table.php create mode 100755 packages/Webkul/StripeConnect/src/Http/Controllers/Controller.php create mode 100644 packages/Webkul/StripeConnect/src/Http/Controllers/SellerRegistrationController.php create mode 100644 packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php create mode 100644 packages/Webkul/StripeConnect/src/Http/routes.php create mode 100644 packages/Webkul/StripeConnect/src/Models/StripeCart.php create mode 100644 packages/Webkul/StripeConnect/src/Models/StripeCartProxy.php create mode 100644 packages/Webkul/StripeConnect/src/Models/StripeConnect.php create mode 100644 packages/Webkul/StripeConnect/src/Models/StripeConnectProxy.php create mode 100755 packages/Webkul/StripeConnect/src/Payment/Stripe.php create mode 100644 packages/Webkul/StripeConnect/src/Payment/StripePayment.php create mode 100644 packages/Webkul/StripeConnect/src/Providers/EventServiceProvider.php create mode 100644 packages/Webkul/StripeConnect/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/StripeConnect/src/Providers/StripeConnectServiceProvider.php create mode 100644 packages/Webkul/StripeConnect/src/Repositories/StripeCartRepository.php create mode 100644 packages/Webkul/StripeConnect/src/Repositories/StripeConnectRepository.php create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/fonts/montserrat-v12-latin-regular.eot create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe-Active.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy 2.png create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy 2.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.png create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.png create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.png create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.png create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close-icon.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close.svg create mode 100755 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/cross-icon.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/logo.png create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/logo.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/master.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/mastro.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/pci.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/stripe-logo.png create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/successful.png create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/successful.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/visa.svg create mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/sass/stripe.scss create mode 100644 packages/Webkul/StripeConnect/src/Resources/lang/en/app.php create mode 100644 packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php create mode 100644 packages/Webkul/StripeConnect/src/Resources/views/checkout/card.blade.php create mode 100644 packages/Webkul/StripeConnect/src/Resources/views/checkout/style.blade.php create mode 100644 packages/Webkul/StripeConnect/src/Resources/views/components/add-card.blade.php create mode 100644 packages/Webkul/StripeConnect/src/Resources/views/components/saved-cards.blade.php create mode 100644 packages/Webkul/StripeConnect/src/Resources/views/components/stripe-form.blade.php create mode 100644 packages/Webkul/StripeConnect/src/Resources/views/connect.blade.php create mode 100644 packages/Webkul/StripeConnect/src/Resources/views/super-admin/create.blade.php create mode 100644 packages/Webkul/StripeConnect/src/Resources/views/super-admin/edit.blade.php create mode 100644 packages/Webkul/StripeConnect/webpack.mix.js create mode 100644 resources/views/vendor/admin/customers/groups/create.blade.php create mode 100644 resources/views/vendor/admin/customers/groups/edit.blade.php create mode 100644 resources/views/vendor/admin/sales/orders/index.blade.php create mode 100644 resources/views/vendor/admin/sales/orders/view.blade.php create mode 100644 resources/views/vendor/shop/customers/account/orders/view.blade.php create mode 100644 resources/views/vendor/shop/layouts/footer/footer.blade.php create mode 100644 resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php create mode 100644 resources/views/vendor/shop/products/add-buttons.blade.php create mode 100644 resources/views/vendor/shop/products/index.blade.php create mode 100644 resources/views/vendor/shop/products/view/product-add.blade.php diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index a0067907d..51792b28d 100755 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -31,6 +31,8 @@ class Kernel extends HttpKernel \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, + \Webkul\SAASCustomizer\Http\Middleware\ValidatesDomain::class, + \Webkul\ShowPriceAfterLogin\Http\Middleware\ShowShopAfterLogin::class ], 'api' => [ diff --git a/composer.json b/composer.json index e4e0e4b2f..9c16b61f3 100755 --- a/composer.json +++ b/composer.json @@ -20,6 +20,7 @@ "doctrine/dbal": "^2.9@dev", "fideloper/proxy": "^4.0", "flynsarmy/db-blade-compiler": "*", + "guzzlehttp/guzzle": "^6.3@dev", "intervention/image": "^2.4", "intervention/imagecache": "^2.3", "kalnoy/nestedset": "^4.3", @@ -30,6 +31,7 @@ "nwidart/laravel-modules": "^3.2", "prettus/l5-repository": "^2.6", "propaganistas/laravel-intl": "^2.0", + "stripe/stripe-php": "6.0", "tymon/jwt-auth": "dev-develop" }, "require-dev": { @@ -88,7 +90,16 @@ "Webkul\\Sales\\": "packages/Webkul/Sales/src", "Webkul\\Tax\\": "packages/Webkul/Tax/src", "Webkul\\API\\": "packages/Webkul/API", - "Webkul\\Discount\\": "packages/Webkul/Discount/src" + "Webkul\\Discount\\": "packages/Webkul/Discount/src", + "Webkul\\CustomerDocument\\": "packages/Webkul/CustomerDocument", + "Webkul\\BulkAddToCart\\": "packages/Webkul/BulkAddToCart", + "Webkul\\SAASCustomizer\\": "packages/Webkul/SAASCustomizer/src", + "Webkul\\AdminAuthCheck\\": "packages/Webkul/AdminAuthCheck/src", + "Webkul\\StripeConnect\\": "packages/Webkul/StripeConnect/src", + "Webkul\\CustomerCreditMax\\": "packages/Webkul/CustomerCreditMax", + "Webkul\\CustomerGroupCatalog\\": "packages/Webkul/CustomerGroupCatalog", + "Webkul\\ShowPriceAfterLogin\\": "packages/Webkul/ShowPriceAfterLogin/src", + "Webkul\\SAASPreOrder\\": "packages/Webkul/SAASPreOrder/src" } }, "autoload-dev": { diff --git a/config/app.php b/config/app.php index b15029bdc..c2ff96bcf 100755 --- a/config/app.php +++ b/config/app.php @@ -52,7 +52,7 @@ return [ | */ - 'url' => env('APP_URL', 'http://localhost'), + 'url' => env('APP_URL', 'http://bagsaas.com'), /* |-------------------------------------------------------------------------- @@ -245,7 +245,16 @@ return [ Webkul\Sales\Providers\SalesServiceProvider::class, Webkul\Tax\Providers\TaxServiceProvider::class, Webkul\API\Providers\APIServiceProvider::class, - Webkul\Discount\Providers\DiscountServiceProvider::class + Webkul\Discount\Providers\DiscountServiceProvider::class, + Webkul\CustomerDocument\Providers\CustomerDocumentServiceProvider::class, + Webkul\BulkAddToCart\Providers\BulkAddToCartServiceProvider::class, + Webkul\AdminAuthCheck\Providers\AdminAuthCheckServiceProvider::class, + Webkul\StripeConnect\Providers\StripeConnectServiceProvider::class, + Webkul\CustomerGroupCatalog\Providers\CustomerGroupCatalogServiceProvider::class, + // Webkul\ShowPriceAfterLogin\Providers\ShowPriceAfterLoginServiceProvider::class, + Webkul\CustomerCreditMax\Providers\CustomerCreditMaxServiceProvider::class, + Webkul\SAASPreOrder\Providers\SAASPreOrderServiceProvider::class, + Webkul\SAASCustomizer\Providers\SAASCustomizerServiceProvider::class ], /* @@ -304,5 +313,6 @@ return [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, 'Concord' => Konekt\Concord\Facades\Concord::class, 'Helper' => Konekt\Concord\Facades\Helper::class, + 'Company' => Webkul\SAASCustomizer\Facades\Company::class ], ]; \ No newline at end of file diff --git a/config/auth.php b/config/auth.php index 6b8c92e4b..df9f39404 100755 --- a/config/auth.php +++ b/config/auth.php @@ -27,6 +27,11 @@ return [ 'provider' => 'admins' ], + 'super-admin' => [ + 'driver' => 'session', + 'provider' => 'superadmins' + ], + 'admin-api' => [ 'driver' => 'token', 'provider' => 'admins', @@ -42,6 +47,11 @@ return [ 'admins' => [ 'driver' => 'eloquent', 'model' => Webkul\User\Models\Admin::class, + ], + + 'superadmins' => [ + 'driver' => 'eloquent', + 'model' => Webkul\SAASCustomizer\Models\SuperAdmin::class ] ], @@ -57,4 +67,4 @@ return [ 'expire' => 60, ], ], -]; +]; \ No newline at end of file diff --git a/config/concord.php b/config/concord.php index 96665e96c..ca5225c63 100755 --- a/config/concord.php +++ b/config/concord.php @@ -15,8 +15,12 @@ return [ \Webkul\Core\Providers\ModuleServiceProvider::class, \Webkul\Customer\Providers\ModuleServiceProvider::class, \Webkul\Inventory\Providers\ModuleServiceProvider::class, - \Webkul\Product\Providers\ModuleServiceProvider::class,\Webkul\Sales\Providers\ModuleServiceProvider::class, + \Webkul\Product\Providers\ModuleServiceProvider::class, + \Webkul\Sales\Providers\ModuleServiceProvider::class, \Webkul\Tax\Providers\ModuleServiceProvider::class, - \Webkul\User\Providers\ModuleServiceProvider::class,\Webkul\Discount\Providers\ModuleServiceProvider::class + \Webkul\User\Providers\ModuleServiceProvider::class, + \Webkul\Discount\Providers\ModuleServiceProvider::class, + \Webkul\StripeConnect\Providers\ModuleServiceProvider::class, + \Webkul\SAASPreOrder\Providers\ModuleServiceProvider::class ] ]; \ No newline at end of file diff --git a/config/purge-pool.php b/config/purge-pool.php new file mode 100644 index 000000000..25058db0c --- /dev/null +++ b/config/purge-pool.php @@ -0,0 +1,5 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CustomerApprovalController extends Controller +{ + protected $_config; + + public function __construct() + { + $this->_config = request('_config'); + } + + public function index() + { + + } + + public function approve() + { + dd('approving the newly created customer'); + } +} \ No newline at end of file diff --git a/packages/Webkul/AdminAuthCheck/src/Listeners/LoginAuthenticationAttempt.php b/packages/Webkul/AdminAuthCheck/src/Listeners/LoginAuthenticationAttempt.php new file mode 100644 index 000000000..a9cd8244a --- /dev/null +++ b/packages/Webkul/AdminAuthCheck/src/Listeners/LoginAuthenticationAttempt.php @@ -0,0 +1,54 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class LoginAuthenticationAttempt +{ + protected $superAdmin; + + public function __construct(SuperAdmin $superAdmin) { + $this->superAdmin = $superAdmin; + } + + public function handle() + { + $company = Company::getCurrent(); + + if (! auth()->guard('super-admin')->check()) { + $credentials = request()->all(); + $credentials['company_id'] = $company->id; + + unset($credentials['_token']); + + if (auth()->guard('admin')->check()) { + $admin = auth()->guard('admin')->user(); + + if (Company::getCurrent()->id != $admin->company_id) { + auth()->guard('admin')->logout(); + + throw new \Exception('invalid_admin_login', 400); + } + } else if (auth()->guard('customer')->check()) { + $customer = auth()->guard('customer')->user(); + + if (Company::getCurrent()->id != $customer->company_id) { + auth()->guard('customer')->logout(); + + if (! auth()->guard('customer')->attempt($credentials)) { + + throw new \Exception('invalid_customer_login', 400); + } + } + } + } + } +} \ No newline at end of file diff --git a/packages/Webkul/AdminAuthCheck/src/Providers/AdminAuthCheckProvider.php b/packages/Webkul/AdminAuthCheck/src/Providers/AdminAuthCheckProvider.php new file mode 100644 index 000000000..224453f11 --- /dev/null +++ b/packages/Webkul/AdminAuthCheck/src/Providers/AdminAuthCheckProvider.php @@ -0,0 +1,32 @@ +loadRoutesFrom(__DIR__.'/../Routes/web.php'); + + $this->app->bind( + ExceptionHandler::class, + Handler::class + ); + + // $this->app->register(ModuleServiceProvider::class); + } + + public function register() + { + $this->app->register(EventServiceProvider::class); + } +} \ No newline at end of file diff --git a/packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php b/packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php new file mode 100644 index 000000000..001909f5e --- /dev/null +++ b/packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php @@ -0,0 +1,20 @@ + [ + 'Webkul\AdminAuthCheck\Listeners\LoginAuthenticationAttempt' + ], // make use of this to stop admins logging into other sites + ]; +} \ No newline at end of file diff --git a/packages/Webkul/AdminAuthCheck/src/Providers/ModuleServiceProvider.php b/packages/Webkul/AdminAuthCheck/src/Providers/ModuleServiceProvider.php new file mode 100644 index 000000000..3372c26ef --- /dev/null +++ b/packages/Webkul/AdminAuthCheck/src/Providers/ModuleServiceProvider.php @@ -0,0 +1,11 @@ + 'Set Category Visibility', +]; \ No newline at end of file diff --git a/packages/Webkul/AdminAuthCheck/src/Routes/web.php b/packages/Webkul/AdminAuthCheck/src/Routes/web.php new file mode 100644 index 000000000..a4abe2daf --- /dev/null +++ b/packages/Webkul/AdminAuthCheck/src/Routes/web.php @@ -0,0 +1,2 @@ + 'account.bulk-add-to-cart', + 'name' => 'bulkaddtocart::app.products.bulk-add-to-cart', + 'route' =>'cart.bulk-add-to-cart.create', + 'sort' => 7 + ] +]; + +?> \ No newline at end of file diff --git a/packages/Webkul/BulkAddToCart/src/Http/Controllers/BulkAddToCartController.php b/packages/Webkul/BulkAddToCart/src/Http/Controllers/BulkAddToCartController.php new file mode 100644 index 000000000..120831c06 --- /dev/null +++ b/packages/Webkul/BulkAddToCart/src/Http/Controllers/BulkAddToCartController.php @@ -0,0 +1,170 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class BulkAddToCartController extends Controller +{ + /** + * Contains route related configuration + * + * @var array + */ + protected $_config; + + /** + * ProductRepository object + * + * @var array + */ + protected $product; + + /** + * Create a new controller instance. + * + * @param \Webkul\Product\Repositories\ProductRepository $product + * @return void + */ + public function __construct(Product $product) + { + $this->product = $product; + + $this->_config = request('_config'); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + return view($this->_config['view']); + } + + /** + * Store a newly created resource in storage. + * + * @return \Illuminate\Http\Response + */ + public function store() + { + $valid_extension = ['xlsx', 'csv', 'xls', 'ods']; + + if (! in_array(request()->file('file')->getClientOriginalExtension(), $valid_extension)) { + session()->flash('error', trans('bulkaddtocart::app.products.upload-error')); + + return redirect()->back(); + } else { + try { + $excelData = (new DataGridImport)->toArray(request()->file('file')); + $cart = []; + + foreach ($excelData as $data) { + foreach ($data as $column => $uploadData) { + $validator = Validator::make($uploadData, [ + 'sku' => 'required', + 'quantity' => 'required|numeric|min:1', + ]); + + $product = $this->product->findOneWhere([ + 'sku' => $uploadData['sku'], + ]); + + if ($product) { + $canAdd = $product->haveSufficientQuantity($uploadData['quantity']); + + if (! $canAdd) { + $sufficientQuantity[] = $column + 1; + } else if($product->type == 'simple' && $uploadData['quantity'] > 0) { + $cart['product'] = (string)$product->id; + $cart['quantity'] = (string)$uploadData['quantity']; + $cart['is_configurable'] = 'false'; + + Event::fire('checkout.cart.add.before', $cart['product']); + + $result = Cart::add($cart['product'], $cart); + + Event::fire('checkout.cart.add.after', $result); + + Cart::collectTotals(); + } + } else { + $skuError[] = $column + 1; + } + + if ($validator->fails()) { + $failedRules[$column+1] = $validator->errors(); + } + } + } + + if (isset($failedRules)) { + foreach ($failedRules as $coulmn => $fail) { + if ($fail->first('sku')) { + $errorMsg[$coulmn] = $fail->first('sku'); + } else if ($fail->first('quantity')) { + $errorMsg[$coulmn] = $fail->first('quantity'); + } + } + + foreach ($errorMsg as $key => $msg) { + $msg = str_replace(".", "", $msg); + $message[] = $msg. ' at Row ' .$key . '.'; + } + + $finalMsg[] = implode(" ", $message); + } + if (isset($skuError)) { + $errorRows = implode(",", $skuError); + $finalMsg[] = trans('bulkaddtocart::app.products.sku-error') . ' ' . $errorRows . '.'; + } + if (isset($sufficientQuantity)) { + $errorRows = implode(",", $sufficientQuantity); + $finalMsg[] = trans('bulkaddtocart::app.products.quantity-error') . ' ' . $errorRows . '.'; + } + if (isset($finalMsg)) { + $finalErrorMsg = implode(" ", $finalMsg); + + session()->flash('error', $finalErrorMsg); + + return redirect()->back(); + } else { + session()->flash('success', trans('bulkaddtocart::app.products.upload-sucess')); + + return redirect()->route($this->_config['redirect']); + } + } catch (\Exception $e) { + $failure = new Failure(1, 'rows', [0 => trans('bulkaddtocart::app.products.enough-row-error')]); + + session()->flash('error', $failure->errors()[0]); + + return redirect()->back(); + } + } + } + + /** + * Download Sample + * + * @return \Illuminate\Http\Response + */ + public function downLoadSample() + { + return Storage::download('sample/sample.xls'); + } +} \ No newline at end of file diff --git a/packages/Webkul/BulkAddToCart/src/Http/Controllers/Controller.php b/packages/Webkul/BulkAddToCart/src/Http/Controllers/Controller.php new file mode 100644 index 000000000..47f4fa3ef --- /dev/null +++ b/packages/Webkul/BulkAddToCart/src/Http/Controllers/Controller.php @@ -0,0 +1,13 @@ + ['web', 'locale', 'theme', 'currency']], function () { + + Route::prefix('customer')->group(function () { + + Route::group(['middleware' => ['customer']], function () { + + Route::get('bulk-add-to-cart', 'Webkul\BulkAddToCart\Http\Controllers\BulkAddToCartController@create')->defaults('_config', [ + 'view' => 'bulkaddtocart::products.bulk-add-to-cart' + ])->name('cart.bulk-add-to-cart.create'); + + Route::post('bulk-add-to-cart', 'Webkul\BulkAddToCart\Http\Controllers\BulkAddToCartController@store')->defaults('_config', [ + 'redirect' => 'shop.checkout.cart.index' + ])->name('cart.bulk-add-to-cart.store'); + + Route::get('download-sample', 'Webkul\BulkAddToCart\Http\Controllers\BulkAddToCartController@downLoadSample')->defaults('_config', [ + 'view' => 'bulkaddtocart::products.bulk-add-to-cart' + ])->name('cart.bulk-add-to-cart.sample.download'); + }); + }); +}); \ No newline at end of file diff --git a/packages/Webkul/BulkAddToCart/src/Providers/BulkAddToCartServiceProvider.php b/packages/Webkul/BulkAddToCart/src/Providers/BulkAddToCartServiceProvider.php new file mode 100644 index 000000000..f9f096835 --- /dev/null +++ b/packages/Webkul/BulkAddToCart/src/Providers/BulkAddToCartServiceProvider.php @@ -0,0 +1,45 @@ +loadRoutesFrom(__DIR__ . '/../Http/routes.php'); + + $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'bulkaddtocart'); + + $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'bulkaddtocart'); + } + + /** + * Register services. + * + * @return void + */ + public function register() + { + $this->registerConfig(); + } + + /** + * Register package config. + * + * @return void + */ + protected function registerConfig() + { + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/menu.php', 'menu.customer' + ); + } +} \ No newline at end of file diff --git a/packages/Webkul/BulkAddToCart/src/Resources/lang/en/app.php b/packages/Webkul/BulkAddToCart/src/Resources/lang/en/app.php new file mode 100644 index 000000000..f50ca79c5 --- /dev/null +++ b/packages/Webkul/BulkAddToCart/src/Resources/lang/en/app.php @@ -0,0 +1,17 @@ + [ + 'bulk-add-to-cart' => 'Bulk Add to Cart', + 'file' => 'File', + 'submit' => 'Submit', + 'upload-sucess' => 'Products Sucessfully added to Cart', + 'quantity-error' => 'Products have not sufficient quantity at row', + 'upload-error' => 'The file must be a file of type: xls, xlsx, csv, ods.', + 'enough-row-error' => 'file has not enough rows', + 'sku-error' => 'Invalid SKU at row', + 'allowed-type' => 'Allowed Type :', + 'file-type' => 'csv, xls, xlsx, ods.', + 'download-sample' => 'Download Sample' + ], +]; \ No newline at end of file diff --git a/packages/Webkul/BulkAddToCart/src/Resources/views/products/bulk-add-to-cart.blade.php b/packages/Webkul/BulkAddToCart/src/Resources/views/products/bulk-add-to-cart.blade.php new file mode 100644 index 000000000..d024f5a67 --- /dev/null +++ b/packages/Webkul/BulkAddToCart/src/Resources/views/products/bulk-add-to-cart.blade.php @@ -0,0 +1,50 @@ +@extends('shop::layouts.master') + +@section('page_title') + {{ __('bulkaddtocart::app.products.bulk-add-to-cart') }} +@endsection + +@section('content-wrapper') + +
+ @include('shop::customers.account.partials.sidemenu') + + +
+@endsection \ No newline at end of file diff --git a/packages/Webkul/CustomerCreditMax/src/Config/system.php b/packages/Webkul/CustomerCreditMax/src/Config/system.php new file mode 100644 index 000000000..2a74ae81b --- /dev/null +++ b/packages/Webkul/CustomerCreditMax/src/Config/system.php @@ -0,0 +1,23 @@ + 'customer.settings.credit_max', + 'name' => 'customercreditmax::app.admin.system.credit-max', + 'sort' => 4, + 'fields' => [ + [ + 'name' => 'status', + 'title' => 'customercreditmax::app.admin.system.use-credit-max', + 'type' => 'boolean', + 'channel_based' => true + ], [ + 'name' => 'amount', + 'title' => 'customercreditmax::app.admin.system.max-credit-amount', + 'type' => 'text', + 'validation' => 'decimal', + 'channel_based' => true + ] + ], + ] +]; \ No newline at end of file diff --git a/packages/Webkul/CustomerCreditMax/src/Listeners/Cart.php b/packages/Webkul/CustomerCreditMax/src/Listeners/Cart.php new file mode 100644 index 000000000..25a6d7f55 --- /dev/null +++ b/packages/Webkul/CustomerCreditMax/src/Listeners/Cart.php @@ -0,0 +1,68 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class Cart +{ + /** + * OrderRepository object + * + * @var Product + */ + protected $orderRepository; + + /** + * Create a new cart event listener instance. + * + * @param Webkul\Sales\Repositories\OrderRepository $orderRepository + * @return void + */ + public function __construct(OrderRepository $orderRepository) + { + $this->orderRepository = $orderRepository; + } + + /** + * Return current logged in customer + * + * @return Customer | Boolean + */ + public function getCurrentCustomerGuard() + { + $guard = request()->has('token') ? 'api' : 'customer'; + + return auth()->guard($guard); + } + + /** + * Checks if customer credit amount exceeded or not + * + * @param mixed $cartItem + */ + public function cartItemAddBefore($productId) + { + if (! core()->getConfigData('customer.settings.credit_max.status') || ! $this->getCurrentCustomerGuard()->check()) + return; + + $baseGrandTotal = $this->orderRepository->scopeQuery(function ($query) { + return $query->where('orders.customer_id', $this->getCurrentCustomerGuard()->user()->id); + })->sum('base_grand_total'); + + $baseGrandTotalInvoiced = $this->orderRepository->scopeQuery(function ($query) { + return $query->where('orders.customer_id', $this->getCurrentCustomerGuard()->user()->id); + })->sum('base_grand_total_invoiced'); + + if ( ($baseGrandTotal - $baseGrandTotalInvoiced) >= core()->getConfigData('customer.settings.credit_max.amount')) + throw new \Exception('You available credit limit has been exceeded. Please you pay your pending invoice.'); + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerCreditMax/src/Providers/CustomerCreditMax.php b/packages/Webkul/CustomerCreditMax/src/Providers/CustomerCreditMax.php new file mode 100755 index 000000000..0649134c0 --- /dev/null +++ b/packages/Webkul/CustomerCreditMax/src/Providers/CustomerCreditMax.php @@ -0,0 +1,33 @@ +loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'customercreditmax'); + + $this->app->register(EventServiceProvider::class); + } + + /** + * Register services. + * + * @return void + */ + public function register() + { + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/system.php', 'core' + ); + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerCreditMax/src/Providers/EventServiceProvider.php b/packages/Webkul/CustomerCreditMax/src/Providers/EventServiceProvider.php new file mode 100644 index 000000000..01ea52aea --- /dev/null +++ b/packages/Webkul/CustomerCreditMax/src/Providers/EventServiceProvider.php @@ -0,0 +1,19 @@ + [ + 'system' => [ + 'credit-max' => 'Credit Max', + 'use-credit-max' => 'Use Credit Max', + 'max-credit-amount' => 'Max Credit Amount' + ] + ] +]; \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/composer.json b/packages/Webkul/CustomerDocument/composer.json new file mode 100644 index 000000000..383539bb4 --- /dev/null +++ b/packages/Webkul/CustomerDocument/composer.json @@ -0,0 +1,24 @@ +{ + "name": "bagisto/customer-document", + "license": "MIT", + "authors": [ + { + "name": "Rahul Shukla", + "email": "rahulshukla517@webkul.com" + } + ], + "autoload": { + "psr-4": { + "Webkul\\CustomerDocument\\": "src/" + } + }, + "extra": { + "laravel": { + "providers": [ + "Webkul\\CustomerDocument\\CustomerDocumentServiceProvider" + ], + "aliases": {} + } + }, + "minimum-stability": "dev" +} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Config/menu.php b/packages/Webkul/CustomerDocument/src/Config/menu.php new file mode 100644 index 000000000..b469239ea --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Config/menu.php @@ -0,0 +1,12 @@ + 'account.documents', + 'name' => 'customerdocument::app.admin.customers.documents', + 'route' =>'customer.documents.index', + 'sort' => 6 + ] +]; + +?> \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Contracts/CustomerDocument.php b/packages/Webkul/CustomerDocument/src/Contracts/CustomerDocument.php new file mode 100644 index 000000000..44ca2e742 --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Contracts/CustomerDocument.php @@ -0,0 +1,7 @@ +increments('id'); + $table->string('name'); + $table->text('description')->nullable(); + $table->string('path'); + $table->integer('customer_id')->unsigned(); + $table->foreign('customer_id')->references('id')->on('customers')->onDelete('cascade'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('customer_documents'); + } +} diff --git a/packages/Webkul/CustomerDocument/src/Http/Controllers/Controller.php b/packages/Webkul/CustomerDocument/src/Http/Controllers/Controller.php new file mode 100644 index 000000000..ec04aa1e9 --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Http/Controllers/Controller.php @@ -0,0 +1,13 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class DocumentController extends Controller +{ + /** + * Contains route related configuration + * + * @var array + */ + protected $_config; + + /** + * CustomerDocumentRepository object + * + * @var array + */ + protected $customerDocument; + + /** + * Create a new controller instance. + * + * @param \Webkul\Customer\Repositories\CustomerDocumentRepository $customerDocument + */ + public function __construct(CustomerDocumentRepository $customerDocument) + { + $this->_config = request('_config'); + + $this->customerDocument = $customerDocument; + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + $documents = $this->customerDocument->findWhere(['customer_id' => auth()->guard('customer')->user()->id]); + + return view($this->_config['view'], compact('documents')); + } + + /** + * upload document + * + * @return \Illuminate\Http\Response + */ + public function upload() + { + $valid_extension = ['xlsx', 'csv', 'xls', 'ods', 'png', 'jpeg', 'zip']; + + if (! in_array(request()->file('file')->getClientOriginalExtension(), $valid_extension)) { + session()->flash('error', trans('customerdocument::app.admin.customers.upload-error')); + + return redirect()->back(); + } else { + try { + $data = request()->all(); + + if (request()->hasFile('file')) { + $dir = 'customer'; + $document['path'] = request()->file('file')->store($dir); + } + + $document['customer_id'] = $data['customer_id']; + $document['name'] = $data['name']; + $document['description'] = $data['description']; + + $this->customerDocument->create($document); + + session()->flash('success', trans('customerdocument::app.admin.customers.upload-success')); + + return redirect()->back(); + } catch (\Exception $e) { + session()->flash('error', $e); + + return redirect()->back(); + } + } + } + + /** + * download the file for the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function download($id) + { + $document = $this->customerDocument->findOrfail($id); + + return Storage::download($document['path'], $document['name']); + } + + /** + * Remove the specified resource from storage.. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function delete($id) + { + $document = $this->customerDocument->findOrfail($id); + + $this->customerDocument->delete($id); + + Storage::delete($document['path']); + + session()->flash('success', trans('customerdocument::app.admin.customers.delete-success')); + + return redirect()->back(); + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Http/admin-routes.php b/packages/Webkul/CustomerDocument/src/Http/admin-routes.php new file mode 100644 index 000000000..303622754 --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Http/admin-routes.php @@ -0,0 +1,26 @@ + ['web']], function () { + + Route::prefix('admin')->group(function () { + + Route::group(['middleware' => ['admin']], function () { + + //document Management Routes + Route::post('upload-document', 'Webkul\CustomerDocument\Http\Controllers\DocumentController@upload')->defaults('_config', [ + 'redirect' => 'admin.customer.index' + ])->name('admin.customer.document.upload'); + + Route::get('download-document/{id}', 'Webkul\CustomerDocument\Http\Controllers\DocumentController@download')->defaults('_config', [ + 'redirect' => 'admin.customer.index' + ])->name('admin.customer.document.download'); + + Route::get('delete-document/{id}', 'Webkul\CustomerDocument\Http\Controllers\DocumentController@delete')->defaults('_config', [ + 'redirect' => 'admin.customer.index' + ])->name('admin.customer.document.delete'); + + }); + + }); + +}); diff --git a/packages/Webkul/CustomerDocument/src/Http/front-routes.php b/packages/Webkul/CustomerDocument/src/Http/front-routes.php new file mode 100644 index 000000000..51aa04022 --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Http/front-routes.php @@ -0,0 +1,21 @@ + ['web', 'locale', 'theme', 'currency']], function () { + + Route::prefix('customer')->group(function () { + + Route::group(['middleware' => ['customer']], function () { + + Route::prefix('account')->group(function () { + + Route::get('documents', 'Webkul\CustomerDocument\Http\Controllers\DocumentController@index')->defaults('_config', [ + 'view' => 'customerdocument::shop.customers.document' + ])->name('customer.documents.index'); + + Route::get('download-document/{id}', 'Webkul\CustomerDocument\Http\Controllers\DocumentController@download')->defaults('_config', [ + 'redirect' => 'admin.customer.index' + ])->name('customer.document.download'); + }); + }); + }); +}); \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php b/packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php new file mode 100644 index 000000000..d95a1c4c8 --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php @@ -0,0 +1,13 @@ +loadRoutesFrom(__DIR__ . '/../Http/admin-routes.php'); + + $this->loadRoutesFrom(__DIR__ . '/../Http/front-routes.php'); + + $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'customerdocument'); + + $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'customerdocument'); + + $this->loadMigrationsFrom(__DIR__ . '/../Database/migrations'); + + $this->app->register(ModuleServiceProvider::class); + + $this->app->register(EventServiceProvider::class); + } + + /** + * Register services. + * + * @return void + */ + public function register() + { + $this->registerConfig(); + } + + /** + * Register package config. + * + * @return void + */ + protected function registerConfig() + { + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/menu.php', 'menu.customer' + ); + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Providers/EventServiceProvider.php b/packages/Webkul/CustomerDocument/src/Providers/EventServiceProvider.php new file mode 100644 index 000000000..0feff68cc --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Providers/EventServiceProvider.php @@ -0,0 +1,21 @@ +addTemplate('customerdocument::admin.customers.upload'); + }); + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Providers/ModuleServiceProvider.php b/packages/Webkul/CustomerDocument/src/Providers/ModuleServiceProvider.php new file mode 100644 index 000000000..49aaf5ace --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Providers/ModuleServiceProvider.php @@ -0,0 +1,12 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CustomerDocumentRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + + function model() + { + return 'Webkul\CustomerDocument\Contracts\CustomerDocument'; + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/lang/en/app.php b/packages/Webkul/CustomerDocument/src/Resources/lang/en/app.php new file mode 100644 index 000000000..62b076968 --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Resources/lang/en/app.php @@ -0,0 +1,21 @@ +[ + 'customers' => [ + 'documents' => 'Documents', + 'add-document' => 'Add Document', + 'submit' => 'Submit', + 'file' => 'File', + 'name' => 'Name', + 'download' => 'Download', + 'upload-success' => 'Document uploaded successfully.', + 'delete-success' => 'Document deleted successfully.', + 'empty' => 'You Do not Have Any Documents.', + 'allowed-type' => 'Allowed Type :', + 'file-type' => 'csv, xls, xlsx, ods, png, jpeg, zip.', + 'upload-error' => 'The file must be a file of type: csv, xls, xlsx, ods, png, jpeg, zip.', + 'description' => 'Description' + ], + ], +]; \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/views/admin/customers/upload.blade.php b/packages/Webkul/CustomerDocument/src/Resources/views/admin/customers/upload.blade.php new file mode 100644 index 000000000..001f05989 --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Resources/views/admin/customers/upload.blade.php @@ -0,0 +1,87 @@ +findWhere(['customer_id' => $customer->id]); + +?> + + +
+ + + +
+ + + + + + + + + + + + @foreach ($documents as $document) + + + + + + + @endforeach + +
{{ __('customerdocument::app.admin.customers.name') }}{{ __('customerdocument::app.admin.customers.description') }}{{ __('customerdocument::app.admin.customers.download') }}
{{ $document->name }}{{ $document->description }} + + + + + + + +
+
+ +
+
+ + +

{{ __('customerdocument::app.admin.customers.add-document') }}

+ +
+
+ @csrf() + + + +
+ + + @{{ errors.first('name') }} +
+ +
+ + + @{{ errors.first('description') }} +
+ +
+ + + {{ __('customerdocument::app.admin.customers.allowed-type') }} + {{ __('customerdocument::app.admin.customers.file-type') }} + @{{ errors.first('file') }} +
+ + + +
+
+
\ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/views/shop/customers/document.blade.php b/packages/Webkul/CustomerDocument/src/Resources/views/shop/customers/document.blade.php new file mode 100644 index 000000000..abbf73d19 --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Resources/views/shop/customers/document.blade.php @@ -0,0 +1,57 @@ +@extends('shop::layouts.master') + +@section('page_title') + {{ __('customerdocument::app.admin.customers.documents') }} +@endsection + +@section('content-wrapper') + +
+ @include('shop::customers.account.partials.sidemenu') + + +
+@endsection \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171024_create_customer_group_products_table.php b/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171024_create_customer_group_products_table.php new file mode 100644 index 000000000..461b1eeeb --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171024_create_customer_group_products_table.php @@ -0,0 +1,34 @@ +integer('customer_group_id')->unsigned(); + $table->integer('product_id')->unsigned(); + + $table->foreign('customer_group_id')->references('id')->on('customer_groups')->onDelete('cascade'); + $table->foreign('product_id')->references('id')->on('products')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('customer_group_products'); + } +} diff --git a/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171240_create_customer_group_categories_table.php b/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171240_create_customer_group_categories_table.php new file mode 100644 index 000000000..6886b95ad --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171240_create_customer_group_categories_table.php @@ -0,0 +1,34 @@ +integer('customer_group_id')->unsigned(); + $table->integer('category_id')->unsigned(); + + $table->foreign('customer_group_id')->references('id')->on('customer_groups')->onDelete('cascade'); + $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('customer_group_categories'); + } +} diff --git a/packages/Webkul/CustomerGroupCatalog/src/Http/Controllers/Admin/CustomerGroupController.php b/packages/Webkul/CustomerGroupCatalog/src/Http/Controllers/Admin/CustomerGroupController.php new file mode 100644 index 000000000..d9d813eec --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Http/Controllers/Admin/CustomerGroupController.php @@ -0,0 +1,139 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CustomerGroupController extends Controller +{ + /** + * Contains route related configuration + * + * @var array + */ + protected $_config; + + /** + * CustomerGroupRepository object + * + * @var object + */ + protected $customerGroupRepository; + + /** + * ProductRepository object + * + * @var object + */ + protected $productRepository; + + /** + * CategoryRepository object + * + * @var object + */ + protected $categoryRepository; + + /** + * Create a new controller instance. + * + * @param \Webkul\Customer\Repositories\CustomerGroupRepository $customerGroupRepositor; + * @param \Webkul\Product\Repositories\ProductRepository $productRepository; + * @param \Webkul\Category\Repositories\CategoryRepository $categoryRepository; + * @return void + */ + public function __construct( + CustomerGroupRepository $customerGroupRepository, + ProductRepository $productRepository, + CategoryRepository $categoryRepository + ) + { + $this->_config = request('_config'); + + $this->customerGroupRepository = $customerGroupRepository; + + $this->productRepository = $productRepository; + + $this->categoryRepository = $categoryRepository; + } + + /** + * Search for catalog + * + * @return \Illuminate\Http\Response + */ + public function search() + { + $results = []; + + if (request()->input('type') == 'products') { + foreach ($this->productRepository->searchProductByAttribute(request()->input('query')) as $row) { + $results[] = [ + 'id' => $row->product_id, + 'name' => $row->name, + ]; + } + } else { + foreach ($this->categoryRepository->search(request()->input('query')) as $row) { + $results[] = [ + 'id' => $row->id, + 'name' => $row->name, + ]; + } + } + + return response()->json($results); + } + + /** + * Store a newly created resource in storage. + * + * @return \Illuminate\Http\Response + */ + public function store() + { + $this->validate(request(), [ + 'name' => 'string|required', + ]); + + $data = request()->all(); + + $data['is_user_defined'] = 1; + + $this->customerGroupRepository->create($data); + + session()->flash('success', trans('admin::app.response.create-success', ['name' => 'Customer Group'])); + + return redirect()->route($this->_config['redirect']); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + $this->validate(request(), [ + 'name' => 'string|required', + ]); + + $this->customerGroupRepository->update(request()->all(), $id); + + session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Customer Group'])); + + return redirect()->route($this->_config['redirect']); + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Http/admin-routes.php b/packages/Webkul/CustomerGroupCatalog/src/Http/admin-routes.php new file mode 100644 index 000000000..2e57739b0 --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Http/admin-routes.php @@ -0,0 +1,23 @@ + ['web']], function () { + + Route::prefix('admin')->group(function () { + + Route::group(['middleware' => ['admin']], function () { + + //Seller routes + Route::get('groups/catalog/search', 'Webkul\CustomerGroupCatalog\Http\Controllers\Admin\CustomerGroupController@search')->name('admin.customer_group_catalog.search.catalog'); + + Route::post('groups/create', 'Webkul\CustomerGroupCatalog\Http\Controllers\Admin\CustomerGroupController@store')->defaults('_config',[ + 'redirect' => 'admin.groups.index' + ])->name('admin.customer_group_catalog.store'); + + Route::put('groups/edit/{id}', 'Webkul\CustomerGroupCatalog\Http\Controllers\Admin\CustomerGroupController@update')->defaults('_config',[ + 'redirect' => 'admin.groups.index' + ])->name('admin.customer_group_catalog.update'); + }); + + }); + +}); \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Models/CustomerGroup.php b/packages/Webkul/CustomerGroupCatalog/src/Models/CustomerGroup.php new file mode 100644 index 000000000..08e59b146 --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Models/CustomerGroup.php @@ -0,0 +1,26 @@ +belongsToMany(ProductProxy::modelClass(), 'customer_group_products'); + } + + /** + * The categories that belong to the customer group. + */ + public function categories() + { + return $this->belongsToMany(CategoryProxy::modelClass(), 'customer_group_categories'); + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php b/packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php new file mode 100755 index 000000000..e6841097a --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php @@ -0,0 +1,37 @@ +loadRoutesFrom(__DIR__ . '/../Http/admin-routes.php'); + + $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'customergroupcatalog'); + + $this->publishes([ + __DIR__ . '/../Resources/views/admin/customers/groups' => resource_path('views/vendor/admin/customers/groups'), + __DIR__ . '/../Resources/views/shop/products' => resource_path('views/vendor/shop/products'), + __DIR__ . '/../Resources/views/shop/layouts' => resource_path('views/vendor/shop/layouts'), + ]); + } + + /** + * Register services. + * + * @return void + */ + public function register() + { + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php b/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php new file mode 100644 index 000000000..b96166c7b --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php @@ -0,0 +1,70 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CategoryRepository extends BaseCategoryRepository +{ + /** + * Search Category + * + * @return Collection + */ + public function search($term) + { + return $this->getModel()->join('category_translations', function ($join) { + $join->on('categories.id', 'category_translations.category_id') + ->where('category_translations.locale', app()->getLocale()) + ->where('category_translations.name', 'like', '%' . urldecode(request()->input('query')) . '%'); + }) + ->select('categories.*') + ->groupBy('categories.id') + ->get(); + } + + /** + * get visible category tree + * + * @param integer $id + * @return mixed + */ + public function getVisibleCategoryTree($id = null) + { + static $categories = []; + + if(array_key_exists($id, $categories)) + return $categories[$id]; + + $customer = auth()->guard(request()->has('token') ? 'api' : 'customer')->user(); + + $categoryIds = []; + + if (! $customer) { + $categoryIds = app('Webkul\CustomerGroupCatalog\Repositories\CustomerGroupRepository')->findOneByField('code', 'guest')->categories()->pluck('id'); + } else { + if ($customer->group) { + $categoryIds = app('Webkul\CustomerGroupCatalog\Repositories\CustomerGroupRepository')->find($customer->group->id)->categories()->pluck('id'); + } + } + + if (count($categoryIds)) { + $categories[$id] = $id + ? $this->model::orderBy('position', 'ASC')->where('status', 1)->whereIn('id', $categoryIds)->descendantsOf($id)->toTree() + : $this->model::orderBy('position', 'ASC')->where('status', 1)->whereIn('id', $categoryIds)->get()->toTree(); + } else { + $categories[$id] = $id + ? $this->model::orderBy('position', 'ASC')->where('status', 1)->descendantsOf($id)->toTree() + : $this->model::orderBy('position', 'ASC')->where('status', 1)->get()->toTree(); + } + + return $categories[$id]; + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Repositories/CustomerGroupRepository.php b/packages/Webkul/CustomerGroupCatalog/src/Repositories/CustomerGroupRepository.php new file mode 100755 index 000000000..8772764e3 --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Repositories/CustomerGroupRepository.php @@ -0,0 +1,102 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CustomerGroupRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + function model() + { + return 'Webkul\CustomerGroupCatalog\Models\CustomerGroup'; + } + + /** + * @param array $data + * @return mixed + */ + public function create(array $data) + { + $group = parent::create($data); + + if (isset($data['products'])) { + $group->products()->sync($data['products']); + } else { + $group->products()->sync([]); + } + + if (isset($data['categories'])) { + $group->categories()->sync($data['categories']); + } else { + $group->categories()->sync([]); + } + + return $group; + } + + /** + * @param array $data + * @param $id + * @param string $attribute + * @return mixed + */ + public function update(array $data, $id, $attribute = "id") + { + parent::update($data, $id, $attribute); + + $group = $this->find($id); + + if (isset($data['products'])) { + $group->products()->sync($data['products']); + } else { + $group->products()->sync([]); + } + + if (isset($data['categories'])) { + $group->categories()->sync($data['categories']); + } else { + $group->categories()->sync([]); + } + + return ; + } + + /** + * @return Collection + */ + public function getProducts($group) + { + $products = []; + + foreach ($this->find($group->id)->products as $product) { + $products[] = ['id' => $product->id, 'name' => $product->name]; + } + + return $products; + } + + /** + * @return Collection + */ + public function getCategories($group) + { + $categories = []; + + foreach ($this->find($group->id)->categories as $category) { + $categories[] = ['id' => $category->id, 'name' => $category->name]; + } + + return $categories; + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/lang/en/app.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/lang/en/app.php new file mode 100644 index 000000000..e59dc2c4b --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Resources/lang/en/app.php @@ -0,0 +1,13 @@ + [ + 'groups' => [ + 'general' => 'General', + 'linked-product-categories' => 'Linked Products and Categories', + 'categories' => 'Categories', + 'products' => 'Products', + 'search-hint' => 'Start typing name' + ] + ] +]; \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/create.blade.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/create.blade.php new file mode 100644 index 000000000..7b6624eb0 --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/create.blade.php @@ -0,0 +1,211 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.customers.groups.add-title') }} +@stop + +@section('content') +
+
+ + + +
+
+ @csrf() + + +
+ +
+ + + @{{ errors.first('name') }} +
+ +
+
+ + +
+ + + +
+
+ +
+
+ +
+
+@stop + +@push('scripts') + + + + +@endpush \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/edit.blade.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/edit.blade.php new file mode 100644 index 000000000..6671b9b39 --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/edit.blade.php @@ -0,0 +1,227 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.customers.groups.edit-title') }} +@stop + +@section('content') +
+
+ + + +
+ +
+ @csrf() + + + + +
+ +
+ + + @{{ errors.first('name') }} +
+ +
+ +
+ + +
+ + + +
+
+
+
+
+
+@stop + +@push('scripts') + + + + +@endpush \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/footer/footer.blade.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/footer/footer.blade.php new file mode 100755 index 000000000..2f8532d59 --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/footer/footer.blade.php @@ -0,0 +1,94 @@ + diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/header/nav-menu/navmenu.blade.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/header/nav-menu/navmenu.blade.php new file mode 100755 index 000000000..e65090536 --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/header/nav-menu/navmenu.blade.php @@ -0,0 +1,137 @@ +{!! view_render_event('bagisto.shop.layout.header.category.before') !!} + +getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) { + if ($category->slug) + array_push($categories, $category); +} + +?> + + + +{!! view_render_event('bagisto.shop.layout.header.category.after') !!} + + +@push('scripts') + + + + + + + + + + + +@endpush \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/products/index.blade.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/products/index.blade.php new file mode 100755 index 000000000..347e23722 --- /dev/null +++ b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/products/index.blade.php @@ -0,0 +1,128 @@ +@extends('shop::layouts.master') + +@section('page_title') + {{ $category->meta_title ?? $category->name }} +@stop + +@section('seo') + + +@stop + +@section('content-wrapper') + @inject ('productRepository', 'Webkul\Product\Repositories\ProductRepository') + +
+ {!! view_render_event('bagisto.shop.products.index.before', ['category' => $category]) !!} + +
+ + @if (in_array($category->display_mode, [null, 'products_only', 'products_and_description'])) + @include ('shop::products.list.layered-navigation') + @endif + +
display_mode == 'description_only') style="width: 100%" @endif> +
+ @if (!is_null($category->image)) + + @endif +
+ + @if (in_array($category->display_mode, [null, 'description_only', 'products_and_description'])) + @if ($category->description) +
+ {!! $category->description !!} +
+ @endif + @endif + + @if (in_array($category->display_mode, [null, 'products_only', 'products_and_description'])) + getAll($category->id); ?> + + @if ($products->count()) + + @include ('shop::products.list.toolbar') + + @inject ('toolbarHelper', 'Webkul\Product\Helpers\Toolbar') + + @if ($toolbarHelper->getCurrentMode() == 'grid') +
+ @foreach ($products as $productFlat) + + @include ('shop::products.list.card', ['product' => $productFlat]) + + @endforeach +
+ @else +
+ @foreach ($products as $productFlat) + + @include ('shop::products.list.card', ['product' => $productFlat]) + + @endforeach +
+ @endif + + {!! view_render_event('bagisto.shop.products.index.pagination.before', ['category' => $category]) !!} + +
+ {{ $products->appends(request()->input())->links() }} +
+ + {!! view_render_event('bagisto.shop.products.index.pagination.after', ['category' => $category]) !!} + + @else + +
+

{{ __('shop::app.products.whoops') }}

+ +

+ {{ __('shop::app.products.empty') }} +

+
+ + @endif + @endif +
+
+ + {!! view_render_event('bagisto.shop.products.index.after', ['category' => $category]) !!} +
+@stop + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/.gitignore b/packages/Webkul/SAASCustomizer/.gitignore new file mode 100755 index 000000000..30bc16279 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/.gitignore @@ -0,0 +1 @@ +/node_modules \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/composer.json b/packages/Webkul/SAASCustomizer/composer.json new file mode 100755 index 000000000..52beeea54 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/composer.json @@ -0,0 +1,27 @@ +{ + "name": "bagisto/laravel-Saas", + "license": "MIT", + "authors": [ + { + "name": "Prashant Singh", + "email": "prashant.singh852@webkul.com" + } + ], + "require": { + "konekt/concord": "^1.2" + }, + "autoload": { + "psr-4": { + "Webkul\\SAASCustomizer\\": "src/" + } + }, + "extra": { + "laravel": { + "providers": [ + "Webkul\\SAASCustomizer\\Providers\\SAASCustomizerServiceProvider" + ], + "aliases": {} + } + }, + "minimum-stability": "dev" +} diff --git a/packages/Webkul/SAASCustomizer/customization-readme.md b/packages/Webkul/SAASCustomizer/customization-readme.md new file mode 100644 index 000000000..d79035f54 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/customization-readme.md @@ -0,0 +1,31 @@ +# Requirements: + +1. SaaS-based system on Bagisto with all the core features . +2. Seller Creation with their own store and domain +3. Stripe Connect as payment, where the connect is under our Stripe account. +4. Seller functionality : Own Admin dashboard, Create/Edit Products, Checked Order status and Completion, Edit/Create Customers, Add Notes on Customer +5. Create discount rules +6. The seller should approve customers who sign up +7. Platform locale in English +8. The seller should control which categories or products a specific customer can see. +9. Upload CSV/Excel file with SKU,Quantity for bulk add to cart +10. Customers should be logged in to see prices and buy. +11. The seller should make custom prices for customers. So this customer gets 10% of all products. +12. The seller can upload PDF and images documents to a page, where the customer can download them. +13. The seller can upload documents to a customer, where the customer can see their documents on their account. +14. It should be possible to add credit max on the customer, so if the customer has unpaid invoices of xxx dollars, they cannot buy any more, before the invoices are paid. +15. Pre Order and Backorder products + +# Installation Steps: + +* Inside the project root '.env' have 'app_url' parameter which must be set as your main domain. +* Then run the command 'php artisan saas:install' +* Open the main domain you would be only be able to see the registration page. + +* There should only be a commission/fee on every transaction, made with Stripe. Not on products. + +There is the Stripe fee 2.9% + 30cent, and there is our platform fee, which we can set in Stripe(it is going to be 2%). We would like them to be shown as a total service fee in the totals on the cart. So if the customer is buying a product to 100$ +The will see subtotal of 100$, shipping: 3$, service fee 5,347 $. ((103*2,9%+2%)+0,30)-103 = 5,347$ +We would like that the Seller can choose from their backend settings, who should pay the service fee. Is it the customer, so the amount will be 108,347 $ for the customer, and the Seller will get 103$ after fees. + +If the Seller should pay the fees, the amount will be 103$ for the customer and the payout for the Seller will be 103-5,347$ = 97,653$ \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/package.json b/packages/Webkul/SAASCustomizer/package.json new file mode 100755 index 000000000..2d948db6a --- /dev/null +++ b/packages/Webkul/SAASCustomizer/package.json @@ -0,0 +1,25 @@ +{ + "private": true, + "scripts": { + "dev": "npm run development", + "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch-poll": "cross-env npm run watch -- --watch-poll --progress", + "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", + "prod": "npm run production", + "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" + }, + "devDependencies": { + "axios": "^0.18", + "cross-env": "^5.1.4", + "laravel-mix": "^2.1", + "laravel-mix-merge-manifest": "^0.1.1", + "jquery": "^3.2", + "vue": "^2.1.10" + }, + "dependencies": { + "vee-validate": "2.0.0-rc.26", + "vue-flatpickr": "^2.3.0", + "vue-slider-component": "^2.7.5" + } +} diff --git a/packages/Webkul/SAASCustomizer/publishable/saas/assets/css/saas.css b/packages/Webkul/SAASCustomizer/publishable/saas/assets/css/saas.css new file mode 100644 index 000000000..4dfe841f5 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/publishable/saas/assets/css/saas.css @@ -0,0 +1 @@ +@import url(https://fonts.googleapis.com/css?family=Montserrat:400,500);html{font-family:montserrat,sans-serif}::-webkit-input-placeholder{font-family:montserrat,sans-serif}::-ms-input-placeholder{font-family:montserrat,sans-serif}::placeholder{font-family:montserrat,sans-serif}.mt-30{margin-top:30px}.mt-60{margin-top:60px}.mt-90{margin-top:90px}.content-container{width:100%;min-height:100vh;height:auto}.form-container{width:420px;margin-left:auto;margin-right:auto}.form-container .brand-logo{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%}.form-container .step-one button,.form-container .step-three button,.form-container .step-two button{width:150px;margin-left:calc(50% - 75px)}.registration{padding:10px;-webkit-box-shadow:0 2px 25px 0 rgba(0,0,0,.15);box-shadow:0 2px 25px 0 rgba(0,0,0,.15)}.registration .control-group .control{width:100%}.step-navigator{margin-top:15px;margin-bottom:15px;width:100%}.step-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.step-list .step-item{cursor:pointer;height:64px;width:64px;border:1px solid #c7c7c7;border-radius:50%;text-align:center;padding-top:24px}.step-list .step-item.active{border:1px solid blue} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/publishable/saas/assets/js/saas.js b/packages/Webkul/SAASCustomizer/publishable/saas/assets/js/saas.js new file mode 100644 index 000000000..6102aa371 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/publishable/saas/assets/js/saas.js @@ -0,0 +1 @@ +!function(n){var t={};function r(e){if(t[e])return t[e].exports;var o=t[e]={i:e,l:!1,exports:{}};return n[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=n,r.c=t,r.d=function(n,t,e){r.o(n,t)||Object.defineProperty(n,t,{configurable:!1,enumerable:!0,get:e})},r.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(t,"a",t),t},r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},r.p="/",r(r.s=0)}({0:function(n,t,r){r("J66Q"),n.exports=r("MT9B")},J66Q:function(n,t){},MT9B:function(n,t){}}); \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/publishable/saas/assets/mix-manifest.json b/packages/Webkul/SAASCustomizer/publishable/saas/assets/mix-manifest.json new file mode 100644 index 000000000..07bd8464a --- /dev/null +++ b/packages/Webkul/SAASCustomizer/publishable/saas/assets/mix-manifest.json @@ -0,0 +1,4 @@ +{ + "/js/saas.js": "/js/saas.js?id=245497d286e5c4f9d97d", + "/css/saas.css": "/css/saas.css?id=a62abbc117a7478bace8" +} diff --git a/packages/Webkul/SAASCustomizer/readme.md b/packages/Webkul/SAASCustomizer/readme.md new file mode 100644 index 000000000..f52e14fbc --- /dev/null +++ b/packages/Webkul/SAASCustomizer/readme.md @@ -0,0 +1,70 @@ +# Introduction: +Bagisto SAAS extension is eCommerce virtual mall, where multiple-vendor can sign-up and create their own e-commerce store with their personalized domain name. SAAS extension will help you in appealing sellers to get registered with your business and use common resources such as Payment gateways, Shipping methods, etc. + +Get involved and control your mall by managing commissions directly from single place, control on customer signups, super cool super admin panel to manage sellers, activate/deactivate your sellers from super admin panel too and lots more. + + +# Feature of Laravel ecommerce SAAS Module + +* Easy to Setup and manage SAAS based eCommerce solution. +* Scaling your business is now directly proportional to no. of sellers. +* Separate admin panel for each seller. +* Ability of seller to change domain at will. +* Easily manageable orders. +* Faster updates will bring lots of demanding features. + +# Requirements +* Bagisto v0.1.6 or higher. + +# Note + 1. Do not install bagisto till you configure this extension initially w/ it. + 2. Before proceeding this extension you need to copy files from zip +file to root location of your Bagisto installed inside it + 3. Do not try to seed the database with command 'php artisan db:seed' + +# Installation +* Run the command from root in terminal 'composer create-project' +* Find '.env' file in root directory and change the APP_URL param to domain, +ex: www.example.com and do not forget to configure Mail and DB parameters inside .env file +* Run the following commands: + +``` +php artisan migrate (will take a while) +php artisan storage:link +php artisan vendor:publish +``` +* Do couple of entries in root composer.json in psr-4 object: + +``` +'Webkul\SAASCustomizer\": "packages/Webkul/SAASCustomizer/src', +'Webkul\CustomerCustomizer\": "packages/Webkul/CustomerCustomizer/src' +``` +* Another entry inside file('app/Http/Kernel.php',): +In this file you can find an array 'middlewareGroups' inside it there is +a key named 'web' inside it do an entry: + +``` +Webkul\SAASCustomizer\Http\Middleware\ValidatesDomain::class' +``` +* Find a file auth.php present inside config folder from root and do the following entries: +``` +'super-admin' => [ + 'driver' => 'session', + 'provider' => 'superadmins' +] +``` +> insert the above code in 'guards' array. + +``` +'superadmins' => [ + 'driver' => 'eloquent', + 'model' => Webkul\SAASCustomizer\Models\SuperAdmin::class +] +``` +> insert the above code in 'providers' array. + +* Run the command from root in terminal 'composer dump-autoload'. +* In your terminal now type command 'php artisan SAAS:install', to generate the super admin credentials +* Access super admin panel using: +www.domain.com/super/login +* Run your SAAS based store. \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Commands/Console/GenerateSU.php b/packages/Webkul/SAASCustomizer/src/Commands/Console/GenerateSU.php new file mode 100644 index 000000000..73bdd8367 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Commands/Console/GenerateSU.php @@ -0,0 +1,117 @@ +company = $company; + $this->details = $details; + $this->admin = $admin; + $this->role = $role; + } + + /** + * Does the all sought of lifting required to be performed for + * generating a super user + */ + public function handle() + { + $this->comment('Generating super user for the system....'); + + $email = $this->ask('Please enter email?'); + + $data = [ + 'email' => $email + ]; + + $validator = Validator::make($data, [ + 'email' => 'required|email', + ]); + + if($validator->fails()) { + $this->comment('Email invalid, please enter try again.'); + + return false; + } + + unset($data); + + $this->comment('You entered = '. $email); + + $password = $this->ask('Please enter password?'); + $data = [ + 'password' => $password + ]; + + $validator = Validator::make($data, [ + 'password' => 'required|string|min:6' + ]); + + if ($validator->fails()) { + $this->comment('Password invalid, make sure password is atleast 6 characters of length.'); + + return false; + } + + $this->comment('You entered = '. $password); + + unset($data); + + if ($this->confirm('Do you wish to continue?')) { + $result = $this->generateSuperUserCompany($email, $password); + + if ($result) { + $this->comment('Super user for the system is created'); + } else { + $this->comment('Super user for the system already exists, please contact support@bagisto.com for troubleshooting.'); + } + + } else { + $this->comment('Please try creating the super user again'); + } + } + + public function generateSuperUserCompany($email, $password) + { + $super_admin = \DB::select('select * from super_admins'); + + if(count($super_admin)) { + return false; + } + + $data = [ + 'email' => $email, + 'password' => bcrypt($password), + ]; + + \DB::insert('insert into super_admins (id, email, password, created_at, updated_at) values (?, ?, ?, ?, ?)', [1, $data['email'], $data['password'], now(), now()]); + + return true; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Company.php b/packages/Webkul/SAASCustomizer/src/Company.php new file mode 100644 index 000000000..a08d64114 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Company.php @@ -0,0 +1,133 @@ +company = $company; + } + + public function isAllowed() + { + $primaryServerName = config('app.url'); + + if (isset($_SERVER['SERVER_NAME'])) + $currentURL = $_SERVER['SERVER_NAME']; + else + $currentURL = $primaryServerName; + + $primaryServerNameWithoutProtocol = null; + + if (str_contains($primaryServerName, 'http://')) { + $primaryServerNameWithoutProtocol = explode('http://', $primaryServerName)[1]; + } else if (str_contains($primaryServerName, 'https://')) { + $primaryServerNameWithoutProtocol = explode('https://', $primaryServerName)[1]; + } + + if ($currentURL == $primaryServerNameWithoutProtocol) { + return true; + } else { + return false; + } + } + + protected function getAllRegisteredDomains() + { + $domains = $this->company->all(); + + return $domains; + } + + public function getCurrent() + { + $superAdmin = new SuperAdmin; + + $primaryServerName = config('app.url'); + + if (isset($_SERVER['SERVER_NAME'])) + $currentURL = $_SERVER['SERVER_NAME']; + else + $currentURL = $primaryServerName; + + if (str_contains($primaryServerName, 'http://')) { + $primaryServerNameWithoutProtocol = explode('http://', $primaryServerName)[1]; + } else if (str_contains($primaryServerName, 'https://')) { + $primaryServerNameWithoutProtocol = explode('https://', $primaryServerName)[1]; + } + + if (str_contains($currentURL, 'http://')) { + $currentURL = explode('http://', $currentURL)[1]; + } else if (str_contains($currentURL, 'http://')) { + $currentURL = explode('http://', $currentURL)[1]; + } + + if ($currentURL == $primaryServerNameWithoutProtocol) { + if (session()->has('company')) { + $company = session()->get('company'); + } else { + $company = 'super-company'; + + session()->put('company', $company); + } + + return $company; + } else { + if (session()->has('company')) { + $company = session()->get('company'); + }else { + $company = $this->company->findWhere(['domain' => $currentURL])->first(); + + if ($company->is_active == 0) { + throw new \Exception('company_blocked_by_administrator', 400); + } + + session()->put('company', $company); + } + + return $company; + } + } + + /** + * Returns if there are companies + * already created + */ + public function count() + { + return $this->company->findWhere([['id', '>', '0']])->count(); + } + + public function getPrimaryUrl() + { + if (str_contains(env('APP_URL'), 'http://')) { + $primaryServerNameWithoutProtocol = explode('http://', env('APP_URL'))[1]; + } else if (str_contains($primaryServerName, 'https://')) { + $primaryServerNameWithoutProtocol = explode('https://', env('APP_URL'))[1]; + } + + return $primaryServerNameWithoutProtocol; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Config/super-menu.php b/packages/Webkul/SAASCustomizer/src/Config/super-menu.php new file mode 100644 index 000000000..c2b354f59 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Config/super-menu.php @@ -0,0 +1,11 @@ + 'company', + 'name' => 'saas::app.menu.companies', + 'route' => 'super.companies.index', + 'sort' => 1, + 'icon-class' => 'settings-icon', + ] +]; \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/DataGrids/CompaniesDataGrid.php b/packages/Webkul/SAASCustomizer/src/DataGrids/CompaniesDataGrid.php new file mode 100644 index 000000000..56805f74f --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/DataGrids/CompaniesDataGrid.php @@ -0,0 +1,92 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CompaniesDataGrid extends DataGrid +{ + protected $index = 'id'; //the column that needs to be treated as index column + + protected $sortOrder = 'desc'; //asc or desc + + public function prepareQueryBuilder() + { + $queryBuilder = DB::table('companies') + ->select('id') + ->addSelect('id', 'name', 'domain', 'is_active'); + + $this->setQueryBuilder($queryBuilder); + } + + public function addColumns() + { + $this->addColumn([ + 'index' => 'id', + 'label' => trans('admin::app.datagrid.id'), + 'type' => 'number', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'name', + 'label' => trans('admin::app.datagrid.name'), + 'type' => 'string', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'domain', + 'label' => trans('saas::app.datagrid.domain'), + 'type' => 'string', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'is_active', + 'label' => trans('admin::app.datagrid.status'), + 'type' => 'boolean', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true, + 'closure' => true, + 'wrapper' => function ($row) { + if ($row->is_active ==1) { + return ''; + } else { + return ''; + } + } + ]); + } + + public function prepareActions() + { + $this->addAction([ + 'type' => 'View', + 'method' => 'GET', //use post only for redirects only + 'route' => 'super.companies.show-stats', + 'icon' => 'icon eye-icon' + ]); + + $this->addAction([ + 'type' => 'View', + 'method' => 'GET', //use post only for redirects only + 'route' => 'super.companies.edit', + 'icon' => 'icon pencil-lg-icon' + ]); + } +} diff --git a/packages/Webkul/SAASCustomizer/src/Database/DatabaseManager.php b/packages/Webkul/SAASCustomizer/src/Database/DatabaseManager.php new file mode 100644 index 000000000..a5fce3b71 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Database/DatabaseManager.php @@ -0,0 +1,48 @@ +guard('super-admin')->check()) { + if (count(explode('as', $table)) == 1) { + if ($table == 'companies' || $table == 'country_states' || $table == 'countries') { + + return $this->query()->from($table); + } else { + return $this->query()->from($table)->where($table . '.company_id', $company->id); + } + } else if (count(explode('as', $table)) == 2) { + $name = explode('as', $table); + $tempName = trim($name[0]); + + if ($tempName == 'companies' || $tempName == 'country_states' || $tempName == 'countries') { + return $this->query()->from($table); + } else { + return $this->query()->from($table)->where(trim($name[1]) . '.company_id', $company->id); + } + } else { + throw \Exception('Unusual Entities'); + } + } else { + return $this->query()->from($table); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Database/Eloquent/Builder.php b/packages/Webkul/SAASCustomizer/src/Database/Eloquent/Builder.php new file mode 100644 index 000000000..e4a6a9b9d --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Database/Eloquent/Builder.php @@ -0,0 +1,14 @@ +increments('id'); + $table->string('name')->unique(); + $table->string('email')->nullable(); + $table->string('username')->unique(); + $table->string('logo')->nullable(); + $table->string('domain')->unique(); + $table->string('city')->nullable(); + $table->string('state')->nullable(); + $table->string('zip_code')->nullable(); + $table->string('country')->nullable(); + $table->text('address1')->nullable(); + $table->text('address2')->nullable(); + $table->text('description')->nullable(); + $table->json('more_info')->nullable(); + $table->boolean('is_active')->default(1); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('companies'); + } +} diff --git a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_03_26_152524_alter_all_unique_contraints.php b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_03_26_152524_alter_all_unique_contraints.php new file mode 100644 index 000000000..79aab3101 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_03_26_152524_alter_all_unique_contraints.php @@ -0,0 +1,248 @@ +dropUnique('attributes_code_unique'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->unique(['code', 'company_id'], 'attribute_company_code_unique_index'); + }); + + Schema::table('attribute_families', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('attribute_groups', function (Blueprint $table) { + $table->dropForeign(['attribute_family_id']); + $table->dropUnique('attribute_groups_attribute_family_id_name_unique'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->foreign('attribute_family_id')->references('id')->on('attribute_families')->onDelete('cascade'); + $table->unique(['attribute_family_id', 'name', 'company_id'], 'attribute_family_id_name_company_id_unique_index'); + }); + + // Category package migration alterations + Schema::table('categories', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('category_translations', function (Blueprint $table) { + $table->dropForeign(['category_id']); + $table->dropUnique('category_translations_category_id_slug_locale_unique'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade'); + $table->unique(['category_id', 'slug', 'locale', 'company_id'], 'id_slug_locale_company_id_unique_index'); + }); + + // Checkout package migration alterations + Schema::table('cart', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + // Core package migration alterations + Schema::table('channels', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('core_config', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('currencies', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('currency_exchange_rates', function(Blueprint $table) { + $table->dropForeign(['target_currency']); + $table->dropUnique('currency_exchange_rates_target_currency_unique'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->foreign('target_currency')->references('id')->on('currencies')->onDelete('cascade'); + $table->unique(['target_currency', 'company_id'], 'target_currency_company_id_unique_id'); + }); + + Schema::table('locales', function(Blueprint $table) { + $table->dropUnique('locales_code_unique'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->unique(['code', 'company_id'], 'code_company_id_unqiue_index'); + }); + + Schema::table('sliders', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('subscribers_list', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + // customer package table alterations + Schema::table('customers', function (Blueprint $table) { + $table->dropUnique('customers_email_unique'); + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->unique(['email', 'company_id']); + }); + + // Schema::table('customer_password_resets', function (Blueprint $table) { + // $table->integer('company_id')->unsigned()->after('email'); + // $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + // }); + + Schema::table('customer_addresses', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('customer_groups', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('wishlist', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + // Inventory package table alterations + Schema::table('inventory_sources', function (Blueprint $table) { + $table->dropUnique('inventory_sources_code_unique'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->unique(['code', 'company_id'], 'code_company_id_unique'); + }); + + // product package table alterations + Schema::table('products', function (Blueprint $table) { + $table->dropUnique('products_sku_unique'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->unique(['sku', 'company_id'], 'sku_company_id_unique'); + }); + + Schema::table('product_flat', function (Blueprint $table) { + $table->dropForeign(['product_id']); + $table->dropUnique('product_flat_unique_index'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->foreign('product_id')->references('id')->on('products')->onDelete('cascade'); + $table->unique(['product_id', 'channel', 'locale', 'company_id'], 'product_flat_unique_index'); + }); + + Schema::table('product_attribute_values', function (Blueprint $table) { + $table->dropUnique('chanel_locale_attribute_value_index_unique'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->unique(['channel', 'locale', 'attribute_id', 'product_id', 'company_id'], 'channel_locale_attr_id_product_id_company_unique'); + }); + + Schema::table('product_inventories', function (Blueprint $table) { + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('product_reviews', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + // sales package table alterations + Schema::table('invoices', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('invoice_items', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('orders', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('order_items', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('order_address', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('order_payment', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('shipments', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + // Schema::table('shipment_items', function (Blueprint $table) { + // $table->integer('company_id')->unsigned()->after('id'); + // $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + // }); + + // tax package table alterations + Schema::table('tax_categories', function (Blueprint $table) { + $table->dropUnique('tax_categories_code_unique'); + $table->dropUnique('tax_categories_name_unique'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->unique(['name', 'company_id']); + $table->unique(['code', 'company_id']); + }); + + Schema::table('tax_rates', function (Blueprint $table) { + $table->dropUnique('tax_rates_identifier_unique'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->unique(['identifier', 'company_id']); + }); + + Schema::table('roles', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + + Schema::table('admins', function (Blueprint $table) { + $table->integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_04_05_105951_create_company_personal_details_table.php b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_04_05_105951_create_company_personal_details_table.php new file mode 100644 index 000000000..fe2ad3b39 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_04_05_105951_create_company_personal_details_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('first_name')->nullable(); + $table->string('last_name')->nullable(); + $table->string('email')->nullable()->unique(); + $table->string('skype')->nullable(); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->json('more_info')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('company_personal_details'); + } +} diff --git a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_05_20_102233_create_super_admins_table.php b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_05_20_102233_create_super_admins_table.php new file mode 100644 index 000000000..465963f60 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_05_20_102233_create_super_admins_table.php @@ -0,0 +1,35 @@ +enum('id', [1])->unique(); + $table->string('email'); + $table->string('password'); + $table->boolean('status')->default(1); + $table->string('remember_token')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('super_admins'); + } +} diff --git a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_06_11_164314_alter_catalog_rules_tables.php b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_06_11_164314_alter_catalog_rules_tables.php new file mode 100644 index 000000000..a9e4ea5f1 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_06_11_164314_alter_catalog_rules_tables.php @@ -0,0 +1,32 @@ +integer('company_id')->unsigned()->after('id'); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php b/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php new file mode 100644 index 000000000..b87a8c660 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php @@ -0,0 +1,108 @@ + 'Resource not found', + 403 => '403 forbidden Error', + 401 => 'Unauthenticated', + 500 => '500 Internal Server Error', + ]; + + /** + * Render an exception into an HTTP response. + * + * @param \Illuminate\Http\Request $request + * @param \Exception $exception + * @return \Illuminate\Http\Response + */ + public function render($request, Exception $exception) + { + $path = 'saas'; + + if ($exception->getMessage() == 'domain_not_found') { + return $this->response($path, 500, 'Domain Not Found'); + } + + if ($exception->getMessage() == 'company_blocked_by_administrator') { + return $this->response($path, 400, 'This seller is blocked'); + } + + if ($exception->getMessage() == 'not_allowed_to_visit_this_section') { + return $this->response($path, 400, 'You are not allowed to use this section'); + } + + if ($exception->getMessage() == 'invalid_admin_login' || $exception->getMessage() == 'invalid_customer_login') { + return $this->responseCustom($path, 400, 'auth', 'Authentication Error'); + } + + if ($exception instanceof HttpException) { + $statusCode = in_array($exception->getStatusCode(), [401, 403, 404, 503]) ? $exception->getStatusCode() : 500; + + return $this->response($path, $statusCode); + } else if ($exception instanceof ModelNotFoundException) { + return $this->response($path, 404); + } else if ($exception instanceof PDOException) { + return $this->response($path, 500); + } + + return parent::render($request, $exception); + } + + /** + * Convert an authentication exception into a response. + * + * @param \Illuminate\Http\Request $request + * @param \Illuminate\Auth\AuthenticationException $exception + * @return \Illuminate\Http\Response + */ + protected function unauthenticated($request, AuthenticationException $exception) + { + if ($request->expectsJson()) { + return response()->json(['error' => $this->jsonErrorMessages[401]], 401); + } + + return redirect()->guest(route('super.session.index')); + } + + private function isAdminUri() + { + return strpos($_SERVER['REQUEST_URI'], 'super') !== false ? true : false; + } + + private function response($path, $statusCode, $message = null) + { + if (request()->expectsJson()) { + return response()->json([ + 'error' => isset($this->jsonErrorMessages[$statusCode]) + ? $this->jsonErrorMessages[$statusCode] + : 'Something went wrong, please try again later.' + ], $statusCode); + } + + return response()->view("{$path}::errors.{$statusCode}", ['message' => $message, 'status' => $statusCode], $statusCode); + } + + private function responseCustom($path, $statusCode, $view, $message = null) + { + if (request()->expectsJson()) { + return response()->json([ + 'error' => isset($this->jsonErrorMessages[$statusCode]) + ? $this->jsonErrorMessages[$statusCode] + : 'Something went wrong, please try again later.' + ], $statusCode); + } + + return response()->view("{$path}::errors.{$view}", ['message' => $message, 'status' => $statusCode], $statusCode); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Facades/Company.php b/packages/Webkul/SAASCustomizer/src/Facades/Company.php new file mode 100644 index 000000000..b8a4fdfb0 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Facades/Company.php @@ -0,0 +1,18 @@ +company = Company::getCurrent(); + $this->category = $category; + $this->inventory = $inventory; + $this->locale = $locale; + $this->currency = $currency; + $this->channel = $channel; + $this->attribute = $attribute; + $this->attributeFamily = $attributeFamily; + $this->attributeGroup = $attributeGroup; + $this->customerGroup = $customerGroup; + } + + /** + * Prepare data for the customer groups + */ + public function prepareCustomerGroupData() + { + $this->company = Company::getCurrent(); + + $data = [ + 'code' => 'guest', + 'name' => 'Guest', + 'is_user_defined' => 0, + ]; + + $customerGroup0 = $this->customerGroup->create($data); + + // default customer group 1 + $data = [ + 'id' => 1, + 'code' => 'general', + 'name' => 'General', + 'is_user_defined' => 0, + 'company_id' => $this->company->id + ]; + + $customerGroup1 = $this->customerGroup->create($data); + + // default customer group 2 + $data = [ + 'id' => 2, + 'code' => 'wholesale', + 'name' => 'Wholesale', + 'is_user_defined' => 0, + 'company_id' => $this->company->id + ]; + + $customerGroup2 = $this->customerGroup->create($data); + + return ['default' => $customerGroup1, 'wholesale' => $customerGroup2]; + } + + /** + * Prepares category data + */ + public function prepareCategoryData() + { + $this->company = Company::getCurrent(); + + $data = [ + 'position' => '1', + 'image' => NULL, + 'status' => '1', + 'parent_id' => NULL, + 'name' => 'Root', + 'slug' => 'root', + 'description' => 'Root', + 'meta_title' => '', + 'meta_description' => '', + 'meta_keywords' => '', + 'locale' => 'all', + 'company_id' => $this->company->id + ]; + + $category = $this->category->create($data); + + return $category; + } + + /** + * Prepares data for a default inventory + */ + public function prepareInventoryData() + { + $this->company = Company::getCurrent(); + + $data = [ + 'code' => 'default', + 'name' => 'Default', + 'contact_name' => 'Detroit Warehouse', + 'contact_email' => 'warehouse@example.com', + 'contact_number' => '9876543210', + 'status' => 1, + 'country' => 'US', + 'state' => 'MI', + 'street' => '12th Street', + 'city' => 'Detroit', + 'postcode' => '48127', + 'company_id' => $this->company->id + ]; + + return $this->inventory->create($data); + } + + /** + * Creates a default locale + */ + public function prepareLocaleData() + { + $this->company = Company::getCurrent(); + + $data = [ + 'code' => 'en', + 'name' => 'English', + 'company_id' => $this->company->id + ]; + + return $this->locale->create($data); + } + + /** + * Prepares a default currency + */ + public function prepareCurrencyData() + { + $this->company = Company::getCurrent(); + + $data = [ + 'code' => 'USD', + 'name' => 'US Dollar', + 'company_id' => $this->company->id + ]; + + return $this->currency->create($data); + } + + /** + * Prepares a default channel + */ + public function prepareChannelData() + { + $this->company = Company::getCurrent(); + + $inventorySource = $this->inventory->findOneWhere(['company_id' => $this->company->id]); + $locale = $this->locale->findOneWhere(['company_id' => $this->company->id]); + $currency = $this->currency->findOneWhere(['company_id' => $this->company->id]); + $category = $this->category->findOneWhere(['company_id' => $this->company->id]); + + $data = [ + 'code' => 'default', + 'name' => 'Default Channel', + 'description' => 'Default Channel', + "inventory_sources" => [ + 0 => $inventorySource->id + ], + "root_category_id" => $category->id, + 'hostname' => $this->company->domain, + 'locales' => [ + 0 => $locale->id + ], + "default_locale_id" => $locale->id, + + 'currencies' => [ + 0 => $currency->id + ], + + 'base_currency_id' => $currency->id, + 'theme' => 'default', + + 'home_page_content' => '

@include("shop::home.slider") @include("shop::home.featured-products") @include("shop::home.new-products")

', + + 'footer_content' => '
Quick Links
Connect With Us
', + + 'company_id' => $this->company->id + ]; + + return $this->channel->create($data); + + // $newChannel->locales()->sync($data['locales']); + + // $newChannel->currencies()->sync($data['currencies']); + + // $newChannel->inventory_sources()->sync($data['inventory_sources']); + + // $this->uploadImages($data, $channel); + + // $this->uploadImages($data, $channel, 'favicon'); + } + + /** + * Prepare Attribute Data + */ + public function prepareAttributeData() + { + $this->company = Company::getCurrent(); + + $sku = ['code' => 'sku','admin_name' => 'SKU','type' => 'text','validation' => NULL,'position' => '1','is_required' => '1','is_unique' => '1','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'SKU']]; + + $this->attribute->create($sku); + + $name = ['code' => 'name', 'admin_name' => 'Name', 'type' => 'text', 'validation' => NULL, 'position' => '2', 'is_required' => '1', 'is_unique' => '0', 'value_per_locale' => '1', 'value_per_channel' => '1', 'is_filterable' => '0', 'is_configurable' => '0', 'is_user_defined' => '0', 'is_visible_on_front' => '0', 'company_id' => $this->company->id,'en' => ['name' => 'Name']]; + + $this->attribute->create($name); + + $url_key = ['code' => 'url_key', 'admin_name' => 'URL Key', 'type' => 'text', 'validation' => NULL, 'position' => '3', 'is_required' => '1', 'is_unique' => '1', 'value_per_locale' => '0', 'value_per_channel' => '0', 'is_filterable' => '0', 'is_configurable' => '0', 'is_user_defined' => '0', 'is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'URL Key']]; + + $this->attribute->create($url_key); + + $taxCategoryId = ['code' => 'tax_category_id', 'admin_name' => 'Tax Category', 'type' => 'select', 'validation' => NULL, 'position' => '4', 'is_required' => '0', 'is_unique' => '0', 'value_per_locale' => '0', 'value_per_channel' => '1', 'is_filterable' => '0', 'is_configurable' => '0', 'is_user_defined' => '0', 'is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Tax Category']]; + + $this->attribute->create($taxCategoryId); + + $new = ['code' => 'new', 'admin_name' => 'New', 'type' => 'boolean', 'validation' => NULL, 'position' => '5', 'is_required' => '0', 'is_unique' => '0', 'value_per_locale' => '0', 'value_per_channel' => '0', 'is_filterable' => '0','is_configurable' => '0', 'is_user_defined' => '0', 'is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'New']]; + + $this->attribute->create($new); + + $featured = ['id' => '6', 'code' => 'featured', 'admin_name' => 'Featured', 'type' => 'boolean', 'validation' => NULL, 'position' => '6', 'is_required' => '0', 'is_unique' => '0', 'value_per_locale' => '0', 'value_per_channel' => '0', 'is_filterable' => '0', 'is_configurable' => '0', 'is_user_defined' => '0', 'is_visible_on_front' => '0', 'company_id' => 1, 'en' => ['name' => 'Featured']]; + + $this->attribute->create($featured); + + $visibleIndividually = ['code' => 'visible_individually','admin_name' => 'Visible Individually','type' => 'boolean','validation' => NULL,'position' => '7','is_required' => '1','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Visible Individually']]; + + $this->attribute->create($visibleIndividually); + + $status = ['code' => 'status','admin_name' => 'Status','type' => 'boolean','validation' => NULL,'position' => '8','is_required' => '1','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Status']]; + + $this->attribute->create($status); + + $shortDesc = ['code' => 'short_description','admin_name' => 'Short Description','type' => 'textarea','validation' => NULL,'position' => '9','is_required' => '1','is_unique' => '0','value_per_locale' => '1','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Short Description']]; + + $this->attribute->create($shortDesc); + + $desc = ['code' => 'description','admin_name' => 'Description','type' => 'textarea','validation' => NULL,'position' => '10','is_required' => '1','is_unique' => '0','value_per_locale' => '1','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Description']]; + + $this->attribute->create($desc); + + $price = ['code' => 'price','admin_name' => 'Price','type' => 'price','validation' => 'decimal','position' => '11','is_required' => '1','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Price']]; + + $this->attribute->create($price); + + $cost = ['code' => 'cost','admin_name' => 'Cost','type' => 'price','validation' => 'decimal','position' => '12','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => 1, 'en' => ['name' => 'Cost']]; + + $this->attribute->create($cost); + + $specialPrice = ['code' => 'special_price','admin_name' => 'Special Price','type' => 'price','validation' => 'decimal','position' => '13','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Special Price']]; + + $this->attribute->create($specialPrice); + + $specialFrom = ['code' => 'special_price_from','admin_name' => 'Special Price From','type' => 'date','validation' => NULL,'position' => '14','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Special Price From']]; + + $this->attribute->create($specialFrom); + + $specialTo = ['code' => 'special_price_to','admin_name' => 'Special Price To','type' => 'date','validation' => NULL,'position' => '15','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Special Price To']]; + + $this->attribute->create($specialTo); + + $metaTitle = ['code' => 'meta_title','admin_name' => 'Meta Title','type' => 'textarea','validation' => NULL,'position' => '16','is_required' => '0','is_unique' => '0','value_per_locale' => '1','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Meta Title']]; + + $this->attribute->create($metaTitle); + + $metaKeywords = ['code' => 'meta_keywords','admin_name' => 'Meta Keywords','type' => 'textarea','validation' => NULL,'position' => '17','is_required' => '0','is_unique' => '0','value_per_locale' => '1','value_per_channel' => '1','is_filterable' => '0', 'is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0','company_id' => $this->company->id, 'en' => ['name' => 'Meta Keywords']]; + + $this->attribute->create($metaKeywords); + + $metaDesc = ['code' => 'meta_description','admin_name' => 'Meta Description','type' => 'textarea','validation' => NULL,'position' => '18','is_required' => '0','is_unique' => '0','value_per_locale' => '1','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Meta Description']]; + + $this->attribute->create($metaDesc); + + $width = ['code' => 'width','admin_name' => 'Width','type' => 'text','validation' => 'decimal','position' => '19','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Width']]; + + $this->attribute->create($width); + + $height = ['code' => 'height','admin_name' => 'Height','type' => 'text','validation' => 'decimal','position' => '20','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Height']]; + + $this->attribute->create($height); + + $depth = ['code' => 'depth','admin_name' => 'Depth','type' => 'text','validation' => 'decimal','position' => '21','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Depth']]; + + $this->attribute->create($depth); + + $weight = ['code' => 'weight','admin_name' => 'Weight','type' => 'text','validation' => 'decimal','position' => '22','is_required' => '1','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0','company_id' => $this->company->id, 'en' => ['name' => 'Weight']]; + + $this->attribute->create($weight); + + $color = ['code' => 'color','admin_name' => 'Color','type' => 'select','validation' => NULL,'position' => '23','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '1','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Color'], 'options' => [ + 'option_0' => ['admin_name' => 'Red', 'en' => ['label' => 'Red'], 'sort_order' => '1'], + 'option_1' => ['admin_name' => 'Green', 'en' => ['label' => 'Green'],'sort_order' => '2'], + 'option_2' => ['admin_name' => 'Yellow', 'en' => ['label' => 'Yellow'], 'sort_order' => '3'], + 'option_3' => ['admin_name' => 'Black', 'en' => ['label' => 'Black'], 'sort_order' => '4'], + 'option_4' => ['admin_name' => 'White', 'en' => ['label' => 'White'], 'sort_order' => '5'] + ]]; + + $this->attribute->create($color); + + $size = ['code' => 'size','admin_name' => 'Size','type' => 'select','validation' => NULL,'position' => '24','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '1','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Size'], 'options' => [ + 'option_0' => ['id' => '6','admin_name' => 'S', 'en' => ['label' => 'S'], 'sort_order' => '1'], + 'option_1' => ['id' => '7','admin_name' => 'M', 'en' => ['label' => 'M'], 'sort_order' => '2'], + 'option_2' => ['id' => '8','admin_name' => 'L', 'en' => ['label' => 'L'], 'sort_order' => '3'], + 'option_3' => ['id' => '9','admin_name' => 'XL', 'en' => ['label' => 'XL'], 'sort_order' => '4'] + ]]; + + $this->attribute->create($size); + + return true; + } + + /** + * To prepare the attribute family + */ + public function prepareAttributeFamilyData() + { + $this->company = Company::getCurrent(); + + $data = ['code' => 'default', 'name' => 'Default', 'status' => '0', 'is_user_defined' => '1', 'company_id' => $this->company->id]; + + $attributeFamily = $this->attributeFamily->create($data); + + return $attributeFamily; + } + + /** + * To prepare the attribute group mappings + */ + public function prepareAttributeGroupData() + { + $this->company = Company::getCurrent(); + + $attributeFamily = $this->attributeFamily->findOneWhere(['company_id' => $this->company->id]); + $attributes = $this->attribute->all(); + + $group1 = ['sku', 'name', 'url_key', 'tax_category_id', 'new', 'featured', 'visible_individually', 'status', 'color', 'size']; + $group2 = ['short_description', 'description']; + $group3 = ['meta_title', 'meta_keywords', 'meta_description']; + $group4 = ['price', 'cost', 'special_price', 'special_price_from', 'special_price_to']; + $group5 = ['width', 'height', 'depth', 'weight']; + + // creating group 1 + $this->attributeGroup->create(['name' => 'General', 'position' => '1', 'is_user_defined' => '0', 'attribute_family_id' => $attributeFamily->id, 'company_id' => $this->company->id]); + + $attributeGroup = $this->attributeGroup->findOneWhere(['name' => 'General']); + + $i = 1; + foreach($group1 as $code) { + $i++; + + foreach ($attributes as $value) { + if($value->code == $code) { + DB::table('attribute_group_mappings')->insert([ + ['attribute_id' => $value->id, 'attribute_group_id' => $attributeGroup->id, 'position' => $i] + ]); + } + } + } + + // creating group 2 + $g2 = $this->attributeGroup->create(['name' => 'Description', 'position' => '2', 'is_user_defined' => '0', 'attribute_family_id' => $attributeFamily->id, 'company_id' => $this->company->id]); + + $attributeGroup = $this->attributeGroup->findOneWhere(['name' => 'Description']); + + $i = 1; + foreach($group2 as $code) { + $i++; + + foreach ($attributes as $value) { + if($value->code == $code) { + DB::table('attribute_group_mappings')->insert([ + ['attribute_id' => $value->id, 'attribute_group_id' => $attributeGroup->id, 'position' => $i] + ]); + } + } + } + + // creating group 3 + $g3 = $this->attributeGroup->create(['name' => 'Meta Description', 'position' => '3', 'is_user_defined' => '0', 'attribute_family_id' => $attributeFamily->id, 'company_id' => $this->company->id]); + + $attributeGroup = $this->attributeGroup->findOneWhere(['name' => 'Meta Description']); + + $i = 1; + foreach($group3 as $code) { + $i++; + + foreach ($attributes as $value) { + if($value->code == $code) { + DB::table('attribute_group_mappings')->insert([ + ['attribute_id' => $value->id, 'attribute_group_id' => $attributeGroup->id, 'position' => $i] + ]); + } + } + } + + // creating group 4 + $g4 = $this->attributeGroup->create(['name' => 'Price', 'position' => '4', 'is_user_defined' => '0', 'attribute_family_id' => $attributeFamily->id, 'company_id' => $this->company->id]); + + $attributeGroup = $this->attributeGroup->findOneWhere(['name' => 'Price']); + + $i = 1; + foreach($group4 as $code) { + $i++; + + foreach ($attributes as $value) { + if($value->code == $code) { + DB::table('attribute_group_mappings')->insert([ + ['attribute_id' => $value->id, 'attribute_group_id' => $attributeGroup->id, 'position' => $i] + ]); + } + } + } + + // creating group 5 + $g5 = $this->attributeGroup->create(['name' => 'Shipping', 'position' => '5', 'is_user_defined' => '0', 'attribute_family_id' => $attributeFamily->id, 'company_id' => $this->company->id]); + + $attributeGroup = $this->attributeGroup->findOneWhere(['name' => 'Shipping']); + + $i = 1; + foreach($group5 as $code) { + $i++; + + foreach ($attributes as $value) { + if($value->code == $code) { + DB::table('attribute_group_mappings')->insert([ + ['attribute_id' => $value->id, 'attribute_group_id' => $attributeGroup->id, 'position' => $i] + ]); + } + } + } + + return true; + } + + /** + * To prepare the country state data for + * admin and customers country & state fields + * auto population + */ + public function prepareCountryStateData() + { + $countries = json_decode(file_get_contents(base_path().'/packages/Webkul/Core/src/Data/countries.json'), true); + + DB::table('countries')->insert($countries); + + $states = json_decode(file_get_contents(base_path().'/packages/Webkul/Core/src/Data/states.json'), true); + + DB::table('country_states')->insert($states); + + return true; + } + + /** + * It will store a check in the companies + * that all the necessary data had been + * inserted successfully or not + * + * @param boolean seedCompleted + */ + public function setInstallationCompleteParam() + { + $this->seedCompleted = true; + + $info = [ + 'company_created' => true, + 'seeded' => true, + ]; + + $info = json_encode($info); + + $this->company->update([ + 'more_info' => $info + ]); + + return true; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Helpers/StatsPurger.php b/packages/Webkul/SAASCustomizer/src/Helpers/StatsPurger.php new file mode 100644 index 000000000..aba932432 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Helpers/StatsPurger.php @@ -0,0 +1,77 @@ +category = $category; + $this->inventory = $inventory; + $this->locale = $locale; + $this->currency = $currency; + $this->channel = $channel; + $this->attribute = $attribute; + $this->attributeFamily = $attributeFamily; + $this->attributeGroup = $attributeGroup; + $this->customerGroup = $customerGroup; + $this->product = $product; + } + + public function getAggregates($companyId) + { + $products = DB::table('products')->where('company_id', '=', $companyId)->count(); + $attributes = DB::table('attributes')->where('company_id', '=', $companyId)->count(); + $customers = DB::table('customers')->where('company_id', '=', $companyId)->count(); + $customerGroups = DB::table('customer_groups')->where('company_id', '=', $companyId)->count(); + $categories = DB::table('categories')->where('company_id', '=', $companyId)->count(); + + return [ + 'products' => $products, + 'attributes' => $attributes, + 'customers' => $customers, + 'customer-groups' => $customerGroups, + 'categories' => $categories + ]; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php b/packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php new file mode 100644 index 000000000..64826d1dc --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php @@ -0,0 +1,234 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CompanyController extends Controller +{ + protected $attribute; + protected $_config; + protected $details; + protected $admin; + protected $role; + protected $dataSeed; + protected $companyStats; + + public function __construct(CompanyRepository $company, CompanyDetailsRepository $details, Admin $admin, Role $role, DataPurger $dataSeed, StatsPurger $companyStats) + { + $this->company = $company; + $this->details = $details; + $this->admin = $admin; + $this->role = $role; + $this->dataSeed = $dataSeed; + $this->companyStats = $companyStats; + $this->_config = request('_config'); + + if (! Company::isAllowed()) { + abort(404); + } + } + + public function showCompanyStats($id) + { + $aggregates = $this->companyStats->getAggregates($id); + + $company = $this->company->find($id); + + return view('saas::companies.company.index')->with('company', [$company, $aggregates]); + } + + public function create() + { + if (session()->has('company')) { + session()->regenerate(); + session()->forget('company'); + } + + return view($this->_config['view']); + } + + protected function store() + { + $validator = Validator::make(Request::all(), [ + 'email' => 'required|email|max:191|unique:admins,email', + 'password' => 'required|string|confirmed|min:6', + 'username' => 'required|alpha_num|min:3|max:64', + 'first_name' => 'required|string|max:191', + 'last_name' => 'nullable|string|max:191', + 'phone_no' => 'required|digits_between:10,11', + 'org_name' => 'required|string|max:191' + ]); + + $data = Request::all(); + + $authEmail = $data['email']; + unset($data['email']); + + if ($validator->fails()) { + return response()->json(['success' => false, 'errors' => $validator->errors()], 403); + } + + $validator = Validator::make(Request::all(), [ + 'username' => 'not_in:www,http,https,WWW,HTTP,HTTPS' + ]); + + if ($validator->fails()) { + return response()->json([ + 'success' => false, + 'errors' => $validator->errors() + ], 403); + } + + if (strtolower($data['username']) == 'www' || strtolower($data['username']) == 'http' || strtolower($data['username']) == 'https') { + session()->flash('warning', 'Illegal subdomain name'); + } + + $data['name'] = $data['org_name']; + unset($data['org_name']); + + $primaryServerName = config('app.url'); + + if (str_contains($primaryServerName, 'http://')) { + $primaryServerNameWithoutProtocol = explode('http://', $primaryServerName)[1]; + } else if (str_contains($primaryServerName, 'https://')) { + $primaryServerNameWithoutProtocol = explode('https://', $primaryServerName)[1]; + } + + $data['domain'] = strtolower($data['username']). '.' . $primaryServerNameWithoutProtocol; + + $validator = Validator::make($data, [ + 'domain' => 'required|unique:companies,domain' + ]); + + if ($validator->fails()) { + return response()->json(['success' => false, 'errors' => $validator->errors()], 403); + } + + $company = $this->company->create($data); + + if ($company) { + $info = [ + 'created' => true, + 'seeded' => false + ]; + + $info = json_encode($info); + + $company->update([ + 'extra_info' => $info + ]); + + $data['password'] = bcrypt($data['password']); + $data['name'] = $data['first_name'].' '.$data['last_name']; + $data['status'] = 1; + + //creates a new full privilege role when new company is registered + $role = $this->role->create([ + 'name' => 'Administrator', + 'description' => 'Administrator role', + 'permission_type' => 'all', + 'company_id' => $company->id + ]); + + $data['role_id'] = $role->id; + $data['email'] = $authEmail; + $data['company_id'] = $company->id; + + //creates a new full privilege admin with newly created role above + $this->admin->create($data); + + //creates the personal details record for the company + $this->details->create($data); + + if (session()->has('company')) { + session()->forget('company'); + + session()->put('company', $company); + } else { + session()->put('company', $company); + } + + return response()->json([ + 'success' => true, 'redirect' => $data['domain'] + ], 200); + } else { + return response()->json([ + 'success' => false + ], 403); + } + } + + public function edit($id) + { + $company = $this->company->findOrFail($id); + + return view('saas::companies.company.edit')->with('company', $company); + } + + public function update($id) + { + $this->validate(request(), [ + 'email' => 'required|email|max:191|unique:companies,email,'.$id, + 'name' => 'required|string|max:191|unique:companies,name,'.$id, + 'domain' => 'required|string|max:191|unique:companies,domain,'.$id, + 'is_active' => 'required|boolean' + ]); + + $data = request()->all(); + + $company = $this->company->findOrFail($id); + + if ($company) { + $result = $company->update($data); + + if ($result) { + session()->flash('success', 'Company Updated Successfully'); + } else { + session()->flash('warning', 'Something went wrong'); + } + } else { + session()->flash('warning', 'Something went wrong'); + } + + return redirect()->back(); + } + + protected function changeStatus($id) + { + $company = $this->company->find($id); + + if ($company->is_active == 0) { + $company->update([ + 'is_active' => 1 + ]); + + session()->flash('success', 'Company successfully activated'); + } else { + $company->update([ + 'is_active' => 0 + ]); + + session()->flash('warning', 'Company successfully deactivated'); + } + + return redirect()->back(); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Http/Controllers/Controller.php b/packages/Webkul/SAASCustomizer/src/Http/Controllers/Controller.php new file mode 100755 index 000000000..b991f412d --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Http/Controllers/Controller.php @@ -0,0 +1,13 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class PurgeController extends Controller +{ + protected $dataSeed; + + public function __construct(DataPurger $dataSeed) + { + $this->dataSeed = $dataSeed; + $this->_config = request('_config'); + } + + public function seedDatabase() + { + if (session()->has('company')) { + session()->forget('company'); + session()->regenerate(); + } + + $this->dataSeed->prepareLocaleData(); + $this->dataSeed->prepareCategoryData(); //translation table not getting populated + $this->dataSeed->prepareInventoryData(); + $this->dataSeed->prepareCurrencyData(); + $this->dataSeed->prepareChannelData(); + + // need to get executed only first time + if (Company::count() == 1) + $this->dataSeed->prepareCountryStateData(); + + $this->dataSeed->prepareCustomerGroupData(); + $this->dataSeed->prepareAttributeData(); + $this->dataSeed->prepareAttributeFamilyData(); + $this->dataSeed->prepareAttributeGroupData(); + + Event::fire('new.company.registered'); + + $this->dataSeed->setInstallationCompleteParam(); + session()->flash('success', 'Store Created Successfully'); + + return redirect()->route('shop.home.index'); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Http/Controllers/SuperUserController.php b/packages/Webkul/SAASCustomizer/src/Http/Controllers/SuperUserController.php new file mode 100644 index 000000000..7ff5fd08d --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Http/Controllers/SuperUserController.php @@ -0,0 +1,69 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class SuperUserController extends Controller +{ + public function __construct() + { + $this->middleware('auth:super-admin', ['only' => ['list']]); + } + + /** + * To show the login screen + */ + public function index() + { + if (! auth()->guard('super-admin')->check()) { + return view('saas::companies.auth.login'); + } else { + return redirect()->route('super.session.index'); + } + } + + public function store() + { + $this->validate(request(), [ + 'email' => 'required|email', + 'password' => 'required' + ]); + + if (! auth()->guard('super-admin')->attempt(request(['email', 'password']))) { + session()->flash('error', trans('admin::app.users.users.login-error')); + + return redirect()->route('super.session.index'); + } + + session()->flash('success', 'Logged in successfully'); + + return redirect()->route('super.companies.index'); + } + + public function list() + { + return view('saas::companies.index'); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy() + { + auth()->guard('super-admin')->logout(); + + return redirect()->route('super.session.index'); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Http/Middleware/ValidatesDomain.php b/packages/Webkul/SAASCustomizer/src/Http/Middleware/ValidatesDomain.php new file mode 100644 index 000000000..a39cec879 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Http/Middleware/ValidatesDomain.php @@ -0,0 +1,83 @@ +company = $company; + } + + /** + * Handle an incoming request. + * + * @param \Illuminate\Http\Request $request + * @param \Closure $next + * @return mixed + */ + public function handle($request, Closure $next) + { + $primaryServerName = config('app.url'); + + $currentURL = $_SERVER['SERVER_NAME']; + + $params['domain'] = $currentURL; + + $validator = Validator::make($params, [ + 'domain' => 'required|ip' + ]); + + if (str_contains($primaryServerName, 'http://')) { + $primaryServerNameWithoutProtocol = explode('http://', $primaryServerName)[1]; + } else if (str_contains($primaryServerName, 'https://')) { + $primaryServerNameWithoutProtocol = explode('https://', $primaryServerName)[1]; + } + + //restricts the IP address usage to access the system + if ($validator->fails()) { + //case where IP validation fails + if (str_contains($currentURL, 'http://')) { + $currentURL = explode('http://', $currentURL)[1]; + } else if (str_contains($currentURL, 'http://')) { + $currentURL = explode('http://', $currentURL)[1]; + } + } else { + //case where IP validation passes then it should redirect to the main domain + return redirect()->route('company.home.index'); + } + + if ($currentURL == $primaryServerNameWithoutProtocol) { + if (request()->is('company/*') || request()->is('super/*')) { + return $next($request); + } else { + return redirect()->route('company.create.index'); + } + } else { + if ((request()->is('company/*') || request()->is('super/*')) && ! request()->is('company/seed-data')) { + throw new \Exception('not_allowed_to_visit_this_section', 400); + } else { + $company = $this->company->findWhere(['domain' => $currentURL]); + + if (count($company) == 1) { + return $next($request); + } else if (count($company) == 0) { + throw new \Exception('domain_not_found', 400); + } else { + return $next($request); + } + } + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php b/packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php new file mode 100644 index 000000000..7dc5d9bb8 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php @@ -0,0 +1,25 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CompanyRegistered +{ + public function handle() + { + $company = Company::getCurrent(); + + foreach(config('purge-pool') as $key => $pool) { + $poolInstance = app($pool); + + $poolInstance->createPreOrderData($company->id); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Attribute/Attribute.php b/packages/Webkul/SAASCustomizer/src/Models/Attribute/Attribute.php new file mode 100644 index 000000000..8e83a4dcd --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Attribute/Attribute.php @@ -0,0 +1,29 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('attributes' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeFamily.php b/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeFamily.php new file mode 100755 index 000000000..ea11afed6 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeFamily.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('attribute_families' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeGroup.php b/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeGroup.php new file mode 100755 index 000000000..c093338f9 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeGroup.php @@ -0,0 +1,29 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('attribute_groups' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeOption.php b/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeOption.php new file mode 100755 index 000000000..83b435090 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeOption.php @@ -0,0 +1,20 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new QueryBuilder($query); + } else { + return new QueryBuilder($query->where('company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Category/CategoryTranslation.php b/packages/Webkul/SAASCustomizer/src/Models/Category/CategoryTranslation.php new file mode 100755 index 000000000..aabdf4cb3 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Category/CategoryTranslation.php @@ -0,0 +1,29 @@ +where('category_translations' . '.company_id', $company->id)); + // } else { + // return new \Illuminate\Database\Eloquent\Builder($query->where('category_translations' . '.company_id', null)); + // } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Checkout/Cart.php b/packages/Webkul/SAASCustomizer/src/Models/Checkout/Cart.php new file mode 100755 index 000000000..02fc71c19 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Checkout/Cart.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('cart' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Checkout/CartAddress.php b/packages/Webkul/SAASCustomizer/src/Models/Checkout/CartAddress.php new file mode 100755 index 000000000..d99a015ee --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Checkout/CartAddress.php @@ -0,0 +1,22 @@ +hasOne(CompanyDetails::class); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/CompanyDetails.php b/packages/Webkul/SAASCustomizer/src/Models/CompanyDetails.php new file mode 100644 index 000000000..6776b912f --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/CompanyDetails.php @@ -0,0 +1,17 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('channels' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/CoreConfig.php b/packages/Webkul/SAASCustomizer/src/Models/Core/CoreConfig.php new file mode 100755 index 000000000..29a185898 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Core/CoreConfig.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('core_config' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/Currency.php b/packages/Webkul/SAASCustomizer/src/Models/Core/Currency.php new file mode 100755 index 000000000..bd411bcc7 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Core/Currency.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('currencies' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/CurrencyExchangeRate.php b/packages/Webkul/SAASCustomizer/src/Models/Core/CurrencyExchangeRate.php new file mode 100755 index 000000000..96664a82d --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Core/CurrencyExchangeRate.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('currency_exchange_rates' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/Locale.php b/packages/Webkul/SAASCustomizer/src/Models/Core/Locale.php new file mode 100755 index 000000000..742b74f2a --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Core/Locale.php @@ -0,0 +1,28 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('locales' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/Slider.php b/packages/Webkul/SAASCustomizer/src/Models/Core/Slider.php new file mode 100755 index 000000000..845e18e99 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Core/Slider.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('sliders' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/SubscribersList.php b/packages/Webkul/SAASCustomizer/src/Models/Core/SubscribersList.php new file mode 100755 index 000000000..24a059c29 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Core/SubscribersList.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('subscribers_list' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Customer/Customer.php b/packages/Webkul/SAASCustomizer/src/Models/Customer/Customer.php new file mode 100755 index 000000000..eeba8ebb9 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Customer/Customer.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('customers' . '.company_id', $company->id)); + } + } +} diff --git a/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerAddress.php b/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerAddress.php new file mode 100755 index 000000000..5a264fd2d --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerAddress.php @@ -0,0 +1,28 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('customer_addresses' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerGroup.php b/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerGroup.php new file mode 100755 index 000000000..e7e20599c --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerGroup.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('customer_groups' . '.company_id', $company->id)); + } + + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Customer/Wishlist.php b/packages/Webkul/SAASCustomizer/src/Models/Customer/Wishlist.php new file mode 100755 index 000000000..ccb4d0ca7 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Customer/Wishlist.php @@ -0,0 +1,29 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('wishlist' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Discount/CartRule.php b/packages/Webkul/SAASCustomizer/src/Models/Discount/CartRule.php new file mode 100644 index 000000000..c923e1b66 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Discount/CartRule.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('cart_rules' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Inventory/InventorySource.php b/packages/Webkul/SAASCustomizer/src/Models/Inventory/InventorySource.php new file mode 100755 index 000000000..00cc86c7a --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Inventory/InventorySource.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('inventory_sources' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Product/Product.php b/packages/Webkul/SAASCustomizer/src/Models/Product/Product.php new file mode 100755 index 000000000..3400c3333 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Product/Product.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('products' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Product/ProductAttributeValue.php b/packages/Webkul/SAASCustomizer/src/Models/Product/ProductAttributeValue.php new file mode 100755 index 000000000..aed510c1c --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Product/ProductAttributeValue.php @@ -0,0 +1,21 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('product_flat' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Product/ProductImage.php b/packages/Webkul/SAASCustomizer/src/Models/Product/ProductImage.php new file mode 100755 index 000000000..ca4a18ae6 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Product/ProductImage.php @@ -0,0 +1,21 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('product_inventories' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Product/ProductOrderedInventory.php b/packages/Webkul/SAASCustomizer/src/Models/Product/ProductOrderedInventory.php new file mode 100644 index 000000000..a72e4f284 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Product/ProductOrderedInventory.php @@ -0,0 +1,21 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('product_reviews' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/Invoice.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/Invoice.php new file mode 100755 index 000000000..004f8eb9c --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Sales/Invoice.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('invoices' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/InvoiceItem.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/InvoiceItem.php new file mode 100755 index 000000000..fc92be1e8 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Sales/InvoiceItem.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('invoice_items' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/Order.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/Order.php new file mode 100755 index 000000000..e456167f7 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Sales/Order.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('orders' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderAddress.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderAddress.php new file mode 100755 index 000000000..d5d7cb4be --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderAddress.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('order_address' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderItem.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderItem.php new file mode 100755 index 000000000..265c083b4 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderItem.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('order_items' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderPayment.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderPayment.php new file mode 100755 index 000000000..25f6fcb39 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderPayment.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('order_payment' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/Shipment.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/Shipment.php new file mode 100755 index 000000000..6de5aba03 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Sales/Shipment.php @@ -0,0 +1,26 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('shipments' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/ShipmentItem.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/ShipmentItem.php new file mode 100755 index 000000000..40616890c --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Sales/ShipmentItem.php @@ -0,0 +1,28 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('shipment_items' . '.company_id', $company->id)); + + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/StripeConnect/StripeConnect.php b/packages/Webkul/SAASCustomizer/src/Models/StripeConnect/StripeConnect.php new file mode 100644 index 000000000..c0124f2a0 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/StripeConnect/StripeConnect.php @@ -0,0 +1,27 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('stripe_companies' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/SuperAdmin.php b/packages/Webkul/SAASCustomizer/src/Models/SuperAdmin.php new file mode 100644 index 000000000..7f18d8046 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/SuperAdmin.php @@ -0,0 +1,25 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('tax_categories' . '.company_id', $company->id)); + + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Tax/TaxMap.php b/packages/Webkul/SAASCustomizer/src/Models/Tax/TaxMap.php new file mode 100755 index 000000000..edfc19709 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/Tax/TaxMap.php @@ -0,0 +1,19 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('tax_rates' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/User/Admin.php b/packages/Webkul/SAASCustomizer/src/Models/User/Admin.php new file mode 100755 index 000000000..7bb89f68d --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/User/Admin.php @@ -0,0 +1,36 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('admins' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/User/Role.php b/packages/Webkul/SAASCustomizer/src/Models/User/Role.php new file mode 100755 index 000000000..df08164cd --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Models/User/Role.php @@ -0,0 +1,30 @@ +guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('roles' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeFamilyObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeFamilyObserver.php new file mode 100755 index 000000000..585f3f1a6 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeFamilyObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeGroupObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeGroupObserver.php new file mode 100755 index 000000000..4ad9953bb --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeGroupObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeObserver.php new file mode 100644 index 000000000..373166f17 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeOptionObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeOptionObserver.php new file mode 100755 index 000000000..772af5a1a --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeOptionObserver.php @@ -0,0 +1,15 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryTranslationObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryTranslationObserver.php new file mode 100755 index 000000000..48401125f --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryTranslationObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartAddressObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartAddressObserver.php new file mode 100755 index 000000000..9fa15b4d8 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartAddressObserver.php @@ -0,0 +1,14 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartPaymentObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartPaymentObserver.php new file mode 100755 index 000000000..b5cabeb88 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartPaymentObserver.php @@ -0,0 +1,14 @@ +guard('super-admin')->check()) { + if ($model->count() == 0) { + $model->company_id = Company::getCurrent()->id; + } else { + session()->flash('error', 'Creating more than one channel is not allowed'); + + abort(404); + } + } + } + + public function updating(Channel $channel) + { + if (! auth()->guard('super-admin')->check()) { + if ($channel->hostname != Company::getCurrent()->domain) { + session()->flash('warning', 'Kindly contact admin to change your hostname'); + + abort(404); + } + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/CoreConfigObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/CoreConfigObserver.php new file mode 100755 index 000000000..18d7f693f --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Core/CoreConfigObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyExchangeRate.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyExchangeRate.php new file mode 100755 index 000000000..1a4602a90 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyExchangeRate.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyObserver.php new file mode 100755 index 000000000..29093a218 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/LocaleObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/LocaleObserver.php new file mode 100755 index 000000000..1845d5da9 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Core/LocaleObserver.php @@ -0,0 +1,32 @@ +guard('super-admin')->check()) { + if ($model->count() == 0) { + $model->company_id = Company::getCurrent()->id; + } else { + session()->flash('error', 'Creating locale other than English is not allowed'); + + abort(404); + } + } + } + + public function deleting(Locale $model) + { + if ($model->count() == 1) { + session()->flash('error', 'Cannot delete the Locale'); + } + + return false; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/SliderObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/SliderObserver.php new file mode 100755 index 000000000..626804026 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Core/SliderObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/SubscribersListObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/SubscribersListObserver.php new file mode 100755 index 000000000..3927f0c28 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Core/SubscribersListObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerAddressObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerAddressObserver.php new file mode 100755 index 000000000..8688abc8a --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerAddressObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerGroupObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerGroupObserver.php new file mode 100755 index 000000000..88502367f --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerGroupObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php new file mode 100755 index 000000000..da4047acd --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Customer/WishlistObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Customer/WishlistObserver.php new file mode 100755 index 000000000..8231249b4 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Customer/WishlistObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Discount/CartRuleObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Discount/CartRuleObserver.php new file mode 100644 index 000000000..d0e24586c --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Discount/CartRuleObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Inventory/InventorySourceObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Inventory/InventorySourceObserver.php new file mode 100755 index 000000000..c097a23c4 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Inventory/InventorySourceObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductAttributeValueObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductAttributeValueObserver.php new file mode 100755 index 000000000..987cf6a27 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductAttributeValueObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductFlatObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductFlatObserver.php new file mode 100644 index 000000000..b1cf611e1 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductFlatObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductImageObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductImageObserver.php new file mode 100755 index 000000000..dcf8f2efb --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductImageObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + // $model->company_id = Company::getCurrent()->id; + // } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductInventoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductInventoryObserver.php new file mode 100755 index 000000000..6eb7221a7 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductInventoryObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductObserver.php new file mode 100755 index 000000000..eeb66731d --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductOrderedInventoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductOrderedInventoryObserver.php new file mode 100644 index 000000000..568a56dd9 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductOrderedInventoryObserver.php @@ -0,0 +1,14 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductSalableInventoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductSalableInventoryObserver.php new file mode 100644 index 000000000..d43283012 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductSalableInventoryObserver.php @@ -0,0 +1,14 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/InvoiceObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/InvoiceObserver.php new file mode 100755 index 000000000..304b1fa42 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Sales/InvoiceObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderAddressObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderAddressObserver.php new file mode 100755 index 000000000..737153040 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderAddressObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemInventoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemInventoryObserver.php new file mode 100755 index 000000000..c41fb3d40 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemInventoryObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemObserver.php new file mode 100755 index 000000000..f8ad1ca50 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderObserver.php new file mode 100755 index 000000000..253f278ae --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderPaymentObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderPaymentObserver.php new file mode 100755 index 000000000..f29aa2906 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderPaymentObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentItemObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentItemObserver.php new file mode 100755 index 000000000..be48d8846 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentItemObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + // $model->company_id = Company::getCurrent()->id; + // } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentObserver.php new file mode 100755 index 000000000..673166373 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentObserver.php @@ -0,0 +1,16 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/StripeConnect/StripeConnectObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/StripeConnect/StripeConnectObserver.php new file mode 100644 index 000000000..93e73b65a --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/StripeConnect/StripeConnectObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxCategoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxCategoryObserver.php new file mode 100755 index 000000000..20bd17286 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxCategoryObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxRateObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxRateObserver.php new file mode 100755 index 000000000..9697c449b --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxRateObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/User/AdminObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/User/AdminObserver.php new file mode 100755 index 000000000..00d4e3de9 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/User/AdminObserver.php @@ -0,0 +1,19 @@ +company_id)) { + $model->company_id = Company::getCurrent()->id; + } + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/User/RoleObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/User/RoleObserver.php new file mode 100755 index 000000000..2214fd267 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Observers/User/RoleObserver.php @@ -0,0 +1,19 @@ +company_id)) { + $model->company_id = Company::getCurrent()->id; + } + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Providers/EventServiceProvider.php b/packages/Webkul/SAASCustomizer/src/Providers/EventServiceProvider.php new file mode 100644 index 000000000..ee16a2bb2 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Providers/EventServiceProvider.php @@ -0,0 +1,19 @@ +loadRoutesFrom(__DIR__.'/../Routes/web.php'); + + $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'saas'); + + $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'saas'); + + //over ride system's default validation + $this->registerPresenceVerifier(); + + //over ride system's default validation DB presence verifier + $this->registerValidationFactory(); + + //model observer for all the core models of Bagisto + $this->bootModelObservers(); + + //over ride all existing core models of Bagisto + $this->overrideModels(); + + $this->app->bind( + ExceptionHandler::class, + Handler::class + ); + + $this->composeView(); + + $this->app->register(EventServiceProvider::class); + + $this->app->register(ModuleServiceProvider::class); + } + + /** + * Compose View + */ + public function composeView() + { + view()->composer(['saas::companies.layouts.nav-left', 'saas::companies.layouts.nav-aside'], function ($view) { + $tree = Tree::create(); + + foreach (config('menu.super-admin') as $index => $item) { + $tree->add($item, 'menu'); + } + + $tree->items = core()->sortItems($tree->items); + + $view->with('menu', $tree); + }); + } + + /** + * Register services. + * + * @return void + */ + public function register() + { + $this->registerConfig(); + + $this->registerFacades(); + + //override DB facade + $this->app->singleton('db', function ($app) { + return new \Webkul\SAASCustomizer\Database\DatabaseManager($app, $app['db.factory']); + }); + + $this->commands($this->commands); + } + + public function registerConfig() + { + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/super-menu.php', 'menu.super-admin' + ); + } + + /** + * Register the validation factory. + * + * @return void + */ + protected function registerValidationFactory() + { + $this->app->singleton('validator', function ($app) { + $validator = new \Illuminate\Validation\Factory($app['translator'], $app); + + // The validation presence verifier is responsible for determining the existence of + // values in a given data collection which is typically a relational database or + // other persistent data stores. It is used to check for "uniqueness" as well. + if (isset($app['db'], $app['validation.presence'])) { + $validator->setPresenceVerifier($app['validation.presence']); + } + + return $validator; + }); + } + + /** + * Register the database presence verifier. + * + * @return void + */ + protected function registerPresenceVerifier() + { + $this->app->singleton('validation.presence', function ($app) { + return new \Webkul\SAASCustomizer\Validation\DatabasePresenceVerifier($app['db']); + }); + } + + + /** + * Register Bouncer as a singleton. + * + * @return void + */ + protected function registerFacades() + { + $loader = AliasLoader::getInstance(); + $loader->alias('company', CompanyFacade::class); + + $this->app->singleton('company', function () { + return app()->make(Company::class); + }); + } + + /** + * Override the existing models + */ + public function overrideModels() + { + // Attribute Models Starts + $this->app->concord->registerModel(\Webkul\Attribute\Contracts\Attribute::class, \Webkul\SAASCustomizer\Models\Attribute\Attribute::class); + $this->app->concord->registerModel(\Webkul\Attribute\Contracts\AttributeFamily::class, \Webkul\SAASCustomizer\Models\Attribute\AttributeFamily::class); + $this->app->concord->registerModel(\Webkul\Attribute\Contracts\AttributeGroup::class, \Webkul\SAASCustomizer\Models\Attribute\AttributeGroup::class); + $this->app->concord->registerModel(\Webkul\Attribute\Contracts\AttributeOption::class, \Webkul\SAASCustomizer\Models\Attribute\AttributeOption::class); + $this->app->concord->registerModel(\Webkul\Attribute\Contracts\AttributeOptionTranslation::class, \Webkul\SAASCustomizer\Models\Attribute\AttributeOptionTranslation::class); + $this->app->concord->registerModel(\Webkul\Attribute\Contracts\AttributeTranslation::class, \Webkul\SAASCustomizer\Models\Attribute\AttributeTranslation::class); + + // Category Models Starts + $this->app->concord->registerModel(\Webkul\Category\Contracts\Category::class, \Webkul\SAASCustomizer\Models\Category\Category::class); + $this->app->concord->registerModel(\Webkul\Category\Contracts\CategoryTranslation::class, \Webkul\SAASCustomizer\Models\Category\CategoryTranslation::class); + + // Checkout Models Starts + $this->app->concord->registerModel(\Webkul\Checkout\Contracts\Cart::class, \Webkul\SAASCustomizer\Models\Checkout\Cart::class); + $this->app->concord->registerModel(\Webkul\Checkout\Contracts\CartAddress::class, \Webkul\SAASCustomizer\Models\Checkout\CartAddress::class); + $this->app->concord->registerModel(\Webkul\Checkout\Contracts\CartItem::class, \Webkul\SAASCustomizer\Models\Checkout\CartItem::class); + $this->app->concord->registerModel(\Webkul\Checkout\Contracts\CartPayment::class, \Webkul\SAASCustomizer\Models\Checkout\CartPayment::class); + $this->app->concord->registerModel(\Webkul\Checkout\Contracts\CartShippingRate::class, \Webkul\SAASCustomizer\Models\Checkout\CartShippingRate::class); + + // Core Models Starts + $this->app->concord->registerModel(\Webkul\Core\Contracts\Channel::class, \Webkul\SAASCustomizer\Models\Core\Channel::class); + $this->app->concord->registerModel(\Webkul\Core\Contracts\CoreConfig::class, \Webkul\SAASCustomizer\Models\Core\CoreConfig::class); + $this->app->concord->registerModel(\Webkul\Core\Contracts\Currency::class, \Webkul\SAASCustomizer\Models\Core\Currency::class); + $this->app->concord->registerModel(\Webkul\Core\Contracts\CurrencyExchangeRate::class, \Webkul\SAASCustomizer\Models\Core\CurrencyExchangeRate::class); + $this->app->concord->registerModel(\Webkul\Core\Contracts\Locale::class, \Webkul\SAASCustomizer\Models\Core\Locale::class); + $this->app->concord->registerModel(\Webkul\Core\Contracts\Slider::class, \Webkul\SAASCustomizer\Models\Core\Slider::class); + $this->app->concord->registerModel(\Webkul\Core\Contracts\SubscribersList::class, \Webkul\SAASCustomizer\Models\Core\SubscribersList::class); + + // Customer Models Starts + $this->app->concord->registerModel(\Webkul\Customer\Contracts\Customer::class, \Webkul\SAASCustomizer\Models\Customer\Customer::class); + $this->app->concord->registerModel(\Webkul\Customer\Contracts\CustomerAddress::class, \Webkul\SAASCustomizer\Models\Customer\CustomerAddress::class); + $this->app->concord->registerModel(\Webkul\Customer\Contracts\CustomerGroup::class, \Webkul\SAASCustomizer\Models\Customer\CustomerGroup::class); + $this->app->concord->registerModel(\Webkul\Customer\Contracts\Wishlist::class, \Webkul\SAASCustomizer\Models\Customer\Wishlist::class); + + // Inventory Models Starts + $this->app->concord->registerModel(\Webkul\Inventory\Contracts\InventorySource::class, \Webkul\SAASCustomizer\Models\Inventory\InventorySource::class); + + // Product Models Starts + $this->app->concord->registerModel(\Webkul\Product\Contracts\Product::class, \Webkul\SAASCustomizer\Models\Product\Product::class); + $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductAttributeValue::class, \Webkul\SAASCustomizer\Models\Product\ProductAttributeValue::class); + $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductFlat::class, \Webkul\SAASCustomizer\Models\Product\ProductFlat::class); + $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductImage::class, \Webkul\SAASCustomizer\Models\Product\ProductImage::class); + $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductInventory::class, \Webkul\SAASCustomizer\Models\Product\ProductInventory::class); + + $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductOrderedInventory::class, \Webkul\SAASCustomizer\Models\Product\ProductOrderedInventory::class); + $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductReview::class, \Webkul\SAASCustomizer\Models\Product\ProductReview::class); + + // Sales Models Starts + $this->app->concord->registerModel(\Webkul\Sales\Contracts\Invoice::class, \Webkul\SAASCustomizer\Models\Sales\Invoice::class); + $this->app->concord->registerModel(\Webkul\Sales\Contracts\InvoiceItem::class, \Webkul\SAASCustomizer\Models\Sales\InvoiceItem::class); + $this->app->concord->registerModel(\Webkul\Sales\Contracts\Order::class, \Webkul\SAASCustomizer\Models\Sales\Order::class); + $this->app->concord->registerModel(\Webkul\Sales\Contracts\OrderAddress::class, \Webkul\SAASCustomizer\Models\Sales\OrderAddress::class); + $this->app->concord->registerModel(\Webkul\Sales\Contracts\OrderItem::class, \Webkul\SAASCustomizer\Models\Sales\OrderItem::class); + $this->app->concord->registerModel(\Webkul\Sales\Contracts\OrderPayment::class, \Webkul\SAASCustomizer\Models\Sales\OrderPayment::class); + $this->app->concord->registerModel(\Webkul\Sales\Contracts\Shipment::class, \Webkul\SAASCustomizer\Models\Sales\Shipment::class); + // $this->app->concord->registerModel(\Webkul\Sales\Contracts\ShipmentItem::class, \Webkul\SAASCustomizer\Models\Sales\ShipmentItem::class); + + // Tax Models Starts + $this->app->concord->registerModel(\Webkul\Tax\Contracts\TaxCategory::class, \Webkul\SAASCustomizer\Models\Tax\TaxCategory::class); + $this->app->concord->registerModel(\Webkul\Tax\Contracts\TaxMap::class, \Webkul\SAASCustomizer\Models\Tax\TaxMap::class); + $this->app->concord->registerModel(\Webkul\Tax\Contracts\TaxRate::class, \Webkul\SAASCustomizer\Models\Tax\TaxRate::class); + + // User Models Starts + $this->app->concord->registerModel(\Webkul\User\Contracts\Admin::class, \Webkul\SAASCustomizer\Models\User\Admin::class); + $this->app->concord->registerModel(\Webkul\User\Contracts\Role::class, \Webkul\SAASCustomizer\Models\User\Role::class); + + //Stripe Connect Model + $this->app->concord->registerModel(\Webkul\StripeConnect\Contracts\StripeConnect::class, \Webkul\SAASCustomizer\Models\StripeConnect\StripeConnect::class); + + //Discount Model + $this->app->concord->registerModel(\Webkul\Discount\Contracts\CartRule::class, \Webkul\SAASCustomizer\Models\Discount\CartRule::class); + } + + /** + * Boot all the model observers + */ + public function bootModelObservers() + { + \Webkul\SAASCustomizer\Models\Attribute\Attribute::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeObserver::class); + + \Webkul\SAASCustomizer\Models\Attribute\AttributeFamily::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeFamilyObserver::class); + + \Webkul\SAASCustomizer\Models\Attribute\AttributeGroup::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeGroupObserver::class); + + \Webkul\SAASCustomizer\Models\Attribute\AttributeOption::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeOptionObserver::class); + + \Webkul\SAASCustomizer\Models\Attribute\AttributeOptionTranslation::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeOptionTranslationObserver::class); + + \Webkul\SAASCustomizer\Models\Attribute\AttributeTranslation::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeTranslationObserver::class); + + \Webkul\SAASCustomizer\Models\Category\Category::observe(\Webkul\SAASCustomizer\Observers\Category\CategoryObserver::class); + + \Webkul\SAASCustomizer\Models\Category\CategoryTranslation::observe(\Webkul\SAASCustomizer\Observers\Category\CategoryTranslationObserver::class); + + \Webkul\SAASCustomizer\Models\Checkout\Cart::observe(\Webkul\SAASCustomizer\Observers\Checkout\CartObserver::class); + + \Webkul\SAASCustomizer\Models\Checkout\CartAddress::observe(\Webkul\SAASCustomizer\Observers\Checkout\CartAddressObserver::class); + + \Webkul\SAASCustomizer\Models\Checkout\CartItem::observe(\Webkul\SAASCustomizer\Observers\Checkout\CartItemObserver::class); + + \Webkul\SAASCustomizer\Models\Checkout\CartPayment::observe(\Webkul\SAASCustomizer\Observers\Checkout\CartPaymentObserver::class); + + \Webkul\SAASCustomizer\Models\Checkout\CartShippingRate::observe(\Webkul\SAASCustomizer\Observers\Checkout\CartShippingRateObserver::class); + + \Webkul\SAASCustomizer\Models\Core\Channel::observe(\Webkul\SAASCustomizer\Observers\Core\ChannelObserver::class); + + \Webkul\SAASCustomizer\Models\Core\CoreConfig::observe(\Webkul\SAASCustomizer\Observers\Core\CoreConfigObserver::class); + + \Webkul\SAASCustomizer\Models\Core\Currency::observe(\Webkul\SAASCustomizer\Observers\Core\CurrencyObserver::class); + + \Webkul\SAASCustomizer\Models\Core\CurrencyExchangeRate::observe(\Webkul\SAASCustomizer\Observers\Core\CurrencyExchangeRateObserver::class); + + \Webkul\SAASCustomizer\Models\Core\Locale::observe(\Webkul\SAASCustomizer\Observers\Core\LocaleObserver::class); + + \Webkul\SAASCustomizer\Models\Core\Slider::observe(\Webkul\SAASCustomizer\Observers\Core\SliderObserver::class); + + \Webkul\SAASCustomizer\Models\Core\SubscribersList::observe(\Webkul\SAASCustomizer\Observers\Core\SubscribersListObserver::class); + + \Webkul\SAASCustomizer\Models\Customer\Customer::observe(\Webkul\SAASCustomizer\Observers\Customer\CustomerObserver::class); + + \Webkul\SAASCustomizer\Models\Customer\CustomerAddress::observe(\Webkul\SAASCustomizer\Observers\Customer\CustomerAddressObserver::class); + + \Webkul\SAASCustomizer\Models\Customer\CustomerGroup::observe(\Webkul\SAASCustomizer\Observers\Customer\CustomerGroupObserver::class); + + \Webkul\SAASCustomizer\Models\Customer\Wishlist::observe(\Webkul\SAASCustomizer\Observers\Customer\WishlistObserver::class); + + \Webkul\SAASCustomizer\Models\Inventory\InventorySource::observe(\Webkul\SAASCustomizer\Observers\Inventory\InventorySourceObserver::class); + + \Webkul\SAASCustomizer\Models\Product\Product::observe(\Webkul\SAASCustomizer\Observers\Product\ProductObserver::class); + + \Webkul\SAASCustomizer\Models\Product\ProductAttributeValue::observe(\Webkul\SAASCustomizer\Observers\Product\ProductAttributeValueObserver::class); + + \Webkul\SAASCustomizer\Models\Product\ProductFlat::observe(\Webkul\SAASCustomizer\Observers\Product\ProductFlatObserver::class); + + \Webkul\SAASCustomizer\Models\Product\ProductImage::observe(\Webkul\SAASCustomizer\Observers\Product\ProductImageObserver::class); + + \Webkul\SAASCustomizer\Models\Product\ProductInventory::observe(\Webkul\SAASCustomizer\Observers\Product\ProductInventoryObserver::class); + + \Webkul\SAASCustomizer\Models\Product\ProductOrderedInventory::observe(\Webkul\SAASCustomizer\Observers\Product\ProductOrderedInventoryObserver::class); + + \Webkul\SAASCustomizer\Models\Product\ProductReview::observe(\Webkul\SAASCustomizer\Observers\Product\ProductReviewObserver::class); + + \Webkul\SAASCustomizer\Models\Sales\Invoice::observe(\Webkul\SAASCustomizer\Observers\Sales\InvoiceObserver::class); + + \Webkul\SAASCustomizer\Models\Sales\InvoiceItem::observe(\Webkul\SAASCustomizer\Observers\Sales\InvoiceItemObserver::class); + + \Webkul\SAASCustomizer\Models\Sales\Order::observe(\Webkul\SAASCustomizer\Observers\Sales\OrderObserver::class); + + \Webkul\SAASCustomizer\Models\Sales\OrderAddress::observe(\Webkul\SAASCustomizer\Observers\Sales\OrderAddressObserver::class); + + \Webkul\SAASCustomizer\Models\Sales\OrderItem::observe(\Webkul\SAASCustomizer\Observers\Sales\OrderItemObserver::class); + + \Webkul\SAASCustomizer\Models\Sales\OrderPayment::observe(\Webkul\SAASCustomizer\Observers\Sales\OrderPaymentObserver::class); + + \Webkul\SAASCustomizer\Models\Sales\Shipment::observe(\Webkul\SAASCustomizer\Observers\Sales\ShipmentObserver::class); + + \Webkul\SAASCustomizer\Models\Sales\ShipmentItem::observe(\Webkul\SAASCustomizer\Observers\Sales\ShipmentObserver::class); + + \Webkul\SAASCustomizer\Models\Tax\TaxCategory::observe(\Webkul\SAASCustomizer\Observers\Tax\TaxCategoryObserver::class); + + \Webkul\SAASCustomizer\Models\Tax\TaxRate::observe(\Webkul\SAASCustomizer\Observers\Tax\TaxRateObserver::class); + + \Webkul\SAASCustomizer\Models\User\Admin::observe(\Webkul\SAASCustomizer\Observers\User\AdminObserver::class); + + \Webkul\SAASCustomizer\Models\User\Role::observe(\Webkul\SAASCustomizer\Observers\User\RoleObserver::class); + + \Webkul\SAASCustomizer\Models\StripeConnect\StripeConnect::observe(\Webkul\SAASCustomizer\Observers\StripeConnect\StripeConnectObserver::class); + + \Webkul\SAASCustomizer\Models\Discount\CartRule::observe(\Webkul\SAASCustomizer\Observers\Discount\CartRuleObserver::class); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Repositories/CompanyDetailsRepository.php b/packages/Webkul/SAASCustomizer/src/Repositories/CompanyDetailsRepository.php new file mode 100644 index 000000000..b1eb49503 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Repositories/CompanyDetailsRepository.php @@ -0,0 +1,24 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CompanyDetailsRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + function model() + { + return 'Webkul\SAASCustomizer\Models\CompanyDetails'; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Repositories/CompanyRepository.php b/packages/Webkul/SAASCustomizer/src/Repositories/CompanyRepository.php new file mode 100644 index 000000000..84e8c8cdc --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Repositories/CompanyRepository.php @@ -0,0 +1,24 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CompanyRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + function model() + { + return 'Webkul\SAASCustomizer\Models\Company'; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Repositories/StripeSuperAdminRepository.php b/packages/Webkul/SAASCustomizer/src/Repositories/StripeSuperAdminRepository.php new file mode 100644 index 000000000..03bb45515 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Repositories/StripeSuperAdminRepository.php @@ -0,0 +1,24 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class StripeSuperAdminRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + function model() + { + return 'Webkul\SAASCustomizer\Models\StripeSuperAdmin'; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Repositories/SuperAdminRepository.php b/packages/Webkul/SAASCustomizer/src/Repositories/SuperAdminRepository.php new file mode 100644 index 000000000..2082f9d2f --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Repositories/SuperAdminRepository.php @@ -0,0 +1,24 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class SuperAdminRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + function model() + { + return 'Webkul\SAASCustomizer\Models\SuperAdmin'; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/assets/js/app.js b/packages/Webkul/SAASCustomizer/src/Resources/assets/js/app.js new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Webkul/SAASCustomizer/src/Resources/assets/sass/app.scss b/packages/Webkul/SAASCustomizer/src/Resources/assets/sass/app.scss new file mode 100644 index 000000000..a282ba2cb --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/assets/sass/app.scss @@ -0,0 +1,79 @@ +@import url("https://fonts.googleapis.com/css?family=Montserrat:400,500"); + +html { + font-family: "montserrat", sans-serif; +} + +::placeholder { + font-family: "montserrat", sans-serif; +} + +.mt-30 { + margin-top: 30px; +} + +.mt-60 { + margin-top: 60px; +} + +.mt-90 { + margin-top: 90px; +} + +.form-container { + width: 420px; + margin-left: auto; + margin-right: auto; + padding: 10px; + + .brand-logo { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + } + + .step-one, .step-two, .step-three { + button { + width: 150px; + margin-left: calc(50% - 75px); + } + } +} + +.registration { + .control-group .control { + width: 100%; + } +} + +.step-navigator { + margin-top: 30px; + margin-bottom: 15px; + width: 100%; +} + +.step-list { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + + .step-item { + cursor: pointer; + height: 64px; + width: 64px; + border: 1px solid #c7c7c7; + border-radius: 50%; + text-align: center; + padding-top: 24px; + } + + .step-item.active { + border: 1px solid blue; + } +} + +.content { + padding: 25px; +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/lang/en/app.php b/packages/Webkul/SAASCustomizer/src/Resources/lang/en/app.php new file mode 100644 index 000000000..bee5df6c7 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/lang/en/app.php @@ -0,0 +1,25 @@ + [ + 'approve' => 'Approve New' + ], + + 'company' => [ + 'companies' => 'Companies' + ], + + 'datagrid' => [ + 'domain' => 'Domain' + ], + + 'channel-warning' => 'Creating more than one channel is prohibited', + + 'menu' => [ + 'companies' => 'Companies' + ], + + 'connect-stripe' => [ + 'stripe-settings' => 'Stripe Settings' + ] +]; \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/login.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/login.blade.php new file mode 100644 index 000000000..e16a031e4 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/login.blade.php @@ -0,0 +1,36 @@ +@extends('saas::companies.layouts.master') + +@section('page_title') + {{ __('admin::app.users.sessions.title') }} +@stop + +@section('content-wrapper') +
+

{{ __('admin::app.users.sessions.title') }}

+ +
+ @csrf +
+
+ + + @{{ errors.first('email') }} +
+ +
+ + + @{{ errors.first('password') }} +
+ + + +
+ +
+
+
+
+@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php new file mode 100644 index 000000000..cd5bc7320 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php @@ -0,0 +1,267 @@ +@extends('saas::companies.layouts.master') + +@section('page_title') + Seller Registration +@endsection + +@section('content-wrapper') + + + @push('scripts') + + + + @endpush +@endsection \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/edit.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/edit.blade.php new file mode 100644 index 000000000..d9b72ef5f --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/edit.blade.php @@ -0,0 +1,92 @@ +@extends('saas::companies.layouts.master') + +@section('page_title') + {{ __('Edit Company') }} +@endsection + +@section('content-wrapper') + + + @push('scripts') + + + + @endpush +@endsection \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/index.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/index.blade.php new file mode 100644 index 000000000..11fc3d8be --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/index.blade.php @@ -0,0 +1,41 @@ +@extends('saas::companies.layouts.master') + +@section('page_title') + Company Stats +@stop + +@section('content-wrapper') +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + +
No. of ProductsNo. of CustomersDomainOwnerLocation
{{ $company[1]['products'] }}{{ $company[1]['customers'] }}{{ $company[0]->domain }}{{ $company[1]['products'] }}{{ $company[1]['products'] }}
+
+
+
+@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/index.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/index.blade.php new file mode 100644 index 000000000..d5fb5fe6e --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/index.blade.php @@ -0,0 +1,20 @@ +@extends('saas::companies.layouts.master') + +@section('page_title') + Companies +@stop + +@section('content-wrapper') +
+ + +
+ @inject('companies', 'Webkul\SAASCustomizer\DataGrids\CompaniesDataGrid') + {!! $companies->render() !!} +
+
+@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/master.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/master.blade.php new file mode 100755 index 000000000..825347488 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/master.blade.php @@ -0,0 +1,65 @@ + + + + @yield('page_title') + + + + + + + + + + + + @yield('head') + + @yield('css') + + + getLocale() == 'ar') class="rtl" @endif style="scroll-behavior: smooth;"> +
+ + + @include ('saas::companies.layouts.nav-top') + + @auth('super-admin') + @include ('saas::companies.layouts.nav-left') + @endauth + +
+ @yield('content-wrapper') +
+
+ + + + + + + @stack('scripts') + + + + \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-aside.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-aside.blade.php new file mode 100644 index 000000000..0d6438b2f --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-aside.blade.php @@ -0,0 +1,37 @@ +
+ + + {{--
+ +
--}} +
diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-left.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-left.blade.php new file mode 100644 index 000000000..e5a14e54a --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-left.blade.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-top.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-top.blade.php new file mode 100644 index 000000000..b93ab7d27 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-top.blade.php @@ -0,0 +1,40 @@ + \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/tabs.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/tabs.blade.php new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/400.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/400.blade.php new file mode 100644 index 000000000..a5c8134d6 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/400.blade.php @@ -0,0 +1,34 @@ +@extends('saas::companies.layouts.master') + +@section('page_title') + 400 Bad Request +@stop + +@section('content-wrapper') + +
+ +
+ +
+
+ {{$status}} +
+ +
+ {{ $message }} +
+ +
+ Bad Request +
+
+ +
+ +
+ +
+ +@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/401.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/401.blade.php new file mode 100755 index 000000000..4caa888dd --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/401.blade.php @@ -0,0 +1,38 @@ +@extends(auth()->guard('admin')->check() ? 'admin::layouts.master' : 'shop::layouts.master') + +@section('page_title') + {{ __('admin::app.error.401.page-title') }} +@stop + +@section('content-wrapper') +
+ +
+ +
+ +
+ {{ __('admin::app.error.401.name') }} +
+ +
+ {{ __('admin::app.error.401.title') }} +
+ +
+ {{ __('admin::app.error.401.message') }} +
+ + + {{ __('admin::app.error.go-to-home') }} + + +
+ +
+ +
+ +
+@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/403.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/403.blade.php new file mode 100755 index 000000000..afcc2db08 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/403.blade.php @@ -0,0 +1,38 @@ +@extends(auth()->guard('admin')->check() ? 'admin::layouts.master' : 'shop::layouts.master') + +@section('page_title') + {{ __('admin::app.error.403.page-title') }} +@stop + +@section('content-wrapper') +
+ +
+ +
+ +
+ {{ __('admin::app.error.403.name') }} +
+ +
+ {{ __('admin::app.error.403.title') }} +
+ +
+ {{ __('admin::app.error.403.message') }} +
+ + + {{ __('admin::app.error.go-to-home') }} + + +
+ +
+ +
+ +
+@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/404.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/404.blade.php new file mode 100755 index 000000000..1a5de22e6 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/404.blade.php @@ -0,0 +1,38 @@ +@extends(auth()->guard('admin')->check() ? 'admin::layouts.master' : 'shop::layouts.master') + +@section('page_title') + {{ __('admin::app.error.404.page-title') }} +@stop + +@section('content-wrapper') +
+ +
+ +
+ +
+ {{ __('admin::app.error.404.name') }} +
+ +
+ {{ __('admin::app.error.404.title') }} +
+ +
+ {{ __('admin::app.error.404.message') }} +
+ + + {{ __('admin::app.error.go-to-home') }} + + +
+ +
+ +
+ +
+@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/500.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/500.blade.php new file mode 100755 index 000000000..7b6933eab --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/500.blade.php @@ -0,0 +1,34 @@ +@extends('saas::companies.layouts.master') + +@section('page_title') + {{ __('admin::app.error.500.page-title') }} +@stop + +@section('content-wrapper') + +
+ +
+ +
+
+ {{$status}} +
+ +
+ {{ $message }} +
+ +
+ {{ __('admin::app.error.500.title') }} +
+
+ +
+ +
+ +
+ +@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/503.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/503.blade.php new file mode 100644 index 000000000..8161f623a --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/503.blade.php @@ -0,0 +1,32 @@ + + + + + + + Document + + + +
+ +
+ +
+ +
+ {{ __('admin::app.error.in-maitainace') }} +
+ +
+ {{ __('admin::app.error.right-back') }} +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/auth.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/auth.blade.php new file mode 100644 index 000000000..0dd4e2aae --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/auth.blade.php @@ -0,0 +1,34 @@ +@extends('saas::companies.layouts.master') + +@section('page_title') + 400 Bad Request +@stop + +@section('content-wrapper') + +
+ +
+ +
+
+ {{$status}} +
+ +
+ {{ $message }} +
+ +
+ Please try again by clicking here +
+
+ +
+ +
+ +
+ +@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Routes/web.php b/packages/Webkul/SAASCustomizer/src/Routes/web.php new file mode 100644 index 000000000..98c4f1778 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Routes/web.php @@ -0,0 +1,37 @@ + 'web'], function () { + Route::prefix('company')->group(function() { + //create company + Route::get('register', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@create')->defaults('_config', [ + 'view' => 'saas::companies.auth.register' + ])->name('company.create.index'); + + Route::post('register', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@store')->name('company.create.store'); + + Route::get('/seed-data', 'Webkul\SAASCustomizer\Http\Controllers\PurgeController@seedDatabase')->name('company.create.data'); + }); + + Route::prefix('super')->group(function() { + Route::get('login', 'Webkul\SAASCustomizer\Http\Controllers\SuperUserController@index')->name('super.session.index'); + + Route::post('login', 'Webkul\SAASCustomizer\Http\Controllers\SuperUserController@store')->defaults('_config', [ + 'redirect' => 'super.companies.index' + ])->name('super.session.create'); + + Route::get('logout', 'Webkul\SAASCustomizer\Http\Controllers\SuperUserController@destroy')->name('super.session.destroy'); + + // GET Route leading to the listing of the companies grid + Route::get('companies', 'Webkul\SAASCustomizer\Http\Controllers\SuperUserController@list')->name('super.companies.index'); + + Route::get('companies/edit/{id}', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@edit')->name('super.companies.edit'); + + Route::post('companies/edit/{id}', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@update')->name('super.companies.update'); + + // To show the stats of the registered companies + Route::get('companies/view/{id}', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@showCompanyStats')->name('super.companies.show-stats'); + + // To show the stats of the registered companies + Route::get('companies/status/{id}', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@changeStatus')->name('super.companies.change-status'); + }); +}); \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Validation/DatabasePresenceVerifier.php b/packages/Webkul/SAASCustomizer/src/Validation/DatabasePresenceVerifier.php new file mode 100644 index 000000000..aabc0e6de --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Validation/DatabasePresenceVerifier.php @@ -0,0 +1,27 @@ +id)) { + return $this->db->connection($this->connection)->table($table)->useWritePdo()->where ('company_id', '=', $company->id); + } else { + // apply the company id check dynamically here to eliminate unique validation woes + return $this->db->connection($this->connection)->table($table)->useWritePdo(); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/webpack.mix.js b/packages/Webkul/SAASCustomizer/webpack.mix.js new file mode 100644 index 000000000..b6233a2b7 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/webpack.mix.js @@ -0,0 +1,22 @@ +const { mix } = require("laravel-mix"); +require("laravel-mix-merge-manifest"); + +if (mix.inProduction()) { + var publicPath = 'publishable/saas/assets'; +} else { + var publicPath = "../../../public/vendor/webkul/saas/assets"; +} + +mix.setPublicPath(publicPath).mergeManifest(); +mix.disableNotifications(); + +mix.js(__dirname + "/src/Resources/assets/js/app.js", "js/saas.js") + // .copyDirectory( __dirname + '/src/Resources/assets/images', publicPath + '/images') + .sass(__dirname + "/src/Resources/assets/sass/app.scss", "css/saas.css") + .options({ + processCssUrls: false + }); + +if (mix.inProduction()) { + mix.version(); +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/package.json b/packages/Webkul/SAASPreOrder/package.json new file mode 100644 index 000000000..f080febb5 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/package.json @@ -0,0 +1,20 @@ +{ + "private": true, + "scripts": { + "dev": "npm run development", + "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch-poll": "cross-env npm run watch -- --watch-poll --progress", + "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", + "prod": "npm run production", + "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" + }, + "devDependencies": { + "cross-env": "^5.1.4", + "laravel-mix": "^2.1", + "laravel-mix-merge-manifest": "^0.1.1", + "vue": "^2.1.10" + }, + "dependencies": { + } +} diff --git a/packages/Webkul/SAASPreOrder/publishable/assets/css/preorder-admin.css b/packages/Webkul/SAASPreOrder/publishable/assets/css/preorder-admin.css new file mode 100644 index 000000000..e8dcd59ff --- /dev/null +++ b/packages/Webkul/SAASPreOrder/publishable/assets/css/preorder-admin.css @@ -0,0 +1 @@ +.preorder-icon{width:48px;height:48px;display:inline-block;background-size:cover;background-image:url("../images/Icon-Preorder.svg")}.active.preorder-icon,.active .preorder-icon{background-image:url("../images/Icon-Preorder-Active.svg")}.navbar-left{width:100px}.navbar-left ul.menubar li.menu-item{padding:10px 7px}.content-container{padding-left:100px}.preorder-info{padding:15px;width:auto;border:1px solid #d3d3d3;border-left:4px solid #0031f0;margin:15px 0}.pre-order-item-info .heading{font-weight:600;margin-bottom:10px;margin-top:10px;display:block}.pre-order-item-info .row{margin-bottom:5px;padding-left:10px;display:block}.pre-order-item-info .row:last-child{margin-bottom:0} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/publishable/assets/css/preorder.css b/packages/Webkul/SAASPreOrder/publishable/assets/css/preorder.css new file mode 100644 index 000000000..1d6d36594 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/publishable/assets/css/preorder.css @@ -0,0 +1 @@ +.preorder-info{padding:15px;width:auto;border:1px solid #d3d3d3;border-left:4px solid #0031f0;margin:15px 0}.pre-order-item-info .heading{font-weight:600;margin-bottom:10px;margin-top:10px;display:block}.pre-order-item-info .row{margin-bottom:5px;display:block;padding:0!important;padding-left:10px!important}.pre-order-item-info .row:last-child{margin-bottom:0} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/publishable/assets/images/Icon-Preorder-Active.svg b/packages/Webkul/SAASPreOrder/publishable/assets/images/Icon-Preorder-Active.svg new file mode 100644 index 000000000..b16e78546 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/publishable/assets/images/Icon-Preorder-Active.svg @@ -0,0 +1,14 @@ + + + + Icon-Preorder-Active + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/publishable/assets/images/Icon-Preorder.svg b/packages/Webkul/SAASPreOrder/publishable/assets/images/Icon-Preorder.svg new file mode 100644 index 000000000..f5666d659 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/publishable/assets/images/Icon-Preorder.svg @@ -0,0 +1,13 @@ + + + + Icon-Preorder + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/publishable/assets/mix-manifest.json b/packages/Webkul/SAASPreOrder/publishable/assets/mix-manifest.json new file mode 100644 index 000000000..0862fcdef --- /dev/null +++ b/packages/Webkul/SAASPreOrder/publishable/assets/mix-manifest.json @@ -0,0 +1,4 @@ +{ + "/css/preorder.css": "/css/preorder.css?id=eb619a72fbd2982b4cf1", + "/css/preorder-admin.css": "/css/preorder-admin.css?id=bb404f27ac5c0a5295ce" +} diff --git a/packages/Webkul/SAASPreOrder/src/Commands/Console/GenerateData.php b/packages/Webkul/SAASPreOrder/src/Commands/Console/GenerateData.php new file mode 100644 index 000000000..6a317f4af --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Commands/Console/GenerateData.php @@ -0,0 +1,196 @@ +company = $company; + + $this->attribute = $attribute; + + $this->attributeFamily = $attributeFamily; + } + + /** + * Does the all sought of lifting required to be performed for + * generating a super user + */ + public function handle() + { + $email = $this->ask('Please enter email?'); + + $data = [ + 'email' => $email + ]; + + $validator = Validator::make($data, [ + 'email' => 'required|email', + ]); + + if($validator->fails()) { + $this->comment('Email invalid, please enter try again.'); + + return false; + } + + $this->comment('You entered = '. $email); + + $password = $this->ask('Please enter password?'); + + $data = [ + 'password' => $password + ]; + + $validator = Validator::make($data, [ + 'password' => 'required|string|min:6' + ]); + + if ($validator->fails()) { + $this->comment('Password invalid, make sure password is atleast 6 characters of length.'); + + return false; + } + + if (auth('super-admin')->attempt([ + 'email' => $email, + 'password' => $password + ])) { + $this->comment('Generating preorder data....'); + + $this->generate(); + + auth()->guard('super-admin')->logout(); + + $this->comment('Done'); + } else { + $this->comment('Wrong credentials entered'); + } + } + + /** + * Does the all sought of lifting required to be performed for + * generating a super user + */ + public function generate() + { + $companies = $this->company->all(['id']); + + if ($companies->count() == 0) { + $this->comment('No companies found to generate preorder data'); + + return false; + } else { + foreach ($companies as $company) { + $this->createPreOrderData($company->id); + } + + return true; + } + } + + /*** + * Creates attributes for one company at a time + */ + public function createPreOrderData($id) + { + $allowPreorderAttribute = $this->attribute->create([ + "code" => "allow_preorder", + "type" => "boolean", + "admin_name" => "Allow Preorder", + "is_required" => 0, + "is_unique" => 0, + "validation" => "", + "value_per_locale" => 0, + "value_per_channel" => 1, + "is_filterable" => 0, + "is_configurable" => 0, + "is_visible_on_front" => 0, + "is_user_defined" => 1, + 'company_id' => $id + ]); + + $preorderQtyAttribute = $this->attribute->create([ + "code" => "preorder_qty", + "type" => "text", + "admin_name" => "Preorder Qty", + "is_required" => 0, + "is_unique" => 0, + "validation" => "numeric", + "value_per_locale" => 0, + "value_per_channel" => 1, + "is_filterable" => 0, + "is_configurable" => 0, + "is_visible_on_front" => 0, + "is_user_defined" => 1, + 'company_id' => $id + ]); + + $preorderAvailabilityAttribute = $this->attribute->create([ + "code" => "preorder_availability", + "type" => "date", + "admin_name" => "Product Availability", + "is_required" => 0, + "is_unique" => 0, + "validation" => "", + "value_per_locale" => 0, + "value_per_channel" => 1, + "is_filterable" => 0, + "is_configurable" => 0, + "is_visible_on_front" => 0, + "is_user_defined" => 1, + 'company_id' => $id + ]); + + $attributeFamily = $this->attributeFamily->findWhere([ + 'company_id' => $id + ])->first(); + + $generalGroup = $attributeFamily->attribute_groups()->where('name', 'General')->first(); + + $generalGroup->custom_attributes()->save($allowPreorderAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 1 ]); + + $generalGroup->custom_attributes()->save($preorderQtyAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 2 ]); + + $generalGroup->custom_attributes()->save($preorderAvailabilityAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 3 ]); + + return true; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Config/admin-menu.php b/packages/Webkul/SAASPreOrder/src/Config/admin-menu.php new file mode 100644 index 000000000..26ce0fb0e --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Config/admin-menu.php @@ -0,0 +1,11 @@ + 'preorder', + 'name' => 'preorder::app.admin.layouts.preorder', + 'route' => 'admin.preorder.preorders.index', + 'sort' => 3, + 'icon-class' => 'preorder-icon', + ] +]; \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Config/purge-pool.php b/packages/Webkul/SAASPreOrder/src/Config/purge-pool.php new file mode 100644 index 000000000..c63280224 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Config/purge-pool.php @@ -0,0 +1,5 @@ + 'Webkul\SAASPreOrder\Helpers\PreOrderDataPurger' +]; \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Config/system.php b/packages/Webkul/SAASPreOrder/src/Config/system.php new file mode 100644 index 000000000..e27ab3f61 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Config/system.php @@ -0,0 +1,54 @@ + 'preorder', + 'name' => 'preorder::app.admin.system.preorder', + 'sort' => 1 + ], [ + 'key' => 'preorder.settings', + 'name' => 'preorder::app.admin.system.settings', + 'sort' => 1, + ], [ + 'key' => 'preorder.settings.general', + 'name' => 'preorder::app.admin.system.general', + 'sort' => 1, + 'fields' => [ + [ + 'name' => 'preorder_type', + 'title' => 'preorder::app.admin.system.preorder-type', + 'type' => 'select', + 'options' => [ + [ + 'title' => 'preorder::app.admin.system.partial-payment', + 'value' => 'partial' + ], [ + 'title' => 'preorder::app.admin.system.complete-payment', + 'value' => 'complete' + ] + ], + 'channel_based' => true, + ], [ + 'name' => 'percent', + 'title' => 'preorder::app.admin.system.preorder-percent', + 'type' => 'text', + 'validation' => 'between:0,99', + 'info' => 'preorder::app.admin.system.preorder-percent-info', + 'depends' => 'preorder_type:partial', + 'channel_based' => true + ], [ + 'name' => 'message', + 'title' => 'preorder::app.admin.system.message', + 'type' => 'textarea', + 'locale_based' => true, + 'channel_based' => true + ] + // , [ + // 'name' => 'enable_auto_mail', + // 'title' => 'preorder::app.admin.system.enable-automatic-mail', + // 'type' => 'boolean', + // 'channel_based' => true + // ] + ] + ] +]; \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Contracts/PreOrderItem.php b/packages/Webkul/SAASPreOrder/src/Contracts/PreOrderItem.php new file mode 100644 index 000000000..110820668 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Contracts/PreOrderItem.php @@ -0,0 +1,7 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class Order extends DataGrid +{ + protected $index = 'id'; + + protected $sortOrder = 'desc'; + + public function prepareQueryBuilder() + { + $queryBuilder = DB::table('orders') + ->leftJoin('order_address as order_address_shipping', function($leftJoin) { + $leftJoin->on('order_address_shipping.order_id', '=', 'orders.id') + ->where('order_address_shipping.address_type', 'shipping'); + }) + ->leftJoin('order_address as order_address_billing', function($leftJoin) { + $leftJoin->on('order_address_billing.order_id', '=', 'orders.id') + ->where('order_address_billing.address_type', 'billing'); + }) + ->leftJoin('pre_order_items', function($leftJoin) { + $leftJoin->on('pre_order_items.order_id', 'orders.id'); + }) + ->addSelect('orders.id', 'orders.base_sub_total', 'orders.base_grand_total', 'orders.created_at', 'channel_name', 'orders.status') + ->addSelect(DB::raw('CONCAT(order_address_billing.first_name, " ", order_address_billing.last_name) as billed_to')) + ->addSelect(DB::raw('CONCAT(order_address_shipping.first_name, " ", order_address_shipping.last_name) as shipped_to')) + ->addSelect(DB::raw('COUNT(pre_order_items.id) as is_preorder')) + ->groupBy('orders.id'); + + $this->addFilter('billed_to', DB::raw('CONCAT(order_address_billing.first_name, " ", order_address_billing.last_name)')); + $this->addFilter('shipped_to', DB::raw('CONCAT(order_address_shipping.first_name, " ", order_address_shipping.last_name)')); + $this->addFilter('id', 'orders.id'); + $this->addFilter('status', 'orders.status'); + $this->addFilter('created_at', 'orders.created_at'); + + $this->setQueryBuilder($queryBuilder); + } + + public function addColumns() + { + $this->addColumn([ + 'index' => 'id', + 'label' => trans('admin::app.datagrid.id'), + 'type' => 'number', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'base_sub_total', + 'label' => trans('admin::app.datagrid.sub-total'), + 'type' => 'price', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'base_grand_total', + 'label' => trans('admin::app.datagrid.grand-total'), + 'type' => 'price', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'created_at', + 'label' => trans('admin::app.datagrid.order-date'), + 'type' => 'datetime', + 'sortable' => true, + 'searchable' => false, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'channel_name', + 'label' => trans('admin::app.datagrid.channel-name'), + 'type' => 'string', + 'sortable' => true, + 'searchable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'status', + 'label' => trans('admin::app.datagrid.status'), + 'type' => 'string', + 'sortable' => true, + 'searchable' => true, + 'closure' => true, + 'filterable' => true, + 'wrapper' => function ($value) { + if ($value->status == 'processing') + return 'Processing'; + else if ($value->status == 'completed') + return 'Completed'; + else if ($value->status == "canceled") + return 'Canceled'; + else if ($value->status == "closed") + return 'Closed'; + else if ($value->status == "pending") + return 'Pending'; + else if ($value->status == "pending_payment") + return 'Pending Payment'; + else if ($value->status == "fraud") + return 'Fraud'; + } + ]); + + $this->addColumn([ + 'index' => 'billed_to', + 'label' => trans('admin::app.datagrid.billed-to'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'shipped_to', + 'label' => trans('admin::app.datagrid.shipped-to'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'is_preorder', + 'label' => trans('preorder::app.datagrid.order-type'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true, + 'wrapper' => function ($row) { + if ($row->is_preorder) + return trans('preorder::app.datagrid.preorder'); + else + return trans('preorder::app.datagrid.normal-order'); + } + ]); + } + + public function prepareActions() { + $this->addAction([ + 'type' => 'View', + 'method' => 'GET', + 'route' => 'admin.sales.orders.view', + 'icon' => 'icon eye-icon' + ]); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/DataGrids/Admin/PreOrder.php b/packages/Webkul/SAASPreOrder/src/DataGrids/Admin/PreOrder.php new file mode 100644 index 000000000..c6cc9b3a5 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/DataGrids/Admin/PreOrder.php @@ -0,0 +1,179 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class PreOrder extends DataGrid +{ + protected $index = 'id'; + + protected $sortOrder = 'desc'; + + public function prepareQueryBuilder() + { + $queryBuilder = DB::table('pre_order_items') + ->leftJoin('order_items', 'pre_order_items.order_item_id', '=', 'order_items.id') + ->leftJoin('orders', 'pre_order_items.order_id', '=', 'orders.id') + ->leftJoin('order_items as payment_order_items', 'pre_order_items.payment_order_item_id', '=', 'payment_order_items.id') + ->addSelect('pre_order_items.id', 'pre_order_items.order_id', 'order_items.name as product_name', 'orders.customer_email', 'order_item_id', 'preorder_type', 'pre_order_items.status', 'base_paid_amount', 'pre_order_items.email_sent', 'base_remaining_amount', 'payment_order_items.order_id as payment_order_id') + ->addSelect(DB::raw('CONCAT(orders.customer_first_name, " ", orders.customer_last_name) as customer_name')); + + $this->addFilter('order_id', 'pre_order_items.order_id'); + $this->addFilter('payment_order_id', 'payment_order_items.order_id'); + $this->addFilter('product_name', 'order_items.name'); + $this->addFilter('customer_name', DB::raw('CONCAT(orders.customer_first_name, " ", orders.customer_last_name)')); + + $this->setQueryBuilder($queryBuilder); + } + + public function addColumns() + { + $this->addColumn([ + 'index' => 'id', + 'label' => trans('preorder::app.datagrid.id'), + 'type' => 'number', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'order_id', + 'label' => trans('preorder::app.datagrid.order-id'), + 'type' => 'number', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true, + 'closure' => true, + 'wrapper' => function ($row) { + return '' . $row->order_id . ''; + } + ]); + + $this->addColumn([ + 'index' => 'payment_order_id', + 'label' => trans('preorder::app.datagrid.payment-order-id'), + 'type' => 'number', + 'searchable' => false, + 'sortable' => false, + 'filterable' => true, + 'closure' => true, + 'wrapper' => function ($row) { + if ($row->payment_order_id) + return '' . $row->payment_order_id . ''; + else + return 'N/A'; + } + ]); + + $this->addColumn([ + 'index' => 'product_name', + 'label' => trans('preorder::app.datagrid.product-name'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'customer_name', + 'label' => trans('preorder::app.datagrid.customer-name'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'customer_email', + 'label' => trans('preorder::app.datagrid.customer-email'), + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'base_paid_amount', + 'label' => trans('preorder::app.datagrid.paid-amount'), + 'type' => 'price', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'base_remaining_amount', + 'label' => trans('preorder::app.datagrid.remaining-amount'), + 'type' => 'price', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true + ]); + + $this->addColumn([ + 'index' => 'preorder_type', + 'label' => trans('preorder::app.datagrid.preorder-type'), + 'type' => 'boolean', + 'sortable' => true, + 'searchable' => false, + 'filterable' => true, + 'wrapper' => function ($value) { + if ($value->preorder_type == 'partial') + return trans('preorder::app.datagrid.partial-payment'); + else + return trans('preorder::app.datagrid.complete-payment'); + } + ]); + + $this->addColumn([ + 'index' => 'status', + 'label' => trans('preorder::app.datagrid.status'), + 'type' => 'string', + 'sortable' => true, + 'searchable' => false, + 'filterable' => true, + 'wrapper' => function ($value) { + if ($value->status == 'pending') + return trans('preorder::app.datagrid.pending'); + if ($value->status == 'processing') + return trans('preorder::app.datagrid.processing'); + else + return trans('preorder::app.datagrid.completed'); + } + ]); + + $this->addColumn([ + 'index' => 'email_sent', + 'label' => trans('preorder::app.datagrid.email-sent'), + 'type' => 'boolean', + 'searchable' => false, + 'sortable' => true, + 'filterable' => true, + 'wrapper' => function($value) { + if ($value->email_sent == 1) + return trans('preorder::app.datagrid.yes'); + else + return trans('preorder::app.datagrid.no'); + } + ]); + } + + public function prepareMassActions() + { + $this->addMassAction([ + 'type' => 'delete', + 'label' => 'Notify Customer', + 'action' => route('admin.preorder.preorders.notify-customer'), + 'method' => 'POST' + ]); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Database/Migrations/2019_06_04_163237_create_pre_order_items_table.php b/packages/Webkul/SAASPreOrder/src/Database/Migrations/2019_06_04_163237_create_pre_order_items_table.php new file mode 100644 index 000000000..22bc8f8c8 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Database/Migrations/2019_06_04_163237_create_pre_order_items_table.php @@ -0,0 +1,50 @@ +increments('id'); + $table->string('preorder_type'); + $table->double('preorder_percent')->default(0); + $table->string('token'); + $table->string('status'); + $table->boolean('email_sent')->default(0); + $table->double('paid_amount')->nullable(); + $table->double('base_paid_amount')->nullable(); + $table->double('base_remaining_amount')->nullable(); + + $table->integer('order_id')->unsigned(); + $table->foreign('order_id')->references('id')->on('orders')->onDelete('cascade'); + + $table->integer('order_item_id')->unsigned(); + $table->foreign('order_item_id')->references('id')->on('order_items')->onDelete('cascade'); + + $table->integer('payment_order_item_id')->nullable()->unsigned(); + $table->foreign('payment_order_item_id')->references('id')->on('order_items')->onDelete('set null'); + + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('pre_order_items'); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Database/Seeders/AttributeSeeder.php b/packages/Webkul/SAASPreOrder/src/Database/Seeders/AttributeSeeder.php new file mode 100755 index 000000000..0c35fd08e --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Database/Seeders/AttributeSeeder.php @@ -0,0 +1,69 @@ +create([ + "code" => "allow_preorder", + "type" => "boolean", + "admin_name" => "Allow Preorder", + "is_required" => 0, + "is_unique" => 0, + "validation" => "", + "value_per_locale" => 0, + "value_per_channel" => 1, + "is_filterable" => 0, + "is_configurable" => 0, + "is_visible_on_front" => 0, + "is_user_defined" => 1 + ]); + + $preorderQtyAttribute = app('Webkul\Attribute\Repositories\AttributeRepository')->create([ + "code" => "preorder_qty", + "type" => "text", + "admin_name" => "Preorder Qty", + "is_required" => 0, + "is_unique" => 0, + "validation" => "numeric", + "value_per_locale" => 0, + "value_per_channel" => 1, + "is_filterable" => 0, + "is_configurable" => 0, + "is_visible_on_front" => 0, + "is_user_defined" => 1 + ]); + + $preorderAvailabilityAttribute = app('Webkul\Attribute\Repositories\AttributeRepository')->create([ + "code" => "preorder_availability", + "type" => "date", + "admin_name" => "Product Availability", + "is_required" => 0, + "is_unique" => 0, + "validation" => "", + "value_per_locale" => 0, + "value_per_channel" => 1, + "is_filterable" => 0, + "is_configurable" => 0, + "is_visible_on_front" => 0, + "is_user_defined" => 1 + ]); + + $attributeFamilies = app('Webkul\Attribute\Repositories\AttributeFamilyRepository')->all(); + + foreach ($attributeFamilies as $attributeFamily) { + $generalGroup = $attributeFamily->attribute_groups()->where('name', 'General')->first(); + + $generalGroup->custom_attributes()->save($allowPreorderAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 1 ]); + + $generalGroup->custom_attributes()->save($preorderQtyAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 2 ]); + + $generalGroup->custom_attributes()->save($preorderAvailabilityAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 3 ]); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Database/Seeders/DatabaseSeeder.php b/packages/Webkul/SAASPreOrder/src/Database/Seeders/DatabaseSeeder.php new file mode 100755 index 000000000..71d088dd4 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Database/Seeders/DatabaseSeeder.php @@ -0,0 +1,18 @@ +call(AttributeSeeder::class); + } +} diff --git a/packages/Webkul/SAASPreOrder/src/Helpers/PreOrderDataPurger.php b/packages/Webkul/SAASPreOrder/src/Helpers/PreOrderDataPurger.php new file mode 100644 index 000000000..694d148b9 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Helpers/PreOrderDataPurger.php @@ -0,0 +1,98 @@ +attribute = $attribute; + $this->attributeFamily = $attributeFamily; + } + + /*** + * Creates attributes for one company at a time + */ + public function createPreOrderData($id) + { + $allowPreorderAttribute = $this->attribute->create([ + "code" => "allow_preorder", + "type" => "boolean", + "admin_name" => "Allow Preorder", + "is_required" => 0, + "is_unique" => 0, + "validation" => "", + "value_per_locale" => 0, + "value_per_channel" => 1, + "is_filterable" => 0, + "is_configurable" => 0, + "is_visible_on_front" => 0, + "is_user_defined" => 1, + 'company_id' => $id + ]); + + $preorderQtyAttribute = $this->attribute->create([ + "code" => "preorder_qty", + "type" => "text", + "admin_name" => "Preorder Qty", + "is_required" => 0, + "is_unique" => 0, + "validation" => "numeric", + "value_per_locale" => 0, + "value_per_channel" => 1, + "is_filterable" => 0, + "is_configurable" => 0, + "is_visible_on_front" => 0, + "is_user_defined" => 1, + 'company_id' => $id + ]); + + $preorderAvailabilityAttribute = $this->attribute->create([ + "code" => "preorder_availability", + "type" => "date", + "admin_name" => "Product Availability", + "is_required" => 0, + "is_unique" => 0, + "validation" => "", + "value_per_locale" => 0, + "value_per_channel" => 1, + "is_filterable" => 0, + "is_configurable" => 0, + "is_visible_on_front" => 0, + "is_user_defined" => 1, + 'company_id' => $id + ]); + + $attributeFamilies = $this->attributeFamily->all(); + + foreach ($attributeFamilies as $attributeFamily) { + $generalGroup = $attributeFamily->attribute_groups()->where(['name' => 'General', 'company_id' => $id])->first(); + + $generalGroup->custom_attributes()->save($allowPreorderAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 1 ]); + + $generalGroup->custom_attributes()->save($preorderQtyAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 2 ]); + + $generalGroup->custom_attributes()->save($preorderAvailabilityAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 3 ]); + } + + return true; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Helpers/Product.php b/packages/Webkul/SAASPreOrder/src/Helpers/Product.php new file mode 100644 index 000000000..09897e8c9 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Helpers/Product.php @@ -0,0 +1,60 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class Product +{ + /** + * ProductRepository object + * + * @var Product + */ + protected $productRepository; + + /** + * Create a new customer event listener instance. + * + * @param Webkul\Product\Repositories\ProductRepository $productRepository + * @return void + */ + public function __construct( + ProductRepository $productRepository + ) + { + $this->productRepository = $productRepository; + } + + /** + * Return preorder variants + * + * @param Product $product + */ + public function getPreOrderVariants($product) + { + $config = []; + + foreach ($product->variants as $variant) { + if ($variant->totalQuantity() < 1 && $variant->allow_preorder) { + $config[$variant->id] = [ + 'preorder_qty' => $variant->preorder_qty, + 'availability_text' => $variant->preorder_availability && Carbon::parse($variant->preorder_availability) > Carbon::now() + ? trans('preorder::app.shop.products.available-on', [ + 'date' => core()->formatDate(Carbon::parse($variant->preorder_availability), 'F d, Y') + ]) + : null + ]; + } + } + + return $config; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Http/Controllers/Admin/Controller.php b/packages/Webkul/SAASPreOrder/src/Http/Controllers/Admin/Controller.php new file mode 100644 index 000000000..c0da023a8 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Http/Controllers/Admin/Controller.php @@ -0,0 +1,13 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class PreOrderController extends Controller +{ + /** + * Contains route related configuration + * + * @var array + */ + protected $_config; + + /** + * PreOrderItemRepository object + * + * @var array + */ + protected $preOrderItemRepository; + + /** + * Create a new controller instance. + * + * @param \Webkul\SAASPreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository + * @return void + */ + public function __construct( + PreOrderItemRepository $preOrderItemRepository + ) + { + $this->_config = request('_config'); + + $this->preOrderItemRepository = $preOrderItemRepository; + } + + /** + * Method to populate the seller order page which will be populated. + * + * @return Mixed + */ + public function index($url) + { + return view($this->_config['view']); + } + + /** + * Mass notify customers for in stock preorder products + * + * @return response + */ + public function notifyCustomer() + { + $data = request()->all(); + + if (! isset($data['massaction-type'])) { + return redirect()->back(); + } + + $preOrderItemIds = explode(',', $data['indexes']); + + foreach ($preOrderItemIds as $preOrderItemId) { + $preOrderItem = $this->preOrderItemRepository->find($preOrderItemId); + + if (! $this->preOrderItemRepository->canBeComplete($preOrderItem->order_item)) + continue; + + try { + Mail::send(new ProductInStockNotification($preOrderItem)); + + $this->preOrderItemRepository->update([ + 'email_sent' => 1 + ], $preOrderItem->id); + } catch (\Exception $e) { + + } + } + + session()->flash('success', trans('preorder::app.admin.preorders.mass-notify-success')); + + return redirect()->route($this->_config['redirect']); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Http/Controllers/Shop/Controller.php b/packages/Webkul/SAASPreOrder/src/Http/Controllers/Shop/Controller.php new file mode 100644 index 000000000..d5ac3cb8a --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Http/Controllers/Shop/Controller.php @@ -0,0 +1,12 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class PreOrderController extends Controller +{ + /** + * ProductRepository object + * + * @var array + */ + protected $productRepository; + + /** + * OrderItemRepository object + * + * @var array + */ + protected $orderItemRepository; + + /** + * PreOrderItemRepository object + * + * @var array + */ + protected $preOrderItemRepository; + + /** + * Create a new controller instance. + * + * @param Webkul\Product\Repositories\ProductRepository $productRepository + * @param Webkul\Sales\Repositories\OrderItemRepository $orderItemRepository + * @param Webkul\SAASPreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository + * @return void + */ + public function __construct( + ProductRepository $productRepository, + OrderItemRepository $orderItemRepository, + PreOrderItemRepository $preOrderItemRepository + ) + { + $this->productRepository = $productRepository; + + $this->orderItemRepository = $orderItemRepository; + + $this->preOrderItemRepository = $preOrderItemRepository; + } + + /** + * @return \Illuminate\Http\Response + */ + public function complete() + { + if (request()->route('token')) + $preOrderItem = $this->preOrderItemRepository->findOneByField('token', request()->route('token')); + else + $preOrderItem = $this->preOrderItemRepository->find(request()->input('id')); + + if (! $preOrderItem) + return abort(404); + + $orderItem = $this->orderItemRepository->findOrFail($preOrderItem->order_item_id); + + if (! $this->preOrderItemRepository->canBeComplete($orderItem)) { + session()->flash('error', trans('preorder::app.shop.preorders.complete-preorder-error')); + + if (request()->route('token')) + return redirct()->route('shop.home.index'); + else + return back(); + } + + $data = []; + + if ($orderItem->type == 'configurable') { + $data = [ + 'pre_order_payment' => true, + 'order_item_id' => $preOrderItem->order_item_id, + 'product' => $orderItem->product_id, + 'quantity' => $orderItem->qty_ordered, + 'is_configurable' => true, + 'selected_configurable_option' => $orderItem->child->product_id + ]; + + foreach ($this->productRepository->getSuperAttributes($orderItem->product) as $attribute) { + $data['super_attribute'][$attribute['id']] = $orderItem->child->product->{$attribute['code']}; + } + } else { + $data = [ + 'pre_order_payment' => true, + 'order_item_id' => $preOrderItem->order_item_id, + 'product' => $orderItem->product_id, + 'quantity' => $orderItem->qty_ordered, + 'is_configurable' => false, + ]; + } + + request()->request->add($data); + + Event::fire('checkout.cart.add.before', $data['product']); + + $result = Cart::add($data['product'], $data); + + Event::fire('checkout.cart.add.after', $result); + + return redirect()->route('shop.checkout.onepage.index'); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Http/admin-routes.php b/packages/Webkul/SAASPreOrder/src/Http/admin-routes.php new file mode 100644 index 000000000..40802f72a --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Http/admin-routes.php @@ -0,0 +1,22 @@ + ['web']], function () { + + Route::prefix('admin')->group(function () { + + Route::group(['middleware' => ['admin']], function () { + + //Seller routes + Route::get('preorders', 'Webkul\SAASPreOrder\Http\Controllers\Admin\PreOrderController@index')->defaults('_config', [ + 'view' => 'preorder::admin.preorders.index' + ])->name('admin.preorder.preorders.index'); + + //product massdelete + Route::post('preorders/notify-customer', 'Webkul\SAASPreOrder\Http\Controllers\Admin\PreOrderController@notifyCustomer')->defaults('_config', [ + 'redirect' => 'admin.preorder.preorders.index' + ])->name('admin.preorder.preorders.notify-customer'); + }); + + }); + +}); \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Http/front-routes.php b/packages/Webkul/SAASPreOrder/src/Http/front-routes.php new file mode 100644 index 000000000..148b7418b --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Http/front-routes.php @@ -0,0 +1,5 @@ + ['web', 'theme', 'locale', 'currency']], function () { + Route::get('/complete-preorder/{token}', 'Webkul\SAASPreOrder\Http\Controllers\Shop\PreOrderController@complete')->name('preorder.shop.preorder.complete'); +}); \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Listeners/Cart.php b/packages/Webkul/SAASPreOrder/src/Listeners/Cart.php new file mode 100644 index 000000000..edfbf1d8b --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Listeners/Cart.php @@ -0,0 +1,197 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class Cart +{ + /** + * PriceHelper object + * + * @var Object + */ + protected $priceHelper; + + /** + * ProductRepository object + * + * @var Product + */ + protected $productRepository; + + /** + * PreOrderItemRepository object + * + * @var Product + */ + protected $preOrderItemRepository; + + /** + * Create a new customer event listener instance. + * + * @param Webkul\Product\Helpers\Price $priceHelper + * @param Webkul\Product\Repositories\ProductRepository $productRepository + * @param Webkul\SAASPreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository + * @return void + */ + public function __construct( + PriceHelper $priceHelper, + ProductRepository $productRepository, + PreOrderItemRepository $preOrderItemRepository + ) + { + $this->priceHelper = $priceHelper; + + $this->productRepository = $productRepository; + + $this->preOrderItemRepository = $preOrderItemRepository; + } + + /** + * Before product added to the cart + * + * @param mixed $cartItem + */ + public function cartItemAddBefore($productId) + { + $data = request()->all(); + + if (! isset($data['pre_order_payment'])) { + if ($this->haveCompletePreorderProduct($productId)) + throw new \Exception('Product can not be added with preorder payment.'); + + $product = $this->productRepository->find($productId); + + if ($product->type == 'configurable') { + if (isset($data['selected_configurable_option'])) { + $product = $this->productRepository->find($data['selected_configurable_option']); + } else { + return; + } + } + + if ($product->totalQuantity() > 0 || ! $product->allow_preorder) + return; + + if (! isset($data['quantity'])) + $data['quantity'] = 1; + + if ($cart = CartFacade::getCart()) { + $cartItem = $cart->items()->where('product_id', $productId)->first(); + + if ($cartItem) { + $quantity = $cartItem->quantity + $data['quantity']; + } else { + $quantity = $data['quantity']; + } + } else { + $quantity = $data['quantity']; + } + + if ($product->preorder_qty && $product->preorder_qty < $quantity) + throw new \Exception('Requested quantity not available for preorder.'); + } else { + if ($cart = CartFacade::getCart()) { + $cartItem = $cart->items()->where('product_id', $productId)->first(); + + if ($cartItem) { + throw new \Exception('Invalid quantity for complete preorder payment.'); + } else { + throw new \Exception('Preorder payment can not be added with other product.'); + } + } + } + } + + /** + * @param integer $productId + */ + public function haveCompletePreorderProduct($productId) + { + if (! $cart = CartFacade::getCart()) + return false; + + foreach ($cart->items()->get() as $item) { + if (isset($item->additional['pre_order_payment'])) + return true; + } + + return false; + } + + /** + * Before product update to the cart + * + * @param CartItem $item + */ + public function cartItemUpdateBefore($item) + { + if (isset($item->additional['pre_order_payment'])) + throw new \Exception('Preoder payment qunatity can not be updated.'); + + $quantities = request()->get('qty'); + + $product = $item->type == 'configurable' ? $item->child->product_flat : $item->product_flat; + + if ($product->totalQuantity() > 0 || ! $product->allow_preorder) + return; + + if ($product->preorder_qty && $product->preorder_qty < $quantities[$item->id]) + throw new \Exception('Requested quantity not available for preorder.'); + } + + /** + * After product added to the cart + * + * @param mixed $cartItem + */ + public function cartItemAddAfter($cartItem) + { + if (! request()->input('pre_order_payment')) { + $product = $this->productRepository->find($cartItem->product_id); + + if ($product->totalQuantity() > 0 || ! $product->allow_preorder) + return; + + if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') { + if (is_null(core()->getConfigData('preorder.settings.general.percent'))) { + $preOrderPercentage = 0; + } else { + $preOrderPercentage = core()->getConfigData('preorder.settings.general.percent'); + } + } else { + $preOrderPercentage = 100; + } + + $productPrice = $cartItem->type == 'configurable' + ? ($this->priceHelper->getMinimalPrice($cartItem->child->product_flat) * $preOrderPercentage) / 100 + : ($this->priceHelper->getMinimalPrice($cartItem->product_flat) * $preOrderPercentage) / 100; + + $cartItem->price = core()->convertPrice($productPrice); + $cartItem->base_price = $productPrice; + $cartItem->custom_price = $productPrice; + + $cartItem->save(); + } else { + $preOrderItem = $this->preOrderItemRepository->findOneByField('order_item_id', request()->input('order_item_id')); + + $productPrice = $preOrderItem->base_remaining_amount / $preOrderItem->order_item->qty_ordered; + + $cartItem->price = core()->convertPrice($productPrice); + $cartItem->base_price = $productPrice; + $cartItem->custom_price = $productPrice; + + $cartItem->save(); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Listeners/Invoice.php b/packages/Webkul/SAASPreOrder/src/Listeners/Invoice.php new file mode 100644 index 000000000..e7494b310 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Listeners/Invoice.php @@ -0,0 +1,59 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class Invoice +{ + /** + * PreOrderItemRepository object + * + * @var Object + */ + protected $preOrderItemRepository; + + /** + * Create a new Order event listener instance. + * + * @param Webkul\SAASPreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository + * @return void + */ + public function __construct(PreOrderItemRepository $preOrderItemRepository) + { + $this->preOrderItemRepository = $preOrderItemRepository; + } + + /** + * After sales invoice creation, creater marketplace invoice + * + * @param mixed $invoice + */ + public function afterInvoice($invoice) + { + foreach ($invoice->items()->get() as $item) { + if (isset($item->additional['pre_order_payment'])) { + $preOrderItem = $this->preOrderItemRepository->findOneByField('order_item_id', $item->additional['order_item_id']); + + $this->preOrderItemRepository->update([ + 'status' => 'completed', + ], $preOrderItem->id); + } else { + $preOrderItem = $this->preOrderItemRepository->findOneByField('order_item_id', $item->order_item_id); + + if (! $preOrderItem || $preOrderItem->base_remaining_amount) + return; + + $this->preOrderItemRepository->update([ + 'status' => 'completed', + ], $preOrderItem->id); + } + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Listeners/Order.php b/packages/Webkul/SAASPreOrder/src/Listeners/Order.php new file mode 100644 index 000000000..cab5cec6a --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Listeners/Order.php @@ -0,0 +1,99 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class Order +{ + /** + * PriceHelper object + * + * @var Object + */ + protected $priceHelper; + + /** + * PreOrderItemRepository object + * + * @var Object + */ + protected $preOrderItemRepository; + + /** + * Create a new Order event listener instance. + * + * @param Webkul\Product\Helpers\Price $priceHelper + * @param Webkul\SAASPreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository + * @return void + */ + public function __construct( + PriceHelper $priceHelper, + PreOrderItemRepository $preOrderItemRepository + ) + { + $this->priceHelper = $priceHelper; + + $this->preOrderItemRepository = $preOrderItemRepository; + } + + /** + * After sales order creation, add entry to pre_order_items order table + * + * @param mixed $order + */ + public function afterPlaceOrder($order) + { + foreach ($order->items()->get() as $item) { + if (isset($item->additional['pre_order_payment'])) { + $preOrderItem = $this->preOrderItemRepository->findOneByField('order_item_id', $item->additional['order_item_id']); + + $this->preOrderItemRepository->update([ + 'status' => 'processing', + 'payment_order_item_id' => $item->id + ], $preOrderItem->id); + } else { + if ($item->product->totalQuantity() > 0 || ! $item->product->allow_preorder) + continue; + + if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') { + $preOrderType = 'partial'; + + if (is_null(core()->getConfigData('preorder.settings.general.percent'))) { + $preOrderPercentage = 0; + } else { + $preOrderPercentage = core()->getConfigData('preorder.settings.general.percent'); + } + } else { + $preOrderType = 'complete'; + + $preOrderPercentage = 100; + } + + $productPrice = $item->type == 'configurable' + ? $this->priceHelper->getMinimalPrice($item->child->product) + : $this->priceHelper->getMinimalPrice($item->product); + + $this->preOrderItemRepository->create([ + 'preorder_type' => $preOrderType, + 'preorder_percent' => $preOrderPercentage, + 'status' => 'pending', + 'paid_amount' => $item->total, + 'base_paid_amount' => $item->base_total, + 'base_remaining_amount' => ($productPrice * $item->qty_ordered) - $item->base_total, + 'order_id' => $order->id, + 'order_item_id' => $item->id, + 'token' => str_random(32) + ]); + } + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Mail/ProductInStockNotification.php b/packages/Webkul/SAASPreOrder/src/Mail/ProductInStockNotification.php new file mode 100644 index 000000000..50af825b5 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Mail/ProductInStockNotification.php @@ -0,0 +1,48 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class ProductInStockNotification extends Mailable +{ + use Queueable, SerializesModels; + + /** + * The order item instance. + * + * @var Order + */ + public $item; + + /** + * Create a new message instance. + * + * @return void + */ + public function __construct($item) + { + $this->item = $item; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + return $this->to($this->item->order->customer_email, $this->item->order->customer_full_name) + ->subject(trans('preorder::app.mail.in-stock.subject')) + ->view('preorder::emails.in-stock'); + } +} diff --git a/packages/Webkul/SAASPreOrder/src/Models/PreOrderItem.php b/packages/Webkul/SAASPreOrder/src/Models/PreOrderItem.php new file mode 100644 index 000000000..68a2e912e --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Models/PreOrderItem.php @@ -0,0 +1,89 @@ + 'Pending', + 'processing' => 'Processing', + 'completed' => 'Completed' + ]; + + protected $typeLabel = [ + 'partial' => 'Partial Payment', + 'complete' => 'Complete Payment' + ]; + + /** + * Get the order record associated with the pre order item. + */ + public function order() + { + return $this->belongsTo(OrderProxy::modelClass()); + } + + /** + * Get the order item record associated with the pre order item. + */ + public function order_item() + { + return $this->belongsTo(OrderItemProxy::modelClass()); + } + + /** + * Get the order item record associated with the pre order item. + */ + public function payment_order_item() + { + return $this->belongsTo(OrderItemProxy::modelClass(), 'payment_order_item_id'); + } + + /** + * Returns the status label from status code + */ + public function getStatusLabelAttribute() + { + return $this->statusLabel[$this->status]; + } + + /** + * Returns the type label from status code + */ + public function getTypeLabelAttribute() + { + return $this->typeLabel[$this->preorder_type]; + } + + /** + * Create a new Eloquent query builder for the model. + * + * @param \Illuminate\Database\Query\Builder $query + * @return \Illuminate\Database\Eloquent\Builder|static + */ + public function newEloquentBuilder($query) + { + + $company = \Company::getCurrent(); + + if (auth()->guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('pre_order_items' . '.company_id', $company->id)); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Models/PreOrderItemProxy.php b/packages/Webkul/SAASPreOrder/src/Models/PreOrderItemProxy.php new file mode 100644 index 000000000..e5b9e8d70 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Models/PreOrderItemProxy.php @@ -0,0 +1,10 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Providers/EventServiceProvider.php b/packages/Webkul/SAASPreOrder/src/Providers/EventServiceProvider.php new file mode 100644 index 000000000..0b6d83016 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Providers/EventServiceProvider.php @@ -0,0 +1,35 @@ +addTemplate('preorder::admin.layouts.style'); + }); + + Event::listen('bagisto.shop.products.view.short_description.before', function($viewRenderEventManager) { + $viewRenderEventManager->addTemplate('preorder::shop.products.preorder-info'); + }); + + Event::listen('checkout.cart.add.before', 'Webkul\SAASPreOrder\Listeners\Cart@cartItemAddBefore'); + + Event::listen('checkout.cart.update.before', 'Webkul\SAASPreOrder\Listeners\Cart@cartItemUpdateBefore'); + + Event::listen('checkout.cart.add.after', 'Webkul\SAASPreOrder\Listeners\Cart@cartItemAddAfter'); + + Event::listen('checkout.order.save.after', 'Webkul\SAASPreOrder\Listeners\Order@afterPlaceOrder'); + + Event::listen('sales.invoice.save.after', 'Webkul\SAASPreOrder\Listeners\Invoice@afterInvoice'); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Providers/ModuleServiceProvider.php b/packages/Webkul/SAASPreOrder/src/Providers/ModuleServiceProvider.php new file mode 100644 index 000000000..073bdebab --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Providers/ModuleServiceProvider.php @@ -0,0 +1,12 @@ +app->register(EventServiceProvider::class); + + $this->loadRoutesFrom(__DIR__ . '/../Http/admin-routes.php'); + + $this->loadRoutesFrom(__DIR__ . '/../Http/front-routes.php'); + + $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'preorder'); + + $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'preorder'); + + $this->publishes([ + __DIR__ . '/../../publishable/assets' => public_path('vendor/webkul/preorder/assets'), + ], 'public'); + + $this->publishes([ + __DIR__ . '/../Resources/views/shop/products/add-buttons.blade.php' => resource_path('views/vendor/shop/products/add-buttons.blade.php'), + __DIR__ . '/../Resources/views/shop/products/view/product-add.blade.php' => resource_path('views/vendor/shop/products/view/product-add.blade.php'), + + __DIR__ . '/../Resources/views/admin/sales/orders' => resource_path('views/vendor/admin/sales/orders'), + __DIR__ . '/../Resources/views/shop/customers/account/orders' => resource_path('views/vendor/shop/customers/account/orders'), + ]); + } + + /** + * Register services. + * + * @return void + */ + public function register() + { + $this->registerConfig(); + + $this->registerFacades(); + } + + /** + * Register Bouncer as a singleton. + * + * @return void + */ + protected function registerFacades() + { + $loader = AliasLoader::getInstance(); + $loader->alias('shipping', ShippingFacade::class); + + $this->app->singleton('shipping', function () { + return new Shipping(); + }); + } + + /** + * Register package config. + * + * @return void + */ + public function registerConfig() + { + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/system.php', 'core' + ); + + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/admin-menu.php', 'menu.admin' + ); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Repositories/PreOrderItemRepository.php b/packages/Webkul/SAASPreOrder/src/Repositories/PreOrderItemRepository.php new file mode 100755 index 000000000..c65698623 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Repositories/PreOrderItemRepository.php @@ -0,0 +1,77 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class PreOrderItemRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + + function model() + { + return 'Webkul\SAASPreOrder\Contracts\PreOrderItem'; + } + + /** + * @param integer $orderId + * @return boolean + */ + public function havePreOrderItems($orderId) + { + return $this->scopeQuery(function ($query) use ($orderId) { + return $query->where('pre_order_items.order_id', $orderId); + })->count(); + } + + /** + * @param OrderItem $orderItem + * @return boolean + */ + public function canBeComplete($orderItem) + { + $preOrderItem = $this->findOneByField('order_item_id', $orderItem->id); + + if (! $preOrderItem || $preOrderItem->status == 'completed') + return false; + + if ($orderItem->type == 'configurable') { + $isInStock = $orderItem->child->product && $this->getProductTotalQuantity($orderItem->child->product) >= $orderItem->qty_ordered ? true : false; + } else { + $isInStock = $orderItem->product && $this->getProductTotalQuantity($orderItem->product) >= $orderItem->qty_ordered ? true : false; + } + + return $isInStock && $orderItem->qty_invoiced == $orderItem->qty_ordered ? true : false; + } + + /** + * @return integer + */ + public function getProductTotalQuantity($product) + { + $total = 0; + + $channelInventorySourceIds = core()->getCurrentChannel() + ->inventory_sources() + ->where('status', 1) + ->pluck('id'); + + foreach ($product->inventories as $inventory) { + if (is_numeric($index = $channelInventorySourceIds->search($inventory->inventory_source_id))) { + $total += $inventory->qty; + } + } + + return $total; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/assets/images/Icon-Preorder-Active.svg b/packages/Webkul/SAASPreOrder/src/Resources/assets/images/Icon-Preorder-Active.svg new file mode 100644 index 000000000..b16e78546 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/assets/images/Icon-Preorder-Active.svg @@ -0,0 +1,14 @@ + + + + Icon-Preorder-Active + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/assets/images/Icon-Preorder.svg b/packages/Webkul/SAASPreOrder/src/Resources/assets/images/Icon-Preorder.svg new file mode 100644 index 000000000..f5666d659 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/assets/images/Icon-Preorder.svg @@ -0,0 +1,13 @@ + + + + Icon-Preorder + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/assets/sass/admin.scss b/packages/Webkul/SAASPreOrder/src/Resources/assets/sass/admin.scss new file mode 100644 index 000000000..a2dd9da32 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/assets/sass/admin.scss @@ -0,0 +1,40 @@ +@import "icons"; + +.navbar-left { + width: 100px; + + ul.menubar li.menu-item { + padding: 10px 7px; + } +} + +.content-container { + padding-left: 100px; +} + +.preorder-info { + padding: 15px; + width: auto; + border: 1px solid #d3d3d3; + border-left: 4px solid #0031f0; + margin: 15px 0; +} + +.pre-order-item-info { + .heading { + font-weight: 600; + margin-bottom: 10px; + margin-top: 10px; + display: block; + } + + .row { + margin-bottom: 5px; + padding-left: 10px; + display: block; + + &:last-child { + margin-bottom: 0; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/assets/sass/app.scss b/packages/Webkul/SAASPreOrder/src/Resources/assets/sass/app.scss new file mode 100644 index 000000000..1dc63dd13 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/assets/sass/app.scss @@ -0,0 +1,27 @@ +.preorder-info { + padding: 15px; + width: auto; + border: 1px solid #d3d3d3; + border-left: 4px solid #0031f0; + margin: 15px 0; +} + +.pre-order-item-info { + .heading { + font-weight: 600; + margin-bottom: 10px; + margin-top: 10px; + display: block; + } + + .row { + margin-bottom: 5px; + display: block; + padding: 0 !important; + padding-left: 10px !important; + + &:last-child { + margin-bottom: 0; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/assets/sass/icons.scss b/packages/Webkul/SAASPreOrder/src/Resources/assets/sass/icons.scss new file mode 100644 index 000000000..16b0ab5b0 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/assets/sass/icons.scss @@ -0,0 +1,17 @@ +.preorder-icon { + width: 48px; + height: 48px; + display: inline-block; + background-size: cover; + background-image: url("../images/Icon-Preorder.svg"); +} + +.active { + .preorder-icon { + background-image: url("../images/Icon-Preorder-Active.svg"); + } + + &.preorder-icon { + background-image: url("../images/Icon-Preorder-Active.svg"); + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/lang/en/app.php b/packages/Webkul/SAASPreOrder/src/Resources/lang/en/app.php new file mode 100644 index 000000000..fd2730703 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/lang/en/app.php @@ -0,0 +1,93 @@ + [ + 'products' => [ + 'percent-to-pay' => 'Pay :percent% as Preorder.', + 'nothing-to-pay' => 'Nothing to pay for Preorder.', + 'available-on' => 'Available On: :date', + 'preorder' => 'Preorder', + 'complete-preorder-error' => 'Preorder payment not be completed.' + ], + + 'sales' => [ + 'orders' => [ + 'preorder-summary' => 'This order contains preorder items', + 'preorder-information' => 'Preorder Information', + 'preorder-payment-information' => 'Preorder Payment Information', + 'type' => 'Type : ', + 'status' => 'Status : ', + 'payment-order' => 'Payment Order', + 'reference-order' => 'Reference Order' + ] + ], + ], + + 'admin' => [ + 'layouts' => [ + 'preorder' => 'Preorder' + ], + + 'preorders' => [ + 'title' => 'Preorders', + 'mass-notify-success' => 'Stock notification email sent succesfully.' + ], + + 'sales' => [ + 'orders' => [ + 'preorder-summary' => 'This order contains preorder items', + 'preorder-information' => 'Preorder Information', + 'preorder-payment-information' => 'Preorder Payment Information', + 'type' => 'Type : ', + 'status' => 'Status : ', + 'reference-order' => 'Reference Order : ', + 'payment-order' => 'Payment Order : ' + ] + ], + + 'system' => [ + 'preorder' => 'Preorder', + 'settings' => 'Settings', + 'general' => 'General', + 'preorder-type' => 'Preorder Type', + 'partial-payment' => 'Partial Payment', + 'complete-payment' => 'Complete Payment', + 'preorder-percent' => 'Preorder Percent', + 'preorder-percent-info' => 'This value will be used if "Preorder Type" is selected as "Partial Payment".', + 'message' => 'Message', + 'enable-automatic-mail' => 'Enable Automatic Mail' + ] + ], + + 'datagrid' => [ + 'id' => 'Id', + 'order-id' => 'Order Id', + 'payment-order-id' => 'Payment Order Id', + 'product-name' => 'Product Name', + 'customer-name' => 'Customer Name', + 'customer-email' => 'Customer Email', + 'paid-amount' => 'Paid Amount', + 'remaining-amount' => 'Remaining Amount', + 'preorder-type' => 'Preorder Type', + 'status' => 'Status', + 'partial-payment' => 'Partial Payment', + 'complete-payment' => 'Complete Payment', + 'pending' => 'Pending', + 'processing' => 'Processing', + 'completed' => 'Completed', + 'email-sent' => 'Email Sent', + 'yes' => 'Yes', + 'no' => 'No', + 'order-type' => 'Order Type', + 'preorder' => 'Preorder', + 'normal-order' => 'Normal Order' + ], + + 'mail' => [ + 'in-stock' => [ + 'subject' => 'Product in stock notification', + 'dear' => 'Dear :name', + 'info' => 'Product :name has been arrived in stock now. Click here to complete preorder.' + ] + ] +]; \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/admin/layouts/style.blade.php b/packages/Webkul/SAASPreOrder/src/Resources/views/admin/layouts/style.blade.php new file mode 100644 index 000000000..0d93717f6 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/views/admin/layouts/style.blade.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/admin/preorders/index.blade.php b/packages/Webkul/SAASPreOrder/src/Resources/views/admin/preorders/index.blade.php new file mode 100644 index 000000000..dd3294ab7 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/views/admin/preorders/index.blade.php @@ -0,0 +1,26 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('preorder::app.admin.preorders.title') }} +@stop + +@section('content-wrapper') + +
+ + +
+ + {!! app('Webkul\SAASPreOrder\DataGrids\Admin\PreOrder')->render() !!} + +
+
+ +@stop diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/index.blade.php b/packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/index.blade.php new file mode 100644 index 000000000..630e22919 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/index.blade.php @@ -0,0 +1,42 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.sales.orders.title') }} +@stop + +@section('content') +
+ + +
+ @inject('orderGrid', 'Webkul\SAASPreOrder\DataGrids\Admin\Order') + + {!! $orderGrid->render() !!} +
+
+ + +

{{ __('admin::app.export.download') }}

+
+ +
+
+ +@stop + +@push('scripts') + @include('admin::export.export', ['gridName' => $orderGrid]) +@endpush \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/view.blade.php b/packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/view.blade.php new file mode 100644 index 000000000..adc395d8f --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/view.blade.php @@ -0,0 +1,503 @@ +@extends('admin::layouts.master') + +@section('page_title') + {{ __('admin::app.sales.orders.view-title', ['order_id' => $order->id]) }} +@stop + +@section('content-wrapper') + +
+ + + +
+ + + +
+ + havePreOrderItems($order->id); + ?> + + @if ($havePreOrderItems) +
{{ __('preorder::app.admin.sales.orders.preorder-summary') }}
+ @endif + + +
+ +
+
+ {{ __('admin::app.sales.orders.order-info') }} +
+ +
+
+ + {{ __('admin::app.sales.orders.order-date') }} + + + + {{ $order->created_at }} + +
+ +
+ + {{ __('admin::app.sales.orders.order-status') }} + + + + {{ $order->status_label }} + +
+ +
+ + {{ __('admin::app.sales.orders.channel') }} + + + + {{ $order->channel_name }} + +
+
+
+ +
+
+ {{ __('admin::app.sales.orders.account-info') }} +
+ +
+
+ + {{ __('admin::app.sales.orders.customer-name') }} + + + + {{ $order->customer_full_name }} + +
+ +
+ + {{ __('admin::app.sales.orders.email') }} + + + + {{ $order->customer_email }} + +
+ + @if (! is_null($order->customer)) +
+ + {{ __('admin::app.customers.customers.customer_group') }} + + + + {{ $order->customer->group['name'] }} + +
+ @endif +
+
+ +
+
+ + +
+ +
+
+ {{ __('admin::app.sales.orders.billing-address') }} +
+ +
+ + @include ('admin::sales.address', ['address' => $order->billing_address]) + +
+
+ + @if ($order->shipping_address) +
+
+ {{ __('admin::app.sales.orders.shipping-address') }} +
+ +
+ + @include ('admin::sales.address', ['address' => $order->shipping_address]) + +
+
+ @endif + +
+
+ + +
+ +
+
+ {{ __('admin::app.sales.orders.payment-info') }} +
+ +
+
+ + {{ __('admin::app.sales.orders.payment-method') }} + + + + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }} + +
+ +
+ + {{ __('admin::app.sales.orders.currency') }} + + + + {{ $order->order_currency_code }} + +
+
+
+ +
+
+ {{ __('admin::app.sales.orders.shipping-info') }} +
+ +
+
+ + {{ __('admin::app.sales.orders.shipping-method') }} + + + + {{ $order->shipping_title }} + +
+ +
+ + {{ __('admin::app.sales.orders.shipping-price') }} + + + + {{ core()->formatBasePrice($order->base_shipping_amount) }} + +
+
+
+
+
+ + +
+ +
+ + + + + + + + + + + @if ($order->base_discount_amount > 0) + + @endif + + + + + + + @foreach ($order->items as $item) + + + + + + + + + + + + + + + + @if ($order->base_discount_amount > 0) + + @endif + + + + @endforeach +
{{ __('admin::app.sales.orders.SKU') }}{{ __('admin::app.sales.orders.product-name') }}{{ __('admin::app.sales.orders.price') }}{{ __('admin::app.sales.orders.item-status') }}{{ __('admin::app.sales.orders.subtotal') }}{{ __('admin::app.sales.orders.tax-percent') }}{{ __('admin::app.sales.orders.tax-amount') }}{{ __('admin::app.sales.orders.discount-amount') }}{{ __('admin::app.sales.orders.grand-total') }}
+ {{ $item->type == 'configurable' ? $item->child->sku : $item->sku }} + + {{ $item->name }} + + @if ($html = $item->getOptionDetailHtml()) +

{{ $html }}

+ @endif + + @if ($preOrderItem = $preOrderItemRepository->findOneByField('order_item_id', $item->id)) +
+ type == 'configurable')style="margin-top: 0"@endif> + {{ __('preorder::app.admin.sales.orders.preorder-information') }} + + + + {{ __('preorder::app.admin.sales.orders.type') }} + + {{ $preOrderItem->type_label }} + + + + {{ __('preorder::app.admin.sales.orders.status') }} + + {{ $preOrderItem->status_label }} + + + @if ($preOrderItem->payment_order_item) + + {{ __('preorder::app.admin.sales.orders.payment-order') }} + + + #{{ $preOrderItem->payment_order_item->order_id }} + + + @endif +
+ @elseif ($preOrderItem = app('Webkul\SAASPreOrder\Repositories\PreOrderItemRepository')->findOneByField('payment_order_item_id', $item->id)) +
+ type == 'configurable')style="margin-top: 0"@endif> + {{ __('preorder::app.admin.sales.orders.preorder-payment-information') }} + + + + {{ __('preorder::app.admin.sales.orders.reference-order') }} + + + #{{ $preOrderItem->order_id }} + + +
+ @endif +
{{ core()->formatBasePrice($item->base_price) }} + + {{ $item->qty_ordered ? __('admin::app.sales.orders.item-ordered', ['qty_ordered' => $item->qty_ordered]) : '' }} + + + + {{ $item->qty_invoiced ? __('admin::app.sales.orders.item-invoice', ['qty_invoiced' => $item->qty_invoiced]) : '' }} + + + + {{ $item->qty_shipped ? __('admin::app.sales.orders.item-shipped', ['qty_shipped' => $item->qty_shipped]) : '' }} + + + + {{ $item->qty_canceled ? __('admin::app.sales.orders.item-canceled', ['qty_canceled' => $item->qty_canceled]) : '' }} + + {{ core()->formatBasePrice($item->base_total) }}{{ $item->tax_percent }}%{{ core()->formatBasePrice($item->base_tax_amount) }}{{ core()->formatBasePrice($item->base_discount_amount) }} + {{ core()->formatBasePrice($item->base_total + $item->base_tax_amount) }} +
+
+ + + + + + + + + + + + + + + @if ($order->base_discount_amount > 0) + + + + + + @endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{ __('admin::app.sales.orders.subtotal') }}-{{ core()->formatBasePrice($order->base_sub_total) }}
{{ __('admin::app.sales.orders.shipping-handling') }}-{{ core()->formatBasePrice($order->base_shipping_amount) }}
{{ __('admin::app.sales.orders.discount') }}--{{ core()->formatBasePrice($order->base_discount_amount) }}
{{ __('admin::app.sales.orders.tax') }}-{{ core()->formatBasePrice($order->base_tax_amount) }}
{{ __('admin::app.sales.orders.grand-total') }}-{{ core()->formatBasePrice($order->base_grand_total) }}
{{ __('admin::app.sales.orders.total-paid') }}-{{ core()->formatBasePrice($order->base_grand_total_invoiced) }}
{{ __('admin::app.sales.orders.total-refunded') }}-{{ core()->formatBasePrice($order->base_grand_total_refunded) }}
{{ __('admin::app.sales.orders.total-due') }}-{{ core()->formatBasePrice($order->base_total_due) }}
+ +
+
+ +
+
+ + + +
+ + + + + + + + + + + + + + + + @foreach ($order->invoices as $invoice) + + + + + + + + + + @endforeach + + @if (! $order->invoices->count()) + + + + @endif +
{{ __('admin::app.sales.invoices.id') }}{{ __('admin::app.sales.invoices.date') }}{{ __('admin::app.sales.invoices.order-id') }}{{ __('admin::app.sales.invoices.customer-name') }}{{ __('admin::app.sales.invoices.status') }}{{ __('admin::app.sales.invoices.amount') }}{{ __('admin::app.sales.invoices.action') }}
#{{ $invoice->id }}{{ $invoice->created_at }}#{{ $invoice->order->id }}{{ $invoice->address->name }}{{ $invoice->status_label }}{{ core()->formatBasePrice($invoice->base_grand_total) }} + + + +
{{ __('admin::app.common.no-result-found') }}
+
+ +
+ + + +
+ + + + + + + + + + + + + + + + @foreach ($order->shipments as $shipment) + + + + + + + + + + @endforeach + + @if (! $order->shipments->count()) + + + + @endif +
{{ __('admin::app.sales.shipments.id') }}{{ __('admin::app.sales.shipments.date') }}{{ __('admin::app.sales.shipments.order-id') }}{{ __('admin::app.sales.shipments.order-date') }}{{ __('admin::app.sales.shipments.customer-name') }}{{ __('admin::app.sales.shipments.total-qty') }}{{ __('admin::app.sales.shipments.action') }}
#{{ $shipment->id }}{{ $shipment->created_at }}#{{ $shipment->order->id }}{{ $shipment->order->created_at }}{{ $shipment->address->name }}{{ $shipment->total_qty }} + + + +
{{ __('admin::app.common.no-result-found') }}
+
+ +
+
+
+ +
+@stop \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/emails/in-stock.blade.php b/packages/Webkul/SAASPreOrder/src/Resources/views/emails/in-stock.blade.php new file mode 100644 index 000000000..68c66fc92 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/views/emails/in-stock.blade.php @@ -0,0 +1,44 @@ +@component('shop::emails.layouts.master') + +
+ + + +
+ +
+ +
+

+ {{ __('preorder::app.mail.in-stock.dear', ['name' => $item->order->customer_full_name]) }}, +

+ +

+ + {!! + __('preorder::app.mail.in-stock.info', [ + 'name' => '' . $item->order_item->product->name . '', + 'link' => $item->order->is_guest ? route('preorder.shop.preorder.complete', ['token' => $item->token]) : route('customer.orders.view', ['id' => $item->order_id]) + ]) + !!} + +

+
+ +
+

+ {!! + __('shop::app.mail.order.help', [ + 'support_email' => '' . config('mail.from.address'). '' + ]) + !!} +

+ +

+ {{ __('shop::app.mail.order.thanks') }} +

+
+ +
+ +@endcomponent \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php b/packages/Webkul/SAASPreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php new file mode 100644 index 000000000..020760917 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php @@ -0,0 +1,414 @@ +@extends('shop::layouts.master') + +@section('page_title') + {{ __('shop::app.customer.account.order.view.page-tile', ['order_id' => $order->id]) }} +@endsection + +@push('css') + +@endpush + +@section('content-wrapper') + +
+ @include('shop::customers.account.partials.sidemenu') + + + +
+ +@endsection \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/add-buttons.blade.php b/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/add-buttons.blade.php new file mode 100644 index 000000000..76d0a7409 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/add-buttons.blade.php @@ -0,0 +1,36 @@ +@if ($product->type != "configurable" && $product->totalQuantity() < 1 && $product->allow_preorder) + @if (core()->getConfigData('preorder.settings.general.percent')) + @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') +

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

+ @endif + @else +

{{ __('preorder::app.shop.products.nothing-to-pay') }}

+ @endif +@endif + +@if ($product->type == "configurable") +
+ + {{ __('shop::app.products.add-to-cart') }} + + + @include('shop::products.wishlist') +
+@else +
+
+ @csrf + + + + + @if ($product->totalQuantity() < 1 && $product->allow_preorder) + + @else + + @endif +
+ + @include('shop::products.wishlist') +
+@endif \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/preorder-info.blade.php b/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/preorder-info.blade.php new file mode 100644 index 000000000..27e625d6b --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/preorder-info.blade.php @@ -0,0 +1,93 @@ +@if ($product->type != 'configurable' && $product->totalQuantity() < 1 && $product->allow_preorder) +
+ + @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') + @if (core()->getConfigData('preorder.settings.general.percent')) +

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

+ @else +

{{ __('preorder::app.shop.products.nothing-to-pay') }}

+ @endif + @endif + + @if (core()->getConfigData('preorder.settings.general.message') != '') +

{{ core()->getConfigData('preorder.settings.general.message') }}

+ @endif + + @if ($product->preorder_availability && \Carbon\Carbon::parse($product->preorder_availability) > \Carbon\Carbon::now()) +

+ {!! + __('preorder::app.shop.products.available-on', [ + 'date' => core()->formatDate(\Carbon\Carbon::parse($product->preorder_availability), 'F d, Y') + ]) + !!} +

+ @endif +
+@elseif ($product->type == 'configurable') + + + @push('scripts') + + + + @endpush +@endif + +@push('css') + +@endpush \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/view/product-add.blade.php b/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/view/product-add.blade.php new file mode 100644 index 000000000..63f46f323 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/view/product-add.blade.php @@ -0,0 +1,21 @@ +{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} + +
+ @if ($product->type != 'configurable') + @if ($product->totalQuantity() < 1 && $product->allow_preorder) + + @else + @include ('shop::products.add-to-cart', ['product' => $product]) + + @include ('shop::products.buy-now') + @endif + @else + @include ('shop::products.add-to-cart', ['product' => $product]) + + @include ('shop::products.buy-now') + @endif +
+ +{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/src/Shipping.php b/packages/Webkul/SAASPreOrder/src/Shipping.php new file mode 100644 index 000000000..96fffe6b6 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/src/Shipping.php @@ -0,0 +1,62 @@ +items()->get() as $item) { + if (isset($item->additional['pre_order_payment'])) + $havePreOrderPaymentItem = true; + } + + if (! $havePreOrderPaymentItem) + return parent::collectRates(); + + $object = new CartShippingRate; + + $object->carrier = 'free'; + $object->carrier_title = core()->getConfigData('sales.carriers.free.title'); + $object->method = 'free_free'; + $object->method_title = core()->getConfigData('sales.carriers.free.title'); + $object->method_description = core()->getConfigData('sales.carriers.free.description'); + $object->price = 0; + $object->base_price = 0; + + $this->rates[] = $object; + + $this->saveAllShippingRates(); + + return [ + 'jump_to_section' => 'shipping', + 'html' => view('shop::checkout.onepage.shipping', ['shippingRateGroups' => $this->getGroupedAllShippingRates()])->render() + ]; + } +} \ No newline at end of file diff --git a/packages/Webkul/SAASPreOrder/webpack.mix.js b/packages/Webkul/SAASPreOrder/webpack.mix.js new file mode 100644 index 000000000..bc2d92bb3 --- /dev/null +++ b/packages/Webkul/SAASPreOrder/webpack.mix.js @@ -0,0 +1,22 @@ +const { mix } = require("laravel-mix"); +require("laravel-mix-merge-manifest"); + +if (mix.inProduction()) { + var publicPath = 'publishable/assets'; +} else { + var publicPath = "../../../public/vendor/webkul/preorder/assets"; +} + +mix.setPublicPath(publicPath).mergeManifest(); +mix.disableNotifications(); + +mix.copyDirectory(__dirname + "/src/Resources/assets/images", publicPath + "/images") + .sass(__dirname + "/src/Resources/assets/sass/app.scss", "css/preorder.css") + .sass(__dirname + "/src/Resources/assets/sass/admin.scss", "css/preorder-admin.css") + .options({ + processCssUrls: false + }); + +if (mix.inProduction()) { + mix.version(); +} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/Config/system.php b/packages/Webkul/ShowPriceAfterLogin/Config/system.php new file mode 100644 index 000000000..a517727cd --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/Config/system.php @@ -0,0 +1,51 @@ + 'ShowPriceAfterLogin', + 'name' => 'ShowPriceAfterLogin::app.showpriceafterlogin.name', + 'sort' => 5 + ], [ + 'key' => 'ShowPriceAfterLogin.settings', + 'name' => 'ShowPriceAfterLogin::app.showpriceafterlogin.settings', + 'sort' => 1, + ], [ + 'key' => 'ShowPriceAfterLogin.settings.settings', + 'name' => 'ShowPriceAfterLogin::app.showpriceafterlogin.settings', + 'sort' => 1, + 'fields' => [ + [ + 'name' => 'enableordisable', + 'title' => 'ShowPriceAfterLogin::app.showpriceafterlogin.toggle', + 'type' => 'boolean', + 'channel_based' => true, + 'locale_based' => false + ], [ + 'name' => 'hide-shop-before-login', + 'title' => 'ShowPriceAfterLogin::app.showpriceafterlogin.hide-shop-before-login', + 'type' => 'boolean', + 'channel_based' => false, + 'locale_based' => false + ], [ + 'name' => 'selectfunction', + 'title' => 'ShowPriceAfterLogin::app.showpriceafterlogin.select-function', + 'type' => 'select', + 'options' => [ + [ + 'name' => 'default', + 'title' => 'ShowPriceAfterLogin::app.showpriceafterlogin.select-function', + 'value' => "" + ], [ + 'name' => 'hide-buy-cart-guest', + 'title' => 'ShowPriceAfterLogin::app.showpriceafterlogin.hide-buy-cart-guest', + 'value' => "hide-buy-cart-guest" + ], [ + 'name' => 'hide-price-buy-cart', + 'title' => 'ShowPriceAfterLogin::app.showpriceafterlogin.hide-price-buy-cart-guest', + 'value' => "hide-price-buy-cart-guest" + ] + ], + ] + ] + ] +]; \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/composer.json b/packages/Webkul/ShowPriceAfterLogin/composer.json new file mode 100644 index 000000000..baf5adf0b --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/composer.json @@ -0,0 +1,26 @@ +{ + "name": "bagisto/showPriceAfterLogin", + "description": "show price and add to cart button after login ", + "license": "MIT", + "authors": [ + { + "name": "Prateek Srivastava", + "email": "prateek.srivastava781@webkul.com" + } + ], + "require": {}, + "autoload": { + "psr-4": { + "Webkul\\ShowPriceAfterLogin\\": "src/" + } + }, + "extra": { + "laravel": { + "providers": [ + "Webkul\\ShowPriceAfterLogin\\Providers\\ShowPriceAfterLoginServiceProvider" + ], + "aliases": {} + } + }, + "minimum-stability": "dev" +} diff --git a/packages/Webkul/ShowPriceAfterLogin/package.json b/packages/Webkul/ShowPriceAfterLogin/package.json new file mode 100644 index 000000000..8c4598302 --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/package.json @@ -0,0 +1,16 @@ +{ + "scripts": { + "dev": "npm run development", + "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch-poll": "npm run watch -- --watch-poll", + "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", + "prod": "npm run production", + "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" + }, + "devDependencies": { + "cross-env": "^5.1.4", + "laravel-mix": "^2.1", + "laravel-mix-merge-manifest": "^0.1.1" + } +} diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Http/Middleware/ShowShopAfterLogin.php b/packages/Webkul/ShowPriceAfterLogin/src/Http/Middleware/ShowShopAfterLogin.php new file mode 100644 index 000000000..443e9cb9c --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/src/Http/Middleware/ShowShopAfterLogin.php @@ -0,0 +1,26 @@ +getConfigData('ShowPriceAfterLogin.settings.settings.hide-shop-before-login'); + $moduleEnabled =(boolean) core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable'); + + if (!auth()->guard('customer')->check() && $moduleEnabled && ! request()->is('customer/*') && $status && ! request()->is('admin/*')) { + return redirect()->route('customer.session.index'); + } + return $next($request); + } +} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Http/routes.php b/packages/Webkul/ShowPriceAfterLogin/src/Http/routes.php new file mode 100644 index 000000000..ab2a2c5a9 --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/src/Http/routes.php @@ -0,0 +1,284 @@ + ['web', 'locale', 'theme', 'currency']], function () { + //Store front home + Route::get('/', 'Webkul\Shop\Http\Controllers\HomeController@index')->defaults('_config', [ + 'view' => 'shop::home.index' + ])->name('shop.home.index'); + + //subscription + //subscribe + Route::get('/subscribe', 'Webkul\Shop\Http\Controllers\SubscriptionController@subscribe')->name('shop.subscribe'); + + //unsubscribe + Route::get('/unsubscribe/{token}', 'Webkul\Shop\Http\Controllers\SubscriptionController@unsubscribe')->name('shop.unsubscribe'); + + //Store front header nav-menu fetch + Route::get('/categories/{slug}', 'Webkul\Shop\Http\Controllers\CategoryController@index')->defaults('_config', [ + 'view' => 'shop::products.index' + ])->name('shop.categories.index'); + + //Store front search + Route::get('/search', 'Webkul\Shop\Http\Controllers\SearchController@index')->defaults('_config', [ + 'view' => 'shop::search.search' + ])->name('shop.search.index'); + + //Country State Selector + Route::get('get/countries', 'Webkul\Core\Http\Controllers\CountryStateController@getCountries')->defaults('_config', [ + 'view' => 'shop::test' + ])->name('get.countries'); + + //Get States When Country is Passed + Route::get('get/states/{country}', 'Webkul\Core\Http\Controllers\CountryStateController@getStates')->defaults('_config', [ + 'view' => 'shop::test' + ])->name('get.states'); + + //checkout and cart + //Cart Items(listing) + Route::get('checkout/cart', 'Webkul\Shop\Http\Controllers\CartController@index')->defaults('_config', [ + 'view' => 'shop::checkout.cart.index' + ])->name('shop.checkout.cart.index'); + + //Cart Items Add + Route::post('checkout/cart/add/{id}', 'Webkul\Shop\Http\Controllers\CartController@add')->defaults('_config', [ + 'redirect' => 'shop.checkout.cart.index' + ])->name('cart.add'); + + //Cart Items Add Configurable for more + Route::get('checkout/cart/addconfigurable/{slug}', 'Webkul\Shop\Http\Controllers\CartController@addConfigurable')->name('cart.add.configurable'); + + //Cart Items Remove + Route::get('checkout/cart/remove/{id}', 'Webkul\Shop\Http\Controllers\CartController@remove')->name('cart.remove'); + + //Cart Update Before Checkout + Route::post('/checkout/cart', 'Webkul\Shop\Http\Controllers\CartController@updateBeforeCheckout')->defaults('_config', [ + 'redirect' => 'shop.checkout.cart.index' + ])->name('shop.checkout.cart.update'); + + //Cart Items Remove + Route::get('/checkout/cart/remove/{id}', 'Webkul\Shop\Http\Controllers\CartController@remove')->defaults('_config', [ + 'redirect' => 'shop.checkout.cart.index' + ])->name('shop.checkout.cart.remove'); + + //Checkout Index page + Route::get('/checkout/onepage', 'Webkul\Shop\Http\Controllers\OnepageController@index')->defaults('_config', [ + 'view' => 'shop::checkout.onepage' + ])->name('shop.checkout.onepage.index'); + + //Checkout Save Address Form Store + Route::post('/checkout/save-address', 'Webkul\Shop\Http\Controllers\OnepageController@saveAddress')->name('shop.checkout.save-address'); + + //Checkout Save Shipping Address Form Store + Route::post('/checkout/save-shipping', 'Webkul\Shop\Http\Controllers\OnepageController@saveShipping')->name('shop.checkout.save-shipping'); + + //Checkout Save Payment Method Form + Route::post('/checkout/save-payment', 'Webkul\Shop\Http\Controllers\OnepageController@savePayment')->name('shop.checkout.save-payment'); + + //Checkout Save Order + Route::post('/checkout/save-order', 'Webkul\Shop\Http\Controllers\OnepageController@saveOrder')->name('shop.checkout.save-order'); + + //Checkout Order Successfull + Route::get('/checkout/success', 'Webkul\Shop\Http\Controllers\OnepageController@success')->defaults('_config', [ + 'view' => 'shop::checkout.success' + ])->name('shop.checkout.success'); + + //Shop buynow button action + Route::get('buynow/{id}', 'Webkul\Shop\Http\Controllers\CartController@buyNow')->name('shop.product.buynow'); + + //Shop buynow button action + Route::get('move/wishlist/{id}', 'Webkul\Shop\Http\Controllers\CartController@moveToWishlist')->name('shop.movetowishlist'); + + //Show Product Details Page(For individually Viewable Product) + Route::get('/products/{slug}', 'Webkul\Shop\Http\Controllers\ProductController@index')->defaults('_config', [ + 'view' => 'shop::products.view' + ])->name('shop.products.index'); + + // Show Product Review Form + Route::get('/reviews/{slug}', 'Webkul\Shop\Http\Controllers\ReviewController@show')->defaults('_config', [ + 'view' => 'shop::products.reviews.index' + ])->name('shop.reviews.index'); + + // Show Product Review(listing) + Route::get('/product/{slug}/review', 'Webkul\Shop\Http\Controllers\ReviewController@create')->defaults('_config', [ + 'view' => 'shop::products.reviews.create' + ])->name('shop.reviews.create'); + + // Show Product Review Form Store + Route::post('/product/{slug}/review', 'Webkul\Shop\Http\Controllers\ReviewController@store')->defaults('_config', [ + 'redirect' => 'shop.home.index' + ])->name('shop.reviews.store'); + + //customer routes starts here + Route::prefix('customer')->group(function () { + // forgot Password Routes + // Forgot Password Form Show + Route::get('/forgot-password', 'Webkul\Customer\Http\Controllers\ForgotPasswordController@create')->defaults('_config', [ + 'view' => 'shop::customers.signup.forgot-password' + ])->name('customer.forgot-password.create'); + + // Forgot Password Form Store + Route::post('/forgot-password', 'Webkul\Customer\Http\Controllers\ForgotPasswordController@store')->name('customer.forgot-password.store'); + + // Reset Password Form Show + Route::get('/reset-password/{token}', 'Webkul\Customer\Http\Controllers\ResetPasswordController@create')->defaults('_config', [ + 'view' => 'shop::customers.signup.reset-password' + ])->name('customer.reset-password.create'); + + // Reset Password Form Store + Route::post('/reset-password', 'Webkul\Customer\Http\Controllers\ResetPasswordController@store')->defaults('_config', [ + 'redirect' => 'customer.profile.index' + ])->name('customer.reset-password.store'); + + // Login Routes + // showshopafterlogin + // Route::get('login', 'Webkul\Customer\Http\Controllers\SessionController@show')->defaults('_config', [ + // 'view' => 'shop::customers.session.index', + // ])->name('customer.login.index'); + + // Login form show + Route::get('login', 'Webkul\Customer\Http\Controllers\SessionController@show')->defaults('_config', [ + 'view' => 'shop::customers.session.index', + ])->name('customer.session.index'); + + // Login form store + Route::post('login', 'Webkul\Customer\Http\Controllers\SessionController@create')->defaults('_config', [ + 'redirect' => 'customer.profile.index' + ])->name('customer.session.create'); + + // Registration Routes + //registration form show + Route::get('register', 'Webkul\Customer\Http\Controllers\RegistrationController@show')->defaults('_config', [ + 'view' => 'shop::customers.signup.index' + ])->name('customer.register.index'); + + //registration form store + Route::post('register', 'Webkul\Customer\Http\Controllers\RegistrationController@create')->defaults('_config', [ + 'redirect' => 'customer.session.index', + ])->name('customer.register.create'); + + //verify account + Route::get('/verify-account/{token}', 'Webkul\Customer\Http\Controllers\RegistrationController@verifyAccount')->name('customer.verify'); + + //resend verification email + Route::get('/resend/verification/{email}', 'Webkul\Customer\Http\Controllers\RegistrationController@resendVerificationEmail')->name('customer.resend.verification-email'); + + // Auth Routes + Route::group(['middleware' => ['customer']], function () { + + //Customer logout + Route::get('logout', 'Webkul\Customer\Http\Controllers\SessionController@destroy')->defaults('_config', [ + 'redirect' => 'customer.session.index' + ])->name('customer.session.destroy'); + + //Customer Wishlist add + Route::get('wishlist/add/{id}', 'Webkul\Customer\Http\Controllers\WishlistController@add')->name('customer.wishlist.add'); + + //Customer Wishlist remove + Route::get('wishlist/remove/{id}', 'Webkul\Customer\Http\Controllers\WishlistController@remove')->name('customer.wishlist.remove'); + + //Customer Wishlist remove + Route::get('wishlist/removeall', 'Webkul\Customer\Http\Controllers\WishlistController@removeAll')->name('customer.wishlist.removeall'); + + //Customer Wishlist move to cart + Route::get('wishlist/move/{id}', 'Webkul\Customer\Http\Controllers\WishlistController@move')->name('customer.wishlist.move'); + + //customer account + Route::prefix('account')->group(function () { + //Customer Dashboard Route + Route::get('index', 'Webkul\Customer\Http\Controllers\AccountController@index')->defaults('_config', [ + 'view' => 'shop::customers.account.index' + ])->name('customer.account.index'); + + //Customer Profile Show + Route::get('profile', 'Webkul\Customer\Http\Controllers\CustomerController@index')->defaults('_config', [ + 'view' => 'shop::customers.account.profile.index' + ])->name('customer.profile.index'); + + //Customer Profile Edit Form Show + Route::get('profile/edit', 'Webkul\Customer\Http\Controllers\CustomerController@edit')->defaults('_config', [ + 'view' => 'shop::customers.account.profile.edit' + ])->name('customer.profile.edit'); + + //Customer Profile Edit Form Store + Route::post('profile/edit', 'Webkul\Customer\Http\Controllers\CustomerController@update')->defaults('_config', [ + 'redirect' => 'customer.profile.index' + ])->name('customer.profile.edit'); + /* Profile Routes Ends Here */ + + /* Routes for Addresses */ + //Customer Address Show + Route::get('addresses', 'Webkul\Customer\Http\Controllers\AddressController@index')->defaults('_config', [ + 'view' => 'shop::customers.account.address.index' + ])->name('customer.address.index'); + + //Customer Address Create Form Show + Route::get('addresses/create', 'Webkul\Customer\Http\Controllers\AddressController@create')->defaults('_config', [ + 'view' => 'shop::customers.account.address.create' + ])->name('customer.address.create'); + + //Customer Address Create Form Store + Route::post('addresses/create', 'Webkul\Customer\Http\Controllers\AddressController@store')->defaults('_config', [ + 'view' => 'shop::customers.account.address.address', + 'redirect' => 'customer.address.index' + ])->name('customer.address.create'); + + //Customer Address Edit Form Show + Route::get('addresses/edit/{id}', 'Webkul\Customer\Http\Controllers\AddressController@edit')->defaults('_config', [ + 'view' => 'shop::customers.account.address.edit' + ])->name('customer.address.edit'); + + //Customer Address Edit Form Store + Route::put('addresses/edit/{id}', 'Webkul\Customer\Http\Controllers\AddressController@update')->defaults('_config', [ + 'redirect' => 'customer.address.index' + ])->name('customer.address.edit'); + + //Customer Address Make Default + Route::get('addresses/default/{id}', 'Webkul\Customer\Http\Controllers\AddressController@makeDefault')->name('make.default.address'); + + //Customer Address Delete + Route::get('addresses/delete/{id}', 'Webkul\Customer\Http\Controllers\AddressController@destroy')->name('address.delete'); + + /* Wishlist route */ + //Customer wishlist(listing) + Route::get('wishlist', 'Webkul\Customer\Http\Controllers\WishlistController@index')->defaults('_config', [ + 'view' => 'shop::customers.account.wishlist.wishlist' + ])->name('customer.wishlist.index'); + + /* Orders route */ + //Customer orders(listing) + Route::get('orders', 'Webkul\Shop\Http\Controllers\OrderController@index')->defaults('_config', [ + 'view' => 'shop::customers.account.orders.index' + ])->name('customer.orders.index'); + + //Customer orders view summary and status + Route::get('orders/view/{id}', 'Webkul\Shop\Http\Controllers\OrderController@view')->defaults('_config', [ + 'view' => 'shop::customers.account.orders.view' + ])->name('customer.orders.view'); + + //Prints invoice + Route::get('orders/print/{id}', 'Webkul\Shop\Http\Controllers\OrderController@print')->defaults('_config', [ + 'view' => 'shop::customers.account.orders.print' + ])->name('customer.orders.print'); + + /* Reviews route */ + //Customer reviews + Route::get('reviews', 'Webkul\Customer\Http\Controllers\CustomerController@reviews')->defaults('_config', [ + 'view' => 'shop::customers.account.reviews.index' + ])->name('customer.reviews.index'); + + //Customer review delete + Route::get('reviews/delete/{id}', 'Webkul\Shop\Http\Controllers\ReviewController@destroy')->defaults('_config', [ + 'redirect' => 'customer.reviews.index' + ])->name('customer.review.delete'); + + //Customer all review delete + Route::get('reviews/all-delete', 'Webkul\Shop\Http\Controllers\ReviewController@deleteAll')->defaults('_config', [ + 'redirect' => 'customer.reviews.index' + ])->name('customer.review.deleteall'); + }); + }); + }); + //customer routes end here + + Route::fallback('Webkul\Shop\Http\Controllers\HomeController@notFound'); +}); diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Providers/ShowPriceAfterLoginServiceProvider.php b/packages/Webkul/ShowPriceAfterLogin/src/Providers/ShowPriceAfterLoginServiceProvider.php new file mode 100644 index 000000000..9da52468e --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/src/Providers/ShowPriceAfterLoginServiceProvider.php @@ -0,0 +1,52 @@ +loadRoutesFrom(__DIR__ . '/../Http/routes.php'); + + $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'ShowPriceAfterLogin'); + + $this->publishes([ + dirname(__DIR__) . '/Resources/views/Shop/price.blade.php' => base_path('packages/Webkul/Shop/src/Resources/views/products/price.blade.php') + ]); + $this->publishes([ + dirname(__DIR__) . '/Resources/views/Shop/add-to-cart.blade.php' => base_path('packages/Webkul/Shop/src/Resources/views/products/add-to-cart.blade.php') + ]); + $this->publishes([ + dirname(__DIR__) . '/Resources/views/Shop/add-buttons.blade.php' => base_path('packages/Webkul/Shop/src/Resources/views/products/add-buttons.blade.php') + ]); + $this->publishes([ + dirname(__DIR__) . '/Resources/views/Shop/buy-now.blade.php' => base_path('packages/Webkul/Shop/src/Resources/views/products/buy-now.blade.php') + ]); + $this->publishes([ + dirname(__DIR__) . '/Resources/views/Shop/view/product-add.blade.php' => base_path('packages/Webkul/Shop/src/Resources/views/products/view/product-add.blade.php') + ]); + $this->publishes([ + dirname(__DIR__) . '/Resources/views/Shop/review-price.blade.php' => base_path('packages/Webkul/Shop/src/Resources/views/products/review-price.blade.php') + ]); + + } + + /** + * Register services. + * + * @return void + */ + public function register() + { + $this->mergeConfigFrom( + dirname(__DIR__) . '/../Config/system.php', 'core' + ); + } +} diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/lang/en/app.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/lang/en/app.php new file mode 100644 index 000000000..14ae839ce --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/src/Resources/lang/en/app.php @@ -0,0 +1,19 @@ + [ + 'name' => 'Show Price After Login', + 'settings' => 'Settings', + 'toggle' => 'Enable Module', + 'hide-shop-before-login' => 'Hide Shop Before Login', + 'hide-price-buy-cart-guest' => 'Hide Price & Buy/Add-to-Cart For Guest', + 'hide-buy-cart-guest' => 'Hide Buy/Add-to-Cart For Guest', + 'select-function' => 'Select Functional', + 'configure' => 'Configure', + 'configurations' => 'Configuration', + ], + 'products' => [ + 'login-to-view-price' => 'Login To View Price', + 'login-to-buy' => 'Login To Buy' + ] +]; \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/add-buttons.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/add-buttons.blade.php new file mode 100644 index 000000000..26e3a42db --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/add-buttons.blade.php @@ -0,0 +1,71 @@ +@if (Route::currentRouteName() == "shop.products.index") + @include ('shop::products.add-to', ['product' => $product]) +@else + @if(auth()->guard('customer')->check() && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable')) + @if ($product->type == "configurable") +
+ + {{ __('shop::app.products.add-to-cart') }} + + + @include('shop::products.wishlist') +
+ @else +
+
+ @csrf + + + + +
+ + @include('shop::products.wishlist') +
+ @endif + + + + @elseif( + !auth()->guard('customer')->check() + && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable') + && ( + core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction') == "hide-buy-cart-guest") + ) +
+ + {{ __('ShowPriceAfterLogin::app.products.login-to-buy') }} + +
+ @elseif(! auth()->guard('customer')->check() && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable') && core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction') == "hide-price-buy-cart-guest") +
+ + {{ __('ShowPriceAfterLogin::app.products.login-to-view-price') }} + +
+ + @else + @if ($product->type == "configurable") +
+ + {{ __('shop::app.products.add-to-cart') }} + + + @include('shop::products.wishlist') +
+ @else +
+
+ @csrf + + + + +
+ + @include('shop::products.wishlist') +
+ @endif + + @endif +@endif \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/add-to-cart.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/add-to-cart.blade.php new file mode 100755 index 000000000..f4fe91285 --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/add-to-cart.blade.php @@ -0,0 +1,24 @@ +{!! view_render_event('bagisto.shop.products.add_to_cart.before', ['product' => $product]) !!} + +@if(auth()->guard('customer')->check() && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable')) + + + @elseif( + !auth()->guard('customer')->check() + && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable') + && ( + core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction') == "hide-price-buy-cart-guest" + || core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction') == "hide-buy-cart-guest") + ) + + + +@else + + +@endif +{!! view_render_event('bagisto.shop.products.add_to_cart.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/buy-now.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/buy-now.blade.php new file mode 100755 index 000000000..edcfaa261 --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/buy-now.blade.php @@ -0,0 +1,21 @@ +{!! view_render_event('bagisto.shop.products.buy_now.before', ['product' => $product]) !!} + +@if(auth()->guard('customer')->check() && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable')) + + +@elseif( + !auth()->guard('customer')->check() + && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable') + && ( core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction') == "hide-price-buy-cart-guest" + ||core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction') == "hide-buy-cart-guest")) + + +@else + +@endif + +{!! view_render_event('bagisto.shop.products.buy_now.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/price.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/price.blade.php new file mode 100755 index 000000000..29d6087c6 --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/price.blade.php @@ -0,0 +1,66 @@ +{!! view_render_event('bagisto.shop.products.price.before', ['product' => $product]) !!} +
+ @if(auth()->guard('customer')->check() && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable')) + @inject ('priceHelper', 'Webkul\Product\Helpers\Price') + + @if ($product->type == 'configurable') + + {{ __('shop::app.products.price-label') }} + + {{ core()->currency($priceHelper->getMinimalPrice($product)) }} + + @else + + @if ($priceHelper->haveSpecialPrice($product)) + +
+ {{ __('shop::app.products.sale') }} +
+ + {{ core()->currency($product->price) }} + + {{ core()->currency($priceHelper->getSpecialPrice($product)) }} + + @else + + {{ core()->currency($product->price) }} + + @endif + + @endif + + @elseif(!auth()->guard('customer')->check() && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable') && (core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction') == "hide-price-buy-cart-guest")) + + + + @else + @inject ('priceHelper', 'Webkul\Product\Helpers\Price') + + @if ($product->type == 'configurable') + + {{ __('shop::app.products.price-label') }} + + {{ core()->currency($priceHelper->getMinimalPrice($product)) }} + + @else + + @if ($priceHelper->haveSpecialPrice($product)) + +
+ {{ __('shop::app.products.sale') }} +
+ + {{ core()->currency($product->price) }} + + {{ core()->currency($priceHelper->getSpecialPrice($product)) }} + + @else + + {{ core()->currency($product->price) }} + + @endif + + @endif + @endif +
+{!! view_render_event('bagisto.shop.products.price.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/review-price.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/review-price.blade.php new file mode 100644 index 000000000..99e01100c --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/review-price.blade.php @@ -0,0 +1,15 @@ +@if( !(core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable')) ) +
+ @inject ('priceHelper', 'Webkul\Product\Helpers\Price') + + @if ($product->type == 'configurable') + {{ core()->currency($priceHelper->getMinimalPrice($product)) }} + @else + @if ($priceHelper->haveSpecialPrice($product)) + {{ core()->currency($priceHelper->getSpecialPrice($product)) }} + @else + {{ core()->currency($product->price) }} + @endif + @endif +
+@endif \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/view/product-add.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/view/product-add.blade.php new file mode 100644 index 000000000..311a1a73e --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/Shop/view/product-add.blade.php @@ -0,0 +1,28 @@ +{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} + +
+ @include ('shop::products.add-to-cart', ['product' => $product]) + + @include ('shop::products.buy-now') + + @if(! auth()->guard('customer')->check() && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable') && core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction') == "hide-price-buy-cart-guest") + + @elseif( + !auth()->guard('customer')->check() + && core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable') + && ( + core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction') == "hide-buy-cart-guest") + ) + + @endif +
+ +{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/vendor/autoload.php b/packages/Webkul/ShowPriceAfterLogin/vendor/autoload.php new file mode 100644 index 000000000..1426faa9b --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/vendor/autoload.php @@ -0,0 +1,7 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/packages/Webkul/ShowPriceAfterLogin/vendor/composer/LICENSE b/packages/Webkul/ShowPriceAfterLogin/vendor/composer/LICENSE new file mode 100644 index 000000000..f27399a04 --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_classmap.php b/packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_classmap.php new file mode 100644 index 000000000..7a91153b0 --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_classmap.php @@ -0,0 +1,9 @@ + array($baseDir . '/src'), +); diff --git a/packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_real.php b/packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_real.php new file mode 100644 index 000000000..cab3e4106 --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_real.php @@ -0,0 +1,52 @@ += 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitc08d2d3d643454e83806de724f18c074::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_static.php b/packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_static.php new file mode 100644 index 000000000..b451fb80e --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/vendor/composer/autoload_static.php @@ -0,0 +1,31 @@ + + array ( + 'Webkul\\ShowPriceAfterLogin\\' => 27, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'Webkul\\ShowPriceAfterLogin\\' => + array ( + 0 => __DIR__ . '/../..' . '/src', + ), + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitc08d2d3d643454e83806de724f18c074::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitc08d2d3d643454e83806de724f18c074::$prefixDirsPsr4; + + }, null, ClassLoader::class); + } +} diff --git a/packages/Webkul/ShowPriceAfterLogin/webpack.mix.js b/packages/Webkul/ShowPriceAfterLogin/webpack.mix.js new file mode 100644 index 000000000..b57811642 --- /dev/null +++ b/packages/Webkul/ShowPriceAfterLogin/webpack.mix.js @@ -0,0 +1,22 @@ +const { mix } = require("laravel-mix"); +require("laravel-mix-merge-manifest"); + +if (mix.inProduction()) { + var publicPath = 'publishable/assets'; +} else { + var publicPath = "../../../public/vendor/module/assets"; +} + +mix.setPublicPath(publicPath).mergeManifest(); +mix.disableNotifications(); + +mix.js(__dirname + "/src/Resources/assets/js/app.js", 'js/custom_app.js') + .copyDirectory( __dirname + '/src/Resources/assets/images', publicPath + '/images') + .sass(__dirname + "/src/Resources/assets/sass/app.scss", 'css/custom_app.css') + .options({ + processCssUrls: false + }); + +if (mix.inProduction()) { + mix.version(); +} diff --git a/packages/Webkul/StripeConnect/.gitignore b/packages/Webkul/StripeConnect/.gitignore new file mode 100644 index 000000000..6376db975 --- /dev/null +++ b/packages/Webkul/StripeConnect/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/package-lock.json +npm-debug.log \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/composer.json b/packages/Webkul/StripeConnect/composer.json new file mode 100644 index 000000000..ccce67bde --- /dev/null +++ b/packages/Webkul/StripeConnect/composer.json @@ -0,0 +1,25 @@ +{ + "name": "bagisto/laravel-stripe-connect", + "license": "MIT", + "authors": [ + { + "name": "Prashant Singh", + "email": "prashant.singh852@webkul.com" + } + ], + "require": {}, + "autoload": { + "psr-4": { + "Webkul\\StripeConnect\\": "src/" + } + }, + "extra": { + "laravel": { + "providers": [ + "Webkul\\StripeConnect\\Providers\\StripeConnectServiceProdiver" + ], + "aliases": {} + } + }, + "minimum-stability": "dev" +} diff --git a/packages/Webkul/StripeConnect/package.json b/packages/Webkul/StripeConnect/package.json new file mode 100644 index 000000000..2d948db6a --- /dev/null +++ b/packages/Webkul/StripeConnect/package.json @@ -0,0 +1,25 @@ +{ + "private": true, + "scripts": { + "dev": "npm run development", + "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch-poll": "cross-env npm run watch -- --watch-poll --progress", + "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", + "prod": "npm run production", + "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" + }, + "devDependencies": { + "axios": "^0.18", + "cross-env": "^5.1.4", + "laravel-mix": "^2.1", + "laravel-mix-merge-manifest": "^0.1.1", + "jquery": "^3.2", + "vue": "^2.1.10" + }, + "dependencies": { + "vee-validate": "2.0.0-rc.26", + "vue-flatpickr": "^2.3.0", + "vue-slider-component": "^2.7.5" + } +} diff --git a/packages/Webkul/StripeConnect/src/Config/admin-menu.php b/packages/Webkul/StripeConnect/src/Config/admin-menu.php new file mode 100644 index 000000000..7d2364232 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Config/admin-menu.php @@ -0,0 +1,19 @@ + 'stripe', + 'name' => 'STRIPE', + 'route' => 'admin.stripe.seller', + 'sort' => 7, + 'icon-class' => 'stripe-menu-icon', + ], + + [ + 'key' => 'stripe.connect', + 'name' => 'Connect Account', + 'route' => 'admin.stripe.seller', + 'sort' => 1, + 'icon-class' => '', + ] +]; \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Config/paymentmethods.php b/packages/Webkul/StripeConnect/src/Config/paymentmethods.php new file mode 100644 index 000000000..05268dabc --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Config/paymentmethods.php @@ -0,0 +1,11 @@ + [ + 'code' => 'stripe', + 'title' => 'Stripe', + 'description' => 'Stripe Payments', + 'class' => 'Webkul\StripeConnect\Payment\StripePayment', + 'sandbox' => true, + 'active' => true + ] +]; \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Config/system.php b/packages/Webkul/StripeConnect/src/Config/system.php new file mode 100644 index 000000000..95f84c6a4 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Config/system.php @@ -0,0 +1,127 @@ + 'stripe', + 'name' => 'Stripe Connect', + 'sort' => 5 + ], [ + 'key' => 'stripe.connect', + 'name' => 'Connect Account', + 'sort' => 1, + ], [ + 'key' => 'stripe.connect.details', + 'name' => 'Account Details', + 'sort' => 1, + 'fields' => [ + [ + 'name' => 'clientid', + 'title' => 'Client ID', + 'type' => 'text', + 'validation' => 'required', + 'channel_based' => false, + 'locale_based' => false + ] + ] + ], [ + 'key' => 'sales.paymentmethods.stripe', + 'name' => 'Stripe Payments', + 'sort' => 4, + 'fields' => [ + [ + 'name' => 'active', + 'title' => 'Enable For Checkout', + 'type' => 'select', + 'options' => [ + [ + 'title' => 'True', + 'value' => true + ], [ + 'title' => 'False', + 'value' => false + ] + ], + 'validation' => 'required' + ], [ + 'name' => 'title', + 'title' => 'Title', + 'type' => 'text', + 'validation' => 'required', + 'channel_based' => false, + 'locale_based' => true + ], + // [ + // 'name' => 'acceptedchannels', + // 'title' => 'Accpeted Channels', + // 'type' => 'multiselect', + // 'validation' => 'required', + // 'channel_based' => false, + // 'locale_based' => false, + // 'repository' => 'Webkul\Aramex\Repositories\ChannelRepository@getAllChannels' + // ], + [ + 'name' => 'description', + 'title' => 'Description', + 'type' => 'textarea', + 'channel_based' => false, + 'locale_based' => true + ], [ + 'name' => 'enabletesting', + 'title' => 'Enable Testing', + 'type' => 'select', + 'channel_based' => false, + 'locale_based' => true, + 'options' => [ + [ + 'title' => 'Active', + 'value' => true + ], [ + 'title' => 'Inactive', + 'value' => false + ] + ], + 'validation' => 'required' + ], + // [ + // 'name' => 'test_publishable_key', + // 'title' => 'Test Publishable Key', + // 'type' => 'text', + // 'type' => 'text', + // // 'validation' => 'required', + // 'channel_based' => false, + // 'locale_based' => false + // ], [ + // 'name' => 'test_secret_key', + // 'title' => 'Test Secret Key', + // 'type' => 'text', + // 'type' => 'text', + // // 'validation' => 'required', + // 'channel_based' => false, + // 'locale_based' => false + // ], [ + // 'name' => 'live_publishable_key', + // 'title' => 'Live Publishable Key', + // 'type' => 'text', + // 'type' => 'text', + // // 'validation' => 'required', + // 'channel_based' => false, + // 'locale_based' => false + // ], [ + // 'name' => 'live_secret_key', + // 'title' => 'Live Secret Key', + // 'type' => 'text', + // 'type' => 'text', + // // 'validation' => 'required', + // 'channel_based' => false, + // 'locale_based' => false + // ], + [ + 'name' => 'statement_descriptor', + 'title' => 'Statement Descriptor', + 'type' => 'text', + 'type' => 'text', + // 'validation' => 'required' + ] + ] + ] +]; \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Contracts/StripeCart.php b/packages/Webkul/StripeConnect/src/Contracts/StripeCart.php new file mode 100644 index 000000000..4175718e4 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Contracts/StripeCart.php @@ -0,0 +1,7 @@ +increments('id'); + $table->integer('customer_id')->nullable()->unsigned(); + $table->foreign('customer_id')->references('id')->on('customers')->onDelete('cascade'); + $table->string('token'); + $table->boolean('need_new_token')->default(0); + $table->string('last_four')->length(4)->nullable(); + $table->json('misc')->nullable(); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('stripe_cards'); + } +} diff --git a/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_09_152250_create_stripe_companies_table.php b/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_09_152250_create_stripe_companies_table.php new file mode 100644 index 000000000..ea6343626 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_09_152250_create_stripe_companies_table.php @@ -0,0 +1,37 @@ +increments('id'); + $table->string('access_token'); + $table->string('refresh_token'); + $table->string('stripe_publishable_key'); + $table->string('stripe_user_id'); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('stripe_companies'); + } +} diff --git a/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_11_174319_create_stripe_cart_table.php b/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_11_174319_create_stripe_cart_table.php new file mode 100644 index 000000000..f5850aca0 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_11_174319_create_stripe_cart_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->integer('cart_id')->unsigned(); + $table->foreign('cart_id')->references('id')->on('cart')->onDelete('cascade'); + $table->json('stripe_token'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('stripe_cart'); + } +} diff --git a/packages/Webkul/StripeConnect/src/Http/Controllers/Controller.php b/packages/Webkul/StripeConnect/src/Http/Controllers/Controller.php new file mode 100755 index 000000000..d75c0d17a --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Http/Controllers/Controller.php @@ -0,0 +1,12 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class SellerRegistrationController extends Controller +{ + /** + * To hold the StripeConnect Repository Instance + */ + protected $stripeConnect; + + public function __construct(StripeConnect $stripeConnect) + { + $this->stripeConnect = $stripeConnect; + + Stripe::setApiKey(env('STRIPE_TEST_SECRET_KEY')); + } + + public function index() + { + return view('stripe::connect'); + } + + /** + * To process the retrieved token after the seller's onboarding + * on platform account + */ + public function retrieveToken() + { + if (! request()->has('error')) { + $scope = request()->input('scope'); + $code = request()->input('code'); + + $client = new Client(); //GuzzleHttp\Client + $result = $client->post('https://connect.stripe.com/oauth/token', [ + 'auth' => [env('STRIPE_TEST_SECRET_KEY'), ''], + 'form_params' => [ + 'code' => $code, + 'grant_type' => 'authorization_code' + ] + ]); + + $decoded = json_decode($result->getBody()->getContents()); + $access_token = $decoded->access_token; + $refresh_token = $decoded->refresh_token; + $publishable_key = $decoded->stripe_publishable_key; + $stripe_user_id = $decoded->stripe_user_id; + + $result = $this->stripeConnect->create([ + 'access_token' => $access_token, + 'refresh_token' => $refresh_token, + 'stripe_publishable_key' => $publishable_key, + 'stripe_user_id' => $stripe_user_id + ]); + + if ($result) { + session()->flash('success', 'Your Stripe account is successfully integrated with the platform'); + } else { + session()->flash('error', 'There was some problem in onboarding your account'); + } + } else { + session()->flash('error', request()->input('error_description')); + } + + return redirect()->route('admin.stripe.seller'); + } + + public function revokeAccess() + { + $stripeConnectDetails = $this->stripeConnect->findWhere([ + 'company_id' => \Company::getCurrent()->id + ])->first(); + + $client = new Client(); //GuzzleHttp\Client + $result = $client->post('https://connect.stripe.com/oauth/deauthorize', [ + 'auth' => [env('STRIPE_TEST_SECRET_KEY'), ''], + 'form_params' => [ + 'client_id' => core()->getConfigData('stripe.connect.details.clientid'), + 'stripe_user_id' => $stripeConnectDetails->stripe_user_id + ] + ]); + + if ($result->getStatusCode() == 200) { + $stripeConnectDetails->delete(); + + session()->flash('info', 'Your stripe account has been successfully revoked from the platform'); + } else { + session()->flash('error', $result->getBody()); + } + + return redirect()->route('admin.stripe.seller'); + } +} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php b/packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php new file mode 100644 index 000000000..b0d0e7c90 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php @@ -0,0 +1,333 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class StripeConnectController extends Controller +{ + /** + * OrderRepository object + * + * @var array + */ + protected $orderRepository; + + /** + * StripeRepository object + * + * @var array + */ + protected $stripeRepository; + + /** + * To hold the live stripe publishable key + */ + protected $stripeLivePublishableKey = null; + + /** + * To hold the live stripe secret key + */ + protected $stripeLiveSecretKey = null; + + /** + * To hold the Test stripe publishable key + */ + protected $stripeTestPublishableKey = null; + + /** + * To hold the Test stripe secret key + */ + protected $stripeTestSecretKey = null; + + /** + * Determine test mode + */ + protected $testMode; + + /** + * Determine if Stripe is active or Not + */ + protected $active; + + /** + * Statement descriptor string + */ + protected $statementDescriptor; + + /** + * Stripe Cart Repository Instance holder + */ + protected $stripeCart; + + /** + * Stripe Connect Repository Instance holder + */ + protected $stripeConnect; + + /** + * Create a new controller instance. + * + * @param Webkul\Attribute\Repositories\OrderRepository $orderRepository + * @return void + */ + public function __construct(OrderRepository $orderRepository, StripeCart $stripeCart, StripeConnect $stripeConnect) + { + // $this->middleware('auth:super-admin', ['only' => ['storeDetails', 'createDetails', 'editDetails', 'updateDetails']]); + + $this->orderRepository = $orderRepository; + + $this->stripeCart = $stripeCart; + + $this->stripeConnect = $stripeConnect; + + $this->testMode = env('STRIPE_ENABLE_TESTING'); + + $this->stripeTestPublishableKey = env('STRIPE_TEST_PUBLISHABLE_KEY'); + + $this->stripeTestSecretKey = env('STRIPE_TEST_SECRET_KEY'); + + $this->stripeLivePublishableKey = env('STRIPE_LIVE_PUBLISHABLE_KEY'); + + $this->stripeLiveSecretKey = env('STRIPE_LIVE_SECRET_KEY'); + + $this->statementDescriptor = 'null'; + } + + public function collectToken() + { + $data = request()->all(); + + if (auth()->guard('customer')->check()) { + //customer authenticated but using saved card + if(isset($data['useSavedCard'])) { + // session()->put('stripe_card', $data); + $this->stripeCart->create([ + 'cart_id' => \Cart::getCart()->id, + 'stripe_token' => json_encode($data) + ]); + + return response()->json(['success' => 'true']); + //customer authenticated but not using saved card + } else { + $misc = request()->input('stripeReturn'); + + //customer authenticated but opt to remember card + $last4 = null; + if (isset($data['last4'])) { + $stripeToken = $data['stripeToken']; + $last4 = $data['last4']; + + $result = $this->stripeRepository->create([ + 'customer_id' => auth()->guard('customer')->user()->id, + 'token' => $stripeToken, + 'last_four' => $last4, + 'misc' => json_encode($misc) + ]); + + // session()->put(['stripe_card' => $result]); + $this->stripeCart->create([ + 'cart_id' => \Cart::getCart()->id, + 'stripe_token' => json_encode($data) + ]); + + if ($result) { + return response()->json(['success' => 'true']); + } else { + return response()->json(['success' => 'false'], 400); + } + + //customer authenticated but not opting for remembering card + } else { + $stripeCart = $this->stripeCart->findWhere([ + 'cart_id' => Cart::getCart()->id + ]); + + if ($stripeCart->count() == 0) { + $this->stripeCart->create([ + 'cart_id' => \Cart::getCart()->id, + 'stripe_token' => json_encode($data) + ]); + } else { + $stripeCart->first()->update([ + 'stripe_token' => json_encode($data) + ]); + } + } + + return response()->json(['success' => 'true']); + } + } else { + //customer not authenticated + $stripeCart = $this->stripeCart->findWhere([ + 'cart_id' => Cart::getCart()->id + ]); + + if ($stripeCart->count() == 0) { + $this->stripeCart->create([ + 'cart_id' => \Cart::getCart()->id, + 'stripe_token' => json_encode($data) + ]); + } else { + $stripeCart->first()->update([ + 'stripe_token' => json_encode($data) + ]); + } + + + return response()->json(['success' => 'true']); + } + } + + public function createCharge() + { + $stripeConnect = $this->stripeConnect->findWhere([ + 'company_id' => \Company::getCurrent()->id + ]); + + if ($stripeConnect->count()) { + $sellerUserId = $stripeConnect->first()->stripe_user_id; + } else { + session()->flash('error', 'Stripe unavailable for this seller'); + + return false; + } + + if($this->testMode) { + Stripe::setApiKey($this->stripeTestSecretKey); + } else { + Stripe::setApiKey($this->stripeLiveSecretKey); + } + + $stripeCard = $this->stripeCart->findWhere([ + 'cart_id' => Cart::getCart()->id + ])->first()->stripe_token; + + $stripeCard = json_decode($stripeCard); + + if(isset($stripeCard->stripeToken)) { + $stripeToken = $stripeCard->stripeToken; + } else if(isset($stripeCard->useSavedCard)) { + $cardId = $stripeCard->savedCardId; + + $card = $this->stripeRepository->findOneByField('id', $cardId); + + if($card->need_new_token) { + $result = false; + } else { + $stripeToken = $card->token; + + $this->stripeRepository->update(['need_new_token' => 1], $cardId); + } + } else { + $stripeToken = $stripeCard->stripeToken; + } + + try { + $cart = Cart::getCart(); + $applicationFee = $cart->base_grand_total; + $applicationFee = (0.029 * $applicationFee) + (0.02 * $applicationFee) + 0.3; + + if(Cart::getCart()->base_currency_code == 'YEN' ||Cart::getCart()->base_currency_code == 'yen') { + $result = StripeCharge::create ([ + "amount" => Cart::getCart()->base_grand_total, + "currency" => Cart::getCart()->base_currency_code, + "source" => $stripeToken, + "description" => "Purchased ".Cart::getCart()->items_count." items on ".config('app.name'), + 'application_fee_amount' => $applicationFee * 100, + 'statement_descriptor' => $this->statementDescriptor, + ], [ + 'stripe_account' => '{{'.$sellerUserId.'}}' + ]); + } else { + $result = StripeCharge::create ([ + "amount" => round(Cart::getCart()->base_grand_total, 2) * 100, + "currency" => Cart::getCart()->base_currency_code, + "source" => $stripeToken, + "description" => "Purchased ".Cart::getCart()->items_count." items on ".config('app.name'), + 'application_fee_amount' => round($applicationFee, 2) * 100, + 'statement_descriptor' => $this->statementDescriptor, + ], [ + 'stripe_account' => $sellerUserId + ]); + } + + } catch(\Exception $e) { + $result = false; + } + + // catch(\Stripe\Error\Card $e) { + // // Since it's a decline, \Stripe\Error\Card will be caught + // $body = $e->getJsonBody(); + // $err = $body['error']; + + // print('Status is:' . $e->getHttpStatus() . "\n"); + // print('Type is:' . $err['type'] . "\n"); + // print('Code is:' . $err['code'] . "\n"); + // // param is '' in this case + // print('Param is:' . $err['param'] . "\n"); + // print('Message is:' . $err['message'] . "\n"); + // } catch (\Stripe\Error\RateLimit $e) { + // // Too many requests made to the API too quickly + // } catch (\Stripe\Error\InvalidRequest $e) { + // // Invalid parameters were supplied to Stripe's API + // } catch (\Stripe\Error\Authentication $e) { + // // Authentication with Stripe's API failed + // // (maybe you changed API keys recently) + // } catch (\Stripe\Error\ApiConnection $e) { + // // Network communication with Stripe failed + // } catch (\Stripe\Error\Base $e) { + // // Display a very generic error to the user, and maybe send + // // yourself an email + // } catch (Exception $e) { + // // Something else happened, completely unrelated to Stripe + // } + + $this->stripeCart->deleteWhere([ + 'cart_id' => \Cart::getCart()->id + ]); + + if ($result) { + $order = $this->orderRepository->create(Cart::prepareDataForOrder()); + + Cart::deActivateCart(); + + session()->flash('order', $order); + + return redirect()->route('shop.checkout.success'); + } else { + session()->flash('error', trans('stripe::app.payment-failed')); + + return redirect()->route('shop.home.index'); + } + + return redirect()->route('shop.home.index'); + } + + public function deleteCard() + { + $deleteIfFound = $this->stripeRepository->findWhere(['id' => request()->input('id'), 'customer_id' => auth()->guard('customer')->user()->id]); + + $result = $deleteIfFound->first()->delete(); + + return (string)$result; + } +} diff --git a/packages/Webkul/StripeConnect/src/Http/routes.php b/packages/Webkul/StripeConnect/src/Http/routes.php new file mode 100644 index 000000000..f994f47c1 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Http/routes.php @@ -0,0 +1,38 @@ +group(function () { + Route::group(['middleware' => ['admin']], function () { + Route::get('stripe/connect', 'Webkul\StripeConnect\Http\Controllers\SellerRegistrationController@index')->name('admin.stripe.seller'); + + Route::get('stripe/connect/retrieve/token', 'Webkul\StripeConnect\Http\Controllers\SellerRegistrationController@retrieveToken')->name('admin.stripe.retrieve-grant'); + + Route::get('stripe/connect/revoke', 'Webkul\StripeConnect\Http\Controllers\SellerRegistrationController@revokeAccess')->name('admin.stripe.revoke-access'); + }); +}); + +Route::prefix('super')->group(function () { + Route::get('stripe/create', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@createDetails')->name('admin.stripe.create-details'); + + Route::post('stripe/store', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@storeDetails')->name('admin.stripe.store-details'); + + Route::get('stripe/edit', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@editDetails')->name('admin.stripe.edit-details'); + + Route::post('stripe/update', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@updateDetails')->name('admin.stripe.update-details'); +}); + +Route::group(['middleware' => ['web']], function () { +// Route::middleware('web')->group(function () { + Route::prefix('checkout')->group(function () { + Route::get('/stripe', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@collectCard')->defaults('_config', [ + 'view' => 'stripe::checkout.card' + ])->name('stripe.cardcollect'); + + Route::get('/stripe/card/check', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@checkCard')->name('stripe.check.card.unique'); + + Route::get('/stripe/card/delete', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@deleteCard')->name('stripe.delete.saved.cart'); + + Route::post('/sendtoken', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@collectToken')->name('stripe.get.token'); + + Route::get('/create/charge', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@createCharge')->name('stripe.make.payment'); + }); +}); \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Models/StripeCart.php b/packages/Webkul/StripeConnect/src/Models/StripeCart.php new file mode 100644 index 000000000..688fe53ca --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Models/StripeCart.php @@ -0,0 +1,15 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +abstract class Stripe extends Payment +{ + /** + * To hold the stripe live API key + */ + protected $apiKey; + + /** + * To hold the instance of the sku intance of the stripe API + */ + protected $sku; + + /** + * Bank statement descriptor, to hold the statement descriptor value + */ + protected $statementDescriptor; + + /** + * Checkout.js link for payment processing + */ + protected $checkoutLink; + + /** + * To redirect to the stripe payment page + */ + public function getStripeUrl() + { + return route('stripe.make.payment'); + } +} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Payment/StripePayment.php b/packages/Webkul/StripeConnect/src/Payment/StripePayment.php new file mode 100644 index 000000000..7f614cfe2 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Payment/StripePayment.php @@ -0,0 +1,33 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class StripePayment extends Stripe +{ + protected $code = 'stripe'; + + /** + * Get the redirect url for redirecting to + */ + public function getRedirectUrl() + { + return route('stripe.make.payment'); + } + + /** + * Stripe web URL generic getter + * + * @param array $params + * @return string + */ + public function getStripeUrl($params = []) + { + $this->getRedirectUrl(); + } +} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Providers/EventServiceProvider.php b/packages/Webkul/StripeConnect/src/Providers/EventServiceProvider.php new file mode 100644 index 000000000..e1a4a9e4f --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Providers/EventServiceProvider.php @@ -0,0 +1,30 @@ +addTemplate('stripe::checkout.style'); + }); + + Event::listen('bagisto.shop.checkout.payment-method.after', function($viewRenderEventManager){ + $viewRenderEventManager->addTemplate('stripe::checkout.card'); + }); + + Event::listen('bagisto.shop.layout.body.after', function($viewRenderEventManager) { + $viewRenderEventManager->addTemplate('stripe::checkout.card-script'); + }); + } +} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Providers/ModuleServiceProvider.php b/packages/Webkul/StripeConnect/src/Providers/ModuleServiceProvider.php new file mode 100644 index 000000000..33d2ed065 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Providers/ModuleServiceProvider.php @@ -0,0 +1,12 @@ +publishes([ + dirname(__DIR__) . '/Resources/assets/sass/stripe.scss' => base_path('public/vendor/webkul/stripe/assets/css/stripe.css') + ]); + + $this->publishes([ + dirname(__DIR__) . '/Resources/assets/images/' => base_path('public/vendor/webkul/stripe/assets/images/') + ]); + + $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'stripe'); + $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'stripe'); + + $this->app->register(EventServiceProvider::class); + } + + /** + * Register services. + * + * @return void + */ + public function register() + { + $this->registerConfig(); + } + + /** + * Merge the stripe connect's configuration with the admin panel + */ + public function registerConfig() + { + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/admin-menu.php', 'menu.admin' + ); + + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/system.php', 'core' + ); + + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/paymentmethods.php', 'paymentmethods' + ); + } +} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Repositories/StripeCartRepository.php b/packages/Webkul/StripeConnect/src/Repositories/StripeCartRepository.php new file mode 100644 index 000000000..602c9fa7e --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Repositories/StripeCartRepository.php @@ -0,0 +1,24 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class StripeCartRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + function model() + { + return 'Webkul\StripeConnect\Contracts\StripeCart'; + } +} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Repositories/StripeConnectRepository.php b/packages/Webkul/StripeConnect/src/Repositories/StripeConnectRepository.php new file mode 100644 index 000000000..8b5aa05c6 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Repositories/StripeConnectRepository.php @@ -0,0 +1,24 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class StripeConnectRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + function model() + { + return 'Webkul\StripeConnect\Contracts\StripeConnect'; + } +} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/fonts/montserrat-v12-latin-regular.eot b/packages/Webkul/StripeConnect/src/Resources/assets/fonts/montserrat-v12-latin-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..58433f2501c74b37431ed477d1f1b3a0e31e2dec GIT binary patch literal 21800 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 literal 0 HcmV?d00001 diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe-Active.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe-Active.svg new file mode 100644 index 000000000..b85762bac --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe-Active.svg @@ -0,0 +1,15 @@ + + + + Icon-Stripe-Active + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe.svg new file mode 100644 index 000000000..721b1549e --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe.svg @@ -0,0 +1,15 @@ + + + + Icon-Stripe + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy 2.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy 2.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa74190103f77ba048b0c9ceec46b196afc2399 GIT binary patch literal 581 zcmV-L0=oT)P)P zh)JMTROB+FDpH~ZB+Rl6%t{*Q5LbGlqp)|F24_1@c=-MuKvtrC8-*<9>) zyH}P^lH@4|D7q>)EGL4Ii-0W7kXZ&tdtG=!h^r_~)7KdcIsP->P;~E|=eo$K&6|68#H~fcL?sSeA1A7)OJQuu}RQnivv?)iv90 zxA&}FPs`F=F_$a2&%rqr4=`fip3nnC@q@*&#t_ z+NRVHJC4LaVw~cz0(+rt-Vt+V*jVTXoUn$9d#)G`HHy?vgK-^|w`#@iD^@@A?RNXM z2xJ(p1yXi*C~B*r`r4NrsIN0u%|M>O1_A?hA(0EcUn(B3JGuPIggEr|di{f99LFCf zlgY0<(0y8G1ma4ia^x?`ghB^*+BNx?fD5@rP~FY+y{E$p1?HAX^CALv1p2O84~+Z5 z+!BM;NvDC^@Ta@a8v@`90wM?$MH~Z1H9JES5@EnYbO2Vn*-xXJ;c?bQ;Qd+7ad6;z zY*wHP?i|9i!V5tVy@uoEXQc4E^i@33PUj+wd}N-da>vTi`8PeXGrutx`!Dtn4D + + + calender copy 2 + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.png new file mode 100644 index 0000000000000000000000000000000000000000..d7583aaf614e3faad893d2ef6f319557e7692e2b GIT binary patch literal 334 zcmV-U0kQsxP)BSGcxc6R(6ouzM+Lz zR1J>QREgsjiXc){`_AXsPE^K5t|*GqehIMWewJjyFx>YMr9jLS`HXQJfm{LS{07)H z&-1m-kv0evNnp?fb_GGFD;xxVMPM}K6yDBlp_G~zMe*oPDODXFPo-00`9+ZS6vAqwpo^4T)6e#-JdPOvF6(Bn6K=gC6e~>(02+Y>o@$# gj0S#GcGi*h3rCSXU_D_Ly#N3J07*qoM6N<$g7i_7vH$=8 literal 0 HcmV?d00001 diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.svg new file mode 100644 index 000000000..1cc4e9f56 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.svg @@ -0,0 +1,13 @@ + + + + calender copy + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.png new file mode 100644 index 0000000000000000000000000000000000000000..0cd04df06e759a81ff6e4ce427194f7839079b08 GIT binary patch literal 279 zcmV+y0qFjTP)5ztDy0qyhxsR9BZ+&uen~@bqW@252ixJc`!g3`0&22o dLQjTmPv0UbGJ@GWUM~Ou002ovPDHLkV1f+aa;5+P literal 0 HcmV?d00001 diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.svg new file mode 100644 index 000000000..fefe7a424 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.svg @@ -0,0 +1,15 @@ + + + + calender + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.png new file mode 100644 index 0000000000000000000000000000000000000000..db4e51a0f13baec226eb45abb3b0f332f45b528d GIT binary patch literal 275 zcmV+u0qp*XP)G})s=b&slJAin)3b3kp{t4x$Y6jcq6 z7|!SO#h}!l%NR4DzqPhk1S9|)wLEO!AGma?E#*Q8nNuZk!I3{&>uy19B&9QRez<5d z-JBezmp!GF?gY&7+8BOj)wpxJsU~@RGDbFXDw942Paq@7^8@z3_`YE3=bXF57;m)w zT5H%C$@0~E|0sAETLCr>vZk1%Of)o>(_2Jj&8i20_PBFI;6)_$fe3v8Ru0VNnhIs- Z)C({xI7{aNS9JgY002ovPDHLkV1hJ(Zwvqc literal 0 HcmV?d00001 diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.svg new file mode 100644 index 000000000..2a5f8eb6a --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.svg @@ -0,0 +1,13 @@ + + + + card + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2629266e8995924849578622653eb309ed650c38 GIT binary patch literal 690 zcmV;j0!{siP)JLZ z!9T%2!IOtx%%Msz9<_*iD0(spNoc5uhFYs)B($3`W}R;~v+Qm+iAhSygJs^E_ujYP z%)EJ{RIAlR%d&FU*5ho;`WvB+D1}17&SWyuCMEY#=)wW*d_G3U^@&cFVv-$@_20~< zCmZ%2C>OJ%Na(w%7(M;6LuxRfn~h+I%L#_A>*m>aY7V+1oEzD$t$?O<6^lg*Tcz~( zrSj{}4DBq;h@4`VtpX>#8ZSNG)dIp(V=BzOgfWt+3!DOW#`gOq<$xN^pDs&wQ- z)Kx`P0zlh*b*ZQW-1iblHr>W^ag9FQND24#)lGV}Z3%s3;C%fL&A_LmelR$%tVXzCZRd8jS|kYBhGH6s5-(rz1B{ zMtg<(e9t#`>E7BldOhaD?tm{o#9$hBVi3XrK|J#C<3R``_ZDAZSf_yRKZRGymp_7j`U2gV5T~CLQ)Xqh69hUBzpMZZL=-9(j0X(G3O>#3PUA;2TER YKh%5#z4|8UG5`Po07*qoM6N<$f@hjQx&QzG literal 0 HcmV?d00001 diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.svg new file mode 100644 index 000000000..922694293 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.svg @@ -0,0 +1,16 @@ + + + + check-1 + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close-icon.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close-icon.svg new file mode 100644 index 000000000..e8b45b1e6 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close-icon.svg @@ -0,0 +1,13 @@ + + + + calender copy 2 + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close.svg new file mode 100644 index 000000000..73345683f --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close.svg @@ -0,0 +1,11 @@ + + + + close + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/cross-icon.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/cross-icon.svg new file mode 100755 index 000000000..cf00c5a56 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/cross-icon.svg @@ -0,0 +1,16 @@ + + + + Icon-Cross + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/logo.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1b9be03cbc4b3902fdeb9cbdeaac1aa389af7adf GIT binary patch literal 2316 zcmV+n3G?=eP)?eeu$+Rg=uv0 za)T-S_CP&1%5g%g6(zOw$mpx4uxpnj3IwbP64Kq04Yj5Mz`e7zj~*) zAWR_yfiQZGq9mrlutl9sHIx}&#S?YIdc=${gO7IS{el%jHVJw@yfK?HS|*r^%o7-0 zUX;Ok->=T1wrzrb*uWOOU`ANio8HZ!uAQyEbBB~uy`M>lxS<6T(r8eh6jL&3Q5Ajt zqo5VkH%qF{xFJcm$<^Q>o7^vj>v}|_XGxZF10*> z0K*bVY$zIp4mXlu#HG$1EG#N(8qHyeMo{is7{uq3+38%&jU4?lm=kmx7F6b%M&azm zU|REVUNRSPOgJZk0{0|>w!F#BV>ImR)7Qq~}daLzbwrcucM`s>-##+O{1Ue7{H+Y-()S2%s z)ttgh0ZHegb+x8W*&o-?L`$}yhYmscuT{{I69Kb4c|;3RB@KB`ms4GE{bcIyUY1E6 z+XY|qCe!#4on^VX$b+8EnK6S?Y0b7eX2V2-SFRW8{f(46ME&}MN|z2k+OafCZbq|L zR@27alJ|m^%^4=cQiQD{7!TLEYpUtfU3!C}E<;)5p)4c9P(cFrLyGCT#Aj?maapmb(OB2D`(gu42v>VlCCl??yjliDxRY=I9S3W z40L3(eV*U|O56fvonW!Ywn^o^MW!QP!#aZ%;42HN%{EvWs#Xj*=)zViR+cic?N)5P zVrA+?T4&B(YM_EC)?O{PJ=nR3XprsYf;a7h8gq|Vl%tHG2&yu`#h!3DQaXdZmOf*x zqdhcM1+(xJHfPw`C8Wa!q$u}b22Kp3CR@c>DAwXKi9r&Z=L?H#WR>8? zxGX{7nmH~_X49{~U!!Axt6zvrS#`T06N9C=xxm`lkYNH{;2QFVHL01N>WZfa8w4^T zScW^>R63&zSmKd^+>ujviz~s=D|fh;mi% zgxux~3shoblwX*qegb4YxsLN%nGie?L}l`pw=yEEZo5rP5Ra?pj1F}VnOg#xn<~!e z5Q_)@rkcO;06^EL2aE<84;T*^4FVdrH)A|tGze(e-i*-zW7`>*^>n-1vL35Pa^^j- zcQP%UXnk2XWoZ@d*r)$Em-QoGW9?^LXH25e`)1>_W(Eodi!ykS#gpRJeXraka|1W; z`nTR92;gCV0y^=cxB&Cv)O0GIlR-Y8{qqwB1Z2>GZak=2f$7xVN2On6Q@U(b z1`PXjQFOR4Kb7{c&8Aja&fV`&esG}FPh;Pz zBEN9dlx`d+ZC{dUd>d^4j8f%X;oM5vci1w}yIT^inr8iplS)_QojxC+L6a)XgEYoZ zHeO__r>84-^_dQ?PWhJetrV>ZWTxuM_4V_v^fl#;TzIHy^FfW5zOOLbDjByPN4jJ*t94r%_ znd_b*5&L*ndf2>#4FadH7(l7?c`K94*F58}3xFpoKDm{38yXtv`B{1&@rb1)TY)L7>(_PR zQ|^;BST8c-(v1QI_F)@+xFMbt8e?!vjxz?y+BReAwr}e$@Zs(}KB0mxmD|6)aO+f4 z^xEWL9p!!&pE?(y!N#MFudBk5BQW6_-_A1EkJ9Z7f@*9YFe+3Go(GHvj0OP>+nX^S mFd76jY;VSRz-SQAu>S|bITyZ9+q=2|0000 + + + logo + Created with Sketch. + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/master.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/master.svg new file mode 100644 index 000000000..5930b2dce --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/master.svg @@ -0,0 +1,16 @@ + + + + master + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/mastro.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/mastro.svg new file mode 100644 index 000000000..593985c89 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/mastro.svg @@ -0,0 +1,14 @@ + + + + mastro + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/pci.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/pci.svg new file mode 100644 index 000000000..bbe13319e --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/pci.svg @@ -0,0 +1,14 @@ + + + + pci + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/stripe-logo.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/stripe-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c86ee507bfeeb733b742105b4138732c163bcc60 GIT binary patch literal 34204 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 literal 0 HcmV?d00001 diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/successful.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/successful.png new file mode 100644 index 0000000000000000000000000000000000000000..538b665432daab0b57adbb5f385cc136e2be645d GIT binary patch literal 3206 zcmV;140-d3P)8HA>qwq+#9y z{RlR;YHVp5gNfoF2LGwnNK8{&V{1({LV+DDA&s_v)wF8n0fokbTB+6wLTw7zEQa0f z%shX;`{vHPH}7NKn~!DjCd+&G>)hWx@7{CIJ?9J}&8bv)L-tw^HWx?dO9dyo(pyt1 z6usG)cVcLfGLlhGw`h}~djIDya9g!Ki#mno(d@!!#4fzkT&5Vju9TLnQ<_ex z@Y!&BrU7exGq+c-aC_D$nC`lfUHGTTi)mOdNb=$(pxfKScl-MJu=r|fnYad|9t*1- zrUwQL6okQyD6_45+#0TpG|BtDOg{k0;C-{n$36{#q2lb=c7aO6P(vWlz*A5vYN;<4Iq=Qafd^xW-pj%S01$93}Q}QIy;w;`~`MxjSXq zjzeKYf@QY#7qP9c1S?Qdx?_QVdxo{L3u9r$fwEHJJ~?>Tg@JO6emGbdQ*wBCwj8-X z-)NEM>oj@^q~kMgmJIA9m8?HzFpX+z8qOweAvY;`8yvUN9V)i`_87>Wi_D+0Fl1(AK$O{QPqX&1Hz%9;zz zVE96#&2@?LuMEH6-;SFrZQ5&X@psvO=RDcJ<|=<-Ob#nGy0$*Yh$bcLh!zQ+>gat_ zD*PMm=6c$SQ4lx_5ZHIL>OfN^OT8wp%X9+R|4!E@!6qOLqJc zDOYb1RsEbe0v@X|$;v8OR{VK0x%Bycs|#8p?zJ|g@9gQ}Y|81CWLy97lm=eIIb&OY zN6WJ~C>95LbXuTS<=9clO`k7Ie{v$4966Cx^hZ-kR>Kt@xj1=%b^1Ay!SJ^tAg}z! z0k9+TB=vXgO|H%%?vi?@H)CP(p2B294xie12X9{p3=jb&YZta`s7BK5lVp%>cIZ z(MCbc8$pGwuQZ<{iahALGc8$XMe++}XzQ`4w!U)1DN(0upJSD;K5fRfDw0*6Ps$ln zY)^LLsk_fw8yuEr2bJo{N@RdXX$dY!YWL%#r=>qLM;4E`CV*~(D_J&3PM4wL$C8oe zO@YYk%6_tLk*%o5kzPO*YxD?mrcu{;FfKVT)FK?qd~}yV2n&r zauhhONi2&vVcw}7=UV{t8jgm`8$4*|O>cEvJUW#>)RVY)sl265+}>ISbXn$5i;OXi z1wRunJ>|1ljMFYo^+}S>*fmH@$7lOsa~D4t%9fMI$9gL8h`oc~C2VL#pk;RpxXXAesU_FMLs73XHT$cnnuO=_;%3O9 zMfmfq-E+YeGgk^mUX^sB4b--NW$JqJ)VD|LWF+kxGpN~p6Q}UCkqtYoAdqtTWy#Iy zizS6m#Wgdxr8*ExC8p8~Wa;DYMYn``Wv{iaVWW(0*3#bzyq_2&V>SxKo!~yCQ2x-$gsI?K2M+63}dhB?NG8?@|pE=#mK)x zflqcJkBjl@7BC9NXrzpKRA$ZFAPXNEPXi@6W3&Zy40;EB2QW@&bGORU9no&YG$?x2 zmWOhsj61wstWSa5v=#9Y1`Qys8KYfKXI^yWhT1Fr>ZYE#pc=Tk`$qL?)IpGnvs^PM zKjV67p}oX2hT06bOgrw2?oO>c)U-^*rHCttTZ}qwL<(n&D^w3bsLn*c_0Rzxjp%=V z7Q5cyEfCW0LP!sU3F#nXjFU^$8JVUopE5$V+n<0!ddz`U-kG5rC6a2FJz^DJqLZw3B3XBJMG zXK)=^)An_Q;bye_W^+q&I@pA~V4TPKlng`4t(Mn~Ww-RE8d6PRGZ6CBrw>SJO+UAt*$M@f57>6@WjmuByzzUJmJ$q*j943=PMH3KFF zi>ul`X`1QB<0{;9BR@RLL9E!54G zeE!27+hxrleCi8nbvM>#^cFK)rW<;QckHz9v?q^`{}tWd#tOX%D@F&!Zq#(>^XO)Z zTR~G{g?Q)MnEOWZq+xbo=ofu7N_`a^d&t|TYwz9_M53K)s@($ChzSn)l`ppxf1alW zXVdS}y9L0|@%?Ve6rQ6ef0WKSbME9pEj7#z+)~mIqa-!%6W-nk)eyy>Hm{lTu9Cn6 zA_^$bmpJbz){s7s?suCCmlZ zN%fM;d*1!0RhvSG@)R@|s9gv4XZaE0{ESlPvZ=QU+D4Pl8GCJ;BwIkxjB} z;Nf#-L}yUnzC#b-4!8-LHe4d`8D%neN68THRKnidXN;E`6*s9q3??no#q=}?Jbg}n zYtOcvyG8B*6Yj&Ra80s2b|v#bbZnm&bo_gF7~>s-O49z}8}a4t0^pVUo@DCvPvz9_ zz%=|fF!CC{=n?!-@RUsSjn?f!jL`0z=!ZLFHdf?9&;hfZkKnR + + + successful + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/visa.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/visa.svg new file mode 100644 index 000000000..9286d752e --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/visa.svg @@ -0,0 +1,17 @@ + + + + visa + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/sass/stripe.scss b/packages/Webkul/StripeConnect/src/Resources/assets/sass/stripe.scss new file mode 100644 index 000000000..d7d6c68c3 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/assets/sass/stripe.scss @@ -0,0 +1,141 @@ +.stripe-close-icon { + width: 24px; + height: 24px; + background-image: url("../images/icons/close-icon.svg"); + position: absolute; + top: 5px; + right: 5px; +} + +.stripe-menu-icon { + background-image: url("../images/icons/Icon-Stripe.svg"); +} + +.stripe-menu-icon.active { + background-image: url("../images/icons/Icon-Stripe-Active.svg"); +} + +#stripe-pay-button label { + display: inline; + color: #ffffff; +} + + +.more-payment-icons { + text-align: center; + margin-top: 15px; + + .visa-icon { + width: 45px; + height: 28px; + background-image: url("../images/icons/visa.svg"); + padding-left: 32px; + } + + .master-icon { + width: 45px; + height: 28px; + background-image: url("../images/icons/master.svg"); + padding-left: 32px; + } + + .mastro-icon { + width: 45px; + height: 28px; + background-image: url("../images/icons/mastro.svg"); + padding-left: 32px; + } + + .pci-icon { + width: 45px; + height: 28px; + background-image: url("../images/icons/pci.svg"); + padding-left: 32px; + } +} +.add-card { + display: none; +} + +.stripe-cards { + // position: relative; +} + +.stripe-block-modal { + top: 120px; + left: calc(50% - 222px) !important; + display: block; + position: fixed; + z-index: 11; + width: 450px; + background: #FFFFFF; + border: 1px solid #979797; + box-shadow: 0 11px 23px 6px rgba(0,0,0,0.28); + border-radius: 5px; + margin-left: 0px !important; + + + + .stripe-title { + padding-bottom: 20px; + padding-top: 20px; + text-align: center; + } +} + +.stripe-form-content { + padding-top: 30px; + padding-bottom: 10px; + + .stripe-fields { + .control-group { + margin-bottom: 10px; + } + } + + .btn.btn-primary.btn-lg { + width: 100%; + } +} + +.stripe-errors { + margin-bottom: 10px; + color: #FF5252 +} + +.stripe-block-modal.close { + display: none; +} + +.card-info { + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-start; + font-size: 16px; + + .radio-container { + padding-left: 28px; + } + + span.icon { + width: 35px; + height:32px; + } + + span.card-last-four, a#edit-card, a#delete-card { + font-style: normal; + } + + span.card-last-four, a#edit-card { + margin-right: 14px; + } +} + +.stripe-cards-block { + display: none; +} + +.payment-icon { + width: 25px; +} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/lang/en/app.php b/packages/Webkul/StripeConnect/src/Resources/lang/en/app.php new file mode 100644 index 000000000..e34a0a5bc --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/lang/en/app.php @@ -0,0 +1,19 @@ + 'Name on Card', + 'expirymonth' => 'Expiration Month', + 'expiryyear' => 'Expiration Year', + 'cvc' => 'CVC', + 'cardno' => 'Card Number', + 'paynow' => 'Pay Now', + 'errors-in-fields' => 'Please correct the errors and try + again', + 'add-card' => 'Pay With New Card', + 'remember-card' => 'Remember Card', + 'pay' => 'Pay', + 'payment-failed' => 'Error! Payment Cannot Be Done', + 'payment-success' => 'Success! Payment Done', + 'click-continue' => 'Click continue to proceed further', + 'some-error' => 'Some error occurred' +]; \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php new file mode 100644 index 000000000..dbaa30682 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php @@ -0,0 +1,290 @@ +@if(request()->is('checkout/onepage')) + + + + + + +@endif \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/checkout/card.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/checkout/card.blade.php new file mode 100644 index 000000000..9a8595108 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/views/checkout/card.blade.php @@ -0,0 +1,19 @@ +@if($payment['method'] == "stripe") + @include('stripe::components.add-card') +
+
+ + + + + +
+ +
+ + @include('stripe::components.stripe-form') + +
+
+
+@endif \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/checkout/style.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/checkout/style.blade.php new file mode 100644 index 000000000..758c26a06 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/views/checkout/style.blade.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/components/add-card.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/components/add-card.blade.php new file mode 100644 index 000000000..460d66e85 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/views/components/add-card.blade.php @@ -0,0 +1,7 @@ +
diff --git a/packages/Webkul/StripeConnect/src/Resources/views/components/saved-cards.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/components/saved-cards.blade.php new file mode 100644 index 000000000..94afacd3b --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/views/components/saved-cards.blade.php @@ -0,0 +1,31 @@ +@php + $cards = collect(); + + if(auth()->guard('customer')->check()) { + $customer_id = auth()->guard('customer')->user()->id; + + $cards = app('Webkul\Stripe\Repositories\StripeRepository')->findWhere(['customer_id' => $customer_id]); + } +@endphp + +@if(auth()->guard('customer')->check()) +
+
+ @foreach($cards as $card) + @if(!$card->need_new_token) +
+ + + + *** *** {{ $card->last_four }} + {{-- Edit --}} + Delete +
+ @endif + @endforeach +
+
+@endif \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/components/stripe-form.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/components/stripe-form.blade.php new file mode 100644 index 000000000..ad0656dd8 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/views/components/stripe-form.blade.php @@ -0,0 +1,53 @@ +
+
+
+
+ + + +
+
+ +
+
+ + + + + {{-- @if(auth()->guard('customer')->check()) +
+ + + + {{ __('stripe::app.remember-card') }} + +
+ @endif --}} + + +
+
+
+ +
+ + + + + + + + + + + + + + + +
+
\ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/connect.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/connect.blade.php new file mode 100644 index 000000000..31e6b5a19 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/views/connect.blade.php @@ -0,0 +1,35 @@ +@extends('admin::layouts.content') + +@section('page_title') + Connect Stripe Account +@stop + +@section('content') +
+ + +
+ @if (core()->getConfigData('stripe.connect.details.clientid') != null) + @inject('stripeConnect', 'Webkul\StripeConnect\Repositories\StripeConnectRepository') + + @if($stripeConnect->findWhere(['company_id' => \Company::getCurrent()->id])->count() == 0) + Connect Stripe + @else + Revoke Your Stripe Account's Access + @endif + @else + + Please provide your stripe client ID to connect your account with the platform. +

+ Click here +
+ @endif +
+
+@stop \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/super-admin/create.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/super-admin/create.blade.php new file mode 100644 index 000000000..6d749705d --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/views/super-admin/create.blade.php @@ -0,0 +1,91 @@ +@extends('saas::companies.layouts.master') + +@section('page_title') + Add Stripe Details +@stop + +@section('content-wrapper') +
+
+ + +
+ +
+ @csrf() +
+ + + @{{ errors.first('title') }} +
+ +
+ + + @{{ errors.first('description') }} +
+ +
+ + + @{{ errors.first('enable_on_checkout') }} +
+ +
+ + + @{{ errors.first('enable_testing') }} +
+ +
+ + + @{{ errors.first('test_publishable_key') }} +
+
+ + + @{{ errors.first('test_secret_key') }} +
+ +
+ + + @{{ errors.first('live_publishable_key') }} +
+
+ + + @{{ errors.first('live_secret_key') }} +
+
+
+
+
+@stop \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/super-admin/edit.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/super-admin/edit.blade.php new file mode 100644 index 000000000..b81e34211 --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/views/super-admin/edit.blade.php @@ -0,0 +1,85 @@ +@extends('saas::companies.layouts.master') + +@section('page_title') + Update Stripe Details +@stop + +@section('content-wrapper') +
+
+ + +
+ +
+ @csrf() +
+ + + @{{ errors.first('title') }} +
+ +
+ + + @{{ errors.first('description') }} +
+ +
+ + + @{{ errors.first('enable_on_checkout') }} +
+ +
+ + + @{{ errors.first('enable_testing') }} +
+ +
+ + + @{{ errors.first('test_publishable_key') }} +
+
+ + + @{{ errors.first('test_secret_key') }} +
+ +
+ + + @{{ errors.first('live_publishable_key') }} +
+
+ + + @{{ errors.first('live_secret_key') }} +
+
+
+
+
+@stop \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/webpack.mix.js b/packages/Webkul/StripeConnect/webpack.mix.js new file mode 100644 index 000000000..009882bc1 --- /dev/null +++ b/packages/Webkul/StripeConnect/webpack.mix.js @@ -0,0 +1,19 @@ +const { mix } = require("laravel-mix"); +require("laravel-mix-merge-manifest"); + +// var publicPath = 'publishable/assets'; +var publicPath = "../../../public/vendor/webkul/stripe/assets"; + +mix.setPublicPath(publicPath).mergeManifest(); +mix.disableNotifications(); + + mix.copy(__dirname + "/src/Resources/assets/images", publicPath + "/images/") + .copy(__dirname + "/src/Resources/assets/fonts", publicPath + "/fonts/") + .sass(__dirname + "/src/Resources/assets/sass/stripe.scss", "css/stripe.css") + .options({ + processCssUrls: false + }); + +if (mix.inProduction()) { + mix.version(); +} \ No newline at end of file diff --git a/resources/views/vendor/admin/customers/groups/create.blade.php b/resources/views/vendor/admin/customers/groups/create.blade.php new file mode 100644 index 000000000..7b6624eb0 --- /dev/null +++ b/resources/views/vendor/admin/customers/groups/create.blade.php @@ -0,0 +1,211 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.customers.groups.add-title') }} +@stop + +@section('content') +
+
+ + + +
+
+ @csrf() + + +
+ +
+ + + @{{ errors.first('name') }} +
+ +
+
+ + +
+ + + +
+
+ +
+
+ +
+
+@stop + +@push('scripts') + + + + +@endpush \ No newline at end of file diff --git a/resources/views/vendor/admin/customers/groups/edit.blade.php b/resources/views/vendor/admin/customers/groups/edit.blade.php new file mode 100644 index 000000000..6671b9b39 --- /dev/null +++ b/resources/views/vendor/admin/customers/groups/edit.blade.php @@ -0,0 +1,227 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.customers.groups.edit-title') }} +@stop + +@section('content') +
+
+ + + +
+ +
+ @csrf() + + + + +
+ +
+ + + @{{ errors.first('name') }} +
+ +
+ +
+ + +
+ + + +
+
+
+
+
+
+@stop + +@push('scripts') + + + + +@endpush \ No newline at end of file diff --git a/resources/views/vendor/admin/sales/orders/index.blade.php b/resources/views/vendor/admin/sales/orders/index.blade.php new file mode 100644 index 000000000..630e22919 --- /dev/null +++ b/resources/views/vendor/admin/sales/orders/index.blade.php @@ -0,0 +1,42 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.sales.orders.title') }} +@stop + +@section('content') +
+ + +
+ @inject('orderGrid', 'Webkul\SAASPreOrder\DataGrids\Admin\Order') + + {!! $orderGrid->render() !!} +
+
+ + +

{{ __('admin::app.export.download') }}

+
+ +
+
+ +@stop + +@push('scripts') + @include('admin::export.export', ['gridName' => $orderGrid]) +@endpush \ No newline at end of file diff --git a/resources/views/vendor/admin/sales/orders/view.blade.php b/resources/views/vendor/admin/sales/orders/view.blade.php new file mode 100644 index 000000000..adc395d8f --- /dev/null +++ b/resources/views/vendor/admin/sales/orders/view.blade.php @@ -0,0 +1,503 @@ +@extends('admin::layouts.master') + +@section('page_title') + {{ __('admin::app.sales.orders.view-title', ['order_id' => $order->id]) }} +@stop + +@section('content-wrapper') + +
+ + + +
+ + + +
+ + havePreOrderItems($order->id); + ?> + + @if ($havePreOrderItems) +
{{ __('preorder::app.admin.sales.orders.preorder-summary') }}
+ @endif + + +
+ +
+
+ {{ __('admin::app.sales.orders.order-info') }} +
+ +
+
+ + {{ __('admin::app.sales.orders.order-date') }} + + + + {{ $order->created_at }} + +
+ +
+ + {{ __('admin::app.sales.orders.order-status') }} + + + + {{ $order->status_label }} + +
+ +
+ + {{ __('admin::app.sales.orders.channel') }} + + + + {{ $order->channel_name }} + +
+
+
+ +
+
+ {{ __('admin::app.sales.orders.account-info') }} +
+ +
+
+ + {{ __('admin::app.sales.orders.customer-name') }} + + + + {{ $order->customer_full_name }} + +
+ +
+ + {{ __('admin::app.sales.orders.email') }} + + + + {{ $order->customer_email }} + +
+ + @if (! is_null($order->customer)) +
+ + {{ __('admin::app.customers.customers.customer_group') }} + + + + {{ $order->customer->group['name'] }} + +
+ @endif +
+
+ +
+
+ + +
+ +
+
+ {{ __('admin::app.sales.orders.billing-address') }} +
+ +
+ + @include ('admin::sales.address', ['address' => $order->billing_address]) + +
+
+ + @if ($order->shipping_address) +
+
+ {{ __('admin::app.sales.orders.shipping-address') }} +
+ +
+ + @include ('admin::sales.address', ['address' => $order->shipping_address]) + +
+
+ @endif + +
+
+ + +
+ +
+
+ {{ __('admin::app.sales.orders.payment-info') }} +
+ +
+
+ + {{ __('admin::app.sales.orders.payment-method') }} + + + + {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }} + +
+ +
+ + {{ __('admin::app.sales.orders.currency') }} + + + + {{ $order->order_currency_code }} + +
+
+
+ +
+
+ {{ __('admin::app.sales.orders.shipping-info') }} +
+ +
+
+ + {{ __('admin::app.sales.orders.shipping-method') }} + + + + {{ $order->shipping_title }} + +
+ +
+ + {{ __('admin::app.sales.orders.shipping-price') }} + + + + {{ core()->formatBasePrice($order->base_shipping_amount) }} + +
+
+
+
+
+ + +
+ +
+ + + + + + + + + + + @if ($order->base_discount_amount > 0) + + @endif + + + + + + + @foreach ($order->items as $item) + + + + + + + + + + + + + + + + @if ($order->base_discount_amount > 0) + + @endif + + + + @endforeach +
{{ __('admin::app.sales.orders.SKU') }}{{ __('admin::app.sales.orders.product-name') }}{{ __('admin::app.sales.orders.price') }}{{ __('admin::app.sales.orders.item-status') }}{{ __('admin::app.sales.orders.subtotal') }}{{ __('admin::app.sales.orders.tax-percent') }}{{ __('admin::app.sales.orders.tax-amount') }}{{ __('admin::app.sales.orders.discount-amount') }}{{ __('admin::app.sales.orders.grand-total') }}
+ {{ $item->type == 'configurable' ? $item->child->sku : $item->sku }} + + {{ $item->name }} + + @if ($html = $item->getOptionDetailHtml()) +

{{ $html }}

+ @endif + + @if ($preOrderItem = $preOrderItemRepository->findOneByField('order_item_id', $item->id)) +
+ type == 'configurable')style="margin-top: 0"@endif> + {{ __('preorder::app.admin.sales.orders.preorder-information') }} + + + + {{ __('preorder::app.admin.sales.orders.type') }} + + {{ $preOrderItem->type_label }} + + + + {{ __('preorder::app.admin.sales.orders.status') }} + + {{ $preOrderItem->status_label }} + + + @if ($preOrderItem->payment_order_item) + + {{ __('preorder::app.admin.sales.orders.payment-order') }} + + + #{{ $preOrderItem->payment_order_item->order_id }} + + + @endif +
+ @elseif ($preOrderItem = app('Webkul\SAASPreOrder\Repositories\PreOrderItemRepository')->findOneByField('payment_order_item_id', $item->id)) +
+ type == 'configurable')style="margin-top: 0"@endif> + {{ __('preorder::app.admin.sales.orders.preorder-payment-information') }} + + + + {{ __('preorder::app.admin.sales.orders.reference-order') }} + + + #{{ $preOrderItem->order_id }} + + +
+ @endif +
{{ core()->formatBasePrice($item->base_price) }} + + {{ $item->qty_ordered ? __('admin::app.sales.orders.item-ordered', ['qty_ordered' => $item->qty_ordered]) : '' }} + + + + {{ $item->qty_invoiced ? __('admin::app.sales.orders.item-invoice', ['qty_invoiced' => $item->qty_invoiced]) : '' }} + + + + {{ $item->qty_shipped ? __('admin::app.sales.orders.item-shipped', ['qty_shipped' => $item->qty_shipped]) : '' }} + + + + {{ $item->qty_canceled ? __('admin::app.sales.orders.item-canceled', ['qty_canceled' => $item->qty_canceled]) : '' }} + + {{ core()->formatBasePrice($item->base_total) }}{{ $item->tax_percent }}%{{ core()->formatBasePrice($item->base_tax_amount) }}{{ core()->formatBasePrice($item->base_discount_amount) }} + {{ core()->formatBasePrice($item->base_total + $item->base_tax_amount) }} +
+
+ + + + + + + + + + + + + + + @if ($order->base_discount_amount > 0) + + + + + + @endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{ __('admin::app.sales.orders.subtotal') }}-{{ core()->formatBasePrice($order->base_sub_total) }}
{{ __('admin::app.sales.orders.shipping-handling') }}-{{ core()->formatBasePrice($order->base_shipping_amount) }}
{{ __('admin::app.sales.orders.discount') }}--{{ core()->formatBasePrice($order->base_discount_amount) }}
{{ __('admin::app.sales.orders.tax') }}-{{ core()->formatBasePrice($order->base_tax_amount) }}
{{ __('admin::app.sales.orders.grand-total') }}-{{ core()->formatBasePrice($order->base_grand_total) }}
{{ __('admin::app.sales.orders.total-paid') }}-{{ core()->formatBasePrice($order->base_grand_total_invoiced) }}
{{ __('admin::app.sales.orders.total-refunded') }}-{{ core()->formatBasePrice($order->base_grand_total_refunded) }}
{{ __('admin::app.sales.orders.total-due') }}-{{ core()->formatBasePrice($order->base_total_due) }}
+ +
+
+ +
+
+ + + +
+ + + + + + + + + + + + + + + + @foreach ($order->invoices as $invoice) + + + + + + + + + + @endforeach + + @if (! $order->invoices->count()) + + + + @endif +
{{ __('admin::app.sales.invoices.id') }}{{ __('admin::app.sales.invoices.date') }}{{ __('admin::app.sales.invoices.order-id') }}{{ __('admin::app.sales.invoices.customer-name') }}{{ __('admin::app.sales.invoices.status') }}{{ __('admin::app.sales.invoices.amount') }}{{ __('admin::app.sales.invoices.action') }}
#{{ $invoice->id }}{{ $invoice->created_at }}#{{ $invoice->order->id }}{{ $invoice->address->name }}{{ $invoice->status_label }}{{ core()->formatBasePrice($invoice->base_grand_total) }} + + + +
{{ __('admin::app.common.no-result-found') }}
+
+ +
+ + + +
+ + + + + + + + + + + + + + + + @foreach ($order->shipments as $shipment) + + + + + + + + + + @endforeach + + @if (! $order->shipments->count()) + + + + @endif +
{{ __('admin::app.sales.shipments.id') }}{{ __('admin::app.sales.shipments.date') }}{{ __('admin::app.sales.shipments.order-id') }}{{ __('admin::app.sales.shipments.order-date') }}{{ __('admin::app.sales.shipments.customer-name') }}{{ __('admin::app.sales.shipments.total-qty') }}{{ __('admin::app.sales.shipments.action') }}
#{{ $shipment->id }}{{ $shipment->created_at }}#{{ $shipment->order->id }}{{ $shipment->order->created_at }}{{ $shipment->address->name }}{{ $shipment->total_qty }} + + + +
{{ __('admin::app.common.no-result-found') }}
+
+ +
+
+
+ +
+@stop \ No newline at end of file diff --git a/resources/views/vendor/shop/customers/account/orders/view.blade.php b/resources/views/vendor/shop/customers/account/orders/view.blade.php new file mode 100644 index 000000000..020760917 --- /dev/null +++ b/resources/views/vendor/shop/customers/account/orders/view.blade.php @@ -0,0 +1,414 @@ +@extends('shop::layouts.master') + +@section('page_title') + {{ __('shop::app.customer.account.order.view.page-tile', ['order_id' => $order->id]) }} +@endsection + +@push('css') + +@endpush + +@section('content-wrapper') + + + +@endsection \ No newline at end of file diff --git a/resources/views/vendor/shop/layouts/footer/footer.blade.php b/resources/views/vendor/shop/layouts/footer/footer.blade.php new file mode 100644 index 000000000..2f8532d59 --- /dev/null +++ b/resources/views/vendor/shop/layouts/footer/footer.blade.php @@ -0,0 +1,94 @@ + diff --git a/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php b/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php new file mode 100644 index 000000000..e65090536 --- /dev/null +++ b/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php @@ -0,0 +1,137 @@ +{!! view_render_event('bagisto.shop.layout.header.category.before') !!} + +getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) { + if ($category->slug) + array_push($categories, $category); +} + +?> + + + +{!! view_render_event('bagisto.shop.layout.header.category.after') !!} + + +@push('scripts') + + + + + + + + + + + +@endpush \ No newline at end of file diff --git a/resources/views/vendor/shop/products/add-buttons.blade.php b/resources/views/vendor/shop/products/add-buttons.blade.php new file mode 100644 index 000000000..76d0a7409 --- /dev/null +++ b/resources/views/vendor/shop/products/add-buttons.blade.php @@ -0,0 +1,36 @@ +@if ($product->type != "configurable" && $product->totalQuantity() < 1 && $product->allow_preorder) + @if (core()->getConfigData('preorder.settings.general.percent')) + @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') +

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

+ @endif + @else +

{{ __('preorder::app.shop.products.nothing-to-pay') }}

+ @endif +@endif + +@if ($product->type == "configurable") +
+ + {{ __('shop::app.products.add-to-cart') }} + + + @include('shop::products.wishlist') +
+@else +
+
+ @csrf + + + + + @if ($product->totalQuantity() < 1 && $product->allow_preorder) + + @else + + @endif +
+ + @include('shop::products.wishlist') +
+@endif \ No newline at end of file diff --git a/resources/views/vendor/shop/products/index.blade.php b/resources/views/vendor/shop/products/index.blade.php new file mode 100644 index 000000000..347e23722 --- /dev/null +++ b/resources/views/vendor/shop/products/index.blade.php @@ -0,0 +1,128 @@ +@extends('shop::layouts.master') + +@section('page_title') + {{ $category->meta_title ?? $category->name }} +@stop + +@section('seo') + + +@stop + +@section('content-wrapper') + @inject ('productRepository', 'Webkul\Product\Repositories\ProductRepository') + +
+ {!! view_render_event('bagisto.shop.products.index.before', ['category' => $category]) !!} + +
+ + @if (in_array($category->display_mode, [null, 'products_only', 'products_and_description'])) + @include ('shop::products.list.layered-navigation') + @endif + +
display_mode == 'description_only') style="width: 100%" @endif> +
+ @if (!is_null($category->image)) + + @endif +
+ + @if (in_array($category->display_mode, [null, 'description_only', 'products_and_description'])) + @if ($category->description) +
+ {!! $category->description !!} +
+ @endif + @endif + + @if (in_array($category->display_mode, [null, 'products_only', 'products_and_description'])) + getAll($category->id); ?> + + @if ($products->count()) + + @include ('shop::products.list.toolbar') + + @inject ('toolbarHelper', 'Webkul\Product\Helpers\Toolbar') + + @if ($toolbarHelper->getCurrentMode() == 'grid') +
+ @foreach ($products as $productFlat) + + @include ('shop::products.list.card', ['product' => $productFlat]) + + @endforeach +
+ @else +
+ @foreach ($products as $productFlat) + + @include ('shop::products.list.card', ['product' => $productFlat]) + + @endforeach +
+ @endif + + {!! view_render_event('bagisto.shop.products.index.pagination.before', ['category' => $category]) !!} + +
+ {{ $products->appends(request()->input())->links() }} +
+ + {!! view_render_event('bagisto.shop.products.index.pagination.after', ['category' => $category]) !!} + + @else + +
+

{{ __('shop::app.products.whoops') }}

+ +

+ {{ __('shop::app.products.empty') }} +

+
+ + @endif + @endif +
+
+ + {!! view_render_event('bagisto.shop.products.index.after', ['category' => $category]) !!} +
+@stop + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/vendor/shop/products/view/product-add.blade.php b/resources/views/vendor/shop/products/view/product-add.blade.php new file mode 100644 index 000000000..63f46f323 --- /dev/null +++ b/resources/views/vendor/shop/products/view/product-add.blade.php @@ -0,0 +1,21 @@ +{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} + +
+ @if ($product->type != 'configurable') + @if ($product->totalQuantity() < 1 && $product->allow_preorder) + + @else + @include ('shop::products.add-to-cart', ['product' => $product]) + + @include ('shop::products.buy-now') + @endif + @else + @include ('shop::products.add-to-cart', ['product' => $product]) + + @include ('shop::products.buy-now') + @endif +
+ +{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} \ No newline at end of file From 0fb24ce32031616c419300dac6674aa5c4bedf3b Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 22 Jun 2019 10:59:15 +0530 Subject: [PATCH 002/172] Preorder made compatible with SAAS module --- .../Http/Controllers/CompanyController.php | 24 ++- .../Middleware/RedirectIfNotSuperAdmin.php | 26 +++ .../SAASCustomizerServiceProvider.php | 3 + .../views/companies/auth/register.blade.php | 181 +++++++++++------- .../views/companies/auth/step-one.blade.php | 34 ++++ .../views/companies/company/edit.blade.php | 2 +- .../Webkul/SAASCustomizer/src/Routes/web.php | 6 + ...er.php => SAASPreorderServiceProvider.php} | 21 ++ 8 files changed, 231 insertions(+), 66 deletions(-) create mode 100755 packages/Webkul/SAASCustomizer/src/Http/Middleware/RedirectIfNotSuperAdmin.php create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/step-one.blade.php rename packages/Webkul/SAASPreOrder/src/Providers/{PreorderServiceProvider.php => SAASPreorderServiceProvider.php} (80%) diff --git a/packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php b/packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php index 64826d1dc..664813c10 100644 --- a/packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php +++ b/packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php @@ -176,6 +176,28 @@ class CompanyController extends Controller } } + public function validateStepOne() + { + $this->validate(request(),[ + 'email' => 'required|email|unique:admins,email' + ]); + } + + public function validateStepTwo() + { + $this->validate(request(),[ + 'email' => 'required|email|unique:admins,email', + 'password' => 'required|min:6|confirmed' + ]); + } + + public function validateStepThree() + { + $this->validate(request(),[ + 'email' => 'required|email|unique:admins,email' + ]); + } + public function edit($id) { $company = $this->company->findOrFail($id); @@ -186,7 +208,7 @@ class CompanyController extends Controller public function update($id) { $this->validate(request(), [ - 'email' => 'required|email|max:191|unique:companies,email,'.$id, + 'email' => 'email|max:191|unique:companies,email,'.$id, 'name' => 'required|string|max:191|unique:companies,name,'.$id, 'domain' => 'required|string|max:191|unique:companies,domain,'.$id, 'is_active' => 'required|boolean' diff --git a/packages/Webkul/SAASCustomizer/src/Http/Middleware/RedirectIfNotSuperAdmin.php b/packages/Webkul/SAASCustomizer/src/Http/Middleware/RedirectIfNotSuperAdmin.php new file mode 100755 index 000000000..556040263 --- /dev/null +++ b/packages/Webkul/SAASCustomizer/src/Http/Middleware/RedirectIfNotSuperAdmin.php @@ -0,0 +1,26 @@ +check()) { + return redirect()->route('customer.session.index'); + } + + return $next($request); + } +} diff --git a/packages/Webkul/SAASCustomizer/src/Providers/SAASCustomizerServiceProvider.php b/packages/Webkul/SAASCustomizer/src/Providers/SAASCustomizerServiceProvider.php index 558a3a6a5..e5f02fcde 100644 --- a/packages/Webkul/SAASCustomizer/src/Providers/SAASCustomizerServiceProvider.php +++ b/packages/Webkul/SAASCustomizer/src/Providers/SAASCustomizerServiceProvider.php @@ -8,6 +8,7 @@ use Illuminate\Foundation\AliasLoader; use Webkul\SAASCustomizer\Providers\EventServiceProvider; use Webkul\Sales\Providers\ModuleServiceProvider; use Webkul\SAASCustomizer\Company; +use Webkul\SAASCustomizer\Http\Middleware\RedirectIfNotSuperAdmin; use Illuminate\Contracts\Debug\ExceptionHandler; use Webkul\SAASCustomizer\Exceptions\Handler; use Webkul\SAASCustomizer\Facades\Company as CompanyFacade; @@ -29,6 +30,8 @@ class SAASCustomizerServiceProvider extends ServiceProvider $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'saas'); + $router->aliasMiddleware('super-admin', RedirectIfNotSuperAdmin::class); + //over ride system's default validation $this->registerPresenceVerifier(); diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php index cd5bc7320..23e1dfed6 100644 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php +++ b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php @@ -8,7 +8,7 @@ @push('scripts') - - - - - - - - - -@endpush \ No newline at end of file diff --git a/resources/views/vendor/shop/products/add-buttons.blade.php b/resources/views/vendor/shop/products/add-buttons.blade.php deleted file mode 100644 index 76d0a7409..000000000 --- a/resources/views/vendor/shop/products/add-buttons.blade.php +++ /dev/null @@ -1,36 +0,0 @@ -@if ($product->type != "configurable" && $product->totalQuantity() < 1 && $product->allow_preorder) - @if (core()->getConfigData('preorder.settings.general.percent')) - @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') -

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

- @endif - @else -

{{ __('preorder::app.shop.products.nothing-to-pay') }}

- @endif -@endif - -@if ($product->type == "configurable") -
- - {{ __('shop::app.products.add-to-cart') }} - - - @include('shop::products.wishlist') -
-@else -
-
- @csrf - - - - - @if ($product->totalQuantity() < 1 && $product->allow_preorder) - - @else - - @endif -
- - @include('shop::products.wishlist') -
-@endif \ No newline at end of file diff --git a/resources/views/vendor/shop/products/index.blade.php b/resources/views/vendor/shop/products/index.blade.php deleted file mode 100644 index 347e23722..000000000 --- a/resources/views/vendor/shop/products/index.blade.php +++ /dev/null @@ -1,128 +0,0 @@ -@extends('shop::layouts.master') - -@section('page_title') - {{ $category->meta_title ?? $category->name }} -@stop - -@section('seo') - - -@stop - -@section('content-wrapper') - @inject ('productRepository', 'Webkul\Product\Repositories\ProductRepository') - -
- {!! view_render_event('bagisto.shop.products.index.before', ['category' => $category]) !!} - -
- - @if (in_array($category->display_mode, [null, 'products_only', 'products_and_description'])) - @include ('shop::products.list.layered-navigation') - @endif - -
display_mode == 'description_only') style="width: 100%" @endif> -
- @if (!is_null($category->image)) - - @endif -
- - @if (in_array($category->display_mode, [null, 'description_only', 'products_and_description'])) - @if ($category->description) -
- {!! $category->description !!} -
- @endif - @endif - - @if (in_array($category->display_mode, [null, 'products_only', 'products_and_description'])) - getAll($category->id); ?> - - @if ($products->count()) - - @include ('shop::products.list.toolbar') - - @inject ('toolbarHelper', 'Webkul\Product\Helpers\Toolbar') - - @if ($toolbarHelper->getCurrentMode() == 'grid') -
- @foreach ($products as $productFlat) - - @include ('shop::products.list.card', ['product' => $productFlat]) - - @endforeach -
- @else -
- @foreach ($products as $productFlat) - - @include ('shop::products.list.card', ['product' => $productFlat]) - - @endforeach -
- @endif - - {!! view_render_event('bagisto.shop.products.index.pagination.before', ['category' => $category]) !!} - -
- {{ $products->appends(request()->input())->links() }} -
- - {!! view_render_event('bagisto.shop.products.index.pagination.after', ['category' => $category]) !!} - - @else - -
-

{{ __('shop::app.products.whoops') }}

- -

- {{ __('shop::app.products.empty') }} -

-
- - @endif - @endif -
-
- - {!! view_render_event('bagisto.shop.products.index.after', ['category' => $category]) !!} -
-@stop - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/resources/views/vendor/shop/products/view/product-add.blade.php b/resources/views/vendor/shop/products/view/product-add.blade.php deleted file mode 100644 index 63f46f323..000000000 --- a/resources/views/vendor/shop/products/view/product-add.blade.php +++ /dev/null @@ -1,21 +0,0 @@ -{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} - -
- @if ($product->type != 'configurable') - @if ($product->totalQuantity() < 1 && $product->allow_preorder) - - @else - @include ('shop::products.add-to-cart', ['product' => $product]) - - @include ('shop::products.buy-now') - @endif - @else - @include ('shop::products.add-to-cart', ['product' => $product]) - - @include ('shop::products.buy-now') - @endif -
- -{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} \ No newline at end of file From 7fd812225106ac481ab2bab9bdc796b2188059d3 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 24 Jun 2019 17:10:33 +0530 Subject: [PATCH 023/172] Fixed issue with preorder --- .../SAASPreOrder/src/Listeners/Cart.php | 43 ++++++++++++++----- .../shop/products/view/product-add.blade.php | 8 ++-- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/packages/Webkul/SAASPreOrder/src/Listeners/Cart.php b/packages/Webkul/SAASPreOrder/src/Listeners/Cart.php index edfbf1d8b..65b9c64ec 100644 --- a/packages/Webkul/SAASPreOrder/src/Listeners/Cart.php +++ b/packages/Webkul/SAASPreOrder/src/Listeners/Cart.php @@ -41,7 +41,7 @@ class Cart * * @param Webkul\Product\Helpers\Price $priceHelper * @param Webkul\Product\Repositories\ProductRepository $productRepository - * @param Webkul\SAASPreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository + * @param Webkul\PreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository * @return void */ public function __construct( @@ -67,8 +67,12 @@ class Cart $data = request()->all(); if (! isset($data['pre_order_payment'])) { - if ($this->haveCompletePreorderProduct($productId)) - throw new \Exception('Product can not be added with preorder payment.'); + if ($this->haveCompletePreorderProduct($productId)) { + // throw new \Exception('Product can not be added with preorder payment.'); + session()->flash('warnging', 'Product can not be added with preorder payment.'); + + return; + } $product = $this->productRepository->find($productId); @@ -98,16 +102,26 @@ class Cart $quantity = $data['quantity']; } - if ($product->preorder_qty && $product->preorder_qty < $quantity) - throw new \Exception('Requested quantity not available for preorder.'); + if ($product->preorder_qty && $product->preorder_qty < $quantity) { + // throw new \Exception('Requested quantity not available for preorder.'); + session()->flash('warning', 'Requested quantity not available for preorder.'); + + return; + } } else { if ($cart = CartFacade::getCart()) { $cartItem = $cart->items()->where('product_id', $productId)->first(); if ($cartItem) { - throw new \Exception('Invalid quantity for complete preorder payment.'); + session()->flash('warning', 'Invalid quantity for complete preorder payment.'); + + return; + // throw new \Exception('Invalid quantity for complete preorder payment.'); } else { - throw new \Exception('Preorder payment can not be added with other product.'); + session()->flash('warning', 'Preorder payment can not be added with other product.'); + + return; + // throw new \Exception('Preorder payment can not be added with other product.'); } } } @@ -136,8 +150,13 @@ class Cart */ public function cartItemUpdateBefore($item) { - if (isset($item->additional['pre_order_payment'])) - throw new \Exception('Preoder payment qunatity can not be updated.'); + if (isset($item->additional['pre_order_payment'])) { + // throw new \Exception('Preoder payment qunatity can not be updated.'); + + session()->flash('warning', 'Preoder payment qunatity can not be updated.'); + + return; + } $quantities = request()->get('qty'); @@ -147,7 +166,11 @@ class Cart return; if ($product->preorder_qty && $product->preorder_qty < $quantities[$item->id]) - throw new \Exception('Requested quantity not available for preorder.'); + // throw new \Exception('Requested quantity not available for preorder.'); + + session()->flash('warning', 'Requested quantity not available for preorder.'); + + return; } /** diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/view/product-add.blade.php b/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/view/product-add.blade.php index 1fdcd2136..1903ae6ba 100644 --- a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/view/product-add.blade.php +++ b/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/view/product-add.blade.php @@ -16,11 +16,9 @@ @include ('shop::products.buy-now') - @if ($product->totalQuantity() < 1 && $product->allow_preorder) - - @endif + @endif From a7d1c5e51886364310f966060d5174c7f94274cb Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 24 Jun 2019 18:25:47 +0530 Subject: [PATCH 024/172] PreOrder fixes --- .../AdminAuthCheck/src/Providers/EventServiceProvider.php | 6 +++++- .../src/Repositories/CategoryRepository.php | 2 +- .../src/Observers/Customer/CustomerObserver.php | 1 + .../Webkul/SAASPreOrder/src/DataGrids/Admin/PreOrder.php | 3 ++- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php b/packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php index 001909f5e..b399e71be 100644 --- a/packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php +++ b/packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php @@ -13,8 +13,12 @@ class EventServiceProvider extends ServiceProvider * @var array */ protected $listen = [ + // 'Illuminate\Auth\Events\Attempting' => [ + // 'Webkul\AdminAuthCheck\Listeners\LoginAuthenticationAttempt' + // ], // make use of this to stop admins logging into other sites + 'Illuminate\Auth\Events\Authenticated' => [ 'Webkul\AdminAuthCheck\Listeners\LoginAuthenticationAttempt' - ], // make use of this to stop admins logging into other sites + ] ]; } \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php b/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php index fb433dedd..bd4231c72 100644 --- a/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php +++ b/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php @@ -108,4 +108,4 @@ class CategoryRepository extends BaseCategoryRepository return $parentCategories; } -} \ No newline at end of file +} diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php index da4047acd..a97bbb32c 100755 --- a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php +++ b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php @@ -11,6 +11,7 @@ class CustomerObserver public function creating(Customer $model) { if (! auth()->guard('super-admin')->check()) { + $model->status = 1; $model->company_id = Company::getCurrent()->id; } } diff --git a/packages/Webkul/SAASPreOrder/src/DataGrids/Admin/PreOrder.php b/packages/Webkul/SAASPreOrder/src/DataGrids/Admin/PreOrder.php index c6cc9b3a5..bb3697aac 100644 --- a/packages/Webkul/SAASPreOrder/src/DataGrids/Admin/PreOrder.php +++ b/packages/Webkul/SAASPreOrder/src/DataGrids/Admin/PreOrder.php @@ -26,7 +26,8 @@ class PreOrder extends DataGrid ->addSelect('pre_order_items.id', 'pre_order_items.order_id', 'order_items.name as product_name', 'orders.customer_email', 'order_item_id', 'preorder_type', 'pre_order_items.status', 'base_paid_amount', 'pre_order_items.email_sent', 'base_remaining_amount', 'payment_order_items.order_id as payment_order_id') ->addSelect(DB::raw('CONCAT(orders.customer_first_name, " ", orders.customer_last_name) as customer_name')); - $this->addFilter('order_id', 'pre_order_items.order_id'); + $this->addFilter('id', 'pre_order_items.id'); + $this->addFilter('status', 'pre_order_items.status'); $this->addFilter('payment_order_id', 'payment_order_items.order_id'); $this->addFilter('product_name', 'order_items.name'); $this->addFilter('customer_name', DB::raw('CONCAT(orders.customer_first_name, " ", orders.customer_last_name)')); From cc649c83dab1425f3589be43541f6c74dfbc4ee9 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 24 Jun 2019 18:47:29 +0530 Subject: [PATCH 025/172] Fixed customer group category --- .../src/Repositories/CategoryRepository.php | 2 +- packages/Webkul/SAASCustomizer/src/Models/Category/Category.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php b/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php index bd4231c72..fb433dedd 100644 --- a/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php +++ b/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php @@ -108,4 +108,4 @@ class CategoryRepository extends BaseCategoryRepository return $parentCategories; } -} +} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php b/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php index e3b637609..5b6ee05df 100755 --- a/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php +++ b/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php @@ -22,7 +22,7 @@ class Category extends BaseModel if (auth()->guard('super-admin')->check() || ! isset($company->id)) { return new QueryBuilder($query); } else { - return new QueryBuilder($query->where('company_id', $company->id)); + return new QueryBuilder($query->where('categories' . '.company_id', $company->id)); } } } \ No newline at end of file From b7b8cde76ba598c6650338695e3f17e738479b56 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 24 Jun 2019 18:49:42 +0530 Subject: [PATCH 026/172] Published new customer group catalog files --- .../shop/layouts/footer/footer.blade.php | 94 ++++++++++++ .../layouts/header/nav-menu/navmenu.blade.php | 137 ++++++++++++++++++ .../vendor/shop/products/index.blade.php | 128 ++++++++++++++++ 3 files changed, 359 insertions(+) create mode 100644 resources/views/vendor/shop/layouts/footer/footer.blade.php create mode 100644 resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php create mode 100644 resources/views/vendor/shop/products/index.blade.php diff --git a/resources/views/vendor/shop/layouts/footer/footer.blade.php b/resources/views/vendor/shop/layouts/footer/footer.blade.php new file mode 100644 index 000000000..2f8532d59 --- /dev/null +++ b/resources/views/vendor/shop/layouts/footer/footer.blade.php @@ -0,0 +1,94 @@ + diff --git a/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php b/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php new file mode 100644 index 000000000..e65090536 --- /dev/null +++ b/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php @@ -0,0 +1,137 @@ +{!! view_render_event('bagisto.shop.layout.header.category.before') !!} + +getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) { + if ($category->slug) + array_push($categories, $category); +} + +?> + + + +{!! view_render_event('bagisto.shop.layout.header.category.after') !!} + + +@push('scripts') + + + + + + + + + + + +@endpush \ No newline at end of file diff --git a/resources/views/vendor/shop/products/index.blade.php b/resources/views/vendor/shop/products/index.blade.php new file mode 100644 index 000000000..347e23722 --- /dev/null +++ b/resources/views/vendor/shop/products/index.blade.php @@ -0,0 +1,128 @@ +@extends('shop::layouts.master') + +@section('page_title') + {{ $category->meta_title ?? $category->name }} +@stop + +@section('seo') + + +@stop + +@section('content-wrapper') + @inject ('productRepository', 'Webkul\Product\Repositories\ProductRepository') + +
+ {!! view_render_event('bagisto.shop.products.index.before', ['category' => $category]) !!} + +
+ + @if (in_array($category->display_mode, [null, 'products_only', 'products_and_description'])) + @include ('shop::products.list.layered-navigation') + @endif + +
display_mode == 'description_only') style="width: 100%" @endif> +
+ @if (!is_null($category->image)) + + @endif +
+ + @if (in_array($category->display_mode, [null, 'description_only', 'products_and_description'])) + @if ($category->description) +
+ {!! $category->description !!} +
+ @endif + @endif + + @if (in_array($category->display_mode, [null, 'products_only', 'products_and_description'])) + getAll($category->id); ?> + + @if ($products->count()) + + @include ('shop::products.list.toolbar') + + @inject ('toolbarHelper', 'Webkul\Product\Helpers\Toolbar') + + @if ($toolbarHelper->getCurrentMode() == 'grid') +
+ @foreach ($products as $productFlat) + + @include ('shop::products.list.card', ['product' => $productFlat]) + + @endforeach +
+ @else +
+ @foreach ($products as $productFlat) + + @include ('shop::products.list.card', ['product' => $productFlat]) + + @endforeach +
+ @endif + + {!! view_render_event('bagisto.shop.products.index.pagination.before', ['category' => $category]) !!} + +
+ {{ $products->appends(request()->input())->links() }} +
+ + {!! view_render_event('bagisto.shop.products.index.pagination.after', ['category' => $category]) !!} + + @else + +
+

{{ __('shop::app.products.whoops') }}

+ +

+ {{ __('shop::app.products.empty') }} +

+
+ + @endif + @endif +
+
+ + {!! view_render_event('bagisto.shop.products.index.after', ['category' => $category]) !!} +
+@stop + +@push('scripts') + +@endpush \ No newline at end of file From 35c84027494ab215a53eaab5c53c441e2371ccc8 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 24 Jun 2019 18:52:45 +0530 Subject: [PATCH 027/172] Store front files published according to new customer group categoru --- .../views/layouts/footer/footer.blade.php | 138 +++++++++--------- .../layouts/header/nav-menu/navmenu.blade.php | 4 +- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/packages/Webkul/Shop/src/Resources/views/layouts/footer/footer.blade.php b/packages/Webkul/Shop/src/Resources/views/layouts/footer/footer.blade.php index 4eb458ef2..42be174e7 100755 --- a/packages/Webkul/Shop/src/Resources/views/layouts/footer/footer.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/layouts/footer/footer.blade.php @@ -1,94 +1,94 @@ -{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} \ No newline at end of file +{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/orders/view.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/orders/view.blade.php index 04299ffdc..fa5901a6b 100755 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/orders/view.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/orders/view.blade.php @@ -4,6 +4,10 @@ {{ __('shop::app.customer.account.order.view.page-tile', ['order_id' => $order->id]) }} @endsection +@push('css') + +@endpush + @section('content-wrapper') - @if(core()->getConfigData('stripe.connect.details.stripefees') == 'customer') + @if(core()->getConfigData('stripe.connect.details.stripefees') == 'customer' && $cart->payment->method == 'stripe')
@php $applicationFee = $cart->base_grand_total; @@ -57,7 +57,11 @@
diff --git a/packages/Webkul/StripeConnect/src/Resources/lang/en/app.php b/packages/Webkul/StripeConnect/src/Resources/lang/en/app.php index 81912e672..84d4b5471 100644 --- a/packages/Webkul/StripeConnect/src/Resources/lang/en/app.php +++ b/packages/Webkul/StripeConnect/src/Resources/lang/en/app.php @@ -17,5 +17,6 @@ return [ 'click-continue' => 'Click continue to proceed further', 'some-error' => 'Some error occurred', 'transaction-fee' => 'Transaction Fees', - 'more-info' => '(after successful order)' + 'more-info' => '(after successful order)', + 'continue' => 'Please click on continue to complete your transaction' ]; \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php index 3f420fa30..22b77436f 100644 --- a/packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php +++ b/packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php @@ -177,6 +177,8 @@ return false; } else { stripeTokenHandler(result.token); + + alert('{{__('stripe::app.continue')}}'); } }); }); diff --git a/packages/Webkul/StripeConnect/src/Resources/views/components/continue.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/components/continue.blade.php new file mode 100644 index 000000000..4c1ff61ea --- /dev/null +++ b/packages/Webkul/StripeConnect/src/Resources/views/components/continue.blade.php @@ -0,0 +1,3 @@ +
+ All set, please click continue to complete your transaction. +
\ No newline at end of file From d164178609291d5a145005b8ba679f8cb603f3a4 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 29 Jun 2019 14:52:15 +0530 Subject: [PATCH 049/172] Fixed a stripe transaction fee view bug in shop bundle --- .../Shop/src/Resources/views/checkout/total/summary.blade.php | 4 ++-- .../src/Resources/views/components/continue.blade.php | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/components/continue.blade.php diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php index 0ca864439..addb6f82a 100755 --- a/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php @@ -36,7 +36,7 @@
- @if(core()->getConfigData('stripe.connect.details.stripefees') == 'customer' && $cart->payment->method == 'stripe') + @if(core()->getConfigData('stripe.connect.details.stripefees') == 'customer' && isset($cart->payment) && $cart->payment->method == 'stripe')
@php $applicationFee = $cart->base_grand_total; @@ -57,7 +57,7 @@
- {!! app('Webkul\SAASPreOrder\DataGrids\Admin\PreOrder')->render() !!} + {!! app('Webkul\PreOrder\DataGrids\Admin\PreOrder')->render() !!}
diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/index.blade.php b/packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/index.blade.php similarity index 91% rename from packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/index.blade.php rename to packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/index.blade.php index 630e22919..fde3254d3 100644 --- a/packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/index.blade.php +++ b/packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/index.blade.php @@ -22,8 +22,8 @@
- @inject('orderGrid', 'Webkul\SAASPreOrder\DataGrids\Admin\Order') - + @inject('orderGrid', 'Webkul\PreOrder\DataGrids\Admin\Order') + {!! $orderGrid->render() !!}
diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/view.blade.php b/packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/view.blade.php similarity index 98% rename from packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/view.blade.php rename to packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/view.blade.php index bbff2b87a..065ec8bd8 100644 --- a/packages/Webkul/SAASPreOrder/src/Resources/views/admin/sales/orders/view.blade.php +++ b/packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/view.blade.php @@ -31,7 +31,7 @@ @endif - @if ($order->canShip() && ! app('Webkul\SAASPreOrder\Repositories\PreOrderItemRepository')->resetScope()->isPreOrderPaymentOrder($order->id)) + @if ($order->canShip() && ! app('Webkul\PreOrder\Repositories\PreOrderItemRepository')->resetScope()->isPreOrderPaymentOrder($order->id)) {{ __('admin::app.sales.orders.shipment-btn-title') }} @@ -46,7 +46,7 @@
havePreOrderItems($order->id); ?> @@ -296,7 +296,7 @@ @endif
- @elseif ($preOrderItem = app('Webkul\SAASPreOrder\Repositories\PreOrderItemRepository')->findOneByField('payment_order_item_id', $item->id)) + @elseif ($preOrderItem = app('Webkul\PreOrder\Repositories\PreOrderItemRepository')->findOneByField('payment_order_item_id', $item->id))
type == 'configurable')style="margin-top: 0"@endif> {{ __('preorder::app.admin.sales.orders.preorder-payment-information') }} diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/emails/in-stock.blade.php b/packages/Webkul/PreOrder/src/Resources/views/emails/in-stock.blade.php similarity index 100% rename from packages/Webkul/SAASPreOrder/src/Resources/views/emails/in-stock.blade.php rename to packages/Webkul/PreOrder/src/Resources/views/emails/in-stock.blade.php diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php b/packages/Webkul/PreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php similarity index 99% rename from packages/Webkul/SAASPreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php rename to packages/Webkul/PreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php index a5a1b8764..9e3483e70 100644 --- a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php +++ b/packages/Webkul/PreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php @@ -31,7 +31,7 @@ havePreOrderItems($order->id); ?> @@ -114,7 +114,7 @@ @endif
- @elseif ($preOrderItem = app('Webkul\SAASPreOrder\Repositories\PreOrderItemRepository')->resetScope()->findOneByField('payment_order_item_id', $item->id)) + @elseif ($preOrderItem = app('Webkul\PreOrder\Repositories\PreOrderItemRepository')->resetScope()->findOneByField('payment_order_item_id', $item->id))
type == 'configurable')style="margin-top: 0"@endif> {{ __('preorder::app.shop.sales.orders.preorder-payment-information') }} diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/add-buttons.blade.php b/packages/Webkul/PreOrder/src/Resources/views/shop/products/add-buttons.blade.php similarity index 94% rename from packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/add-buttons.blade.php rename to packages/Webkul/PreOrder/src/Resources/views/shop/products/add-buttons.blade.php index 76d0a7409..6637312a7 100644 --- a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/add-buttons.blade.php +++ b/packages/Webkul/PreOrder/src/Resources/views/shop/products/add-buttons.blade.php @@ -3,8 +3,6 @@ @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial')

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

@endif - @else -

{{ __('preorder::app.shop.products.nothing-to-pay') }}

@endif @endif diff --git a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/preorder-info.blade.php b/packages/Webkul/PreOrder/src/Resources/views/shop/products/preorder-info.blade.php similarity index 89% rename from packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/preorder-info.blade.php rename to packages/Webkul/PreOrder/src/Resources/views/shop/products/preorder-info.blade.php index 27e625d6b..10345a30d 100644 --- a/packages/Webkul/SAASPreOrder/src/Resources/views/shop/products/preorder-info.blade.php +++ b/packages/Webkul/PreOrder/src/Resources/views/shop/products/preorder-info.blade.php @@ -4,8 +4,6 @@ @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') @if (core()->getConfigData('preorder.settings.general.percent'))

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

- @else -

{{ __('preorder::app.shop.products.nothing-to-pay') }}

@endif @endif @@ -29,8 +27,6 @@ @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') @if (core()->getConfigData('preorder.settings.general.percent'))

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

- @else -

{{ __('preorder::app.shop.products.nothing-to-pay') }}

@endif @endif @@ -45,7 +41,7 @@ @push('scripts') + + +@endpush \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Resources/views/admin-index.blade.php b/packages/Webkul/Webfont/src/Resources/views/admin-index.blade.php new file mode 100644 index 000000000..20cd142d7 --- /dev/null +++ b/packages/Webkul/Webfont/src/Resources/views/admin-index.blade.php @@ -0,0 +1,27 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('webfont::app.title') }} +@stop + +@section('content') + +
+ + +
+ @inject('webfontGrid', 'Webkul\Webfont\DataGrids\WebfontDataGrid') + + {!! $webfontGrid->render() !!} +
+
+@stop \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Resources/views/webfont.blade.php b/packages/Webkul/Webfont/src/Resources/views/webfont.blade.php new file mode 100644 index 000000000..0c8c61830 --- /dev/null +++ b/packages/Webkul/Webfont/src/Resources/views/webfont.blade.php @@ -0,0 +1,51 @@ + + +@php + $activatedFont = app('Webkul\Webfont\Repositories\WebfontRepository'); + + $font = $activatedFont->findOneWhere([ + 'activated' => 1 + ]); + + if (isset($font)) { + $activeFont = $font->font; + + $font = explode(',', $activeFont)[0]; + + $family = explode(',', $activeFont)[1]; + } else { + $font = 'Montserrat'; + + $family = 'sans-serif'; + } +@endphp + + + + \ No newline at end of file diff --git a/resources/views/vendor/admin/sales/orders/index.blade.php b/resources/views/vendor/admin/sales/orders/index.blade.php index 2ac4c157e..fde3254d3 100644 --- a/resources/views/vendor/admin/sales/orders/index.blade.php +++ b/resources/views/vendor/admin/sales/orders/index.blade.php @@ -23,7 +23,7 @@
@inject('orderGrid', 'Webkul\PreOrder\DataGrids\Admin\Order') - + {!! $orderGrid->render() !!}
diff --git a/resources/views/vendor/admin/sales/orders/view.blade.php b/resources/views/vendor/admin/sales/orders/view.blade.php index 5eb706877..065ec8bd8 100644 --- a/resources/views/vendor/admin/sales/orders/view.blade.php +++ b/resources/views/vendor/admin/sales/orders/view.blade.php @@ -31,7 +31,7 @@ @endif - @if ($order->canShip() && ! app('Webkul\PreOrder\Repositories\PreOrderItemRepository')->isPreOrderPaymentOrder($order->id)) + @if ($order->canShip() && ! app('Webkul\PreOrder\Repositories\PreOrderItemRepository')->resetScope()->isPreOrderPaymentOrder($order->id)) {{ __('admin::app.sales.orders.shipment-btn-title') }} diff --git a/resources/views/vendor/shop/products/add-buttons.blade.php b/resources/views/vendor/shop/products/add-buttons.blade.php index 76d0a7409..af665b735 100644 --- a/resources/views/vendor/shop/products/add-buttons.blade.php +++ b/resources/views/vendor/shop/products/add-buttons.blade.php @@ -3,8 +3,6 @@ @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial')

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

@endif - @else -

{{ __('preorder::app.shop.products.nothing-to-pay') }}

@endif @endif @@ -24,7 +22,7 @@ - @if ($product->totalQuantity() < 1 && $product->allow_preorder) + @if ($product->totalQuantity() < 1 && $product->product->allow_preorder) @else diff --git a/resources/views/vendor/shop/products/view/product-add.blade.php b/resources/views/vendor/shop/products/view/product-add.blade.php index 1e7a00908..584d15fa1 100644 --- a/resources/views/vendor/shop/products/view/product-add.blade.php +++ b/resources/views/vendor/shop/products/view/product-add.blade.php @@ -2,7 +2,7 @@
@if ($product->type != 'configurable') - @if ($product->totalQuantity() < 1 && $product->allow_preorder) + @if ($product->totalQuantity() < 1 && $product->product->allow_preorder) @@ -16,7 +16,7 @@ @include ('shop::products.buy-now') - @endif From 8744c84eb9900b608b0eb158da61a6f83166c600 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 20 Aug 2019 10:48:17 +0530 Subject: [PATCH 106/172] product card hover padding removed --- packages/Webkul/Shop/publishable/assets/css/shop.css | 2 +- packages/Webkul/Shop/publishable/assets/mix-manifest.json | 2 +- packages/Webkul/Shop/src/Resources/assets/sass/app.scss | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/Webkul/Shop/publishable/assets/css/shop.css b/packages/Webkul/Shop/publishable/assets/css/shop.css index 3842c80b3..4aadb8c23 100755 --- a/packages/Webkul/Shop/publishable/assets/css/shop.css +++ b/packages/Webkul/Shop/publishable/assets/css/shop.css @@ -1 +1 @@ -@import url(https://fonts.googleapis.com/css?family=Montserrat:400,500);.icon{display:inline-block;background-size:cover}.dropdown-right-icon{background-image:URL("../images/icon-dropdown-left.svg");width:8px;height:8px;margin-left:auto;margin-bottom:2px}.icon-menu-close{background-image:URL("../images/icon-menu-close.svg");width:24px;height:24px;margin-left:auto}.icon-menu-close-adj{background-image:URL("../images/cross-icon-adj.svg");margin-left:auto}.grid-view-icon{background-image:URL("../images/icon-grid-view.svg");width:24px;height:24px}.list-view-icon{background-image:URL("../images/icon-list-view.svg");width:24px;height:24px}.sort-icon{background-image:URL("../images/icon-sort.svg");width:32px;height:32px}.filter-icon{background-image:URL("../images/icon-filter.svg");width:32px;height:32px}.whishlist-icon{background-image:URL("../images/wishlist.svg");width:24px;height:24px}.share-icon{background-image:URL("../images/icon-share.svg");width:24px;height:24px}.icon-menu{background-image:URL("../images/icon-menu.svg");width:24px;height:24px}.icon-search{background-image:URL("../images/icon-search.svg");width:24px;height:24px}.icon-menu-back{background-image:URL("../images/icon-menu-back.svg");width:24px;height:24px}.shipping-icon{background-image:url("../images/shipping.svg");width:32px;height:32px}.payment-icon{background-image:url("../images/payment.svg");width:32px;height:32px}.cart-icon{background-image:url("../images/icon-cart.svg");width:24px;height:24px}.wishlist-icon{background-image:url("../images/wishlist.svg");width:32px;height:32px}.icon-arrow-up{background-image:url("../images/arrow-up.svg");width:16px;height:16px}.icon-arrow-down{background-image:url("../images/arrow-down.svg");width:16px;height:16px}.expand-icon{background-image:url("../images/Expand-Light.svg");width:18px;height:18px}.expand-on-icon{background-image:url("../images/Expand-Light-On.svg");width:18px;height:18px}.icon-menu-close-adj{background-image:url("../images/cross-icon-adj.svg");width:32px;height:32px}.icon-facebook{background-image:url("../images/facebook.svg")}.icon-twitter{background-image:url("../images/twitter.svg")}.icon-google-plus{background-image:url("../images/google-plus.svg")}.icon-instagram{background-image:url("../images/instagram.svg")}.icon-linkedin{background-image:url("../images/linkedin.svg")}.icon-dropdown{background-image:url("../images/icon-dropdown.svg")}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}body{margin:0;padding:0;font-weight:500;max-width:100%;width:auto;color:#242424;font-size:16px}*{font-family:Montserrat,sans-serif}::-webkit-input-placeholder{font-family:Montserrat,sans-serif}textarea{resize:none}input{font-family:Montserrat,sans-serif}.btn{border-radius:0!important}.pagination.shop{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}@media only screen and (max-width:770px){.pagination.shop{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.pagination.shop .page-item{display:none}.pagination.shop .page-item.next,.pagination.shop .page-item.previous{display:block}}.bold{font-weight:700;color:#3a3a3a}.radio-container{display:block;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:16px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.radio-container input{position:absolute;opacity:0;cursor:pointer;top:0;left:0}.radio-container .checkmark{position:absolute;top:0;left:0;height:16px;width:16px;background-color:#fff;border:2px solid #ff6472;border-radius:50%}.radio-container .checkmark:after{content:"";position:absolute;display:none;top:2px;left:2px;width:8px;height:8px;border-radius:50%;background:#ff6472}.radio-container input:checked~.checkmark:after{display:block}.radio-container input:disabled~.checkmark{display:block;border:2px solid rgba(255,100,113,.4)}.cp-spinner{width:48px;height:48px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.cp-round:before{border-radius:50%;border:6px solid #bababa}.cp-round:after,.cp-round:before{content:" ";width:48px;height:48px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:0;left:0}.cp-round:after{border-radius:50%;border-top:6px solid #0031f0;border-right:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid transparent;-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite}.pull-right{float:right}.add-to-wishlist .wishlist-icon:hover{background-image:url("../images/wishlist-added.svg")}.product-price{margin-bottom:14px;width:100%;font-weight:600}.product-price .price-label{font-size:14px;font-weight:400}.product-price .regular-price{color:#a5a5a5;text-decoration:line-through;margin-right:10px}.product-price .special-price{color:#ff6472}.horizontal-rule{display:block;width:100%;height:1px;background:#c7c7c7}.account-head .account-heading{font-size:28px;color:#242424;text-transform:capitalize;text-align:left}.account-head .account-action{font-size:17px;margin-top:1%;color:#0031f0;float:right}.account-head .horizontal-rule{margin-top:1.1%;width:100%;height:1px;vertical-align:middle;background:#c7c7c7}.account-item-card{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:125px}.account-item-card,.account-item-card .media-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.account-item-card .media-info .media{height:125px;width:110px}.account-item-card .media-info .info{margin-left:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:space-evenly;-ms-flex-pack:space-evenly;justify-content:space-evenly}.account-item-card .media-info .info .stars .icon{height:16px;width:16px}.account-item-card .operations{height:120px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.account-item-card .operations a{width:100%}.account-item-card .operations a span{float:right}.account-items-list{display:block;width:100%}.account-items-list .grid-container{margin-top:40px}.search-result-status{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.grid-container{margin-top:20px}.main-container-wrapper{max-width:1300px;width:auto;padding-left:15px;padding-right:15px;margin-left:auto;margin-right:auto}.main-container-wrapper .content-container{display:block;margin-bottom:40px}.main-container-wrapper .product-grid-4{grid-auto-rows:auto;grid-column-gap:30px;grid-row-gap:15px}.main-container-wrapper .product-grid-3,.main-container-wrapper .product-grid-4{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));justify-items:center}.main-container-wrapper .product-grid-3{grid-gap:27px;grid-auto-rows:auto}.main-container-wrapper .product-card{position:relative}.main-container-wrapper .product-card .product-image{max-height:350px;max-width:280px;margin-bottom:10px;background:#f2f2f2}.main-container-wrapper .product-card .product-image img{display:block;height:100%}.main-container-wrapper .product-card .product-name{margin-bottom:14px;width:100%;color:#242424}.main-container-wrapper .product-card .product-name a{color:#242424}.main-container-wrapper .product-card .product-description{display:none}.main-container-wrapper .product-card .product-ratings{width:100%}.main-container-wrapper .product-card .product-ratings .icon{width:16px;height:16px}.main-container-wrapper .product-card .cart-wish-wrap{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px}.main-container-wrapper .product-card .cart-wish-wrap .addtocart{margin-right:10px;text-transform:uppercase;text-align:left;-webkit-box-shadow:1px 1px 0 #ccc;box-shadow:1px 1px 0 #ccc}.main-container-wrapper .product-card .cart-wish-wrap .add-to-wishlist{margin-top:5px;background:transparent;border:0;cursor:pointer;padding:0}.main-container-wrapper .product-card .sticker{border-radius:100px;position:absolute;top:20px;left:20px;text-transform:uppercase;padding:4px 13px;font-size:14px;color:#fff;-webkit-box-shadow:1px 1px 1px #ccc;box-shadow:1px 1px 1px #ccc}.main-container-wrapper .product-card .sticker.sale{background:#ff6472}.main-container-wrapper .product-card .sticker.new{background:#2ed04c}.main-container-wrapper .product-card:hover{box-shadow:0 1px 2px rgba(0,0,0,.05);-webkit-box-shadow:0 2px 16px 4px rgba(40,44,63,.07);box-shadow:0 2px 16px 4px rgba(40,44,63,.07);padding:10px;-webkit-transition:.3s;transition:.3s;outline:1px solid #eaeaec}@media only screen and (max-width:580px){.main-container-wrapper .main-container-wrapper{padding:0}}@media only screen and (max-width:551px){.main-container-wrapper .product-grid-3{grid-template-columns:48.5% 48.5%;grid-column-gap:20px}}@media only screen and (max-width:854px){.main-container-wrapper .product-image img{display:block;width:100%}.main-container-wrapper .product-grid-4{grid-template-columns:29.5% 29.5% 29.5%;grid-column-gap:35px}.main-container-wrapper .product-card:hover{padding:5px}}@media only screen and (max-width:653px){.main-container-wrapper .product-image img{display:block;width:100%}.main-container-wrapper .product-grid-4{grid-template-columns:48.5% 48.5%;grid-column-gap:17px}}@media only screen and (max-width:425px){.main-container-wrapper .product-card{font-size:90%}.main-container-wrapper .product-card .product-image img{display:block;width:100%}.main-container-wrapper .product-card .btn.btn-md{padding:5px}.main-container-wrapper .product-grid-4{grid-template-columns:48.5% 48.5%;grid-column-gap:10px}}.main-container-wrapper .product-list{min-height:200px}.main-container-wrapper .product-list .product-card{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.main-container-wrapper .product-list .product-card .product-image{float:left;width:30%;height:350px}.main-container-wrapper .product-list .product-card .product-image img{height:100%}.main-container-wrapper .product-list .product-card .product-information{float:right;width:70%;padding-left:30px}.main-container-wrapper .product-list .product-card:last-child{margin-bottom:0}.main-container-wrapper .product-list.empty h2{font-size:20px}.main-container-wrapper section.featured-products{display:block;margin-bottom:5%}.main-container-wrapper section.featured-products .featured-heading{width:100%;text-align:center;text-transform:uppercase;font-size:18px;margin-bottom:20px}.main-container-wrapper section.featured-products .featured-heading .featured-separator{color:#d3d3d3}.main-container-wrapper section.news-update{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;margin-bottom:5%}.main-container-wrapper section.news-update .news-update-grid{display:grid;grid-template-columns:58.5% 40%;grid-gap:20px}.main-container-wrapper section.news-update .news-update-grid .block1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block1 img{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;width:100%}.main-container-wrapper section.news-update .news-update-grid .block2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-rows:repeat(2,minmax(50%,1fr));grid-row-gap:20px}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block1 img{width:100%}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block2 img{width:100%}section.slider-block{display:block;margin-left:auto;margin-right:auto;margin-bottom:5%}section.slider-block div.slider-content{position:relative;height:500px;margin-left:auto;margin-right:auto}section.slider-block div.slider-content ul.slider-images .show-content{display:none}section.slider-block div.slider-content ul.slider-images li{position:absolute;visibility:hidden}section.slider-block div.slider-content ul.slider-images li.show{display:block;position:relative;visibility:visible;width:100%;-webkit-animation-name:example;animation-name:example;-webkit-animation-duration:4s;animation-duration:4s}section.slider-block div.slider-content ul.slider-images li.show .show-content{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#242424;height:100%;width:100%;top:0}@-webkit-keyframes example{0%{opacity:.1}to{opacity:1}}@keyframes example{0%{opacity:.1}to{opacity:1}}section.slider-block div.slider-content ul.slider-images li img{height:500px;width:100%}section.slider-block div.slider-content div.slider-control{display:block;cursor:pointer;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;bottom:2%;right:2%}section.slider-block div.slider-content div.slider-control .dark-left-icon{background-color:#f2f2f2;height:48px;width:48px;max-height:100%;max-width:100%}section.slider-block div.slider-content div.slider-control .light-right-icon{background-color:#242424;height:48px;width:48px;max-height:100%;max-width:100%}@media only screen and (max-width:770px){section.slider-block div.slider-content div.slider-control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;bottom:46%;right:0;width:100%}}.header{margin-top:16px;margin-bottom:21px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.header .header-top{margin-bottom:16px;max-width:100%;width:auto;margin-left:auto;margin-right:auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.header .header-top,.header .header-top div.left-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.left-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.header .header-top div.left-content ul.logo-container{margin-right:12px}.header .header-top div.left-content ul.logo-container li{display:-webkit-box;display:-ms-flexbox;display:flex}.header .header-top div.left-content ul.logo-container li img{max-width:120px;max-height:40px}.header .header-top div.left-content ul.search-container li.search-group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.left-content ul.search-container li.search-group .search-field{height:38px;border:2px solid #c7c7c7;border-radius:3px;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;padding-left:12px;font-size:14px}.header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;height:38px;width:38px;border:2px solid #c7c7c7;border-top-right-radius:3px;border-bottom-right-radius:3px}.header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper button{background:#fff;border:0;padding:3px 5px}.header .header-top div.right-content .right-content-menu>li{display:inline-block;border-right:2px solid #c7c7c7;padding:0 15px;min-height:15px;padding-top:3px}.header .header-top div.right-content .right-content-menu>li:first-child{padding-left:0}.header .header-top div.right-content .right-content-menu>li:last-child{border-right:0;padding-right:0}.header .header-top div.right-content .right-content-menu>li .icon{vertical-align:middle}.header .header-top div.right-content .right-content-menu>li .icon:not(.arrow-down-icon){margin-right:5px}.header .header-top div.right-content .right-content-menu>li .arrow-down-icon{width:12px;height:6px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container{border-right:0;padding-right:0}.header .header-top div.right-content .right-content-menu .cart-link{pointer-events:none}.header .header-top div.right-content .right-content-menu ul.dropdown-list{display:none;margin-top:14px}.header .header-top div.right-content .right-content-menu ul.dropdown-list li{border-right:none;padding:5px 10px;display:block}.header .header-top div.right-content .right-content-menu ul.dropdown-list li a{color:#333}.header .header-top div.right-content .right-content-menu .currency{position:absolute;right:0;width:100px}.header .header-top div.right-content .right-content-menu .account{position:absolute;right:0}.header .header-top div.right-content .right-content-menu .account li{padding:20px!important}.header .header-top div.right-content .right-content-menu .account li ul{margin-top:5px}.header .header-top div.right-content .right-content-menu .account li ul>li{padding:5px 10px 5px 0!important}.header .header-top div.right-content .right-content-menu .guest{width:300px}.header .header-top div.right-content .right-content-menu .guest .btn.btn-sm{padding:9px 25px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list{width:387px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container{padding:0}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-cart{color:#242424}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header{width:100%;padding:8px 16px;border-bottom:1px solid #c7c7c7}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header p{display:inline;line-height:25px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header i{float:right;height:22px;width:22px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header p.heading{font-weight:lighter}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-content{padding-top:8px;margin-bottom:55px;width:100%;max-height:329px;overflow-y:auto}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-content .item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;border-bottom:1px solid #c7c7c7;padding:8px 16px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-content .item img{height:75px;width:75px;margin-right:8px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-content .item-details{height:auto}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .item-details .item-name{font-size:16px;font-weight:700;margin-bottom:8px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .item-details .item-options{font-size:16px;margin-bottom:8px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .item-details .item-price{margin-bottom:8px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .item-details .item-qty{font-weight:lighter;margin-bottom:8px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 16px;position:absolute;bottom:0;width:100%;background:#fff;border-top:1px solid #c7c7c7}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-footer .btn{margin:0;max-width:170px;text-align:center}.header .header-top div.right-content .menu-box,.header .header-top div.right-content .search-box{display:none}.header .header-bottom{height:47px;margin-left:auto;margin-right:auto;border-top:1px solid #c7c7c7;border-bottom:1px solid #c7c7c7;display:block}.header .header-bottom ul.nav{display:block;font-size:16px;max-width:100%;width:auto;margin-left:auto;margin-right:auto}.header .header-bottom .nav ul{margin:0;padding:0;-webkit-box-shadow:1px 1px 1px 0 rgba(0,0,0,.4);box-shadow:1px 1px 1px 0 rgba(0,0,0,.4)}.header .header-bottom .nav a{display:block;color:#242424;text-decoration:none;padding:.8em .3em .8em .5em;text-transform:capitalize;letter-spacing:-.38px;position:relative}.header .header-bottom .nav li>.icon{display:none}.header .header-bottom .nav{vertical-align:top;display:inline-block}.header .header-bottom .nav li{position:relative}.header .header-bottom .nav>li{float:left;margin-right:1px;height:45px}.header .header-bottom .nav>li>a{margin-bottom:1px}.header .header-bottom .nav>li>a .icon{display:none}.header .header-bottom .nav li li a{margin-top:1px;white-space:normal;word-break:break-word;width:200px}.header .header-bottom .nav li a:first-child:nth-last-child(2):before{content:"";position:absolute;height:0;width:0;border:5px solid transparent;top:50%;right:5px}.header .header-bottom .nav ul{position:absolute;white-space:nowrap;border:1px solid #c7c7c7;background-color:#fff;z-index:10000;left:-99999em}.header .header-bottom .nav>li:hover{background-color:#f2f2f2}.header .header-bottom .nav>li:hover>ul{left:auto;min-width:100%}.header .header-bottom .nav>li li:hover{background-color:#f2f2f2}.header .header-bottom .nav>li li:hover>ul{left:100%;margin-left:1px;top:-2px}.header .header-bottom .nav>li:hover>a:first-child:nth-last-child(2):before,.header .header-bottom .nav li li>a:first-child:nth-last-child(2):before{margin-top:-5px}.header .header-bottom .nav li li:hover>a:first-child:nth-last-child(2):before{right:10px}.header .search-responsive{display:none}.header .search-responsive .search-content{border-bottom:1px solid #c7c7c7;border-top:1px solid #c7c7c7;height:50px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.header .search-responsive .search-content .search{width:80%;border:none;font-size:16px}.header .search-responsive .search-content .right{float:right}@media (max-width:720px){.header .currency-switcher{display:none!important}.header .header-top div.right-content{display:inherit}.header .header-top div.right-content .menu-box{display:inline-block;margin-left:10px}.header .header-top div.right-content .search-box{display:inline-block;margin-right:10px;cursor:pointer}.header .header-top div.right-content .right-content-menu>li{border-right:none;padding:0 2px}.header .header-top div.right-content .right-content-menu>li .icon:not(.arrow-down-icon){margin-right:0}.header .header-top div.right-content .right-content-menu .cart-link{pointer-events:all}.header .header-top div.right-content .right-content-menu .arrow-down-icon,.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-container,.header .header-top div.right-content .right-content-menu .name{display:none}.header .header-bottom{height:auto;display:none}.header .header-bottom .nav a{display:inline-block}.header .header-bottom .nav li,.header .header-bottom ul.nav{height:auto}.header .header-bottom .nav>li{float:none}.header .header-bottom .nav li>.icon{float:right;display:block}.header .header-bottom .icon.icon-arrow-down{margin-right:5px}.header .header-bottom .nav li .left{height:16px;width:16px}.header .header-bottom .nav li a>.icon{display:none}.header .header-bottom .nav ul{position:unset;border:none;-webkit-box-shadow:none;box-shadow:none}.header .header-bottom .nav>li li:hover>ul{margin-left:0;top:0}ul.account-dropdown-container,ul.cart-dropdown-container,ul.search-container{display:none!important}}@media (max-width:400px){.header .header-top div.right-content .right-content-menu .guest{width:240px}.header .header-top div.right-content .right-content-menu .guest .btn.btn-sm{padding:7px 14px}}.footer{background-color:#f2f2f2;padding-left:10%;padding-right:10%;width:100%;display:inline-block}.footer .footer-content .footer-list-container{display:grid;padding:40px 10px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-auto-rows:auto;grid-row-gap:1vh}.footer .footer-content .footer-list-container .list-container .list-heading{text-transform:uppercase;color:#a5a5a5}.footer .footer-content .footer-list-container .list-container .list-group{padding-top:25px}.footer .footer-content .footer-list-container .list-container .list-group a{color:#242424}.footer .footer-content .footer-list-container .list-container .list-group li{margin-bottom:12px;list-style-type:none;text-transform:uppercase}.footer .footer-content .footer-list-container .list-container .list-group li span.icon{display:inline-block;vertical-align:middle;margin-right:5px;height:24px;width:24px}.footer .footer-content .footer-list-container .list-container .form-container{padding-top:5px}.footer .footer-content .footer-list-container .list-container .form-container .control-group .subscribe-field{width:100%}.footer .footer-content .footer-list-container .list-container .form-container .control-group .btn-primary{background-color:#242424;margin-top:8px;border-radius:0;text-align:center}.footer .footer-content .footer-list-container .list-container .form-container .control-group .locale-switcher{width:100%}.footer .footer-content .footer-list-container .list-container .currency{display:none}@media (max-width:720px){.footer{padding-left:15px}.footer .footer-list-container{padding-left:0!important}.footer .currency{display:block!important}}.footer-bottom{width:100%;height:70px;font-size:16px;color:#a5a5a5;letter-spacing:-.26px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer-bottom p{padding:0 15px}.main .category-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}.main .category-container .layered-filter-wrapper,.main .category-container .responsive-layred-filter{width:25%;float:left;padding-right:20px;min-height:1px}.main .category-container .layered-filter-wrapper .filter-title,.main .category-container .responsive-layred-filter .filter-title{border-bottom:1px solid #c7c7c7;color:#242424;padding:10px 0}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item{border-bottom:1px solid #c7c7c7;padding-bottom:10px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title{padding:10px 40px 0 10px;color:#5e5e5e;cursor:pointer;position:relative}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title .remove-filter-link,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title .remove-filter-link{font-weight:400;color:#0031f0;margin-right:10px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title .icon,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title .icon{background-image:url("../images/icon-dropdown.svg")!important;width:10px;height:10px;position:absolute;right:15px;top:14px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content{padding:10px;display:none}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items{padding:0;margin:0;list-style:none none}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item{padding:8px 0;color:#5e5e5e}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox{margin:0}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox .checkbox-view,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox .checkbox-view{height:16px;width:16px;background-image:url("../images/checkbox.svg")}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox input:checked+.checkbox-view,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox input:checked+.checkbox-view{background-image:url("../images/checkbox-checked.svg")}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .color-swatch,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .color-swatch{display:inline-block;margin-right:5px;min-width:20px;height:20px;border:1px solid #c7c7c7;border-radius:3px;float:right}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content .price-range-wrapper,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content .price-range-wrapper{margin-top:21px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item.active .filter-attributes-content,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item.active .filter-attributes-content{display:block}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item.active .filter-attributes-title .icon,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item.active .filter-attributes-title .icon{background-image:url("../images//arrow-up.svg")!important}.main .category-container .responsive-layred-filter{display:none;width:100%;float:none;padding-right:0;margin-top:-25px!important}.main .category-container .category-block{width:80%;display:block}.main .category-container .category-block .hero-image{display:inline-block;visibility:visible;width:100%}.main .category-container .category-block .hero-image img{height:400px;width:100%}.main .top-toolbar{width:100%;display:inline-block}.main .top-toolbar .page-info{float:left;color:#242424;line-height:45px}.main .top-toolbar .page-info span{display:none}.main .top-toolbar .page-info span:first-child{display:inline}.main .top-toolbar .pager{float:right}.main .top-toolbar .pager label{margin-right:5px}.main .top-toolbar .pager select{background:#f2f2f2;border:1px solid #c7c7c7;border-radius:3px;color:#242424;padding:10px}.main .top-toolbar .pager .view-mode{display:inline-block;margin-right:20px}.main .top-toolbar .pager .view-mode a,.main .top-toolbar .pager .view-mode span{display:inline-block;vertical-align:middle}.main .top-toolbar .pager .view-mode a.grid-view,.main .top-toolbar .pager .view-mode span.grid-view{margin-right:10px}.main .top-toolbar .pager .view-mode .sort-filter{display:none}.main .top-toolbar .pager .sorter{display:inline-block;margin-right:10px}.main .top-toolbar .pager .limiter{display:inline-block}.main .bottom-toolbar{display:block;margin-top:40px;margin-bottom:40px;text-align:center}@media only screen and (max-width:840px){.main .category-container .responsive-layred-filter,.main .layered-filter-wrapper{display:none}.main .category-block{width:100%!important}.main .category-block .top-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.main .category-block .top-toolbar .page-info{border-bottom:1px solid #c7c7c7;line-height:15px;margin-top:10px}.main .category-block .top-toolbar .page-info span{display:inline}.main .category-block .top-toolbar .page-info span:first-child{display:none}.main .category-block .top-toolbar .page-info .sort-filter{float:right;cursor:pointer}.main .category-block .top-toolbar .pager{margin-top:20px;display:none}.main .category-block .top-toolbar .pager .view-mode{display:none}.main .category-block .responsive-layred-filter{display:block}}section.product-detail{color:#242424}section.product-detail div.category-breadcrumbs{display:inline}section.product-detail div.layouter{display:block;margin-top:20px;margin-bottom:20px}section.product-detail div.layouter .form-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}section.product-detail div.layouter .form-container div.product-image-group{margin-right:30px;width:604px;height:650px;max-width:604px;position:-webkit-sticky;position:sticky;top:10px}section.product-detail div.layouter .form-container div.product-image-group div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;cursor:pointer}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-right:4px;min-width:120px;overflow:hidden;position:relative;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;max-height:480px}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame{border:2px solid transparent;background:#f2f2f2;width:120px;max-height:120px}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame.active{border-color:#0031f0}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame img{height:100%;width:100%}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control{width:100%;position:absolute;text-align:center;cursor:pointer;z-index:1}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control .overlay{opacity:.3;background:#242424;width:100%;height:18px;position:absolute;left:0;z-index:-1}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control .icon{z-index:2}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control.top{top:0}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control.bottom{bottom:0}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image{display:block;position:relative;background:#f2f2f2;width:100%;max-height:480px;height:100%}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image img{width:100%;height:auto;max-height:480px}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .add-to-wishlist{background-image:url("../images/wishlist.svg");position:absolute;top:10px;right:12px;background-color:transparent;border:0;cursor:pointer;padding:0;width:32px;height:32px}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .add-to-wishlist:hover{background-image:url("../images/wishlist-added.svg")}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .share{position:absolute;top:10px;right:45px}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons{display:none;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-top:10px;width:79.5%;float:right;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons .addtocart{width:49%;background:#000;white-space:normal;text-transform:uppercase}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons .buynow{width:49%;white-space:nowrap;text-transform:uppercase}section.product-detail div.layouter .form-container .details{width:50%;overflow-wrap:break-word}section.product-detail div.layouter .form-container .details .product-price{margin-bottom:14px}section.product-detail div.layouter .form-container .details .product-price .sticker{display:none}section.product-detail div.layouter .form-container .details .product-ratings{margin-bottom:20px}section.product-detail div.layouter .form-container .details .product-ratings .icon{width:16px;height:16px}section.product-detail div.layouter .form-container .details .product-ratings .total-reviews{display:inline-block;margin-left:15px}section.product-detail div.layouter .form-container .details .product-heading{font-size:24px;color:#242424;margin-bottom:15px}section.product-detail div.layouter .form-container .details .product-price{margin-bottom:15px}section.product-detail div.layouter .form-container .details .product-price .special-price{font-size:24px}section.product-detail div.layouter .form-container .details .stock-status{margin-bottom:15px;font-weight:600;color:#fc6868}section.product-detail div.layouter .form-container .details .stock-status.active{color:#4caf50}section.product-detail div.layouter .form-container .details .description{margin-bottom:15px}section.product-detail div.layouter .form-container .details .description ul{padding-left:40px;list-style:disc}section.product-detail div.layouter .form-container .details .quantity{padding-top:15px;border-top:1px solid hsla(0,0%,64%,.2)}section.product-detail div.layouter .form-container .details .full-description *{max-width:100%}section.product-detail div.layouter .form-container .details .full-description ul{padding-left:40px;list-style:disc}section.product-detail div.layouter .form-container .details .full-specifications td{padding:10px 0;color:#5e5e5e}section.product-detail div.layouter .form-container .details .full-specifications td:first-child{padding-right:40px}section.product-detail div.layouter .form-container .details .accordian .accordian-header{padding-left:0;font-weight:600}section.product-detail div.layouter .form-container .details .accordian .accordian-content{padding:20px 0}section.product-detail div.layouter .form-container .details .attributes{display:block;width:100%;border-bottom:1px solid hsla(0,0%,64%,.2)}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group{margin-bottom:20px}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container{margin-top:10px;display:inline-block}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch{display:inline-block;margin-right:5px;min-width:40px;height:40px}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch span{min-width:38px;height:38px;float:left;border:1px solid #c7c7c7;border-radius:3px;line-height:36px;text-align:center;cursor:pointer;padding:0 10px}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch img{width:38px;height:38px;border:1px solid #c7c7c7;border-radius:3px;cursor:pointer;background:#f2f2f2}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch input:checked+img,section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch input:checked+span{border:1px solid #242424}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch input{display:none}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .no-options{color:#fb3949}section.product-detail div.layouter .form-container .details .quantity-change{cursor:pointer;text-align:center}section.product-detail div.layouter .form-container .details .quantity-change:focus{border-color:#c7c7c7!important}@media only screen and (max-width:720px){section.product-detail div.layouter .form-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;max-width:none;width:auto;min-height:400px;height:auto;position:unset}section.product-detail div.layouter .form-container div.product-image-group .loader{margin-left:47%}section.product-detail div.layouter .form-container div.product-image-group div{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list{margin-top:5px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;overflow-x:scroll;margin-right:0}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame img{height:100%;width:auto}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control{display:none}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image{display:-webkit-box;display:-ms-flexbox;display:flex}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image img{margin-left:auto;margin-right:auto;width:480px}section.product-detail div.layouter .form-container div.product-image-group div .wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%!important}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons{width:100%}section.product-detail div.layouter .form-container .details{width:100%;margin-top:20px}}@media only screen and (max-width:510px){section.product-detail div.layouter .form-container div.product-image-group .product-hero-image img{width:100%!important}}.rating-reviews .rating-header{padding:20px 0}.rating-reviews .stars .icon{width:16px;height:16px}.rating-reviews .overall{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.rating-reviews .overall .review-info .number{font-size:34px}.rating-reviews .overall .review-info .total-reviews{margin-top:10px}.rating-reviews .reviews{margin-top:40px;margin-bottom:40px}.rating-reviews .reviews .review{margin-bottom:25px}.rating-reviews .reviews .review .title{margin-bottom:5px}.rating-reviews .reviews .review .stars{margin-bottom:15px;display:inline-block}.rating-reviews .reviews .review .message{margin-bottom:10px}.rating-reviews .reviews .review .reviewer-details{color:#5e5e5e}.rating-reviews .reviews .view-all{margin-top:15px;color:#0031f0;margin-bottom:15px}section.cart{width:100%;color:#242424;margin-bottom:80px;margin-top:20px}section.cart .title{font-size:24px}section.cart .cart-content{margin-top:20px;width:100%;display:inline-block}section.cart .cart-content .left-side{width:70%;float:left}section.cart .cart-content .left-side .misc-controls{width:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:20px}section.cart .cart-content .left-side .misc-controls a.link,section.cart .cart-content .left-side .misc-controls div button{margin-right:15px}section.cart .cart-content .right-side{width:30%;display:inline-block;padding-left:40px}.cart-item-list .item{padding:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;border:1px solid #c7c7c7;border-radius:2px}.cart-item-list .item .item-image{margin-right:15px}.cart-item-list .item .item-image img{height:160px;width:160px}.cart-item-list .item .item-details{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.cart-item-list .item .item-details .item-title{font-size:18px;margin-bottom:10px;font-weight:600}.cart-item-list .item .item-details .item-title a{color:#242424}.cart-item-list .item .item-details .price{margin-bottom:10px;font-size:18px;font-weight:600}.cart-item-list .item .item-details .summary{margin-bottom:17px}.cart-item-list .item .item-details .misc{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.cart-item-list .item .item-details .misc .control-group{font-size:16px!important;width:220px;margin:0}.cart-item-list .item .item-details .misc .control-group .wrap{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cart-item-list .item .item-details .misc .control-group label{margin-right:15px}.cart-item-list .item .item-details .misc .control-group .control{height:38px;width:60px;border-radius:3px;text-align:center;line-height:38px}.cart-item-list .item .item-details .misc .remove,.cart-item-list .item .item-details .misc .towishlist{margin-top:18px;margin-right:15px}.cart-item-list .item .item-details .misc .quantity-change{cursor:pointer}.cart-item-list .item .item-details .misc .quantity-change:focus{border-color:#c7c7c7!important}.cart-item-list .item .error-message{color:#ff6472}.order-summary h3{font-size:16px;margin-top:0}.order-summary .item-detail{margin-top:12px}.order-summary .item-detail label.right{float:right}.order-summary .payable-amount{margin-top:17px;border-top:1px solid #c7c7c7;padding-top:12px}.order-summary .payable-amount label{font-weight:700}.order-summary .payable-amount label.right{float:right}@media only screen and (max-width:815px){section.cart .cart-content{display:block}section.cart .cart-content .left-side{width:100%;float:none}section.cart .cart-content .left-side .misc-controls{position:relative;top:180px;margin-top:0}section.cart .cart-content .right-side{width:100%;padding-left:0;position:relative;top:-20px}}@media only screen and (max-width:600px){section.cart .cart-content .left-side .cart-item-list .item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}section.cart .cart-content .left-side .cart-item-list .item .item-details{margin-top:10px}section.cart .cart-content .left-side .cart-item-list .item .item-details .misc{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:40px}}@media only screen and (max-width:574px){section.cart .cart-content .left-side .misc-controls{display:block;top:160px}section.cart .cart-content .left-side .misc-controls div button{width:100%;margin-top:10px}section.cart .cart-content .left-side .misc-controls div a{margin-top:10px;width:100%;text-align:center}section.cart .cart-content .right-side{top:-100px}}.checkout-method-group .line-one{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.checkout-method-group .line-one .radio-container{padding-left:28px}.checkout-method-group .line-one .method-label{margin-top:4px}.checkout-method-group .line-two{margin-left:30px}.checkout-process{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%;margin-top:20px;margin-bottom:20px;font-size:16px;color:#242424}.checkout-process .col-main{width:70%;margin-right:5%}.checkout-process .col-main ul.checkout-steps{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%;padding-bottom:15px;border-bottom:1px solid #c7c7c7}.checkout-process .col-main ul.checkout-steps li{height:48px;display:-webkit-box;display:-ms-flexbox;display:flex}.checkout-process .col-main ul.checkout-steps li .decorator{height:48px;width:48px;border:1px solid #000;border-radius:50%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;border:1px solid #c7c7c7;background-repeat:no-repeat;background-position:50%}.checkout-process .col-main ul.checkout-steps li .decorator.address-info{background-image:url("../images/address.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.shipping{background-image:url("../images/shipping.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.payment{background-image:url("../images/payment.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.review{background-image:url("../images/finish.svg")}.checkout-process .col-main ul.checkout-steps li.completed{cursor:pointer}.checkout-process .col-main ul.checkout-steps li.completed .decorator{background-image:url("../images/complete.svg")}.checkout-process .col-main ul.checkout-steps li span{margin-left:7px;margin-top:auto;margin-bottom:auto}.checkout-process .col-main ul.checkout-steps li.active{color:#2650ef}.checkout-process .col-main ul.checkout-steps li.active .decorator{border:1px solid #2650ef}.checkout-process .col-main .step-content{padding-top:20px}.checkout-process .col-main .step-content .form-header{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%;height:30px}.checkout-process .col-main .step-content .form-header .checkout-step-heading{font-size:24px;font-weight:700;float:left}.checkout-process .col-main .step-content .form-header .btn{float:right;font-size:14px}.checkout-process .col-main .step-content .form-container{border-bottom:1px solid #c7c7c7;padding-top:20px;padding-bottom:20px}.checkout-process .col-main .step-content .shipping-methods{font-size:16px}.checkout-process .col-main .step-content .shipping-methods .ship-method-carrier{margin-bottom:15px;font-weight:700}.checkout-process .col-main .step-content .payment-methods .radio-container{padding-left:28px}.checkout-process .col-main .step-content .payment-methods .control-info{margin-left:28px}.checkout-process .col-main .step-content .address-summary{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%}.checkout-process .col-main .step-content .address-summary div.billing-address{margin-right:25%}.checkout-process .col-main .step-content .address-summary div.billing-address .horizontal-rule,.checkout-process .col-main .step-content .address-summary div.shipping-address .horizontal-rule{width:40px;background:#242424}.checkout-process .col-main .step-content .address-summary .label{width:10%}.checkout-process .col-main .step-content .address-summary .address-card-list{width:85%}.checkout-process .col-main .step-content .cart-item-list .item .row .title{width:100px;display:inline-block;color:#a5a5a5;font-weight:500;margin-bottom:10px}.checkout-process .col-main .step-content .cart-item-list .item .row .value{font-size:18px;font-weight:600}.checkout-process .col-main .step-content .order-description{display:inline-block;width:100%}.checkout-process .col-main .step-content .order-description .shipping{margin-bottom:25px}.checkout-process .col-main .step-content .order-description .decorator{height:48px;width:48px;border-radius:50%;border:1px solid #c7c7c7;vertical-align:middle;display:inline-block;text-align:center}.checkout-process .col-main .step-content .order-description .decorator .icon{margin-top:7px}.checkout-process .col-main .step-content .order-description .text{font-weight:600;vertical-align:middle;display:inline-block}.checkout-process .col-main .step-content .order-description .text .info{font-weight:500;margin-top:2px}.checkout-process .col-right{width:25%;padding-left:40px}@media only screen and (max-width:770px){.checkout-process .col-main{width:100%;padding-right:0}.checkout-process .col-main ul.checkout-steps{border-bottom:none;padding-bottom:0}.checkout-process .col-main ul.checkout-steps span{display:none}.checkout-process .col-main ul.checkout-steps .line{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;border-bottom:1px solid #c7c7c7;margin-left:5px;margin-right:5px}.checkout-process .step-content{padding-top:0}.checkout-process .step-content .control-group .control{width:100%}.checkout-process .col-right{display:none}}@media only screen and (max-width:480px){.checkout-process .col-main .step-content .address,.checkout-process .col-main .step-content .order-description{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.checkout-process .col-main .step-content .address .billing-address,.checkout-process .col-main .step-content .address .pull-left,.checkout-process .col-main .step-content .order-description .billing-address,.checkout-process .col-main .step-content .order-description .pull-left{width:100%!important}.checkout-process .col-main .step-content .address .pull-right,.checkout-process .col-main .step-content .address .shipping-address,.checkout-process .col-main .step-content .order-description .pull-right,.checkout-process .col-main .step-content .order-description .shipping-address{width:100%!important;margin-top:20px}}.attached-products-wrapper{margin-bottom:80px}.attached-products-wrapper .title{margin-bottom:40px;font-size:18px;color:#242424;text-align:center;position:relative}.attached-products-wrapper .title .border-bottom{border-bottom:1px solid hsla(0,0%,64%,.2);display:inline-block;width:100px;position:absolute;top:40px;left:50%;margin-left:-50px}.attached-products-wrapper .horizontal-rule{height:1px;background:#c7c7c7;width:148px;margin-bottom:24px;margin-left:auto;margin-right:auto}section.review .category-breadcrumbs{display:inline}section.review .review-layouter{display:-webkit-box;display:-ms-flexbox;display:flex}section.review .review-layouter .product-info{font-size:24px;max-width:25%}section.review .review-layouter .product-info .product-image img{height:280px;width:280px}section.review .review-layouter .product-info .product-name a{color:#242424}section.review .review-layouter .product-info .product-price .pro-price{color:#ff6472}section.review .review-layouter .product-info .product-price .pro-price-not{margin-left:10px;font-size:16px;color:#a5a5a5}section.review .review-layouter .product-info .product-price .offer{margin-left:10px;font-size:16px}section.review .review-layouter .review-form{margin-left:20px;width:55%}section.review .review-layouter .review-form .heading{color:#242424;font-weight:600}section.review .review-layouter .review-form .heading .right{float:right;margin-top:-10px}section.review .review-layouter .review-form .star{font-size:23px;color:#d4d4d4;-webkit-transition:all .2s;transition:all .2s}section.review .review-layouter .review-form .star:before{content:"\2605"}section.review .review-layouter .review-form .control-group .control{width:100%}section.review .review-layouter .review-form .review-detail{height:150px;border:1px solid #b22222;margin-top:30px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}section.review .review-layouter .review-form .review-detail .rating-review{margin-top:40px;margin-left:20px;width:48%}section.review .review-layouter .review-form .review-detail .rating-review .avg-rating-count span{font-size:34px;text-align:center}section.review .review-layouter .review-form .review-detail .rating-calculate .progress-only{width:20px;border:1px solid blue}section.review .review-layouter .ratings-reviews{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}section.review .review-layouter .ratings-reviews .left-side{padding:40px 20px;width:50%}section.review .review-layouter .ratings-reviews .left-side .rate{font-size:34px}section.review .review-layouter .ratings-reviews .left-side .stars .icon{height:16px;width:16px}section.review .review-layouter .ratings-reviews .right-side{width:50%}section.review .review-layouter .ratings-reviews .right-side .rater{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:5px;width:100%}section.review .review-layouter .ratings-reviews .right-side .rater .star-name{margin-right:5px;width:35px}section.review .review-layouter .ratings-reviews .right-side .rater .rate-number{width:15px}section.review .review-layouter .ratings-reviews .right-side .rater .percentage{width:50px;margin-right:10px}section.review .review-layouter .ratings-reviews .right-side .rater .percentage span{float:right;white-space:nowrap}section.review .review-layouter .ratings-reviews .right-side .rater .line-bar{height:4px;width:calc(100% - 100px);margin-right:5px;margin-left:5px;background:#d8d8d8}section.review .review-layouter .ratings-reviews .right-side .rater .line-bar .line-value{background-color:#0031f0}@media only screen and (max-width:770px){section.review .category-breadcrumbs{display:none}section.review .review-layouter{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}section.review .review-layouter .product-info{max-width:100%}section.review .review-layouter .product-info .product-image,section.review .review-layouter .product-info .product-name,section.review .review-layouter .product-info .product-price{max-width:280px;margin-left:auto;margin-right:auto}section.review .review-layouter .review-form{width:100%;margin-left:0}section.review .review-layouter .review-form .heading .right{margin-top:50px}section.review .review-layouter .review-form .ratings-reviews{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%}section.review .review-layouter .review-form .ratings-reviews .left-side{width:100%;padding:0 0 40px;margin-top:-30px}section.review .review-layouter .review-form .ratings-reviews .right-side{width:100%}section.review .review-layouter .review-form .ratings-reviews .right-side .rater .percentage{margin-right:0}}.auth-content{padding-top:5%;padding-bottom:5%}.auth-content .sign-up-text{margin-bottom:2%;margin-left:auto;margin-right:auto;font-size:18px;color:#a5a5a5;text-align:center}.auth-content .login-form{margin-left:auto;margin-right:auto;display:-webkit-box;display:-ms-flexbox;display:flex;border:1px solid #c7c7c7;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:500px;min-width:320px;padding:25px}.auth-content .login-form .login-text{font-size:24px;font-weight:600;margin-bottom:30px}.auth-content .login-form .control-group{margin-bottom:15px!important}.auth-content .login-form .control-group .control{width:100%!important}.auth-content .login-form .forgot-password-link{font-size:17px;color:#0031f0;margin-bottom:5%}.auth-content .login-form .signup-confirm{margin-bottom:5%}.auth-content .login-form .btn-primary{width:100%;text-transform:uppercase}.account-content{width:100%;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;margin-top:5.5%;margin-bottom:5.5%}.account-content,.account-content .sidebar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.account-content .sidebar{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:20%;height:100%}.account-content .menu-block{margin-bottom:30px}.account-content .menu-block:last-child{margin-bottom:0}.account-content .menu-block .menu-block-title{padding-bottom:10px;font-size:18px}.account-content .menu-block .menu-block-title .right{display:none}.account-content .menu-block .menubar{border:1px solid #c7c7c7;color:#a5a5a5;position:relative}.account-content .menu-block .menubar li{width:95%;height:50px;margin-left:5%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #c7c7c7;text-align:center}.account-content .menu-block .menubar li a{color:#5e5e5e;width:100%;text-align:left}.account-content .menu-block .menubar li .icon{display:none;position:absolute;right:12px}.account-content .menu-block .menubar li:first-child{border-top:none}.account-content .menu-block .menubar li:last-child{border-bottom:none}.account-content .menu-block .menubar li.active a{color:#0031f0}.account-content .menu-block .menubar li.active .icon{display:inline-block}.account-content .account-layout{margin-left:40px;width:80%}.account-content .account-layout .account-head .back-icon,.account-content .account-layout .responsive-empty{display:none}.account-table-content{color:#242424;margin-top:1.4%}.account-table-content table{width:100%}.account-table-content table tbody tr{height:45px}.account-table-content table tbody tr td{width:250px}.address-holder{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.address-card{width:260px;border:1px solid #c7c7c7;padding:15px;margin-right:15px;margin-bottom:15px}.address-card .control-group{width:15px;height:15px;margin-top:10px}.address-card .details{font-weight:lighter}.address-card .details span{display:block}.address-card .details .control-links{width:90%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.address-card .details .control-links .btn{height:30px}.edit-form{display:-webkit-box;display:-ms-flexbox;display:flex;border:1px solid #c7c7c7;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:345px;padding:25px}@media only screen and (max-width:770px){.account-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.account-content .sidebar{width:100%}.account-content .sidebar .menu-block .menu-block-title{height:50px;padding-top:13px;border-bottom:1px solid #c7c7c7;border-top:1px solid #c7c7c7}.account-content .sidebar .menu-block .menu-block-title .right{display:block;float:right;-ms-flex-item-align:center;align-self:center}.account-content .sidebar .menu-block .menubar{border:0;display:none}.account-content .sidebar .menu-block .menubar>li{margin-left:0;width:100%}.account-content .sidebar .menu-block .menubar>li .icon{right:0}.account-content .sidebar .menu-block .menubar>li:last-child{border-bottom:1px solid #c7c7c7}.account-content .account-layout{margin-left:0;margin-top:20px;width:100%}.account-content .account-layout .account-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #c7c7c7;border-top:1px solid #c7c7c7;height:50px;margin-top:10px}.account-content .account-layout .account-head .account-action{margin-top:12px;margin-left:15px}.account-content .account-layout .account-head .back-icon{display:block}.account-content .account-layout .account-head span{margin-top:13px;font-size:18px}.account-content .account-layout .account-head .horizontal-rule{display:none}.account-content .account-layout .account-table-content{margin-top:2%}.account-content .account-layout .account-table-content table tbody tr{height:70px}.account-content .account-layout .account-table-content table tbody tr td{display:block}.account-content .account-layout .account-table-content .address-holder{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.account-content .account-items-list,.account-content .edit-form{margin-top:20px}.account-content .account-items-list .responsive-empty,.account-content .edit-form .responsive-empty{display:block}.account-content .control-group .control{width:100%}}.sale-container{color:#5e5e5e}.sale-container .sale-section .secton-title{font-size:18px;color:#8e8e8e;padding:15px 0;border-bottom:1px solid #c7c7c7}.sale-container .sale-section .section-content{display:block;padding:20px 0;border-bottom:1px solid #e8e8e8}.sale-container .sale-section .section-content .row{display:block;padding:7px 0}.sale-container .sale-section .section-content .row .title{width:200px;letter-spacing:-.26px;display:inline-block}.sale-container .sale-section .section-content .row .value{letter-spacing:-.26px;display:inline-block}.sale-container .sale-section .section-content .order-box-container{display:inline-block;width:100%}.sale-container .sale-section .section-content .order-box-container .box{float:left;width:25%}.sale-container .sale-section .section-content .order-box-container .box .box-title{padding:10px 0;font-size:18px;color:#8e8e8e}.sale-container .sale-section .section-content .order-box-container .box .box-content{color:#3a3a3a;padding-right:10px}.sale-container .sale-section .section-content .qty-row{display:block}.sale-container .totals{padding-top:20px;display:inline-block;width:100%;border-top:1px solid #e8e8e8}.sale-container .totals .sale-summary{height:130px;float:right;border-collapse:collapse}.sale-container .totals .sale-summary tr td{padding:5px 8px;width:auto;color:#3a3a3a}.sale-container .totals .sale-summary tr.bold{font-weight:600;font-size:15px}.sale-container .totals .sale-summary tr.border td{border-bottom:1px solid #c7c7c7}@media only screen and (max-width:770px){.sale-container .sale-section .section-content{border-bottom:none;padding:10px 0}.sale-container .sale-section .section-content .row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.sale-container .sale-section .section-content .row .title{line-height:20px}.sale-container .sale-section .section-content .totals{border-top:none}.sale-container .sale-section .section-content .totals .sale-summary{width:100%}.sale-container .sale-section .section-content .totals .sale-summary tr td:nth-child(2){display:none}.sale-container .sale-section .section-content .order-box-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.sale-container .sale-section .section-content .order-box-container .box{width:100%;margin:10px auto}.sale-container .sale-section .section-content .qty-row{display:inline}}.verify-account{text-align:center;background:#204d74;width:200px;margin-right:auto;margin-left:auto;border-radius:4px}.verify-account a{color:#fff!important}.cp-spinner{position:absolute;left:calc(50% - 24px);margin-top:calc(40% - 24px)}@media only screen and (max-width:720px){.cp-spinner{left:50%;margin-left:-24px;top:50%;margin-top:-24px}}@media only screen and (max-width:720px){.error-container .wrapper{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important;margin:10px 0 20px!important;-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:start!important;height:100%!important}}@media only screen and (max-width:770px){.table table{width:100%}.table table thead{display:none}.table table tbody tr td:before{content:attr(data-value);font-size:15px;font-weight:600;display:inline-block;width:120px}.table table tbody td{border-bottom:none!important;display:block;width:100%!important}.table table tbody td div{position:relative;left:100px;top:-20px}.table table tbody tr{border:1px solid #c7c7c7}}.show-wishlist{z-index:-1!important}.filter-row-one .dropdown-filters{position:relative!important;right:1px!important}@media only screen and (max-width:770px){.table .grid-container{margin-top:10px;overflow-x:hidden}.table .grid-container .filter-row-one{display:block}.table .grid-container .filter-row-one .dropdown-filters{margin-top:10px}}.rtl{direction:rtl}.rtl .header .header-top div.left-content ul.logo-container{margin-right:0;margin-left:12px}.rtl .header .header-top div.left-content ul.search-container li.search-group .search-field{border:2px solid #c7c7c7;padding-right:12px;padding-left:0;border-radius:2px;border-top-left-radius:0;border-bottom-left-radius:0}.rtl .header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper{border:2px solid #c7c7c7;border-right:none;border-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0}.rtl .header .header-top div.right-content .right-content-menu>li{border-right:2px solid #c7c7c7;padding:0 15px}.rtl .header .header-top div.right-content .right-content-menu>li:last-child{padding-left:0}.rtl .header .header-top div.right-content .right-content-menu>li:first-child{border-right:0;padding-right:0}.rtl .header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list{left:0;right:unset!important}.rtl .header .header-top div.right-content .right-content-menu .cart-dropdown-container .count{display:inline-block}.rtl .header .header-top div.right-content .right-content-menu .account,.rtl .header .header-top div.right-content .right-content-menu .currency{right:unset;left:0}.rtl .header .header-top div.right-content .right-content-menu .guest div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.rtl .header .header-bottom .nav>li{float:right;margin-right:0;margin-left:1px}.rtl .header .header-bottom .nav a{padding:.8em .5em .8em .3em!important}.rtl .header .header-bottom .nav li a>.icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .header .header-bottom .nav>li li:hover>ul{left:unset!important;right:100%!important}.rtl .header .header-bottom .nav ul{left:99999em}.rtl .header .search-responsive .search-content .right{float:left}.rtl .dropdown-list{text-align:right}.rtl .dropdown-list.bottom-right{left:0;right:auto}@media only screen and (max-width:720px){.rtl .header .header-top div.right-content .menu-box{margin-left:0;margin-right:5px}.rtl .header .header-top div.right-content .right-content-menu .account{position:absolute;left:0;right:auto}.rtl .header .header-top div.right-content .right-content-menu>li{padding:0;border:0}.rtl .header .header-top div.right-content .search-box{margin-left:5px}.rtl .header .header-bottom .nav>li{float:none}.rtl .header .header-bottom .nav li>.icon{float:left;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .header .header-bottom .icon.icon-arrow-down{margin-left:5px}}.rtl section.slider-block div.slider-content div.slider-control{left:2%;right:auto}.rtl section.slider-block div.slider-content div.slider-control .slider-left{float:left}.rtl section.slider-block div.slider-content div.slider-control .slider-right{margin-left:5px}@media only screen and (max-width:720px){.rtl section.slider-block div.slider-content div.slider-control{left:0}}.rtl .main-container-wrapper .product-card .sticker{left:auto;right:20px}.rtl .main-container-wrapper .product-card .cart-wish-wrap .addtocart{margin-right:0;margin-left:10px}.rtl section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;margin-left:30px}.rtl section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons{float:left!important}.rtl section.product-detail div.layouter .form-container div .thumb-list{margin-left:4px;margin-right:0}.rtl section.product-detail div.layouter .form-container .details .accordian .accordian-header{padding:20px 0 20px 15px}.rtl section.product-detail div.layouter .form-container .details .accordian .accordian-header .icon{float:left}.rtl section.product-detail div.layouter .form-container .details .accordian .accordian-header .expand-icon{margin-left:10px}.rtl section.product-detail div.layouter .form-container .details .full-specifications td:first-child{padding-right:0;padding-left:40px}.rtl section.product-detail div.layouter .form-container .details .product-ratings .total-reviews{margin-left:0;margin-right:15px}@media only screen and (max-width:720px){.rtl section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;margin-left:0}}.rtl .main .category-container .layered-filter-wrapper,.rtl .main .category-container .responsive-layred-filter{padding-right:0;padding-left:20px}.rtl .main .top-toolbar .pager{float:left}.rtl .main .top-toolbar .pager .view-mode{margin-right:0;margin-left:20px}.rtl .main .top-toolbar .pager .sorter{margin-right:0;margin-left:10px}.rtl .main .top-toolbar .pager label{margin-right:0;margin-left:5px}.rtl .main .top-toolbar .page-info{float:right}.rtl section.review .review-layouter .review-form{margin-left:0;margin-right:20px}.rtl section.review .review-layouter .review-form .heading .right{float:left}.rtl section.review .review-layouter .review-form .ratings-reviews .right-side .rater .star-name{margin-right:0;margin-left:5px}@media only screen and (max-width:770px){.rtl section.review .review-layouter .review-form{margin-right:0}}.rtl section.cart .cart-content .left-side{width:70%;float:right}.rtl section.cart .cart-content .left-side .misc-controls a.link{margin-left:15px;margin-right:0}.rtl section.cart .cart-content .right-side{width:30%;padding-right:40px;padding-left:0}.rtl .order-summary .item-detail label.right,.rtl .payable-amount label.right{float:left}.rtl .item div{margin-left:15px;margin-right:0!important}.rtl .cart-item-list .item .item-details .misc div.qty-text{margin-right:0;margin-left:10px}.rtl .cart-item-list .item .item-details .misc .remove,.rtl .cart-item-list .item .item-details .misc input.box{margin-right:0;margin-left:30px}.rtl .cart-item-list .item .item-details .misc .control-group label{margin-left:15px;margin-right:0}@media only screen and (max-width:770px){.rtl section.cart .cart-content .left-side{width:100%;float:none}.rtl section.cart .cart-content .left-side .misc-controls div button{margin-right:0}.rtl section.cart .cart-content .right-side{width:100%;padding-right:0}}.rtl .checkout-process .col-right{padding-left:0;padding-right:40px}.rtl .checkout-process .col-main{padding-left:40px;padding-right:0}.rtl .checkout-process .col-main ul.checkout-steps li span{margin-right:7px;margin-left:0}.rtl .checkout-process .col-main .step-content .form-header h1{float:right}.rtl .checkout-process .col-main .step-content .form-header .btn{float:left}.rtl .checkout-process .col-main .step-content .payment-methods .control-info{margin-right:28px;margin-left:0}.rtl .checkout-process .col-main .step-content .address .billing-address,.rtl .checkout-process .col-main .step-content .address .pull-left,.rtl .checkout-process .col-main .step-content .order-description .billing-address,.rtl .checkout-process .col-main .step-content .order-description .pull-left{float:right!important}.rtl .checkout-process .col-main .step-content .address .pull-right,.rtl .checkout-process .col-main .step-content .address .shipping-address,.rtl .checkout-process .col-main .step-content .order-description .pull-right,.rtl .checkout-process .col-main .step-content .order-description .shipping-address{float:left!important}.rtl .checkbox,.rtl .radio{margin:10px 0 5px 5px}.rtl .radio .radio-view{margin-left:5px;margin-right:0}.rtl .radio input{right:0;left:auto}@media only screen and (max-width:770px){.rtl .checkout-process .col-main{padding-left:0}}.rtl .account-content .account-layout{margin-left:0;margin-right:40px}.rtl .account-content .menu-block .menubar li{margin-left:0;margin-right:5%}.rtl .account-content .menu-block .menubar li a{text-align:right}.rtl .account-content .menu-block .menubar li .icon{right:unset;left:12px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .account-head .account-action{float:left}.rtl .account-item-card .media-info .info{margin-right:20px;margin-left:0}.rtl .account-item-card .operations a span{float:left}.rtl .table table{text-align:right}.rtl .sale-container .totals .sale-summary{float:left}.rtl .sale-container .sale-section .section-content .order-box-container{display:-webkit-box;display:-ms-flexbox;display:flex}@media (max-width:770px){.rtl .account-content .account-layout{margin-right:0}.rtl .account-content .account-layout .account-head .account-action{margin-left:0}.rtl .account-content .sidebar .menu-block .menu-block-title .right{float:left}.rtl .account-content .sidebar .menu-block .menubar>li{margin-right:0}}.rtl .footer .footer-content .footer-list-container .list-container .list-group li span.icon{margin-left:5px;margin-right:0}@media (max-width:720px){.rtl .footer{padding-right:15px;padding-left:10%}.rtl .footer .footer-list-container{padding-right:0!important}}.rtl .cp-spinner{position:absolute;right:calc(50% - 24px);margin-top:calc(40% - 24px)}@media only screen and (max-width:720px){.rtl .cp-spinner{right:50%;margin-right:-24px;left:auto}}.rtl .product-list .product-card .product-information{padding-left:0;padding-right:30px;float:left}.rtl .zoom-image-direction{left:0;right:476px!important}.banner-container{width:100%;float:left;padding:0 18px;margin-bottom:40px}.banner-container .left-banner{padding-right:20px;width:60%;float:left}.banner-container .left-banner img{width:100%}.banner-container .right-banner{padding-left:20px;width:40%;float:left}.banner-container .right-banner img{width:100%}.banner-container .right-banner img:first-child{padding-bottom:20px;height:50%;display:block}.banner-container .right-banner img:last-child{padding-top:20px;height:50%;display:block}@media (max-width:720px){.banner-container .left-banner{padding-right:0;width:100%}.banner-container .right-banner{padding-left:0;width:100%}.banner-container .right-banner img:first-child{padding-bottom:0;padding-top:25px}.banner-container .right-banner img:last-child{padding-top:25px}} \ No newline at end of file +@import url(https://fonts.googleapis.com/css?family=Montserrat:400,500);.icon{display:inline-block;background-size:cover}.dropdown-right-icon{background-image:URL("../images/icon-dropdown-left.svg");width:8px;height:8px;margin-left:auto;margin-bottom:2px}.icon-menu-close{background-image:URL("../images/icon-menu-close.svg");width:24px;height:24px;margin-left:auto}.icon-menu-close-adj{background-image:URL("../images/cross-icon-adj.svg");margin-left:auto}.grid-view-icon{background-image:URL("../images/icon-grid-view.svg");width:24px;height:24px}.list-view-icon{background-image:URL("../images/icon-list-view.svg");width:24px;height:24px}.sort-icon{background-image:URL("../images/icon-sort.svg");width:32px;height:32px}.filter-icon{background-image:URL("../images/icon-filter.svg");width:32px;height:32px}.whishlist-icon{background-image:URL("../images/wishlist.svg");width:24px;height:24px}.share-icon{background-image:URL("../images/icon-share.svg");width:24px;height:24px}.icon-menu{background-image:URL("../images/icon-menu.svg");width:24px;height:24px}.icon-search{background-image:URL("../images/icon-search.svg");width:24px;height:24px}.icon-menu-back{background-image:URL("../images/icon-menu-back.svg");width:24px;height:24px}.shipping-icon{background-image:url("../images/shipping.svg");width:32px;height:32px}.payment-icon{background-image:url("../images/payment.svg");width:32px;height:32px}.cart-icon{background-image:url("../images/icon-cart.svg");width:24px;height:24px}.wishlist-icon{background-image:url("../images/wishlist.svg");width:32px;height:32px}.icon-arrow-up{background-image:url("../images/arrow-up.svg");width:16px;height:16px}.icon-arrow-down{background-image:url("../images/arrow-down.svg");width:16px;height:16px}.expand-icon{background-image:url("../images/Expand-Light.svg");width:18px;height:18px}.expand-on-icon{background-image:url("../images/Expand-Light-On.svg");width:18px;height:18px}.icon-menu-close-adj{background-image:url("../images/cross-icon-adj.svg");width:32px;height:32px}.icon-facebook{background-image:url("../images/facebook.svg")}.icon-twitter{background-image:url("../images/twitter.svg")}.icon-google-plus{background-image:url("../images/google-plus.svg")}.icon-instagram{background-image:url("../images/instagram.svg")}.icon-linkedin{background-image:url("../images/linkedin.svg")}.icon-dropdown{background-image:url("../images/icon-dropdown.svg")}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}body{margin:0;padding:0;font-weight:500;max-width:100%;width:auto;color:#242424;font-size:16px}*{font-family:Montserrat,sans-serif}::-webkit-input-placeholder{font-family:Montserrat,sans-serif}::-moz-input-placeholder{font-family:Montserrat,sans-serif}textarea{resize:none}input{font-family:Montserrat,sans-serif}.btn{border-radius:0!important}.pagination.shop{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}@media only screen and (max-width:770px){.pagination.shop{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.pagination.shop .page-item{display:none}.pagination.shop .page-item.next,.pagination.shop .page-item.previous{display:block}}.bold{font-weight:700;color:#3a3a3a}.radio-container{display:block;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:16px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.radio-container input{position:absolute;opacity:0;cursor:pointer;top:0;left:0}.radio-container .checkmark{position:absolute;top:0;left:0;height:16px;width:16px;background-color:#fff;border:2px solid #ff6472;border-radius:50%}.radio-container .checkmark:after{content:"";position:absolute;display:none;top:2px;left:2px;width:8px;height:8px;border-radius:50%;background:#ff6472}.radio-container input:checked~.checkmark:after{display:block}.radio-container input:disabled~.checkmark{display:block;border:2px solid rgba(255,100,113,.4)}.cp-spinner{width:48px;height:48px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.cp-round:before{border-radius:50%;border:6px solid #bababa}.cp-round:after,.cp-round:before{content:" ";width:48px;height:48px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:0;left:0}.cp-round:after{border-radius:50%;border-top:6px solid #0031f0;border-right:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid transparent;-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite}.pull-right{float:right}.add-to-wishlist .wishlist-icon:hover{background-image:url("../images/wishlist-added.svg")}.product-price{margin-bottom:14px;width:100%;font-weight:600}.product-price .price-label{font-size:14px;font-weight:400}.product-price .regular-price{color:#a5a5a5;text-decoration:line-through;margin-right:10px}.product-price .special-price{color:#ff6472}.horizontal-rule{display:block;width:100%;height:1px;background:#c7c7c7}.account-head .account-heading{font-size:28px;color:#242424;text-transform:capitalize;text-align:left}.account-head .account-action{font-size:17px;margin-top:1%;color:#0031f0;float:right}.account-head .horizontal-rule{margin-top:1.1%;width:100%;height:1px;vertical-align:middle;background:#c7c7c7}.account-item-card{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:125px}.account-item-card,.account-item-card .media-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.account-item-card .media-info .media{height:125px;width:110px}.account-item-card .media-info .info{margin-left:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:space-evenly;-ms-flex-pack:space-evenly;justify-content:space-evenly}.account-item-card .media-info .info .stars .icon{height:16px;width:16px}.account-item-card .operations{height:120px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.account-item-card .operations a{width:100%}.account-item-card .operations a span{float:right}.account-items-list{display:block;width:100%}.account-items-list .grid-container{margin-top:40px}.search-result-status{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.grid-container{margin-top:20px}.main-container-wrapper{max-width:1300px;width:auto;padding-left:15px;padding-right:15px;margin-left:auto;margin-right:auto}.main-container-wrapper .content-container{display:block;margin-bottom:40px}.main-container-wrapper .product-grid-4{grid-auto-rows:auto;grid-column-gap:30px;grid-row-gap:15px}.main-container-wrapper .product-grid-3,.main-container-wrapper .product-grid-4{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));justify-items:center}.main-container-wrapper .product-grid-3{grid-gap:27px;grid-auto-rows:auto}.main-container-wrapper .product-card{position:relative}.main-container-wrapper .product-card .product-image{max-height:350px;max-width:280px;margin-bottom:10px;background:#f2f2f2}.main-container-wrapper .product-card .product-image img{display:block;height:100%}.main-container-wrapper .product-card .product-name{margin-bottom:14px;width:100%;color:#242424}.main-container-wrapper .product-card .product-name a{color:#242424}.main-container-wrapper .product-card .product-description{display:none}.main-container-wrapper .product-card .product-ratings{width:100%}.main-container-wrapper .product-card .product-ratings .icon{width:16px;height:16px}.main-container-wrapper .product-card .cart-wish-wrap{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px}.main-container-wrapper .product-card .cart-wish-wrap .addtocart{margin-right:10px;text-transform:uppercase;text-align:left;-webkit-box-shadow:1px 1px 0 #ccc;box-shadow:1px 1px 0 #ccc}.main-container-wrapper .product-card .cart-wish-wrap .add-to-wishlist{margin-top:5px;background:transparent;border:0;cursor:pointer;padding:0}.main-container-wrapper .product-card .sticker{border-radius:100px;position:absolute;top:20px;left:20px;text-transform:uppercase;padding:4px 13px;font-size:14px;color:#fff;-webkit-box-shadow:1px 1px 1px #ccc;box-shadow:1px 1px 1px #ccc}.main-container-wrapper .product-card .sticker.sale{background:#ff6472}.main-container-wrapper .product-card .sticker.new{background:#2ed04c}.main-container-wrapper .product-card:hover{box-shadow:0 1px 2px rgba(0,0,0,.05);-webkit-box-shadow:0 2px 16px 4px rgba(40,44,63,.07);box-shadow:0 2px 16px 4px rgba(40,44,63,.07);-webkit-transition:.3s;transition:.3s}@media only screen and (max-width:580px){.main-container-wrapper .main-container-wrapper{padding:0}}@media only screen and (max-width:551px){.main-container-wrapper .product-grid-3{grid-template-columns:48.5% 48.5%;grid-column-gap:20px}}@media only screen and (max-width:854px){.main-container-wrapper .product-image img{display:block;width:100%}.main-container-wrapper .product-grid-4{grid-template-columns:29.5% 29.5% 29.5%;grid-column-gap:35px}.main-container-wrapper .product-card:hover{padding:5px}}@media only screen and (max-width:653px){.main-container-wrapper .product-image img{display:block;width:100%}.main-container-wrapper .product-grid-4{grid-template-columns:48.5% 48.5%;grid-column-gap:17px}}@media only screen and (max-width:425px){.main-container-wrapper .product-card{font-size:90%}.main-container-wrapper .product-card .product-image img{display:block;width:100%}.main-container-wrapper .product-card .btn.btn-md{padding:5px}.main-container-wrapper .product-grid-4{grid-template-columns:48.5% 48.5%;grid-column-gap:10px}}.main-container-wrapper .product-list{min-height:200px}.main-container-wrapper .product-list .product-card{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.main-container-wrapper .product-list .product-card .product-image{float:left;width:30%;height:350px}.main-container-wrapper .product-list .product-card .product-image img{height:100%}.main-container-wrapper .product-list .product-card .product-information{float:right;width:70%;padding-left:30px}.main-container-wrapper .product-list .product-card:last-child{margin-bottom:0}.main-container-wrapper .product-list.empty h2{font-size:20px}.main-container-wrapper section.featured-products{display:block;margin-bottom:5%}.main-container-wrapper section.featured-products .featured-heading{width:100%;text-align:center;text-transform:uppercase;font-size:18px;margin-bottom:20px}.main-container-wrapper section.featured-products .featured-heading .featured-separator{color:#d3d3d3}.main-container-wrapper section.news-update{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;margin-bottom:5%}.main-container-wrapper section.news-update .news-update-grid{display:grid;grid-template-columns:58.5% 40%;grid-gap:20px}.main-container-wrapper section.news-update .news-update-grid .block1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block1 img{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;width:100%}.main-container-wrapper section.news-update .news-update-grid .block2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-rows:repeat(2,minmax(50%,1fr));grid-row-gap:20px}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block1{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block1 img{width:100%}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block2{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.main-container-wrapper section.news-update .news-update-grid .block2 .sub-block2 img{width:100%}section.slider-block{display:block;margin-left:auto;margin-right:auto;margin-bottom:5%}section.slider-block div.slider-content{position:relative;height:500px;margin-left:auto;margin-right:auto}section.slider-block div.slider-content ul.slider-images .show-content{display:none}section.slider-block div.slider-content ul.slider-images li{position:absolute;visibility:hidden}section.slider-block div.slider-content ul.slider-images li.show{display:block;position:relative;visibility:visible;width:100%;-webkit-animation-name:example;animation-name:example;-webkit-animation-duration:4s;animation-duration:4s}section.slider-block div.slider-content ul.slider-images li.show .show-content{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#242424;height:100%;width:100%;top:0}@-webkit-keyframes example{0%{opacity:.1}to{opacity:1}}@keyframes example{0%{opacity:.1}to{opacity:1}}section.slider-block div.slider-content ul.slider-images li img{height:500px;width:100%}section.slider-block div.slider-content div.slider-control{display:block;cursor:pointer;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;bottom:2%;right:2%}section.slider-block div.slider-content div.slider-control .dark-left-icon{background-color:#f2f2f2;height:48px;width:48px;max-height:100%;max-width:100%}section.slider-block div.slider-content div.slider-control .light-right-icon{background-color:#242424;height:48px;width:48px;max-height:100%;max-width:100%}@media only screen and (max-width:770px){section.slider-block div.slider-content div.slider-control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;bottom:46%;right:0;width:100%}}.header{margin-top:16px;margin-bottom:21px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.header .header-top{margin-bottom:16px;max-width:100%;width:auto;margin-left:auto;margin-right:auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.header .header-top,.header .header-top div.left-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.left-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.header .header-top div.left-content ul.logo-container{margin-right:12px}.header .header-top div.left-content ul.logo-container li{display:-webkit-box;display:-ms-flexbox;display:flex}.header .header-top div.left-content ul.logo-container li img{max-width:120px;max-height:40px}.header .header-top div.left-content ul.search-container li.search-group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header .header-top div.left-content ul.search-container li.search-group .search-field{height:38px;border:2px solid #c7c7c7;border-radius:3px;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;padding-left:12px;font-size:14px}.header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;height:38px;width:38px;border:2px solid #c7c7c7;border-top-right-radius:3px;border-bottom-right-radius:3px}.header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper button{background:#fff;border:0;padding:3px 5px}.header .header-top div.right-content .right-content-menu>li{display:inline-block;border-right:2px solid #c7c7c7;padding:0 15px;min-height:15px;padding-top:3px}.header .header-top div.right-content .right-content-menu>li:first-child{padding-left:0}.header .header-top div.right-content .right-content-menu>li:last-child{border-right:0;padding-right:0}.header .header-top div.right-content .right-content-menu>li .icon{vertical-align:middle}.header .header-top div.right-content .right-content-menu>li .icon:not(.arrow-down-icon){margin-right:5px}.header .header-top div.right-content .right-content-menu>li .arrow-down-icon{width:12px;height:6px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container{border-right:0;padding-right:0}.header .header-top div.right-content .right-content-menu .cart-link{pointer-events:none}.header .header-top div.right-content .right-content-menu ul.dropdown-list{display:none;margin-top:14px}.header .header-top div.right-content .right-content-menu ul.dropdown-list li{border-right:none;padding:5px 10px;display:block}.header .header-top div.right-content .right-content-menu ul.dropdown-list li a{color:#333}.header .header-top div.right-content .right-content-menu .currency{position:absolute;right:0;width:100px}.header .header-top div.right-content .right-content-menu .account{position:absolute;right:0}.header .header-top div.right-content .right-content-menu .account li{padding:20px!important}.header .header-top div.right-content .right-content-menu .account li ul{margin-top:5px}.header .header-top div.right-content .right-content-menu .account li ul>li{padding:5px 10px 5px 0!important}.header .header-top div.right-content .right-content-menu .guest{width:300px}.header .header-top div.right-content .right-content-menu .guest .btn.btn-sm{padding:9px 25px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list{width:387px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container{padding:0}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-cart{color:#242424}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header{width:100%;padding:8px 16px;border-bottom:1px solid #c7c7c7}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header p{display:inline;line-height:25px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header i{float:right;height:22px;width:22px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-cart>.dropdown-header p.heading{font-weight:lighter}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-content{padding-top:8px;margin-bottom:55px;width:100%;max-height:329px;overflow-y:auto}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-content .item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;border-bottom:1px solid #c7c7c7;padding:8px 16px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-content .item img{height:75px;width:75px;margin-right:8px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-content .item-details{height:auto}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .item-details .item-name{font-size:16px;font-weight:700;margin-bottom:8px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .item-details .item-options{font-size:16px;margin-bottom:8px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .item-details .item-price{margin-bottom:8px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .item-details .item-qty{font-weight:lighter;margin-bottom:8px}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 16px;position:absolute;bottom:0;width:100%;background:#fff;border-top:1px solid #c7c7c7}.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list .dropdown-container .dropdown-footer .btn{margin:0;max-width:170px;text-align:center}.header .header-top div.right-content .menu-box,.header .header-top div.right-content .search-box{display:none}.header .header-bottom{height:47px;margin-left:auto;margin-right:auto;border-top:1px solid #c7c7c7;border-bottom:1px solid #c7c7c7;display:block}.header .header-bottom ul.nav{display:block;font-size:16px;max-width:100%;width:auto;margin-left:auto;margin-right:auto}.header .header-bottom .nav ul{margin:0;padding:0;-webkit-box-shadow:1px 1px 1px 0 rgba(0,0,0,.4);box-shadow:1px 1px 1px 0 rgba(0,0,0,.4)}.header .header-bottom .nav a{display:block;color:#242424;text-decoration:none;padding:.8em .3em .8em .5em;text-transform:capitalize;letter-spacing:-.38px;position:relative}.header .header-bottom .nav li>.icon{display:none}.header .header-bottom .nav{vertical-align:top;display:inline-block}.header .header-bottom .nav li{position:relative}.header .header-bottom .nav>li{float:left;margin-right:1px;height:45px}.header .header-bottom .nav>li>a{margin-bottom:1px}.header .header-bottom .nav>li>a .icon{display:none}.header .header-bottom .nav li li a{margin-top:1px;white-space:normal;word-break:break-word;width:200px}.header .header-bottom .nav li a:first-child:nth-last-child(2):before{content:"";position:absolute;height:0;width:0;border:5px solid transparent;top:50%;right:5px}.header .header-bottom .nav ul{position:absolute;white-space:nowrap;border:1px solid #c7c7c7;background-color:#fff;z-index:10000;left:-99999em}.header .header-bottom .nav>li:hover{background-color:#f2f2f2}.header .header-bottom .nav>li:hover>ul{left:auto;min-width:100%}.header .header-bottom .nav>li li:hover{background-color:#f2f2f2}.header .header-bottom .nav>li li:hover>ul{left:100%;margin-left:1px;top:-2px}.header .header-bottom .nav>li:hover>a:first-child:nth-last-child(2):before,.header .header-bottom .nav li li>a:first-child:nth-last-child(2):before{margin-top:-5px}.header .header-bottom .nav li li:hover>a:first-child:nth-last-child(2):before{right:10px}.header .search-responsive{display:none}.header .search-responsive .search-content{border-bottom:1px solid #c7c7c7;border-top:1px solid #c7c7c7;height:50px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.header .search-responsive .search-content .search{width:80%;border:none;font-size:16px}.header .search-responsive .search-content .right{float:right}@media (max-width:720px){.header .currency-switcher{display:none!important}.header .header-top div.right-content{display:inherit}.header .header-top div.right-content .menu-box{display:inline-block;margin-left:10px}.header .header-top div.right-content .search-box{display:inline-block;margin-right:10px;cursor:pointer}.header .header-top div.right-content .right-content-menu>li{border-right:none;padding:0 2px}.header .header-top div.right-content .right-content-menu>li .icon:not(.arrow-down-icon){margin-right:0}.header .header-top div.right-content .right-content-menu .cart-link{pointer-events:all}.header .header-top div.right-content .right-content-menu .arrow-down-icon,.header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-container,.header .header-top div.right-content .right-content-menu .name{display:none}.header .header-bottom{height:auto;display:none}.header .header-bottom .nav a{display:inline-block}.header .header-bottom .nav li,.header .header-bottom ul.nav{height:auto}.header .header-bottom .nav>li{float:none}.header .header-bottom .nav li>.icon{float:right;display:block}.header .header-bottom .icon.icon-arrow-down{margin-right:5px}.header .header-bottom .nav li .left{height:16px;width:16px}.header .header-bottom .nav li a>.icon{display:none}.header .header-bottom .nav ul{position:unset;border:none;-webkit-box-shadow:none;box-shadow:none}.header .header-bottom .nav>li li:hover>ul{margin-left:0;top:0}ul.account-dropdown-container,ul.cart-dropdown-container,ul.search-container{display:none!important}}@media (max-width:400px){.header .header-top div.right-content .right-content-menu .guest{width:240px}.header .header-top div.right-content .right-content-menu .guest .btn.btn-sm{padding:7px 14px}}.footer{background-color:#f2f2f2;padding-left:10%;padding-right:10%;width:100%;display:inline-block}.footer .footer-content .footer-list-container{display:grid;padding:40px 10px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-auto-rows:auto;grid-row-gap:1vh}.footer .footer-content .footer-list-container .list-container .list-heading{text-transform:uppercase;color:#a5a5a5}.footer .footer-content .footer-list-container .list-container .list-group{padding-top:25px}.footer .footer-content .footer-list-container .list-container .list-group a{color:#242424}.footer .footer-content .footer-list-container .list-container .list-group li{margin-bottom:12px;list-style-type:none;text-transform:uppercase}.footer .footer-content .footer-list-container .list-container .list-group li span.icon{display:inline-block;vertical-align:middle;margin-right:5px;height:24px;width:24px}.footer .footer-content .footer-list-container .list-container .form-container{padding-top:5px}.footer .footer-content .footer-list-container .list-container .form-container .control-group .subscribe-field{width:100%}.footer .footer-content .footer-list-container .list-container .form-container .control-group .btn-primary{background-color:#242424;margin-top:8px;border-radius:0;text-align:center}.footer .footer-content .footer-list-container .list-container .form-container .control-group .locale-switcher{width:100%}.footer .footer-content .footer-list-container .list-container .currency{display:none}@media (max-width:720px){.footer{padding-left:15px}.footer .footer-list-container{padding-left:0!important}.footer .currency{display:block!important}}.footer-bottom{width:100%;height:70px;font-size:16px;color:#a5a5a5;letter-spacing:-.26px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer-bottom p{padding:0 15px}.main .category-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}.main .category-container .layered-filter-wrapper,.main .category-container .responsive-layred-filter{width:25%;float:left;padding-right:20px;min-height:1px}.main .category-container .layered-filter-wrapper .filter-title,.main .category-container .responsive-layred-filter .filter-title{border-bottom:1px solid #c7c7c7;color:#242424;padding:10px 0}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item{border-bottom:1px solid #c7c7c7;padding-bottom:10px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title{padding:10px 40px 0 10px;color:#5e5e5e;cursor:pointer;position:relative}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title .remove-filter-link,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title .remove-filter-link{font-weight:400;color:#0031f0;margin-right:10px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title .icon,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title .icon{background-image:url("../images/icon-dropdown.svg")!important;width:10px;height:10px;position:absolute;right:15px;top:14px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content{padding:10px;display:none}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items{padding:0;margin:0;list-style:none none}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item{padding:8px 0;color:#5e5e5e}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox{margin:0}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox .checkbox-view,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox .checkbox-view{height:16px;width:16px;background-image:url("../images/checkbox.svg")}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox input:checked+.checkbox-view,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .checkbox input:checked+.checkbox-view{background-image:url("../images/checkbox-checked.svg")}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .color-swatch,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content ol.items li.item .color-swatch{display:inline-block;margin-right:5px;min-width:20px;height:20px;border:1px solid #c7c7c7;border-radius:3px;float:right}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-content .price-range-wrapper,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-content .price-range-wrapper{margin-top:21px}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item.active .filter-attributes-content,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item.active .filter-attributes-content{display:block}.main .category-container .layered-filter-wrapper .filter-attributes .filter-attributes-item.active .filter-attributes-title .icon,.main .category-container .responsive-layred-filter .filter-attributes .filter-attributes-item.active .filter-attributes-title .icon{background-image:url("../images//arrow-up.svg")!important}.main .category-container .responsive-layred-filter{display:none;width:100%;float:none;padding-right:0;margin-top:-25px!important}.main .category-container .category-block{width:80%;display:block}.main .category-container .category-block .hero-image{display:inline-block;visibility:visible;width:100%}.main .category-container .category-block .hero-image img{height:400px;width:100%}.main .top-toolbar{width:100%;display:inline-block}.main .top-toolbar .page-info{float:left;color:#242424;line-height:45px}.main .top-toolbar .page-info span{display:none}.main .top-toolbar .page-info span:first-child{display:inline}.main .top-toolbar .pager{float:right}.main .top-toolbar .pager label{margin-right:5px}.main .top-toolbar .pager select{background:#f2f2f2;border:1px solid #c7c7c7;border-radius:3px;color:#242424;padding:10px}.main .top-toolbar .pager .view-mode{display:inline-block;margin-right:20px}.main .top-toolbar .pager .view-mode a,.main .top-toolbar .pager .view-mode span{display:inline-block;vertical-align:middle}.main .top-toolbar .pager .view-mode a.grid-view,.main .top-toolbar .pager .view-mode span.grid-view{margin-right:10px}.main .top-toolbar .pager .view-mode .sort-filter{display:none}.main .top-toolbar .pager .sorter{display:inline-block;margin-right:10px}.main .top-toolbar .pager .limiter{display:inline-block}.main .bottom-toolbar{display:block;margin-top:40px;margin-bottom:40px;text-align:center}@media only screen and (max-width:840px){.main .category-container .responsive-layred-filter,.main .layered-filter-wrapper{display:none}.main .category-block{width:100%!important}.main .category-block .top-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.main .category-block .top-toolbar .page-info{border-bottom:1px solid #c7c7c7;line-height:15px;margin-top:10px}.main .category-block .top-toolbar .page-info span{display:inline}.main .category-block .top-toolbar .page-info span:first-child{display:none}.main .category-block .top-toolbar .page-info .sort-filter{float:right;cursor:pointer}.main .category-block .top-toolbar .pager{margin-top:20px;display:none}.main .category-block .top-toolbar .pager .view-mode{display:none}.main .category-block .responsive-layred-filter{display:block}}section.product-detail{color:#242424}section.product-detail div.category-breadcrumbs{display:inline}section.product-detail div.layouter{display:block;margin-top:20px;margin-bottom:20px}section.product-detail div.layouter .form-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}section.product-detail div.layouter .form-container div.product-image-group{margin-right:30px;width:604px;height:650px;max-width:604px;position:-webkit-sticky;position:sticky;top:10px}section.product-detail div.layouter .form-container div.product-image-group div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;cursor:pointer}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-right:4px;min-width:120px;overflow:hidden;position:relative;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;max-height:480px}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame{border:2px solid transparent;background:#f2f2f2;width:120px;max-height:120px}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame.active{border-color:#0031f0}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame img{height:100%;width:100%}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control{width:100%;position:absolute;text-align:center;cursor:pointer;z-index:1}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control .overlay{opacity:.3;background:#242424;width:100%;height:18px;position:absolute;left:0;z-index:-1}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control .icon{z-index:2}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control.top{top:0}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control.bottom{bottom:0}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image{display:block;position:relative;background:#f2f2f2;width:100%;max-height:480px;height:100%}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image img{width:100%;height:auto;max-height:480px}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .add-to-wishlist{background-image:url("../images/wishlist.svg");position:absolute;top:10px;right:12px;background-color:transparent;border:0;cursor:pointer;padding:0;width:32px;height:32px}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .add-to-wishlist:hover{background-image:url("../images/wishlist-added.svg")}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image .share{position:absolute;top:10px;right:45px}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons{display:none;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-top:10px;width:79.5%;float:right;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons .addtocart{width:49%;background:#000;white-space:normal;text-transform:uppercase}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons .buynow{width:49%;white-space:nowrap;text-transform:uppercase}section.product-detail div.layouter .form-container .details{width:50%;overflow-wrap:break-word}section.product-detail div.layouter .form-container .details .product-price{margin-bottom:14px}section.product-detail div.layouter .form-container .details .product-price .sticker{display:none}section.product-detail div.layouter .form-container .details .product-ratings{margin-bottom:20px}section.product-detail div.layouter .form-container .details .product-ratings .icon{width:16px;height:16px}section.product-detail div.layouter .form-container .details .product-ratings .total-reviews{display:inline-block;margin-left:15px}section.product-detail div.layouter .form-container .details .product-heading{font-size:24px;color:#242424;margin-bottom:15px}section.product-detail div.layouter .form-container .details .product-price{margin-bottom:15px}section.product-detail div.layouter .form-container .details .product-price .special-price{font-size:24px}section.product-detail div.layouter .form-container .details .stock-status{margin-bottom:15px;font-weight:600;color:#fc6868}section.product-detail div.layouter .form-container .details .stock-status.active{color:#4caf50}section.product-detail div.layouter .form-container .details .description{margin-bottom:15px}section.product-detail div.layouter .form-container .details .description ul{padding-left:40px;list-style:disc}section.product-detail div.layouter .form-container .details .quantity{padding-top:15px;border-top:1px solid hsla(0,0%,64%,.2)}section.product-detail div.layouter .form-container .details .full-description *{max-width:100%}section.product-detail div.layouter .form-container .details .full-description ul{padding-left:40px;list-style:disc}section.product-detail div.layouter .form-container .details .full-specifications td{padding:10px 0;color:#5e5e5e}section.product-detail div.layouter .form-container .details .full-specifications td:first-child{padding-right:40px}section.product-detail div.layouter .form-container .details .accordian .accordian-header{padding-left:0;font-weight:600}section.product-detail div.layouter .form-container .details .accordian .accordian-content{padding:20px 0}section.product-detail div.layouter .form-container .details .attributes{display:block;width:100%;border-bottom:1px solid hsla(0,0%,64%,.2)}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group{margin-bottom:20px}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container{margin-top:10px;display:inline-block}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch{display:inline-block;margin-right:5px;min-width:40px;height:40px}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch span{min-width:38px;height:38px;float:left;border:1px solid #c7c7c7;border-radius:3px;line-height:36px;text-align:center;cursor:pointer;padding:0 10px}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch img{width:38px;height:38px;border:1px solid #c7c7c7;border-radius:3px;cursor:pointer;background:#f2f2f2}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch input:checked+img,section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch input:checked+span{border:1px solid #242424}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .swatch input{display:none}section.product-detail div.layouter .form-container .details .attributes .attribute.control-group .swatch-container .no-options{color:#fb3949}section.product-detail div.layouter .form-container .details .quantity-change{cursor:pointer;text-align:center}section.product-detail div.layouter .form-container .details .quantity-change:focus{border-color:#c7c7c7!important}@media only screen and (max-width:720px){section.product-detail div.layouter .form-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;max-width:none;width:auto;min-height:400px;height:auto;position:unset}section.product-detail div.layouter .form-container div.product-image-group .loader{margin-left:47%}section.product-detail div.layouter .form-container div.product-image-group div{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list{margin-top:5px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;overflow-x:scroll;margin-right:0}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .thumb-frame img{height:100%;width:auto}section.product-detail div.layouter .form-container div.product-image-group div .thumb-list .gallery-control{display:none}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image{display:-webkit-box;display:-ms-flexbox;display:flex}section.product-detail div.layouter .form-container div.product-image-group div .product-hero-image img{margin-left:auto;margin-right:auto;width:480px}section.product-detail div.layouter .form-container div.product-image-group div .wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%!important}section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons{width:100%}section.product-detail div.layouter .form-container .details{width:100%;margin-top:20px}}@media only screen and (max-width:510px){section.product-detail div.layouter .form-container div.product-image-group .product-hero-image img{width:100%!important}}.rating-reviews .rating-header{padding:20px 0}.rating-reviews .stars .icon{width:16px;height:16px}.rating-reviews .overall{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.rating-reviews .overall .review-info .number{font-size:34px}.rating-reviews .overall .review-info .total-reviews{margin-top:10px}.rating-reviews .reviews{margin-top:40px;margin-bottom:40px}.rating-reviews .reviews .review{margin-bottom:25px}.rating-reviews .reviews .review .title{margin-bottom:5px}.rating-reviews .reviews .review .stars{margin-bottom:15px;display:inline-block}.rating-reviews .reviews .review .message{margin-bottom:10px}.rating-reviews .reviews .review .reviewer-details{color:#5e5e5e}.rating-reviews .reviews .view-all{margin-top:15px;color:#0031f0;margin-bottom:15px}section.cart{width:100%;color:#242424;margin-bottom:80px;margin-top:20px}section.cart .title{font-size:24px}section.cart .cart-content{margin-top:20px;width:100%;display:inline-block}section.cart .cart-content .left-side{width:70%;float:left}section.cart .cart-content .left-side .misc-controls{width:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:20px}section.cart .cart-content .left-side .misc-controls a.link,section.cart .cart-content .left-side .misc-controls div button{margin-right:15px}section.cart .cart-content .right-side{width:30%;display:inline-block;padding-left:40px}.cart-item-list .item{padding:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;border:1px solid #c7c7c7;border-radius:2px}.cart-item-list .item .item-image{margin-right:15px}.cart-item-list .item .item-image img{height:160px;width:160px}.cart-item-list .item .item-details{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.cart-item-list .item .item-details .item-title{font-size:18px;margin-bottom:10px;font-weight:600}.cart-item-list .item .item-details .item-title a{color:#242424}.cart-item-list .item .item-details .price{margin-bottom:10px;font-size:18px;font-weight:600}.cart-item-list .item .item-details .summary{margin-bottom:17px}.cart-item-list .item .item-details .misc{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.cart-item-list .item .item-details .misc .control-group{font-size:16px!important;width:220px;margin:0}.cart-item-list .item .item-details .misc .control-group .wrap{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cart-item-list .item .item-details .misc .control-group label{margin-right:15px}.cart-item-list .item .item-details .misc .control-group .control{height:38px;width:60px;border-radius:3px;text-align:center;line-height:38px}.cart-item-list .item .item-details .misc .remove,.cart-item-list .item .item-details .misc .towishlist{margin-top:18px;margin-right:15px}.cart-item-list .item .item-details .misc .quantity-change{cursor:pointer}.cart-item-list .item .item-details .misc .quantity-change:focus{border-color:#c7c7c7!important}.cart-item-list .item .error-message{color:#ff6472}.order-summary h3{font-size:16px;margin-top:0}.order-summary .item-detail{margin-top:12px}.order-summary .item-detail label.right{float:right}.order-summary .payable-amount{margin-top:17px;border-top:1px solid #c7c7c7;padding-top:12px}.order-summary .payable-amount label{font-weight:700}.order-summary .payable-amount label.right{float:right}@media only screen and (max-width:815px){section.cart .cart-content{display:block}section.cart .cart-content .left-side{width:100%;float:none}section.cart .cart-content .left-side .misc-controls{position:relative;top:180px;margin-top:0}section.cart .cart-content .right-side{width:100%;padding-left:0;position:relative;top:-20px}}@media only screen and (max-width:600px){section.cart .cart-content .left-side .cart-item-list .item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}section.cart .cart-content .left-side .cart-item-list .item .item-details{margin-top:10px}section.cart .cart-content .left-side .cart-item-list .item .item-details .misc{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:40px}}@media only screen and (max-width:574px){section.cart .cart-content .left-side .misc-controls{display:block;top:160px}section.cart .cart-content .left-side .misc-controls div button{width:100%;margin-top:10px}section.cart .cart-content .left-side .misc-controls div a{margin-top:10px;width:100%;text-align:center}section.cart .cart-content .right-side{top:-100px}}.checkout-method-group .line-one{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.checkout-method-group .line-one .radio-container{padding-left:28px}.checkout-method-group .line-one .method-label{margin-top:4px}.checkout-method-group .line-two{margin-left:30px}.checkout-process{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%;margin-top:20px;margin-bottom:20px;font-size:16px;color:#242424}.checkout-process .col-main{width:70%;margin-right:5%}.checkout-process .col-main ul.checkout-steps{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%;padding-bottom:15px;border-bottom:1px solid #c7c7c7}.checkout-process .col-main ul.checkout-steps li{height:48px;display:-webkit-box;display:-ms-flexbox;display:flex}.checkout-process .col-main ul.checkout-steps li .decorator{height:48px;width:48px;border:1px solid #000;border-radius:50%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;border:1px solid #c7c7c7;background-repeat:no-repeat;background-position:50%}.checkout-process .col-main ul.checkout-steps li .decorator.address-info{background-image:url("../images/address.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.shipping{background-image:url("../images/shipping.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.payment{background-image:url("../images/payment.svg")}.checkout-process .col-main ul.checkout-steps li .decorator.review{background-image:url("../images/finish.svg")}.checkout-process .col-main ul.checkout-steps li.completed{cursor:pointer}.checkout-process .col-main ul.checkout-steps li.completed .decorator{background-image:url("../images/complete.svg")}.checkout-process .col-main ul.checkout-steps li span{margin-left:7px;margin-top:auto;margin-bottom:auto}.checkout-process .col-main ul.checkout-steps li.active{color:#2650ef}.checkout-process .col-main ul.checkout-steps li.active .decorator{border:1px solid #2650ef}.checkout-process .col-main .step-content{padding-top:20px}.checkout-process .col-main .step-content .form-header{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%;height:30px}.checkout-process .col-main .step-content .form-header .checkout-step-heading{font-size:24px;font-weight:700;float:left}.checkout-process .col-main .step-content .form-header .btn{float:right;font-size:14px}.checkout-process .col-main .step-content .form-container{border-bottom:1px solid #c7c7c7;padding-top:20px;padding-bottom:20px}.checkout-process .col-main .step-content .shipping-methods{font-size:16px}.checkout-process .col-main .step-content .shipping-methods .ship-method-carrier{margin-bottom:15px;font-weight:700}.checkout-process .col-main .step-content .payment-methods .radio-container{padding-left:28px}.checkout-process .col-main .step-content .payment-methods .control-info{margin-left:28px}.checkout-process .col-main .step-content .address-summary{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%}.checkout-process .col-main .step-content .address-summary div.billing-address{margin-right:25%}.checkout-process .col-main .step-content .address-summary div.billing-address .horizontal-rule,.checkout-process .col-main .step-content .address-summary div.shipping-address .horizontal-rule{width:40px;background:#242424}.checkout-process .col-main .step-content .address-summary .label{width:10%}.checkout-process .col-main .step-content .address-summary .address-card-list{width:85%}.checkout-process .col-main .step-content .cart-item-list .item .row .title{width:100px;display:inline-block;color:#a5a5a5;font-weight:500;margin-bottom:10px}.checkout-process .col-main .step-content .cart-item-list .item .row .value{font-size:18px;font-weight:600}.checkout-process .col-main .step-content .order-description{display:inline-block;width:100%}.checkout-process .col-main .step-content .order-description .shipping{margin-bottom:25px}.checkout-process .col-main .step-content .order-description .decorator{height:48px;width:48px;border-radius:50%;border:1px solid #c7c7c7;vertical-align:middle;display:inline-block;text-align:center}.checkout-process .col-main .step-content .order-description .decorator .icon{margin-top:7px}.checkout-process .col-main .step-content .order-description .text{font-weight:600;vertical-align:middle;display:inline-block}.checkout-process .col-main .step-content .order-description .text .info{font-weight:500;margin-top:2px}.checkout-process .col-right{width:25%;padding-left:40px}@media only screen and (max-width:770px){.checkout-process .col-main{width:100%;padding-right:0}.checkout-process .col-main ul.checkout-steps{border-bottom:none;padding-bottom:0}.checkout-process .col-main ul.checkout-steps span{display:none}.checkout-process .col-main ul.checkout-steps .line{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;border-bottom:1px solid #c7c7c7;margin-left:5px;margin-right:5px}.checkout-process .step-content{padding-top:0}.checkout-process .step-content .control-group .control{width:100%}.checkout-process .col-right{display:none}}@media only screen and (max-width:480px){.checkout-process .col-main .step-content .address,.checkout-process .col-main .step-content .order-description{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.checkout-process .col-main .step-content .address .billing-address,.checkout-process .col-main .step-content .address .pull-left,.checkout-process .col-main .step-content .order-description .billing-address,.checkout-process .col-main .step-content .order-description .pull-left{width:100%!important}.checkout-process .col-main .step-content .address .pull-right,.checkout-process .col-main .step-content .address .shipping-address,.checkout-process .col-main .step-content .order-description .pull-right,.checkout-process .col-main .step-content .order-description .shipping-address{width:100%!important;margin-top:20px}}.attached-products-wrapper{margin-bottom:80px}.attached-products-wrapper .title{margin-bottom:40px;font-size:18px;color:#242424;text-align:center;position:relative}.attached-products-wrapper .title .border-bottom{border-bottom:1px solid hsla(0,0%,64%,.2);display:inline-block;width:100px;position:absolute;top:40px;left:50%;margin-left:-50px}.attached-products-wrapper .horizontal-rule{height:1px;background:#c7c7c7;width:148px;margin-bottom:24px;margin-left:auto;margin-right:auto}section.review .category-breadcrumbs{display:inline}section.review .review-layouter{display:-webkit-box;display:-ms-flexbox;display:flex}section.review .review-layouter .product-info{font-size:24px;max-width:25%}section.review .review-layouter .product-info .product-image img{height:280px;width:280px}section.review .review-layouter .product-info .product-name a{color:#242424}section.review .review-layouter .product-info .product-price .pro-price{color:#ff6472}section.review .review-layouter .product-info .product-price .pro-price-not{margin-left:10px;font-size:16px;color:#a5a5a5}section.review .review-layouter .product-info .product-price .offer{margin-left:10px;font-size:16px}section.review .review-layouter .review-form{margin-left:20px;width:55%}section.review .review-layouter .review-form .heading{color:#242424;font-weight:600}section.review .review-layouter .review-form .heading .right{float:right;margin-top:-10px}section.review .review-layouter .review-form .star{font-size:23px;color:#d4d4d4;-webkit-transition:all .2s;transition:all .2s}section.review .review-layouter .review-form .star:before{content:"\2605"}section.review .review-layouter .review-form .control-group .control{width:100%}section.review .review-layouter .review-form .review-detail{height:150px;border:1px solid #b22222;margin-top:30px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}section.review .review-layouter .review-form .review-detail .rating-review{margin-top:40px;margin-left:20px;width:48%}section.review .review-layouter .review-form .review-detail .rating-review .avg-rating-count span{font-size:34px;text-align:center}section.review .review-layouter .review-form .review-detail .rating-calculate .progress-only{width:20px;border:1px solid blue}section.review .review-layouter .ratings-reviews{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}section.review .review-layouter .ratings-reviews .left-side{padding:40px 20px;width:50%}section.review .review-layouter .ratings-reviews .left-side .rate{font-size:34px}section.review .review-layouter .ratings-reviews .left-side .stars .icon{height:16px;width:16px}section.review .review-layouter .ratings-reviews .right-side{width:50%}section.review .review-layouter .ratings-reviews .right-side .rater{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:5px;width:100%}section.review .review-layouter .ratings-reviews .right-side .rater .star-name{margin-right:5px;width:35px}section.review .review-layouter .ratings-reviews .right-side .rater .rate-number{width:15px}section.review .review-layouter .ratings-reviews .right-side .rater .percentage{width:50px;margin-right:10px}section.review .review-layouter .ratings-reviews .right-side .rater .percentage span{float:right;white-space:nowrap}section.review .review-layouter .ratings-reviews .right-side .rater .line-bar{height:4px;width:calc(100% - 100px);margin-right:5px;margin-left:5px;background:#d8d8d8}section.review .review-layouter .ratings-reviews .right-side .rater .line-bar .line-value{background-color:#0031f0}@media only screen and (max-width:770px){section.review .category-breadcrumbs{display:none}section.review .review-layouter{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}section.review .review-layouter .product-info{max-width:100%}section.review .review-layouter .product-info .product-image,section.review .review-layouter .product-info .product-name,section.review .review-layouter .product-info .product-price{max-width:280px;margin-left:auto;margin-right:auto}section.review .review-layouter .review-form{width:100%;margin-left:0}section.review .review-layouter .review-form .heading .right{margin-top:50px}section.review .review-layouter .review-form .ratings-reviews{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%}section.review .review-layouter .review-form .ratings-reviews .left-side{width:100%;padding:0 0 40px;margin-top:-30px}section.review .review-layouter .review-form .ratings-reviews .right-side{width:100%}section.review .review-layouter .review-form .ratings-reviews .right-side .rater .percentage{margin-right:0}}.auth-content{padding-top:5%;padding-bottom:5%}.auth-content .sign-up-text{margin-bottom:2%;margin-left:auto;margin-right:auto;font-size:18px;color:#a5a5a5;text-align:center}.auth-content .login-form{margin-left:auto;margin-right:auto;display:-webkit-box;display:-ms-flexbox;display:flex;border:1px solid #c7c7c7;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:500px;min-width:320px;padding:25px}.auth-content .login-form .login-text{font-size:24px;font-weight:600;margin-bottom:30px}.auth-content .login-form .control-group{margin-bottom:15px!important}.auth-content .login-form .control-group .control{width:100%!important}.auth-content .login-form .forgot-password-link{font-size:17px;color:#0031f0;margin-bottom:5%}.auth-content .login-form .signup-confirm{margin-bottom:5%}.auth-content .login-form .btn-primary{width:100%;text-transform:uppercase}.account-content{width:100%;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;margin-top:5.5%;margin-bottom:5.5%}.account-content,.account-content .sidebar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.account-content .sidebar{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:20%;height:100%}.account-content .menu-block{margin-bottom:30px}.account-content .menu-block:last-child{margin-bottom:0}.account-content .menu-block .menu-block-title{padding-bottom:10px;font-size:18px}.account-content .menu-block .menu-block-title .right{display:none}.account-content .menu-block .menubar{border:1px solid #c7c7c7;color:#a5a5a5;position:relative}.account-content .menu-block .menubar li{width:95%;height:50px;margin-left:5%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #c7c7c7;text-align:center}.account-content .menu-block .menubar li a{color:#5e5e5e;width:100%;text-align:left}.account-content .menu-block .menubar li .icon{display:none;position:absolute;right:12px}.account-content .menu-block .menubar li:first-child{border-top:none}.account-content .menu-block .menubar li:last-child{border-bottom:none}.account-content .menu-block .menubar li.active a{color:#0031f0}.account-content .menu-block .menubar li.active .icon{display:inline-block}.account-content .account-layout{margin-left:40px;width:80%}.account-content .account-layout .account-head .back-icon,.account-content .account-layout .responsive-empty{display:none}.account-table-content{color:#242424;margin-top:1.4%}.account-table-content table{width:100%}.account-table-content table tbody tr{height:45px}.account-table-content table tbody tr td{width:250px}.address-holder{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.address-card{width:260px;border:1px solid #c7c7c7;padding:15px;margin-right:15px;margin-bottom:15px}.address-card .control-group{width:15px;height:15px;margin-top:10px}.address-card .details{font-weight:lighter}.address-card .details span{display:block}.address-card .details .control-links{width:90%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.address-card .details .control-links .btn{height:30px}.edit-form{display:-webkit-box;display:-ms-flexbox;display:flex;border:1px solid #c7c7c7;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:345px;padding:25px}@media only screen and (max-width:770px){.account-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.account-content .sidebar{width:100%}.account-content .sidebar .menu-block .menu-block-title{height:50px;padding-top:13px;border-bottom:1px solid #c7c7c7;border-top:1px solid #c7c7c7}.account-content .sidebar .menu-block .menu-block-title .right{display:block;float:right;-ms-flex-item-align:center;align-self:center}.account-content .sidebar .menu-block .menubar{border:0;display:none}.account-content .sidebar .menu-block .menubar>li{margin-left:0;width:100%}.account-content .sidebar .menu-block .menubar>li .icon{right:0}.account-content .sidebar .menu-block .menubar>li:last-child{border-bottom:1px solid #c7c7c7}.account-content .account-layout{margin-left:0;margin-top:20px;width:100%}.account-content .account-layout .account-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #c7c7c7;border-top:1px solid #c7c7c7;height:50px;margin-top:10px}.account-content .account-layout .account-head .account-action{margin-top:12px;margin-left:15px}.account-content .account-layout .account-head .back-icon{display:block}.account-content .account-layout .account-head span{margin-top:13px;font-size:18px}.account-content .account-layout .account-head .horizontal-rule{display:none}.account-content .account-layout .account-table-content{margin-top:2%}.account-content .account-layout .account-table-content table tbody tr{height:70px}.account-content .account-layout .account-table-content table tbody tr td{display:block}.account-content .account-layout .account-table-content .address-holder{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.account-content .account-items-list,.account-content .edit-form{margin-top:20px}.account-content .account-items-list .responsive-empty,.account-content .edit-form .responsive-empty{display:block}.account-content .control-group .control{width:100%}}.sale-container{color:#5e5e5e}.sale-container .sale-section .secton-title{font-size:18px;color:#8e8e8e;padding:15px 0;border-bottom:1px solid #c7c7c7}.sale-container .sale-section .section-content{display:block;padding:20px 0;border-bottom:1px solid #e8e8e8}.sale-container .sale-section .section-content .row{display:block;padding:7px 0}.sale-container .sale-section .section-content .row .title{width:200px;letter-spacing:-.26px;display:inline-block}.sale-container .sale-section .section-content .row .value{letter-spacing:-.26px;display:inline-block}.sale-container .sale-section .section-content .order-box-container{display:inline-block;width:100%}.sale-container .sale-section .section-content .order-box-container .box{float:left;width:25%}.sale-container .sale-section .section-content .order-box-container .box .box-title{padding:10px 0;font-size:18px;color:#8e8e8e}.sale-container .sale-section .section-content .order-box-container .box .box-content{color:#3a3a3a;padding-right:10px}.sale-container .sale-section .section-content .qty-row{display:block}.sale-container .totals{padding-top:20px;display:inline-block;width:100%;border-top:1px solid #e8e8e8}.sale-container .totals .sale-summary{height:130px;float:right;border-collapse:collapse}.sale-container .totals .sale-summary tr td{padding:5px 8px;width:auto;color:#3a3a3a}.sale-container .totals .sale-summary tr.bold{font-weight:600;font-size:15px}.sale-container .totals .sale-summary tr.border td{border-bottom:1px solid #c7c7c7}@media only screen and (max-width:770px){.sale-container .sale-section .section-content{border-bottom:none;padding:10px 0}.sale-container .sale-section .section-content .row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.sale-container .sale-section .section-content .row .title{line-height:20px}.sale-container .sale-section .section-content .totals{border-top:none}.sale-container .sale-section .section-content .totals .sale-summary{width:100%}.sale-container .sale-section .section-content .totals .sale-summary tr td:nth-child(2){display:none}.sale-container .sale-section .section-content .order-box-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.sale-container .sale-section .section-content .order-box-container .box{width:100%;margin:10px auto}.sale-container .sale-section .section-content .qty-row{display:inline}}.verify-account{text-align:center;background:#204d74;width:200px;margin-right:auto;margin-left:auto;border-radius:4px}.verify-account a{color:#fff!important}.cp-spinner{position:absolute;left:calc(50% - 24px);margin-top:calc(40% - 24px)}@media only screen and (max-width:720px){.cp-spinner{left:50%;margin-left:-24px;top:50%;margin-top:-24px}}@media only screen and (max-width:720px){.error-container .wrapper{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important;margin:10px 0 20px!important;-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:start!important;height:100%!important}}@media only screen and (max-width:770px){.table table{width:100%}.table table thead{display:none}.table table tbody tr td:before{content:attr(data-value);font-size:15px;font-weight:600;display:inline-block;width:120px}.table table tbody td{border-bottom:none!important;display:block;width:100%!important}.table table tbody td div{position:relative;left:100px;top:-20px}.table table tbody tr{border:1px solid #c7c7c7}}.show-wishlist{z-index:-1!important}.filter-row-one .dropdown-filters{position:relative!important;right:1px!important}@media only screen and (max-width:770px){.table .grid-container{margin-top:10px;overflow-x:hidden}.table .grid-container .filter-row-one{display:block}.table .grid-container .filter-row-one .dropdown-filters{margin-top:10px}}.rtl{direction:rtl}.rtl .header .header-top div.left-content ul.logo-container{margin-right:0;margin-left:12px}.rtl .header .header-top div.left-content ul.search-container li.search-group .search-field{border:2px solid #c7c7c7;padding-right:12px;padding-left:0;border-radius:2px;border-top-left-radius:0;border-bottom-left-radius:0}.rtl .header .header-top div.left-content ul.search-container li.search-group .search-icon-wrapper{border:2px solid #c7c7c7;border-right:none;border-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0}.rtl .header .header-top div.right-content .right-content-menu>li{border-right:2px solid #c7c7c7;padding:0 15px}.rtl .header .header-top div.right-content .right-content-menu>li:last-child{padding-left:0}.rtl .header .header-top div.right-content .right-content-menu>li:first-child{border-right:0;padding-right:0}.rtl .header .header-top div.right-content .right-content-menu .cart-dropdown-container .dropdown-list{left:0;right:unset!important}.rtl .header .header-top div.right-content .right-content-menu .cart-dropdown-container .count{display:inline-block}.rtl .header .header-top div.right-content .right-content-menu .account,.rtl .header .header-top div.right-content .right-content-menu .currency{right:unset;left:0}.rtl .header .header-top div.right-content .right-content-menu .guest div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.rtl .header .header-bottom .nav>li{float:right;margin-right:0;margin-left:1px}.rtl .header .header-bottom .nav a{padding:.8em .5em .8em .3em!important}.rtl .header .header-bottom .nav li a>.icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .header .header-bottom .nav>li li:hover>ul{left:unset!important;right:100%!important}.rtl .header .header-bottom .nav ul{left:99999em}.rtl .header .search-responsive .search-content .right{float:left}.rtl .dropdown-list{text-align:right}.rtl .dropdown-list.bottom-right{left:0;right:auto}@media only screen and (max-width:720px){.rtl .header .header-top div.right-content .menu-box{margin-left:0;margin-right:5px}.rtl .header .header-top div.right-content .right-content-menu .account{position:absolute;left:0;right:auto}.rtl .header .header-top div.right-content .right-content-menu>li{padding:0;border:0}.rtl .header .header-top div.right-content .search-box{margin-left:5px}.rtl .header .header-bottom .nav>li{float:none}.rtl .header .header-bottom .nav li>.icon{float:left;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .header .header-bottom .icon.icon-arrow-down{margin-left:5px}}.rtl section.slider-block div.slider-content div.slider-control{left:2%;right:auto}.rtl section.slider-block div.slider-content div.slider-control .slider-left{float:left}.rtl section.slider-block div.slider-content div.slider-control .slider-right{margin-left:5px}@media only screen and (max-width:720px){.rtl section.slider-block div.slider-content div.slider-control{left:0}}.rtl .main-container-wrapper .product-card .sticker{left:auto;right:20px}.rtl .main-container-wrapper .product-card .cart-wish-wrap .addtocart{margin-right:0;margin-left:10px}.rtl section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;margin-left:30px}.rtl section.product-detail div.layouter .form-container div.product-image-group .add-to-buttons{float:left!important}.rtl section.product-detail div.layouter .form-container div .thumb-list{margin-left:4px;margin-right:0}.rtl section.product-detail div.layouter .form-container .details .accordian .accordian-header{padding:20px 0 20px 15px}.rtl section.product-detail div.layouter .form-container .details .accordian .accordian-header .icon{float:left}.rtl section.product-detail div.layouter .form-container .details .accordian .accordian-header .expand-icon{margin-left:10px}.rtl section.product-detail div.layouter .form-container .details .full-specifications td:first-child{padding-right:0;padding-left:40px}.rtl section.product-detail div.layouter .form-container .details .product-ratings .total-reviews{margin-left:0;margin-right:15px}@media only screen and (max-width:720px){.rtl section.product-detail div.layouter .form-container div.product-image-group{margin-right:0;margin-left:0}}.rtl .main .category-container .layered-filter-wrapper,.rtl .main .category-container .responsive-layred-filter{padding-right:0;padding-left:20px}.rtl .main .top-toolbar .pager{float:left}.rtl .main .top-toolbar .pager .view-mode{margin-right:0;margin-left:20px}.rtl .main .top-toolbar .pager .sorter{margin-right:0;margin-left:10px}.rtl .main .top-toolbar .pager label{margin-right:0;margin-left:5px}.rtl .main .top-toolbar .page-info{float:right}.rtl section.review .review-layouter .review-form{margin-left:0;margin-right:20px}.rtl section.review .review-layouter .review-form .heading .right{float:left}.rtl section.review .review-layouter .review-form .ratings-reviews .right-side .rater .star-name{margin-right:0;margin-left:5px}@media only screen and (max-width:770px){.rtl section.review .review-layouter .review-form{margin-right:0}}.rtl section.cart .cart-content .left-side{width:70%;float:right}.rtl section.cart .cart-content .left-side .misc-controls a.link{margin-left:15px;margin-right:0}.rtl section.cart .cart-content .right-side{width:30%;padding-right:40px;padding-left:0}.rtl .order-summary .item-detail label.right,.rtl .payable-amount label.right{float:left}.rtl .item div{margin-left:15px;margin-right:0!important}.rtl .cart-item-list .item .item-details .misc div.qty-text{margin-right:0;margin-left:10px}.rtl .cart-item-list .item .item-details .misc .remove,.rtl .cart-item-list .item .item-details .misc input.box{margin-right:0;margin-left:30px}.rtl .cart-item-list .item .item-details .misc .control-group label{margin-left:15px;margin-right:0}@media only screen and (max-width:770px){.rtl section.cart .cart-content .left-side{width:100%;float:none}.rtl section.cart .cart-content .left-side .misc-controls div button{margin-right:0}.rtl section.cart .cart-content .right-side{width:100%;padding-right:0}}.rtl .checkout-process .col-right{padding-left:0;padding-right:40px}.rtl .checkout-process .col-main{padding-left:40px;padding-right:0}.rtl .checkout-process .col-main ul.checkout-steps li span{margin-right:7px;margin-left:0}.rtl .checkout-process .col-main .step-content .form-header h1{float:right}.rtl .checkout-process .col-main .step-content .form-header .btn{float:left}.rtl .checkout-process .col-main .step-content .payment-methods .control-info{margin-right:28px;margin-left:0}.rtl .checkout-process .col-main .step-content .address .billing-address,.rtl .checkout-process .col-main .step-content .address .pull-left,.rtl .checkout-process .col-main .step-content .order-description .billing-address,.rtl .checkout-process .col-main .step-content .order-description .pull-left{float:right!important}.rtl .checkout-process .col-main .step-content .address .pull-right,.rtl .checkout-process .col-main .step-content .address .shipping-address,.rtl .checkout-process .col-main .step-content .order-description .pull-right,.rtl .checkout-process .col-main .step-content .order-description .shipping-address{float:left!important}.rtl .checkbox,.rtl .radio{margin:10px 0 5px 5px}.rtl .radio .radio-view{margin-left:5px;margin-right:0}.rtl .radio input{right:0;left:auto}@media only screen and (max-width:770px){.rtl .checkout-process .col-main{padding-left:0}}.rtl .account-content .account-layout{margin-left:0;margin-right:40px}.rtl .account-content .menu-block .menubar li{margin-left:0;margin-right:5%}.rtl .account-content .menu-block .menubar li a{text-align:right}.rtl .account-content .menu-block .menubar li .icon{right:unset;left:12px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rtl .account-head .account-action{float:left}.rtl .account-item-card .media-info .info{margin-right:20px;margin-left:0}.rtl .account-item-card .operations a span{float:left}.rtl .table table{text-align:right}.rtl .sale-container .totals .sale-summary{float:left}.rtl .sale-container .sale-section .section-content .order-box-container{display:-webkit-box;display:-ms-flexbox;display:flex}@media (max-width:770px){.rtl .account-content .account-layout{margin-right:0}.rtl .account-content .account-layout .account-head .account-action{margin-left:0}.rtl .account-content .sidebar .menu-block .menu-block-title .right{float:left}.rtl .account-content .sidebar .menu-block .menubar>li{margin-right:0}}.rtl .footer .footer-content .footer-list-container .list-container .list-group li span.icon{margin-left:5px;margin-right:0}@media (max-width:720px){.rtl .footer{padding-right:15px;padding-left:10%}.rtl .footer .footer-list-container{padding-right:0!important}}.rtl .cp-spinner{position:absolute;right:calc(50% - 24px);margin-top:calc(40% - 24px)}@media only screen and (max-width:720px){.rtl .cp-spinner{right:50%;margin-right:-24px;left:auto}}.rtl .product-list .product-card .product-information{padding-left:0;padding-right:30px;float:left}.rtl .zoom-image-direction{left:0;right:476px!important}.banner-container{width:100%;float:left;padding:0 18px;margin-bottom:40px}.banner-container .left-banner{padding-right:20px;width:60%;float:left}.banner-container .left-banner img{width:100%}.banner-container .right-banner{padding-left:20px;width:40%;float:left}.banner-container .right-banner img{width:100%}.banner-container .right-banner img:first-child{padding-bottom:20px;height:50%;display:block}.banner-container .right-banner img:last-child{padding-top:20px;height:50%;display:block}@media (max-width:720px){.banner-container .left-banner{padding-right:0;width:100%}.banner-container .right-banner{padding-left:0;width:100%}.banner-container .right-banner img:first-child{padding-bottom:0;padding-top:25px}.banner-container .right-banner img:last-child{padding-top:25px}}.static-container{display:block;width:100%;padding:10px;margin-left:auto;margin-right:auto}.static-container.one-column{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.static-container.two-column{display:grid;grid-template-columns:48% 48%;grid-column-gap:4%}.static-container.three-column{display:grid;grid-template-columns:30% 30% 30%;grid-column-gap:4%} \ No newline at end of file diff --git a/packages/Webkul/Shop/publishable/assets/mix-manifest.json b/packages/Webkul/Shop/publishable/assets/mix-manifest.json index 70c58c361..d9f516a0d 100755 --- a/packages/Webkul/Shop/publishable/assets/mix-manifest.json +++ b/packages/Webkul/Shop/publishable/assets/mix-manifest.json @@ -1,4 +1,4 @@ { "/js/shop.js": "/js/shop.js?id=ad1039174ce2c81c8805", - "/css/shop.css": "/css/shop.css?id=e60a80df9a36aa0e44dc" + "/css/shop.css": "/css/shop.css?id=0647d577bed15c4b141e" } diff --git a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss index a0805f3f0..768f3494f 100755 --- a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss @@ -22,7 +22,7 @@ body { font-family: $font-montserrat; } -*::-webkit-input-placeholder { +*::-moz-input-placeholder { font-family: $font-montserrat; } @@ -425,9 +425,8 @@ input { -webkit-box-shadow: 0px 2px 16px 4px rgba(40, 44, 63, 0.07); -moz-box-shadow: 0px 2px 16px 4px rgba(40, 44, 63, 0.07); box-shadow: 0px 2px 16px 4px rgba(40, 44, 63, 0.07); - padding: 10px; transition: .3s; - outline: 1px solid $outline-hvr; + // outline: 1px solid $outline-hvr; } @media only screen and (max-width: 580px) { From 0ea994502dc38731b11b631815f13e202d0e2727 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 20 Aug 2019 11:46:20 +0530 Subject: [PATCH 107/172] Fixed issues with Carbon instance and applied redirect to catalog rule index after applying rules --- .../Webkul/Core/src/Http/Controllers/SliderController.php | 4 ++-- packages/Webkul/Discount/src/Helpers/Catalog/Sale.php | 2 +- .../Discount/src/Http/Controllers/CatalogRuleController.php | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/Webkul/Core/src/Http/Controllers/SliderController.php b/packages/Webkul/Core/src/Http/Controllers/SliderController.php index a8f8aaf12..0044f7e5b 100755 --- a/packages/Webkul/Core/src/Http/Controllers/SliderController.php +++ b/packages/Webkul/Core/src/Http/Controllers/SliderController.php @@ -9,8 +9,8 @@ use Webkul\Core\Repositories\SliderRepository as Slider; /** * Slider controller for managing the slider controls. * - * @author Prashant Singh @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + * @author Prashant Singh @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ class SliderController extends Controller { diff --git a/packages/Webkul/Discount/src/Helpers/Catalog/Sale.php b/packages/Webkul/Discount/src/Helpers/Catalog/Sale.php index 93087ec4b..7c1a72380 100644 --- a/packages/Webkul/Discount/src/Helpers/Catalog/Sale.php +++ b/packages/Webkul/Discount/src/Helpers/Catalog/Sale.php @@ -3,7 +3,7 @@ namespace Webkul\Discount\Helpers\Catalog; use Webkul\Discount\Repositories\CatalogRepository as CatalogRule; -use Webkul\Discount\Helpers\Catalog\ConvertXToProductId; +use Carbon\Carbon; /** * Sale - Abstract class designed to initiate the application of Catalog Rules diff --git a/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php b/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php index 76b75c283..529e47f49 100644 --- a/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php +++ b/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php @@ -358,6 +358,10 @@ class CatalogRuleController extends Controller public function applyRules() { $this->sale->apply(); + + session()->flash('success', 'Rules processing done'); + + return redirect()->route('admin.catalog-rule.index'); } /** From 8cf6c41fc5755966a76ee4ee44394c447e4b3f7b Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 20 Aug 2019 13:31:59 +0530 Subject: [PATCH 108/172] Fixed issue #1268 --- packages/Webkul/Admin/src/Resources/lang/en/app.php | 3 ++- .../Discount/src/Http/Controllers/CatalogRuleController.php | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 62a1ed826..9adb46e05 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -674,7 +674,7 @@ return [ ], 'sliders' => [ - 'title' => 'Title', + 'title' => 'Sliders', 'add-title' => 'Create Slider', 'edit-title' => 'Edit Slider', 'save-btn-title' => 'Save Slider', @@ -850,6 +850,7 @@ return [ 'rule-desc' => 'Enter Rule Description', 'convert-x-note' => 'If this section is left empty, then rule will get applied to all the products in the cart.', 'declut' => 'Declutter Rules', + 'processing-done' => 'Rules processing done', 'declut-success' => 'Catalog rules decluttering successful', 'declut-failure' => 'Catalog rules decluttering failed', 'add-attr-condition' => 'Add Attribute Condition', diff --git a/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php b/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php index 529e47f49..041c7d580 100644 --- a/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php +++ b/packages/Webkul/Discount/src/Http/Controllers/CatalogRuleController.php @@ -14,8 +14,8 @@ use Webkul\Discount\Helpers\Catalog\Apply; /** * CatalogRule controller * - * @author Prashant Singh @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + * @author Prashant Singh @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ class CatalogRuleController extends Controller { @@ -359,7 +359,7 @@ class CatalogRuleController extends Controller { $this->sale->apply(); - session()->flash('success', 'Rules processing done'); + session()->flash('success', trans('admin::app.promotion.processing-done')); return redirect()->route('admin.catalog-rule.index'); } From 01b9f5cbbcff7e3dadac0bf4149706653a643adc Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 20 Aug 2019 13:33:24 +0530 Subject: [PATCH 109/172] Fixed issue #1269 --- .../Admin/src/Resources/views/settings/sliders/create.blade.php | 2 +- .../Admin/src/Resources/views/settings/sliders/edit.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php index f47c07525..13a345832 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php @@ -46,7 +46,7 @@
-
-
diff --git a/packages/Webkul/Core/src/Database/Migrations/2019_08_21_123707_add_seo_column_in_channels_table.php b/packages/Webkul/Core/src/Database/Migrations/2019_08_21_123707_add_seo_column_in_channels_table.php new file mode 100644 index 000000000..87831b94e --- /dev/null +++ b/packages/Webkul/Core/src/Database/Migrations/2019_08_21_123707_add_seo_column_in_channels_table.php @@ -0,0 +1,32 @@ +json('home_seo')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('channels', function (Blueprint $table) { + $table->dropColumn('home_seo'); + }); + } +} diff --git a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php index 62fe2c6e0..c89e93128 100755 --- a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php +++ b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php @@ -78,12 +78,29 @@ class ChannelController extends Controller 'base_currency_id' => 'required', 'root_category_id' => 'required', 'logo.*' => 'mimes:jpeg,jpg,bmp,png', - 'favicon.*' => 'mimes:jpeg,jpg,bmp,png' + 'favicon.*' => 'mimes:jpeg,jpg,bmp,png', + 'seo_title' => 'required|string', + 'seo_description' => 'required|string', + 'seo_keywords' => 'required|string' ]); + $data = request()->all(); + + $data['seo']['meta_title'] = $data['seo_title']; + $data['seo']['meta_description'] = $data['seo_description']; + $data['seo']['meta_keywords'] = $data['seo_keywords']; + + unset($data['seo_title']); + unset($data['seo_description']); + unset($data['seo_keywords']); + + $data['home_seo'] = json_encode($data['seo']); + + unset($data['seo']); + Event::fire('core.channel.create.before'); - $channel = $this->channel->create(request()->all()); + $channel = $this->channel->create($data); Event::fire('core.channel.create.after', $channel); @@ -127,9 +144,21 @@ class ChannelController extends Controller 'favicon.*' => 'mimes:jpeg,jpg,bmp,png' ]); + $data = request()->all(); + + $data['seo']['meta_title'] = $data['seo_title']; + $data['seo']['meta_description'] = $data['seo_description']; + $data['seo']['meta_keywords'] = $data['seo_keywords']; + + unset($data['seo_title']); + unset($data['seo_description']); + unset($data['seo_keywords']); + + $data['home_seo'] = json_encode($data['seo']); + Event::fire('core.channel.update.before', $id); - $channel = $this->channel->update(request()->all(), $id); + $channel = $this->channel->update($data, $id); Event::fire('core.channel.update.after', $channel); diff --git a/packages/Webkul/Core/src/Models/Channel.php b/packages/Webkul/Core/src/Models/Channel.php index 0313d0373..963418413 100755 --- a/packages/Webkul/Core/src/Models/Channel.php +++ b/packages/Webkul/Core/src/Models/Channel.php @@ -10,7 +10,7 @@ use Webkul\Core\Contracts\Channel as ChannelContract; class Channel extends Model implements ChannelContract { - protected $fillable = ['code', 'name', 'description', 'theme', 'home_page_content', 'footer_content', 'hostname', 'default_locale_id', 'base_currency_id', 'root_category_id']; + protected $fillable = ['code', 'name', 'description', 'theme', 'home_page_content', 'footer_content', 'hostname', 'default_locale_id', 'base_currency_id', 'root_category_id', 'home_seo']; /** * Get the channel locales. diff --git a/packages/Webkul/Discount/src/Helpers/Cart/ConvertXToProductId.php b/packages/Webkul/Discount/src/Helpers/Cart/ConvertXToProductId.php index 0ac03a8cc..9a356caf2 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/ConvertXToProductId.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/ConvertXToProductId.php @@ -74,9 +74,9 @@ class ConvertXToProductId { $attributeConditions = json_decode($attribute_conditions); - $categoryValues = $attributeConditions->categories; + $categoryValues = $attributeConditions->categories ?? null; - $attributeValues = $attributeConditions->attributes; + $attributeValues = $attributeConditions->attributes ?? null; if (!isset($categoryValues) && ! isset($attributeValues)) { return false; @@ -89,6 +89,7 @@ class ConvertXToProductId } $attributeResult = collect(); + if (isset($attributeValues) && count($attributeValues)) { $attributeResult = $this->convertFromAttributes($attributeValues); } diff --git a/packages/Webkul/Discount/src/Helpers/Catalog/Apply.php b/packages/Webkul/Discount/src/Helpers/Catalog/Apply.php index e254760c3..b9658f9c4 100644 --- a/packages/Webkul/Discount/src/Helpers/Catalog/Apply.php +++ b/packages/Webkul/Discount/src/Helpers/Catalog/Apply.php @@ -113,9 +113,11 @@ class Apply extends Sale foreach ($this->activeRules as $rule) { $productIDs = $this->getProductIds($rule); - $productIDs = $this->expandProducts($productIDs); + if ($productIDs) { + $productIDs = $this->expandProducts($productIDs); - $this->setSale($rule, $productIDs); + $this->setSale($rule, $productIDs); + } } // dd($result, 'processing done'); diff --git a/packages/Webkul/Discount/src/Helpers/Catalog/ConvertXToProductId.php b/packages/Webkul/Discount/src/Helpers/Catalog/ConvertXToProductId.php index 4c000f893..f2040e0e6 100644 --- a/packages/Webkul/Discount/src/Helpers/Catalog/ConvertXToProductId.php +++ b/packages/Webkul/Discount/src/Helpers/Catalog/ConvertXToProductId.php @@ -79,9 +79,9 @@ class ConvertXToProductId { $attributeConditions = json_decode(json_decode($attribute_conditions)); - $categoryValues = $attributeConditions->categories; + $categoryValues = $attributeConditions->categories ?? null; - $attributeValues = $attributeConditions->attributes; + $attributeValues = $attributeConditions->attributes ?? null; if (!isset($categoryValues) && !isset($attributeValues)) { return false; @@ -94,6 +94,7 @@ class ConvertXToProductId } $attributeResult = collect(); + if (isset($attributeValues) && count($attributeValues)) { $attributeResult = $this->convertFromAttributes($attributeValues); } diff --git a/packages/Webkul/Discount/src/Helpers/Catalog/Sale.php b/packages/Webkul/Discount/src/Helpers/Catalog/Sale.php index 7c1a72380..a52b2ebd9 100644 --- a/packages/Webkul/Discount/src/Helpers/Catalog/Sale.php +++ b/packages/Webkul/Discount/src/Helpers/Catalog/Sale.php @@ -70,7 +70,7 @@ abstract class Sale if ($rule->conditions) { $conditions = $rule->conditions; - $productIDs = $this->convertX->convertX($rule->conditions); + $productIDs = $this->convertX->convertX($conditions); } else { $productIDs = '*'; } diff --git a/packages/Webkul/Shop/src/Resources/views/home/index.blade.php b/packages/Webkul/Shop/src/Resources/views/home/index.blade.php index b01a56c38..4afee11e3 100755 --- a/packages/Webkul/Shop/src/Resources/views/home/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/home/index.blade.php @@ -4,11 +4,43 @@ {{ __('shop::app.home.page-title') }} @endsection -@section('content-wrapper') +@php + $channel = core()->getCurrentChannel(); + $homeSEO = $channel->home_seo; + + if (isset($homeSEO)) { + $homeSEO = json_decode($channel->home_seo); + + $metaTitle = $homeSEO->meta_title; + + $metaDescription = $homeSEO->meta_description; + + $metaKeywords = $homeSEO->meta_keywords; + } +@endphp + +@section('head') + + @if (isset($homeSEO)) + @isset($metaTitle) + + @endisset + + @isset($metaDescription) + + @endisset + + @isset($metaKeywords) + + @endisset + @endif +@endsection + +@section('content-wrapper') {!! view_render_event('bagisto.shop.home.content.before') !!} - {!! DbView::make(core()->getCurrentChannel())->field('home_page_content')->with(['sliderData' => $sliderData])->render() !!} + {!! DbView::make($channel)->field('home_page_content')->with(['sliderData' => $sliderData])->render() !!} {{ view_render_event('bagisto.shop.home.content.after') }} diff --git a/packages/Webkul/Shop/src/Resources/views/layouts/master.blade.php b/packages/Webkul/Shop/src/Resources/views/layouts/master.blade.php index 73d671742..e46f5369f 100755 --- a/packages/Webkul/Shop/src/Resources/views/layouts/master.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/layouts/master.blade.php @@ -23,7 +23,9 @@ @yield('head') @section('seo') - + @if (! request()->is('/')) + + @endif @show @stack('css') From 140820dc4a86b7a53b0a19cc12e41c616888ce5a Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 21 Aug 2019 15:03:53 +0530 Subject: [PATCH 121/172] Fixed issue #1334 --- .../views/promotions/catalog-rule/edit.blade.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/edit.blade.php index fe518e63c..efeb2352a 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/edit.blade.php @@ -229,7 +229,7 @@ actions: @json($catalog_rule[3]).actions, action_type: '{{ $catalog_rule[5]->action_code }}', - disc_amount: '{{ $catalog_rule[5]->disc_amount }}', + disc_amount: null, end_other_rules: '{{ $catalog_rule[5]->end_other_rules }}', all_conditions: [], @@ -256,6 +256,7 @@ }, mounted () { + catalog_rule = @json($catalog_rule[5]); channels = @json($catalog_rule[5]->channels); this.channels = []; @@ -294,9 +295,9 @@ } } - this.action_type = '{{ $catalog_rule[5]->action_code }}', - this.disc_amount = '{{ $catalog_rule[5]->discount_amount }}', - this.end_other_rules = '{{ $catalog_rule[5]->end_other_rules }}' + this.action_type = '{{ $catalog_rule[5]->action_code }}'; + this.disc_amount = catalog_rule.discount_amount; + this.end_other_rules = '{{ $catalog_rule[5]->end_other_rules }}'; }, methods: { From 3b61c17155f64a791c1c6f32293cf89c78e69494 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 21 Aug 2019 15:07:14 +0530 Subject: [PATCH 122/172] Fixed issue #1333 --- .../src/Resources/views/promotions/cart-rule/create.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php index 7eb736314..f42af8a6a 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php @@ -90,7 +90,7 @@
- @foreach(app('Webkul\Core\Repositories\ChannelRepository')->all() as $channel) From 171b48453e1e65db4eb48e9134668fcd7f97517d Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 21 Aug 2019 15:22:37 +0530 Subject: [PATCH 123/172] Made cart rule conditions interpreter fault tolerant to missing attributes --- .../views/promotions/cart-rule/create.blade.php | 1 - .../Resources/views/promotions/cart-rule/edit.blade.php | 4 +++- packages/Webkul/Discount/src/Helpers/Cart/Discount.php | 9 ++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php index f42af8a6a..3314f79b0 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php @@ -104,7 +104,6 @@ diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php index 613aa47f8..8519e402a 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php @@ -106,7 +106,7 @@ @@ -704,6 +704,8 @@ this.conditions_list.push({'criteria': this.match_criteria}); this.all_conditions = JSON.stringify(this.conditions_list); + + this.conditions_list.pop(); } this.$validator.validateAll().then(result => { diff --git a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php index e1334315d..7df74e404 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php @@ -725,6 +725,10 @@ abstract class Discount $result = true; foreach ($conditions as $condition) { + if (! isset($condition->attribute) || ! isset($condition->condition) || !isset($condition->value)) { + continue; + } + if (isset($condition->attribute)) { $actual_value = ${$condition->attribute}; @@ -851,9 +855,12 @@ abstract class Discount } foreach ($conditions as $condition) { + if (!isset($condition->attribute) || ! isset($condition->condition) || !isset($condition->value)) { + continue; + } + if (isset($condition->attribute)) { $actual_value = ${$condition->attribute}; - } else { $result = false; } From 151c7a830ac5c7c4551fb1ea0580dacc12fedcf6 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 21 Aug 2019 16:10:39 +0530 Subject: [PATCH 124/172] Fixed issues related to empty attribute conditions --- .../views/promotions/cart-rule/edit.blade.php | 38 +++++++++++++++++-- .../Http/Controllers/CartRuleController.php | 10 +++-- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php index 8519e402a..14082b127 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php @@ -505,23 +505,33 @@ mounted () { data = @json($cart_rule[3]); this.name = data.name; + this.description = data.description; + this.conditions_list = []; + this.channels = []; + for (i in data.channels) { this.channels.push(data.channels[i].channel_id); } this.customer_groups = data.customer_groups; + for (i in data.customer_groups) { this.customer_groups.push(data.customer_groups[i].customer_group_id); } this.ends_till = data.ends_till; + this.starts_from = data.starts_from; + this.priority = data.priority; + this.per_customer = data.per_customer; + this.status = data.status; + if (data.use_coupon == 0) { // this.auto_generation = null; this.use_coupon = 0; @@ -539,24 +549,36 @@ } this.usage_limit = data.usage_limit; + this.is_guest = data.is_guest; this.action_type = data.action_type; + this.apply = null; + this.apply_amt = false; + this.apply_prct = false; + this.apply_to_shipping = data.apply_to_shipping; + this.disc_amount = data.disc_amount; + // this.disc_threshold = data.disc_threshold; + this.disc_quantity = data.disc_quantity; + this.end_other_rules = data.end_other_rules; + this.coupon_type = data.coupon_type; + this.free_shipping = data.free_shipping; this.all_conditions = null; if (data.conditions != null) { this.conditions_list = JSON.parse(JSON.parse(data.conditions)); + this.match_criteria = this.conditions_list.pop().criteria; } @@ -565,6 +587,16 @@ this.attribute_values = JSON.parse(JSON.parse(data.actions).attribute_conditions).attributes; + if (this.category_values == null) { + this.category_values = []; + } + + if (this.attribute_values == null) { + this.attribute_values = []; + } + + console.log(this.category_values); + // creating options and has option param on the frontend for (i in this.attribute_values) { for (j in this.attribute_input) { @@ -689,9 +721,7 @@ delete this.attribute_values[i].options; } - if (this.category_values != null && this.category_values.length > 0) { - this.all_attributes.categories = this.category_values; - } + this.all_attributes.categories = this.category_values; this.all_attributes.attributes = this.attribute_values; @@ -700,7 +730,7 @@ this.all_attributes = null; } - if (this.conditions_list.length != 0) { + if (this.conditions_list != null) { this.conditions_list.push({'criteria': this.match_criteria}); this.all_conditions = JSON.stringify(this.conditions_list); diff --git a/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php b/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php index e31a1aa42..1c98d4b92 100644 --- a/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php +++ b/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php @@ -272,7 +272,7 @@ class CartRuleController extends Controller // create a cart rule $ruleCreated = $this->cartRule->create($data); - // can execute convert x here after when the rule is updated + // can execute convertX here after when the rule is updated if (isset($attribute_conditions) && $attribute_conditions != "[]" && $attribute_conditions != "") { $this->convertX->convertX($ruleCreated->id, $attribute_conditions); } @@ -420,7 +420,9 @@ class CartRuleController extends Controller $data['disc_quantity'] = $data['disc_amount']; } else { - if (! isset($attribute_conditions) || $attribute_conditions == "[]" || $attribute_conditions == "") { + $attribute_conditions = json_decode($attribute_conditions); + + if (! (isset($attribute_conditions->categories) && count($attribute_conditions->categories)) && ! (isset($attribute_conditions->attributes) && count($attribute_conditions->attributes))) { $data['uses_attribute_conditions'] = 0; $data['actions'] = [ @@ -435,7 +437,7 @@ class CartRuleController extends Controller 'action_type' => $data['action_type'], 'disc_amount' => $data['disc_amount'], 'disc_quantity' => $data['disc_quantity'], - 'attribute_conditions' => $attribute_conditions + 'attribute_conditions' => json_encode($attribute_conditions) ]; } } @@ -498,7 +500,7 @@ class CartRuleController extends Controller // update cart rule $ruleUpdated = $this->cartRule->update($data, $id); - if (isset($attribute_conditions) && $attribute_conditions != "[]" && $attribute_conditions != "") { + if (isset($attribute_conditions) && $data['uses_attribute_conditions']) { // can execute convert X here after when the rule is updated $this->convertX->convertX($ruleUpdated->id, $attribute_conditions); } else { From 7a1b73f1c704adf104a5b407483962c428bcd0ad Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 21 Aug 2019 17:26:23 +0530 Subject: [PATCH 125/172] Cart rule action PercentOfProduct max discount quantity fixes --- .../src/Actions/Cart/PercentOfProduct.php | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php b/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php index adeb2c379..93bd4d287 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php +++ b/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php @@ -45,7 +45,21 @@ class PercentOfProduct extends Action $itemProductId = $item->product_id; } - $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + $itemQuantity = $item->quantity; + + $discQuantity = $rule->disc_quantity; + + if ($discQuantity > 1) { + if ($itemQuantity >= $discQuantity) { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + } else if ($itemQuantity < $discQuantity) { + $discQuantity = $discQuantity - $itemQuantity; + + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + } + } else { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + } if ($itemProductId == $productID) { $totalDiscount = $totalDiscount + $discount; @@ -73,7 +87,21 @@ class PercentOfProduct extends Action $itemProductId = $item->product_id; } - $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + $itemQuantity = $item->quantity; + + $discQuantity = $rule->disc_quantity; + + if ($discQuantity > 1) { + if ($itemQuantity >= $discQuantity) { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + } else if ($itemQuantity < $discQuantity) { + $discQuantity = $discQuantity - $itemQuantity; + + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + } + } else { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + } $totalDiscount = $totalDiscount + $discount; From 852a6b91af68f3df42cc22e14a8da0f973583fc5 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Thu, 22 Aug 2019 11:05:25 +0530 Subject: [PATCH 126/172] More normalization added in cart rule actions for FixedAmount & PercetnOfProduct --- .../Discount/src/Actions/Cart/FixedAmount.php | 87 +++++++++---- .../src/Actions/Cart/PercentOfProduct.php | 121 ++++++++---------- .../Webkul/Shipping/src/Config/carriers.php | 4 +- 3 files changed, 123 insertions(+), 89 deletions(-) diff --git a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php index b5f9b7978..09ec73922 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php +++ b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php @@ -13,37 +13,60 @@ class FixedAmount extends Action $impact = collect(); - $impact->discount = $rule->disc_amount; - $impact->formatted_discount = core()->currency($impact->discount); + $totalDiscount = 0; + + if ($rule->discount_amount >= 100) { + $impact->discount = $cart->base_sub_total; + + $impact->formatted_discount = core()->currency($impact->discount); + } if ($rule->uses_attribute_conditions) { $productIDs = $rule->product_ids; $productIDs = explode(',', $productIDs); - $matchCount = 0; - foreach ($productIDs as $productID) { foreach ($items as $item) { - if ($item->product_id == $productID) { - $matchCount++; + $itemPrice = $item->base_price; + + if ($item->product->type == 'configurable') { + $itemProductId = $item->child->product_id; + } else { + $itemProductId = $item->product_id; } - } - } - if ($matchCount > 0) { - $discountPerItem = $impact->discount / $matchCount; - } + $itemQuantity = $item->quantity; + + $discQuantity = $rule->disc_quantity; + + if ($discQuantity > 1) { + if ($itemQuantity >= $discQuantity) { + if ($rule->disc_amount > $itemPrice) { + $discount = round(($itemPrice - $rule->disc_amount), 4) * $discQuantity; + } else { + $discount = $itemPrice; + } + } else if ($itemQuantity < $discQuantity) { + if ($rule->disc_amount > $itemPrice) { + $discount = round(($itemPrice - $rule->disc_amount), 4) * $itemQuantity; + } else { + $discount = $itemPrice; + } + } + } else { + $discount = round(($itemPrice - $rule->disc_amount), 4); + } + + if ($itemProductId == $productID) { + $totalDiscount = $totalDiscount + $discount; - foreach ($productIDs as $productID) { - foreach ($items as $item) { - if ($item->product_id == $productID) { $report = array(); $report['item_id'] = $item->id; - $report['product_id'] = $item->product_id; - $report['discount'] = round($discountPerItem, 4); - $report['formatted_discount'] = core()->currency(round($discountPerItem, 4)); + $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; + $report['discount'] = $discount; + $report['formatted_discount'] = core()->currency($discount); $impact->push($report); @@ -52,15 +75,31 @@ class FixedAmount extends Action } } } else { - $discountPerItem = $impact->discount / $cart->items_qty; - foreach ($items as $item) { + $itemPrice = $item->base_price; + + $itemQuantity = $item->quantity; + + $discQuantity = $rule->disc_quantity; + + if ($discQuantity > 1) { + if ($itemQuantity >= $discQuantity) { + $discount = round(($itemPrice - $rule->disc_amount), 4) * $discQuantity; + } else if ($itemQuantity < $discQuantity) { + $discount = round(($itemPrice - $rule->disc_amount), 4) * $itemQuantity; + } + } else { + $discount = round(($itemPrice - $rule->disc_amount), 4); + } + + $totalDiscount = $totalDiscount + $discount; + $report = array(); $report['item_id'] = $item->id; - $report['product_id'] = $item->product_id; - $report['discount'] = round($discountPerItem, 4); - $report['formatted_discount'] = core()->currency(round($discountPerItem, 4)); + $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; + $report['discount'] = $discount; + $report['formatted_discount'] = core()->currency($discount); $impact->push($report); @@ -68,6 +107,10 @@ class FixedAmount extends Action } } + + $impact->discount = $totalDiscount; + $impact->formatted_discount = core()->currency($impact->discount); + return $impact; } } \ No newline at end of file diff --git a/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php b/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php index 93bd4d287..74c9fa10c 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php +++ b/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php @@ -19,65 +19,24 @@ class PercentOfProduct extends Action $impact->discount = $cart->base_sub_total; $impact->formatted_discount = core()->currency($impact->discount); - } else { - if ($rule->uses_attribute_conditions) { - $productIDs = $rule->product_ids; + } - $productIDs = explode(',', $productIDs); + if ($rule->uses_attribute_conditions) { + $productIDs = $rule->product_ids; - $matchCount = 0; + $productIDs = explode(',', $productIDs); - foreach ($productIDs as $productID) { - foreach ($items as $item) { - if ($item->product_id == $productID) { - $matchCount++; - } - } - } + // $matchCount = 0; - foreach ($productIDs as $productID) { - foreach ($items as $item) { - $itemPrice = $item->base_price; + // foreach ($productIDs as $productID) { + // foreach ($items as $item) { + // if ($item->product_id == $productID) { + // $matchCount++; + // } + // } + // } - if ($item->product->type == 'configurable') { - $itemProductId = $item->child->product_id; - } else { - $itemProductId = $item->product_id; - } - - $itemQuantity = $item->quantity; - - $discQuantity = $rule->disc_quantity; - - if ($discQuantity > 1) { - if ($itemQuantity >= $discQuantity) { - $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; - } else if ($itemQuantity < $discQuantity) { - $discQuantity = $discQuantity - $itemQuantity; - - $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; - } - } else { - $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); - } - - if ($itemProductId == $productID) { - $totalDiscount = $totalDiscount + $discount; - - $report = array(); - - $report['item_id'] = $item->id; - $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; - $report['discount'] = $discount; - $report['formatted_discount'] = core()->currency($discount); - - $impact->push($report); - - unset($report); - } - } - } - } else { + foreach ($productIDs as $productID) { foreach ($items as $item) { $itemPrice = $item->base_price; @@ -95,30 +54,62 @@ class PercentOfProduct extends Action if ($itemQuantity >= $discQuantity) { $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; } else if ($itemQuantity < $discQuantity) { - $discQuantity = $discQuantity - $itemQuantity; - - $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $itemQuantity; } } else { $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); } - $totalDiscount = $totalDiscount + $discount; + if ($itemProductId == $productID) { + $totalDiscount = $totalDiscount + $discount; - $report = array(); + $report = array(); - $report['item_id'] = $item->id; - $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; - $report['discount'] = $discount; - $report['formatted_discount'] = core()->currency($discount); + $report['item_id'] = $item->id; + $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; + $report['discount'] = $discount; + $report['formatted_discount'] = core()->currency($discount); - $impact->push($report); + $impact->push($report); - unset($report); + unset($report); + } } } + } else { + foreach ($items as $item) { + $itemPrice = $item->base_price; + + $itemQuantity = $item->quantity; + + $discQuantity = $rule->disc_quantity; + + if ($discQuantity > 1) { + if ($itemQuantity >= $discQuantity) { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + } else if ($itemQuantity < $discQuantity) { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $itemQuantity; + } + } else { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + } + + $totalDiscount = $totalDiscount + $discount; + + $report = array(); + + $report['item_id'] = $item->id; + $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; + $report['discount'] = $discount; + $report['formatted_discount'] = core()->currency($discount); + + $impact->push($report); + + unset($report); + } } + $impact->discount = $totalDiscount; $impact->formatted_discount = core()->currency($impact->discount); diff --git a/packages/Webkul/Shipping/src/Config/carriers.php b/packages/Webkul/Shipping/src/Config/carriers.php index 8f80fae2f..d78327e75 100755 --- a/packages/Webkul/Shipping/src/Config/carriers.php +++ b/packages/Webkul/Shipping/src/Config/carriers.php @@ -4,7 +4,7 @@ return [ 'flatrate' => [ 'code' => 'flatrate', 'title' => 'Flat Rate', - 'description' => 'shop::app.checkout.onepage.flat-desc', + 'description' => 'Flat Rate Shipping', 'active' => true, 'default_rate' => '10', 'type' => 'per_unit', @@ -14,7 +14,7 @@ return [ 'free' => [ 'code' => 'free', 'title' => 'Free Shipping', - 'description' => 'shop::app.checkout.onepage.free-desc', + 'description' => 'Free Shipping', 'active' => true, 'default_rate' => '0', 'class' => 'Webkul\Shipping\Carriers\Free', From 486c6ca63f85fb480efdeef4345f15ef98dfb8bc Mon Sep 17 00:00:00 2001 From: rahul shukla Date: Thu, 22 Aug 2019 13:56:21 +0530 Subject: [PATCH 127/172] issue #1340 --- .../Resources/views/configuration/field-type.blade.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php b/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php index d6e37d002..c0859e99e 100755 --- a/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php @@ -128,6 +128,10 @@ $value = null; } else { $value = $option['value']; + + if (! $value) { + $value = 0; + } } ?> @@ -162,6 +166,10 @@ $value = null; } else { $value = $option['value']; + + if (! $value) { + $value = 0; + } } ?> From ee4c4c43cbf00796d256dee4b5a7a8b72466bd4d Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Thu, 22 Aug 2019 15:18:27 +0530 Subject: [PATCH 128/172] Fixed all actions of Cart rules --- .../Database/Seeders/AttributeTableSeeder.php | 2 +- .../Discount/src/Actions/Cart/FixedAmount.php | 6 -- .../src/Actions/Cart/WholeCartToPercent.php | 64 +++++++++++-------- 3 files changed, 37 insertions(+), 35 deletions(-) diff --git a/packages/Webkul/Attribute/src/Database/Seeders/AttributeTableSeeder.php b/packages/Webkul/Attribute/src/Database/Seeders/AttributeTableSeeder.php index 6d0eac76c..595b37411 100755 --- a/packages/Webkul/Attribute/src/Database/Seeders/AttributeTableSeeder.php +++ b/packages/Webkul/Attribute/src/Database/Seeders/AttributeTableSeeder.php @@ -60,7 +60,7 @@ class AttributeTableSeeder extends Seeder 'use_in_flat' => '1','created_at' => $now,'updated_at' => $now], ['id' => '24','code' => 'size','admin_name' => 'Size','type' => 'select','validation' => NULL,'position' => '24','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '1','is_user_defined' => '1','is_visible_on_front' => '0', 'use_in_flat' => '1','created_at' => $now,'updated_at' => $now], - ['id' => '25','code' => 'brand','admin_name' => 'Brand','type' => 'text','validation' => NULL,'position' => '25','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '1', + ['id' => '25','code' => 'brand','admin_name' => 'Brand','type' => 'select','validation' => NULL,'position' => '25','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '1', 'use_in_flat' => '1','created_at' => $now,'updated_at' => $now] ]); diff --git a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php index 09ec73922..515c65096 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php +++ b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php @@ -15,12 +15,6 @@ class FixedAmount extends Action $totalDiscount = 0; - if ($rule->discount_amount >= 100) { - $impact->discount = $cart->base_sub_total; - - $impact->formatted_discount = core()->currency($impact->discount); - } - if ($rule->uses_attribute_conditions) { $productIDs = $rule->product_ids; diff --git a/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php b/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php index 4d7d3554a..40b764d8b 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php +++ b/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php @@ -23,13 +23,7 @@ class WholeCartToPercent extends Action $impact = collect(); - if ($rule->discount_amount >= 100) { - $impact->discount = $cart->base_sub_total; - } else { - $impact->discount = ($rule->disc_amount / 100) * $cart->base_sub_total; - } - - $impact->formatted_discount = core()->currency($impact->discount); + $totalDiscount = 0; if ($rule->uses_attribute_conditions) { $productIDs = $rule->product_ids; @@ -47,42 +41,56 @@ class WholeCartToPercent extends Action } if ($matchCount > 0) { - $discountPerItem = $impact->discount / $matchCount; - } + foreach ($productIDs as $productID) { + foreach ($items as $item) { + $itemPrice = $item->base_price; - foreach ($productIDs as $productID) { - foreach ($items as $item) { - if ($item->product_id == $productID) { - $report = array(); + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); - $report['item_id'] = $item->id; - $report['product_id'] = $item->product_id; - $report['discount'] = round($discountPerItem, 4); - $report['formatted_discount'] = core()->currency(round($discountPerItem, 4)); + $totalDiscount = $totalDiscount + $discount; - $impact->push($report); + if ($item->product_id == $productID) { + $report = array(); - unset($report); + $report['item_id'] = $item->id; + $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; + $report['discount'] = $discount; + $report['formatted_discount'] = core()->currency(round($discount, 4)); + + $impact->push($report); + + unset($report); + } } } } } else { - $discountPerItem = $impact->discount / $cart->items_qty; - foreach ($items as $item) { - $report = array(); + $itemPrice = $item->base_price; - $report['item_id'] = $item->id; - $report['product_id'] = $item->product_id; - $report['discount'] = round($discountPerItem, 4); - $report['formatted_discount'] = core()->currency(round($discountPerItem, 4)); + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); - $impact->push($report); + $totalDiscount = $totalDiscount + $discount; - unset($report); + if ($item->product_id == $productID) { + $report = array(); + + $report['item_id'] = $item->id; + $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; + $report['discount'] = $discount; + $report['formatted_discount'] = core()->currency(round($discount, 4)); + + $impact->push($report); + + unset($report); + } } } + $impact->discount = $totalDiscount; + + $impact->fomatted_discount = core()->currency($impact->discount); + return $impact; } } \ No newline at end of file From 5b33eb4a56a26cadeea15c5745038702630a251d Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Thu, 22 Aug 2019 15:59:54 +0530 Subject: [PATCH 129/172] Fixed issue #1286 --- .../Discount/src/Helpers/Cart/Discount.php | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php index 7df74e404..307e4dfe2 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php @@ -198,6 +198,8 @@ abstract class Discount if ($alreadyApplied->count() && $alreadyApplied->first()->cart_rule->id == $rule->id) { if ($this->validateRule($alreadyApplied->first()->cart_rule)) { + $this->reassess($alreadyApplied->first()->cart_rule, $cart); + return false; } else { $this->clearDiscount(); @@ -255,6 +257,20 @@ abstract class Discount } } + /** + * To reassess the discount in case no. of items gets changed + * + * @return Void + */ + public function reassess($rule) + { + $rule->impact = $this->calculateImpact($rule); + + $this->updateCartItemAndCart($rule); + + return; + } + /** * To return cart rule which has the max impact * @@ -647,8 +663,11 @@ abstract class Discount $result = $this->validateRule($alreadyAppliedRule); - if (! $result) + if (! $result) { $this->clearDiscount(); + } else { + $this->reassess($alreadyAppliedRule); + } } } From cf5cc40acb076f92bcdcc4a23d1c293943e72a00 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Thu, 22 Aug 2019 16:03:08 +0530 Subject: [PATCH 130/172] Normalized cart action rules --- .../Discount/src/Actions/Cart/FixedAmount.php | 8 +++++++- .../src/Actions/Cart/PercentOfProduct.php | 8 +++++++- .../src/Actions/Cart/WholeCartToPercent.php | 16 ++++++++++++++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php index 515c65096..a8a76352c 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php +++ b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php @@ -92,7 +92,13 @@ class FixedAmount extends Action $report['item_id'] = $item->id; $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; - $report['discount'] = $discount; + + if ($discount <= $itemPrice) { + $report['discount'] = $discount; + } else { + $report['discount'] = $itemPrice; + } + $report['formatted_discount'] = core()->currency($discount); $impact->push($report); diff --git a/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php b/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php index 74c9fa10c..1ad74a6c8 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php +++ b/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php @@ -100,7 +100,13 @@ class PercentOfProduct extends Action $report['item_id'] = $item->id; $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; - $report['discount'] = $discount; + + if ($discount <= $itemPrice) { + $report['discount'] = $discount; + } else { + $report['discount'] = $itemPrice; + } + $report['formatted_discount'] = core()->currency($discount); $impact->push($report); diff --git a/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php b/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php index 40b764d8b..60037f191 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php +++ b/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php @@ -54,7 +54,13 @@ class WholeCartToPercent extends Action $report['item_id'] = $item->id; $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; - $report['discount'] = $discount; + + if ($discount <= $itemPrice) { + $report['discount'] = $discount; + } else { + $report['discount'] = $itemPrice; + } + $report['formatted_discount'] = core()->currency(round($discount, 4)); $impact->push($report); @@ -77,7 +83,13 @@ class WholeCartToPercent extends Action $report['item_id'] = $item->id; $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; - $report['discount'] = $discount; + + if ($discount <= $itemPrice) { + $report['discount'] = $discount; + } else { + $report['discount'] = $itemPrice; + } + $report['formatted_discount'] = core()->currency(round($discount, 4)); $impact->push($report); From c21ad00ecea58099498a295c3659d3b1ae7ab467 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Thu, 22 Aug 2019 16:54:25 +0530 Subject: [PATCH 131/172] Cart rules normalization complete --- .../Discount/src/Helpers/Cart/Discount.php | 10 +++- .../src/Helpers/Cart/ValidatesDiscount.php | 56 ------------------- 2 files changed, 7 insertions(+), 59 deletions(-) diff --git a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php index 307e4dfe2..6514ecde2 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php @@ -322,6 +322,8 @@ abstract class Discount */ public function getActionInstance($rule) { + $this->rules = config('discount-rules'); + $actionType = new $this->rules['cart'][$rule->action_type]; return $actionType; @@ -659,14 +661,16 @@ abstract class Discount ]); if ($alreadyAppliedRule->count()) { - $alreadyAppliedRule = $alreadyAppliedRule->first()->cart_rule; + $alreadyAppliedCartRule = $alreadyAppliedRule->first()->cart_rule; - $result = $this->validateRule($alreadyAppliedRule); + $result = $this->validateRule($alreadyAppliedCartRule); if (! $result) { $this->clearDiscount(); + + $alreadyAppliedRule->delete(); } else { - $this->reassess($alreadyAppliedRule); + $this->reassess($alreadyAppliedCartRule); } } } diff --git a/packages/Webkul/Discount/src/Helpers/Cart/ValidatesDiscount.php b/packages/Webkul/Discount/src/Helpers/Cart/ValidatesDiscount.php index ef0681497..f6b0b68c3 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/ValidatesDiscount.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/ValidatesDiscount.php @@ -7,21 +7,6 @@ use Webkul\Discount\Repositories\CartRuleCartRepository as CartRuleCart; class ValidatesDiscount extends Discount { - /** - * CartRuleCartRepository instance - */ - protected $cartRuleCart; - - /** - * Initializes type hinted dependencies - * - * @param CartRuleCart $cartRuleCart - */ - public function __construct(CartRuleCart $cartRuleCart) - { - $this->cartRuleCart = $cartRuleCart; - } - public function apply($code) { return null; @@ -38,45 +23,4 @@ class ValidatesDiscount extends Discount { $this->validateIfAlreadyApplied(); } - - /** - * Removes the already applied coupon on the current cart instance - * - * @return boolean - */ - public function remove() - { - $cart = Cart::getCart(); - - $existingRule = $this->cartRuleCart->findWhere([ - 'cart_id' => $cart->id - ]); - - if ($existingRule->count()) { - $existingRule->first()->delete(); - - foreach ($cart->items as $item) { - if ($item->discount_amount > 0) { - $item->update([ - 'discount_amount' => 0, - 'base_discount_amount' => 0, - 'discount_percent' => 0, - 'coupon_code' => NULL - ]); - } - } - - $cart->update([ - 'coupon_code' => NULL, - 'discount_amount' => 0, - 'base_discount_amount' => 0 - ]); - - Cart::collectTotals(); - - return true; - } else { - return false; - } - } } \ No newline at end of file From fb52c4bffca4ea768e90f5aab9ecd17c71cfa127 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Thu, 22 Aug 2019 18:57:35 +0530 Subject: [PATCH 132/172] WIP: Frontend resolution of catalog rule pricing --- packages/Webkul/Discount/src/Helpers/Catalog/Apply.php | 10 +++++----- packages/Webkul/Product/src/Helpers/Price.php | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/Webkul/Discount/src/Helpers/Catalog/Apply.php b/packages/Webkul/Discount/src/Helpers/Catalog/Apply.php index b9658f9c4..855d8d065 100644 --- a/packages/Webkul/Discount/src/Helpers/Catalog/Apply.php +++ b/packages/Webkul/Discount/src/Helpers/Catalog/Apply.php @@ -13,7 +13,7 @@ use Webkul\Discount\Helpers\Catalog\Sale; * Apply - Applies catalog rule to products intended in the rules * * @author Prashant Singh @prashant-webkul - * @copyright 2019 Webkul Software Pvt Ltd (http://www.webkul.com) + * @copyright 2019 Webkul Software Pvt Ltd (http://www.webkul.com) */ class Apply extends Sale { @@ -119,10 +119,8 @@ class Apply extends Sale $this->setSale($rule, $productIDs); } } - - // dd($result, 'processing done'); } else { - // handle the deceased rules here + // handle the deceased rules here or call the declutter handler over here // dd($this->deceased); } } @@ -196,6 +194,8 @@ class Apply extends Sale $winnerRuleId = $this->breakTie($previousRuleID, $newRuleID, $product); + $discountAmount = $this->getDiscountAmount($product, $rule); + $data = [ 'catalog_rule_id' => $rule->id, 'starts_from' => $rule->starts_from, @@ -204,7 +204,7 @@ class Apply extends Sale 'channel_id' => $channelId, 'product_id' => $productID, 'action_code' => $rule->action_code, - 'action_amount' => $discountPrice + 'action_amount' => $discountAmount ]; if ($rule->id == $winnerRuleId) { diff --git a/packages/Webkul/Product/src/Helpers/Price.php b/packages/Webkul/Product/src/Helpers/Price.php index bfdb08c51..0e63dece6 100755 --- a/packages/Webkul/Product/src/Helpers/Price.php +++ b/packages/Webkul/Product/src/Helpers/Price.php @@ -71,7 +71,8 @@ class Price extends AbstractProduct } $qb = ProductFlat::join('products', 'product_flat.product_id', '=', 'products.id') - ->where('products.parent_id', $productId); + ->join('catalog_rule_products', 'catalog_rule_products.product_id', '=', 'products.id') + ->where('products.parent_id', $productId); $result = $qb ->distinct() From 5f34825678926a1b40c6326a1a58feb9655c01d3 Mon Sep 17 00:00:00 2001 From: prateek srivastava Date: Thu, 22 Aug 2019 19:28:41 +0530 Subject: [PATCH 133/172] issue of admin panel form button fixed --- .../Webkul/Admin/src/Resources/views/account/edit.blade.php | 2 +- .../src/Resources/views/catalog/attributes/create.blade.php | 2 +- .../Admin/src/Resources/views/catalog/attributes/edit.blade.php | 2 +- .../src/Resources/views/catalog/categories/create.blade.php | 2 +- .../Admin/src/Resources/views/catalog/families/create.blade.php | 2 +- .../Admin/src/Resources/views/catalog/families/edit.blade.php | 2 +- .../Admin/src/Resources/views/catalog/products/create.blade.php | 2 +- .../Admin/src/Resources/views/catalog/products/edit.blade.php | 2 +- packages/Webkul/Admin/src/Resources/views/cms/create.blade.php | 2 +- packages/Webkul/Admin/src/Resources/views/cms/edit.blade.php | 2 +- .../Webkul/Admin/src/Resources/views/customers/create.blade.php | 2 +- .../Webkul/Admin/src/Resources/views/customers/edit.blade.php | 2 +- .../src/Resources/views/promotions/cart-rule/create.blade.php | 2 +- .../src/Resources/views/promotions/cart-rule/edit.blade.php | 2 +- .../Resources/views/promotions/catalog-rule/create.blade.php | 2 +- .../src/Resources/views/promotions/catalog-rule/edit.blade.php | 2 +- .../Admin/src/Resources/views/sales/invoices/create.blade.php | 2 +- .../Admin/src/Resources/views/sales/shipments/create.blade.php | 2 +- .../src/Resources/views/settings/channels/create.blade.php | 2 +- .../Admin/src/Resources/views/settings/channels/edit.blade.php | 2 +- .../src/Resources/views/settings/currencies/create.blade.php | 2 +- .../src/Resources/views/settings/currencies/edit.blade.php | 2 +- .../Resources/views/settings/exchange_rates/create.blade.php | 2 +- .../src/Resources/views/settings/exchange_rates/edit.blade.php | 2 +- .../Resources/views/settings/inventory_sources/create.blade.php | 2 +- .../Resources/views/settings/inventory_sources/edit.blade.php | 2 +- .../Admin/src/Resources/views/settings/locales/create.blade.php | 2 +- .../Admin/src/Resources/views/settings/locales/edit.blade.php | 2 +- .../Admin/src/Resources/views/settings/sliders/create.blade.php | 2 +- .../Admin/src/Resources/views/settings/sliders/edit.blade.php | 2 +- .../src/Resources/views/tax/tax-categories/create.blade.php | 2 +- .../Admin/src/Resources/views/tax/tax-categories/edit.blade.php | 2 +- .../Admin/src/Resources/views/tax/tax-rates/create.blade.php | 2 +- .../Admin/src/Resources/views/tax/tax-rates/edit.blade.php | 2 +- .../Admin/src/Resources/views/users/roles/create.blade.php | 2 +- .../Webkul/Admin/src/Resources/views/users/roles/edit.blade.php | 2 +- .../Admin/src/Resources/views/users/users/create.blade.php | 2 +- .../Webkul/Admin/src/Resources/views/users/users/edit.blade.php | 2 +- 38 files changed, 38 insertions(+), 38 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php index d6edda9a1..5a3f92716 100755 --- a/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php @@ -14,7 +14,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php index 1c0450dd2..02fcc351b 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php index 4199277ab..28c9716ba 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/categories/create.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/categories/create.blade.php index dc413a9ad..8c816b1af 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/categories/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/categories/create.blade.php @@ -18,7 +18,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/families/create.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/families/create.blade.php index 71d59a559..95cb97674 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/families/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/families/create.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/families/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/families/edit.blade.php index 96184b49d..a88e30f44 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/families/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/families/edit.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/create.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/create.blade.php index 72c57e9b8..0f086af18 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/create.blade.php @@ -32,7 +32,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php index d23fca476..24d7d5956 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php @@ -47,7 +47,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php b/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php index 129e44c3c..255a73326 100644 --- a/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/cms/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/cms/edit.blade.php index 5f6a312fc..e18ff2440 100644 --- a/packages/Webkul/Admin/src/Resources/views/cms/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/cms/edit.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/customers/create.blade.php b/packages/Webkul/Admin/src/Resources/views/customers/create.blade.php index 14fdee7b5..f672d29bd 100755 --- a/packages/Webkul/Admin/src/Resources/views/customers/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/customers/create.blade.php @@ -19,7 +19,7 @@
-
+
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 1df387d95..ebc3aabee 100755 --- a/packages/Webkul/Admin/src/Resources/views/customers/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/customers/edit.blade.php @@ -19,7 +19,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php index 3314f79b0..967810402 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php @@ -24,7 +24,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php index 14082b127..ba73aa59c 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php @@ -24,7 +24,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/create.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/create.blade.php index 86d147167..197ce1be1 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/create.blade.php @@ -24,7 +24,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/edit.blade.php index efeb2352a..28e72b240 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/catalog-rule/edit.blade.php @@ -24,7 +24,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/sales/invoices/create.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/invoices/create.blade.php index 749d4e8d4..1a9eb9c87 100755 --- a/packages/Webkul/Admin/src/Resources/views/sales/invoices/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/invoices/create.blade.php @@ -18,7 +18,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php index 920c33e09..bdd82af4f 100755 --- a/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php @@ -18,7 +18,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php index fc47b4bca..c0914275e 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php index dba0a90b1..e4d42ef31 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/currencies/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/currencies/create.blade.php index c9c11a3d3..4e3316deb 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/currencies/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/currencies/create.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/currencies/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/currencies/edit.blade.php index a4a090f37..604234aa4 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/currencies/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/currencies/edit.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/create.blade.php index 5df4db6c7..676eaf12d 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/create.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/edit.blade.php index bcd93f23b..bdc3ff397 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/exchange_rates/edit.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/inventory_sources/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/inventory_sources/create.blade.php index a3e6ffdd0..5bda86c71 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/inventory_sources/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/inventory_sources/create.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/inventory_sources/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/inventory_sources/edit.blade.php index bda733b67..90009a63b 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/inventory_sources/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/inventory_sources/edit.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/locales/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/locales/create.blade.php index 253d0a029..fa3d74db6 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/locales/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/locales/create.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/locales/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/locales/edit.blade.php index adf417dea..939c8441c 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/locales/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/locales/edit.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php index 13a345832..5c5f55294 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/sliders/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/sliders/edit.blade.php index 74c4c38d9..b59a5c552 100755 --- a/packages/Webkul/Admin/src/Resources/views/settings/sliders/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/sliders/edit.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/create.blade.php b/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/create.blade.php index 20f20e502..5501e06f8 100755 --- a/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/create.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/edit.blade.php index a69bc40ec..128e610ef 100755 --- a/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/edit.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/create.blade.php b/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/create.blade.php index 6193170fa..28d819085 100755 --- a/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/create.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/edit.blade.php index 639ca8804..0b7a3930a 100755 --- a/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/edit.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/users/roles/create.blade.php b/packages/Webkul/Admin/src/Resources/views/users/roles/create.blade.php index 82a28ab6c..2b9430ce4 100755 --- a/packages/Webkul/Admin/src/Resources/views/users/roles/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/users/roles/create.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/users/roles/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/users/roles/edit.blade.php index 27842c5fb..678d0df7a 100755 --- a/packages/Webkul/Admin/src/Resources/views/users/roles/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/users/roles/edit.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/users/users/create.blade.php b/packages/Webkul/Admin/src/Resources/views/users/users/create.blade.php index 4f99fcfe7..8caf5340a 100755 --- a/packages/Webkul/Admin/src/Resources/views/users/users/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/users/users/create.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/users/users/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/users/users/edit.blade.php index 8466fed6f..d733a91cf 100755 --- a/packages/Webkul/Admin/src/Resources/views/users/users/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/users/users/edit.blade.php @@ -16,7 +16,7 @@
-
+
From b0c8eb5eb556a7835d0ac55c417bf6ec0f9fc19e Mon Sep 17 00:00:00 2001 From: prateek srivastava Date: Thu, 22 Aug 2019 19:34:08 +0530 Subject: [PATCH 134/172] issue of layout fixed in admin tax --- .../src/Resources/views/tax/tax-categories/create.blade.php | 2 +- .../Admin/src/Resources/views/tax/tax-categories/edit.blade.php | 2 +- .../Admin/src/Resources/views/tax/tax-rates/create.blade.php | 2 +- .../Admin/src/Resources/views/tax/tax-rates/edit.blade.php | 2 +- .../Admin/src/Resources/views/users/roles/create.blade.php | 2 +- .../Webkul/Admin/src/Resources/views/users/roles/edit.blade.php | 2 +- .../Admin/src/Resources/views/users/users/create.blade.php | 2 +- .../Webkul/Admin/src/Resources/views/users/users/edit.blade.php | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/create.blade.php b/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/create.blade.php index 5501e06f8..2edba1879 100755 --- a/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/create.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/edit.blade.php index 128e610ef..22eacbf06 100755 --- a/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/tax/tax-categories/edit.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/create.blade.php b/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/create.blade.php index 28d819085..429fae5e9 100755 --- a/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/create.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/edit.blade.php index 0b7a3930a..53ebef1f9 100755 --- a/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/tax/tax-rates/edit.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/users/roles/create.blade.php b/packages/Webkul/Admin/src/Resources/views/users/roles/create.blade.php index 2b9430ce4..75b958b02 100755 --- a/packages/Webkul/Admin/src/Resources/views/users/roles/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/users/roles/create.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/users/roles/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/users/roles/edit.blade.php index 678d0df7a..8e80f3ca0 100755 --- a/packages/Webkul/Admin/src/Resources/views/users/roles/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/users/roles/edit.blade.php @@ -17,7 +17,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/users/users/create.blade.php b/packages/Webkul/Admin/src/Resources/views/users/users/create.blade.php index 8caf5340a..793c2c0e5 100755 --- a/packages/Webkul/Admin/src/Resources/views/users/users/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/users/users/create.blade.php @@ -16,7 +16,7 @@
-
+
diff --git a/packages/Webkul/Admin/src/Resources/views/users/users/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/users/users/edit.blade.php index d733a91cf..72f3b3b29 100755 --- a/packages/Webkul/Admin/src/Resources/views/users/users/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/users/users/edit.blade.php @@ -16,7 +16,7 @@
-
+
From b62b277cacb7cc2efe6bea2fba328dd4b47f4ec3 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Fri, 23 Aug 2019 08:56:25 +0530 Subject: [PATCH 135/172] Integrated GTM --- composer.json | 4 +- config/app.php | 2 + config/concord.php | 3 +- packages/Webkul/GTM/composer.json | 27 ++++++ packages/Webkul/GTM/readme.md | 52 +++++++++++ packages/Webkul/GTM/src/Config/system.php | 39 ++++++++ .../src/Providers/EventServiceProvider.php | 28 ++++++ .../GTM/src/Providers/GTMServiceProvider.php | 45 +++++++++ .../Webkul/GTM/src/Resources/lang/en/app.php | 8 ++ .../GTM/src/Resources/views/body.blade.php | 17 ++++ .../GTM/src/Resources/views/cart.blade.php | 50 ++++++++++ .../src/Resources/views/category.blade.php | 92 +++++++++++++++++++ .../views/checkout-success.blade.php | 13 +++ .../GTM/src/Resources/views/head.blade.php | 1 + .../GTM/src/Resources/views/product.blade.php | 60 ++++++++++++ .../SAASCustomizer/src/Exceptions/Handler.php | 1 + .../Controllers/StripeConnectController.php | 4 +- .../Webkul/Ui/publishable/assets/js/ui.js | 2 +- .../Ui/publishable/assets/mix-manifest.json | 2 +- packages/Webkul/Webfont/src/Config/menu.php | 6 ++ packages/Webkul/Webfont/src/Config/system.php | 12 +++ .../Http/Controllers/WebfontController.php | 6 +- packages/Webkul/Webfont/src/Http/routes.php | 2 + .../Webfont/src/Resources/lang/en/app.php | 3 + .../src/Resources/views/webfont.blade.php | 52 +++++++++++ 25 files changed, 523 insertions(+), 8 deletions(-) create mode 100644 packages/Webkul/GTM/composer.json create mode 100644 packages/Webkul/GTM/readme.md create mode 100644 packages/Webkul/GTM/src/Config/system.php create mode 100644 packages/Webkul/GTM/src/Providers/EventServiceProvider.php create mode 100644 packages/Webkul/GTM/src/Providers/GTMServiceProvider.php create mode 100644 packages/Webkul/GTM/src/Resources/lang/en/app.php create mode 100644 packages/Webkul/GTM/src/Resources/views/body.blade.php create mode 100644 packages/Webkul/GTM/src/Resources/views/cart.blade.php create mode 100644 packages/Webkul/GTM/src/Resources/views/category.blade.php create mode 100644 packages/Webkul/GTM/src/Resources/views/checkout-success.blade.php create mode 100644 packages/Webkul/GTM/src/Resources/views/head.blade.php create mode 100644 packages/Webkul/GTM/src/Resources/views/product.blade.php diff --git a/composer.json b/composer.json index e44e96319..695056b30 100755 --- a/composer.json +++ b/composer.json @@ -99,7 +99,9 @@ "Webkul\\CustomerCreditMax\\": "packages/Webkul/CustomerCreditMax", "Webkul\\CustomerGroupCatalog\\": "packages/Webkul/CustomerGroupCatalog", "Webkul\\ShowPriceAfterLogin\\": "packages/Webkul/ShowPriceAfterLogin/src", - "Webkul\\PreOrder\\": "packages/Webkul/PreOrder/src" + "Webkul\\PreOrder\\": "packages/Webkul/PreOrder/src", + "Webkul\\Webfont\\": "packages/Webkul/Webfont/src", + "Webkul\\GTM\\": "packages/Webkul/GTM/src" } }, "autoload-dev": { diff --git a/config/app.php b/config/app.php index 8158dce5e..c65f00258 100755 --- a/config/app.php +++ b/config/app.php @@ -249,6 +249,8 @@ return [ Webkul\CustomerDocument\Providers\CustomerDocumentServiceProvider::class, Webkul\BulkAddToCart\Providers\BulkAddToCartServiceProvider::class, Webkul\AdminAuthCheck\Providers\AdminAuthCheckServiceProvider::class, + Webkul\Webfont\Providers\WebfontServiceProvider::class, + Webkul\GTM\Providers\GTMServiceProvider::class, Webkul\StripeConnect\Providers\StripeConnectServiceProvider::class, Webkul\ShowPriceAfterLogin\Providers\ShowPriceAfterLoginServiceProvider::class, Webkul\CustomerCreditMax\Providers\CustomerCreditMaxServiceProvider::class, diff --git a/config/concord.php b/config/concord.php index 233a450b3..4ffc94270 100755 --- a/config/concord.php +++ b/config/concord.php @@ -22,6 +22,7 @@ return [ \Webkul\Discount\Providers\ModuleServiceProvider::class, \Webkul\CMS\Providers\ModuleServiceProvider::class, \Webkul\StripeConnect\Providers\ModuleServiceProvider::class, - \Webkul\PreOrder\Providers\ModuleServiceProvider::class + \Webkul\PreOrder\Providers\ModuleServiceProvider::class, + \Webkul\Webfont\Providers\ModuleServiceProvider::class ] ]; \ No newline at end of file diff --git a/packages/Webkul/GTM/composer.json b/packages/Webkul/GTM/composer.json new file mode 100644 index 000000000..d887d2a7a --- /dev/null +++ b/packages/Webkul/GTM/composer.json @@ -0,0 +1,27 @@ +{ + "name": "bagisto/laravel-gtm", + "license": "MIT", + "authors": [ + { + "name": "Prashant Singh", + "email": "prashant.singh852@webkul.com" + } + ], + "require": {}, + "autoload": { + "psr-4": { + "Webkul\\GTM\\": "src/" + } + }, + "extra": { + "laravel": { + "providers": [ + "Webkul\\GTM\\Providers\\GTMServiceProvider" + ], + + "aliases": { + } + } + }, + "minimum-stability": "dev" +} \ No newline at end of file diff --git a/packages/Webkul/GTM/readme.md b/packages/Webkul/GTM/readme.md new file mode 100644 index 000000000..f93ddb239 --- /dev/null +++ b/packages/Webkul/GTM/readme.md @@ -0,0 +1,52 @@ +# Introduction: +Bagisto webfont is dynamic implementation of google web fonts. It allows you to choose fonts from google fonts directly from your own Bagisto instance. Choose as many google fonts at once and customize your font for storefront or backend or both within few steps. + +# Feature of Bagisto webfont module + +* Allows you to activate and deactivate module. +* Allow a default font in case you have chosen none. +* Separate control for using font in admin panel or storefront. + +# Requirements +* Bagisto v0.1.7 or higher. + +# Note: +Before proceeding you need google fonts API key. You can get your own key by following instructions after opening the link below: + +> https://developers.google.com/fonts/docs/developer_api + +# Installation +* Extract contents of the zip file in the root of your Bagisto instance. +* Do entry in composer.json in psr-4 object: + +``` +"Webkul\\Webfont\\": "packages/Webkul/Webfont/src" +``` + +* Do entry in config/app.php, inside providers array preferably at the end of it: + +``` +Webkul\Webfont\Providers\WebfontServiceProvider::class +``` + +* Do entry in config\concord.php file: + +``` +\Webkul\Webfont\Providers\ModuleServiceProvider::class +``` + +* Run command below: +1. composer dump-autoload +> Proceed if there are no errors encountered + +2. php artisan migrate + +3. php artisan route:cache + +* You can now find the module configuration in admin panel under Configuration > General > Design. + +* In the configuration page, there is a field for API key which will require to enter your own Google Fonts Developer API key. + +* Find the module under CMS > Webfont. + +> Congrats, you are all set to use Google fonts from your Bagisto instance. diff --git a/packages/Webkul/GTM/src/Config/system.php b/packages/Webkul/GTM/src/Config/system.php new file mode 100644 index 000000000..735f46c1f --- /dev/null +++ b/packages/Webkul/GTM/src/Config/system.php @@ -0,0 +1,39 @@ + 'general.gtm', + 'name' => 'gtm::app.gtm', + 'sort' => 3, + ], [ + 'key' => 'general.gtm.values', + 'name' => 'gtm::app.values', + 'sort' => 1, + 'fields' => [ + [ + 'name' => 'status', + 'title' => 'gtm::app.gtm-status', + 'type' => 'select', + 'options' => [ + [ + 'title' => 'Active', + 'value' => true + ], [ + 'title' => 'Inactive', + 'value' => false + ] + ], + + 'channel_based' => false, + 'locale_based' => false + ], [ + 'name' => 'container_id', + 'title' => 'gtm::app.container-id', + 'type' => 'text', + 'validation' => 'required', + 'channel_based' => false, + 'locale_based' => false + ] + ] + ] +]; \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Providers/EventServiceProvider.php b/packages/Webkul/GTM/src/Providers/EventServiceProvider.php new file mode 100644 index 000000000..c44038f94 --- /dev/null +++ b/packages/Webkul/GTM/src/Providers/EventServiceProvider.php @@ -0,0 +1,28 @@ +getConfigData('general.gtm.values.status')) { + Event::listen('bagisto.shop.layout.head', function($viewRenderEventManager) { + $viewRenderEventManager->addTemplate('gtm::head'); + }); + + Event::listen('bagisto.shop.layout.body.before', function($viewRenderEventManager) { + $viewRenderEventManager->addTemplate('gtm::body'); + }); + } + } +} \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Providers/GTMServiceProvider.php b/packages/Webkul/GTM/src/Providers/GTMServiceProvider.php new file mode 100644 index 000000000..c1de00f25 --- /dev/null +++ b/packages/Webkul/GTM/src/Providers/GTMServiceProvider.php @@ -0,0 +1,45 @@ +loadViewsFrom(__DIR__ . '/../Resources/views', 'gtm'); + + $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'gtm'); + + $this->app->register(EventServiceProvider::class); + } + + /** + * Register services. + * + * @return void + */ + public function register() + { + $this->registerConfig(); + } + + /** + * Registers config + */ + protected function registerConfig() + { + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/system.php', 'core' + ); + } +} diff --git a/packages/Webkul/GTM/src/Resources/lang/en/app.php b/packages/Webkul/GTM/src/Resources/lang/en/app.php new file mode 100644 index 000000000..80084c573 --- /dev/null +++ b/packages/Webkul/GTM/src/Resources/lang/en/app.php @@ -0,0 +1,8 @@ + 'Tag Manager', + 'container-id' => 'Container ID', + 'values' => 'Settings', + 'gtm-status' => 'Status' +]; \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/body.blade.php b/packages/Webkul/GTM/src/Resources/views/body.blade.php new file mode 100644 index 000000000..e08760d41 --- /dev/null +++ b/packages/Webkul/GTM/src/Resources/views/body.blade.php @@ -0,0 +1,17 @@ + + +@if (\Route::current()->getName() == 'shop.products.index') + @include('gtm::product') +@endif + +@if (\Route::current()->getName() == 'shop.categories.index') + @include('gtm::category') +@endif + +@if (\Route::current()->getName() == 'shop.checkout.cart.index') + @include('gtm::cart') +@endif + +@if (\Route::current()->getName() == 'shop.checkout.success') + @include('gtm::checkout-success') +@endif \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/cart.blade.php b/packages/Webkul/GTM/src/Resources/views/cart.blade.php new file mode 100644 index 000000000..b314c34b7 --- /dev/null +++ b/packages/Webkul/GTM/src/Resources/views/cart.blade.php @@ -0,0 +1,50 @@ +@inject ('priceHelper', 'Webkul\Product\Helpers\Price') + +@inject('productFlat', 'Webkul\Product\Repositories\ProductFlatRepository') + + \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/category.blade.php b/packages/Webkul/GTM/src/Resources/views/category.blade.php new file mode 100644 index 000000000..39cf462ca --- /dev/null +++ b/packages/Webkul/GTM/src/Resources/views/category.blade.php @@ -0,0 +1,92 @@ +@inject ('priceHelper', 'Webkul\Product\Helpers\Price') + +@inject('productFlat', 'Webkul\Product\Repositories\ProductFlatRepository') + +@php + $uri = request()->getRequestUri(); + + $uri = explode('/', $uri); + + $slug = last($uri); + + $productRepository = app('Webkul\Product\Repositories\ProductRepository'); + + $categoryRepository = app('Webkul\Category\Repositories\CategoryRepository'); + + $category = $categoryRepository->findBySlugOrFail($slug); + + $products = $productRepository->getAll($category->id); + + $toolbarHelper = app('Webkul\Product\Helpers\Toolbar'); +@endphp + + \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/checkout-success.blade.php b/packages/Webkul/GTM/src/Resources/views/checkout-success.blade.php new file mode 100644 index 000000000..a86ec76fa --- /dev/null +++ b/packages/Webkul/GTM/src/Resources/views/checkout-success.blade.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/head.blade.php b/packages/Webkul/GTM/src/Resources/views/head.blade.php new file mode 100644 index 000000000..d4bbde5a8 --- /dev/null +++ b/packages/Webkul/GTM/src/Resources/views/head.blade.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/product.blade.php b/packages/Webkul/GTM/src/Resources/views/product.blade.php new file mode 100644 index 000000000..089b36395 --- /dev/null +++ b/packages/Webkul/GTM/src/Resources/views/product.blade.php @@ -0,0 +1,60 @@ +@inject ('priceHelper', 'Webkul\Product\Helpers\Price') + +@inject('productFlat', 'Webkul\Product\Repositories\ProductFlatRepository') + +@php + $uri = request()->getRequestUri(); + + $uri = explode('/', $uri); + + $slug = last($uri); + + $product = $productFlat->findWhere([ + 'url_key' => $slug, + 'locale' => app()->getLocale(), + 'channel' => core()->getCurrentChannel()->code + ]); +@endphp + +@if (count($product)) + @php + $product = $product->first()->product; + + $category = $product->categories->first()->slug; + @endphp + + +@endif \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php b/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php index e52b781fc..5cdbed945 100644 --- a/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php +++ b/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php @@ -29,6 +29,7 @@ class Handler extends ExceptionHandler public function render($request, Exception $exception) { $path = 'saas'; + dd($exception->getMessage()); if ($exception->getMessage() == 'domain_not_found') { return $this->response($path, 400, trans('saas::app.exceptions.domain-not-found'), 'domain_not_found'); diff --git a/packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php b/packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php index 631d9b554..25c578957 100644 --- a/packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php +++ b/packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php @@ -258,10 +258,8 @@ class StripeConnectController extends Controller if (core()->getConfigData('stripe.connect.details.stripefees') == "customer") { - $applicationFee1 = $applicationFee + $cart->base_grand_total * (2.9 / 100); - $result = StripeCharge::create([ - "amount" => round(Cart::getCart()->base_grand_total + $applicationFee1, 2) * 100, + "amount" => round(Cart::getCart()->base_grand_total + $applicationFee, 2) * 100, "currency" => Cart::getCart()->base_currency_code, "source" => $stripeToken, "description" => "Purchased ".Cart::getCart()->items_count." items", diff --git a/packages/Webkul/Ui/publishable/assets/js/ui.js b/packages/Webkul/Ui/publishable/assets/js/ui.js index 14f0cb0d8..f69e034a6 100755 --- a/packages/Webkul/Ui/publishable/assets/js/ui.js +++ b/packages/Webkul/Ui/publishable/assets/js/ui.js @@ -1 +1 @@ -!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/",n(n.s=0)}({"+CM9":function(t,e,n){"use strict";var r=n("Ds5P"),i=n("ot5s")(!1),o=[].indexOf,a=!!o&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n("NNrz")(o)),"Array",{indexOf:function(t){return a?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},"+E39":function(t,e,n){t.exports=!n("S82l")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"+Mt+":function(t,e,n){"use strict";var r=n("Ds5P"),i=n("7gX0"),o=n("OzIq"),a=n("7O1s"),s=n("nphH");r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,i.Promise||o.Promise),n="function"==typeof t;return this.then(n?function(n){return s(e,t()).then(function(){return n})}:t,n?function(n){return s(e,t()).then(function(){throw n})}:t)}})},"+ZMJ":function(t,e,n){var r=n("lOnJ");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},"+vXH":function(t,e,n){n("77Ug")("Float64",8,function(t){return function(e,n,r){return t(this,e,n,r)}})},"+wdr":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={data:function(){return{sample:"",image_file:"",file:null,newImage:""}},mounted:function(){this.sample="";var t=this.$el.getElementsByTagName("input")[0],e=this;t.onchange=function(){var n=new FileReader;n.readAsDataURL(t.files[0]),n.onload=function(t){this.img=document.getElementsByTagName("input")[0],this.img.src=t.target.result,e.newImage=this.img.src,e.changePreview()}}},methods:{removePreviewImage:function(){this.sample=""},changePreview:function(){this.sample=this.newImage}},computed:{getInputImage:function(){console.log(this.imageData)}}}},"+yjc":function(t,e,n){var r=n("UKM+");n("3i66")("isSealed",function(t){return function(e){return!r(e)||!!t&&t(e)}})},"/whu":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},0:function(t,e,n){n("J66Q"),n("Oy72"),t.exports=n("MT9B")},"07k+":function(t,e,n){for(var r,i=n("OzIq"),o=n("2p1q"),a=n("ulTY"),s=a("typed_array"),c=a("view"),u=!(!i.ArrayBuffer||!i.DataView),l=u,f=0,p="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");f<9;)(r=i[p[f++]])?(o(r.prototype,s,!0),o(r.prototype,c,!0)):l=!1;t.exports={ABV:u,CONSTR:l,TYPED:s,VIEW:c}},"0Rih":function(t,e,n){"use strict";var r=n("OzIq"),i=n("Ds5P"),o=n("R3AP"),a=n("A16L"),s=n("1aA0"),c=n("vmSO"),u=n("9GpA"),l=n("UKM+"),f=n("zgIt"),p=n("qkyc"),d=n("yYvK"),h=n("kic5");t.exports=function(t,e,n,v,g,m){var y=r[t],b=y,w=g?"set":"add",x=b&&b.prototype,_={},k=function(t){var e=x[t];o(x,t,"delete"==t?function(t){return!(m&&!l(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(m&&!l(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!l(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof b&&(m||x.forEach&&!f(function(){(new b).entries().next()}))){var S=new b,D=S[w](m?{}:-0,1)!=S,C=f(function(){S.has(1)}),O=p(function(t){new b(t)}),E=!m&&f(function(){for(var t=new b,e=5;e--;)t[w](e,e);return!t.has(-0)});O||((b=e(function(e,n){u(e,b,t);var r=h(new y,e,b);return void 0!=n&&c(n,g,r[w],r),r})).prototype=x,x.constructor=b),(C||E)&&(k("delete"),k("has"),g&&k("get")),(E||D)&&k(w),m&&x.clear&&delete x.clear}else b=v.getConstructor(e,t,g,w),a(b.prototype,n),s.NEED=!0;return d(b,t),_[t]=b,i(i.G+i.W+i.F*(b!=y),_),m||v.setStrong(b,t,g),b}},"0pGU":function(t,e,n){"use strict";var r=n("DIVP");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"11aO":function(t,e,n){var r=n("VU/8")(n("LxYr"),null,!1,null,null,null);t.exports=r.exports},"13ON":function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("div",{staticClass:"tabs"},[n("ul",t._l(t.tabs,function(e){return n("li",{class:{active:e.isActive},on:{click:function(n){return t.selectTab(e)}}},[n("a",[t._v(t._s(e.name))])])}),0)]),t._v(" "),n("div",{staticClass:"tabs-content"},[t._t("default")],2)])},staticRenderFns:[]}},"1A13":function(t,e,n){"use strict";var r=n("49qz")(!0);n("uc2A")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},"1ETD":function(t,e,n){var r=n("kkCw")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(t){}}return!0}},"1aA0":function(t,e,n){var r=n("ulTY")("meta"),i=n("UKM+"),o=n("WBcL"),a=n("lDLk").f,s=0,c=Object.isExtensible||function(){return!0},u=!n("zgIt")(function(){return c(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,r)){if(!c(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!o(t,r)){if(!c(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return u&&f.NEED&&c(t)&&!o(t,r)&&l(t),t}}},"1ip3":function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},"1uLP":function(t,e,n){var r=n("Ds5P");r(r.G+r.W+r.F*!n("07k+").ABV,{DataView:n("LrcN").DataView})},"2JMG":function(t,e,n){var r=n("VU/8")(n("G3lE"),null,!1,null,null,null);t.exports=r.exports},"2VSL":function(t,e,n){var r=n("BbyF"),i=n("xAdt"),o=n("/whu");t.exports=function(t,e,n,a){var s=String(o(t)),c=s.length,u=void 0===n?" ":String(n),l=r(e);if(l<=c||""==u)return s;var f=l-c,p=i.call(u,Math.ceil(f/u.length));return p.length>f&&(p=p.slice(0,f)),a?p+s:s+p}},"2p1q":function(t,e,n){var r=n("lDLk"),i=n("fU25");t.exports=n("bUqO")?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},"31/P":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};e.default={name:"tree-view",inheritAttrs:!1,props:{inputType:String,nameField:String,idField:String,captionField:String,childrenField:String,valueField:String,items:{type:[Array,String,Object],required:!1,default:null},value:{type:Array,required:!1,default:null},behavior:{type:String,required:!1,default:"reactive"},savedValues:{type:Array,required:!1,default:null}},created:function(){-1!==this.savedValues.indexOf(this.items[this.valueField])&&this.value.push(this.items)},computed:{caption:function(){return this.items[this.captionField]},allChildren:function(){var t=this,e=[];return function n(i){if(i[t.childrenField]&&t.getLength(i[t.childrenField])>0)if("object"==r(i[t.childrenField]))for(var o in i[t.childrenField])n(i[t.childrenField][o]);else i[t.childrenField].forEach(function(t){return n(t)});else e.push(i)}(this.items),e},hasChildren:function(){return!!this.items[this.childrenField]&&this.getLength(this.items[this.childrenField])>0},hasSelection:function(){return!!this.value&&this.value.length>0},isAllChildrenSelected:function(){var t=this;return this.hasChildren&&this.hasSelection&&this.allChildren.every(function(e){return t.value.some(function(n){return n[t.idField]===e[t.idField]})})},isSomeChildrenSelected:function(){var t=this;return this.hasChildren&&this.hasSelection&&this.allChildren.some(function(e){return t.value.some(function(n){return n[t.idField]===e[t.idField]})})}},methods:{getLength:function(t){if("object"==(void 0===t?"undefined":r(t))){var e=0;for(var n in t)e++;return e}return t.length},generateRoot:function(){var t=this;return"checkbox"==this.inputType?"reactive"==this.behavior?this.$createElement("tree-checkbox",{props:{id:this.items[this.idField],label:this.caption,nameField:this.nameField,modelValue:this.items[this.valueField],inputValue:this.hasChildren?this.isSomeChildrenSelected:this.value,value:this.hasChildren?this.isAllChildrenSelected:this.items},on:{change:function(e){t.hasChildren?(t.isAllChildrenSelected?t.allChildren.forEach(function(e){var n=t.value.indexOf(e);t.value.splice(n,1)}):t.allChildren.forEach(function(e){var n=!1;t.value.forEach(function(t){t.key==e.key&&(n=!0)}),n||t.value.push(e)}),t.$emit("input",t.value)):t.$emit("input",e)}}}):this.$createElement("tree-checkbox",{props:{id:this.items[this.idField],label:this.caption,nameField:this.nameField,modelValue:this.items[this.valueField],inputValue:this.value,value:this.items}}):"radio"==this.inputType?this.$createElement("tree-radio",{props:{id:this.items[this.idField],label:this.caption,nameField:this.nameField,modelValue:this.items[this.valueField],value:this.savedValues}}):void 0},generateChild:function(t){var e=this;return this.$createElement("tree-item",{on:{input:function(t){e.$emit("input",t)}},props:{items:t,value:this.value,savedValues:this.savedValues,nameField:this.nameField,inputType:this.inputType,captionField:this.captionField,childrenField:this.childrenField,valueField:this.valueField,idField:this.idField,behavior:this.behavior}})},generateChildren:function(){var t=this,e=[];if(this.items[this.childrenField])if("object"==r(this.items[this.childrenField]))for(var n in this.items[this.childrenField])e.push(this.generateChild(this.items[this.childrenField][n]));else this.items[this.childrenField].forEach(function(n){e.push(t.generateChild(n))});return e},generateIcon:function(){var t=this;return this.$createElement("i",{class:["expand-icon"],on:{click:function(e){t.$el.classList.toggle("active")}}})},generateFolderIcon:function(){return this.$createElement("i",{class:["icon","folder-icon"]})}},render:function(t){return t("div",{class:["tree-item","active",this.hasChildren?"has-children":""]},[this.generateIcon(),this.generateFolderIcon(),this.generateRoot()].concat(function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1&&s.call(r[0],n,function(){for(i=1;i=u?t?"":void 0:(o=s.charCodeAt(c))<55296||o>56319||c+1===u||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):o:t?s.slice(c,c+2):a-56320+(o-55296<<10)+65536}}},"4IZP":function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},"4Q0w":function(t,e,n){var r=n("kkCw")("toPrimitive"),i=Date.prototype;r in i||n("2p1q")(i,r,n("jB26"))},"4RlI":function(t,e,n){"use strict";n("y325")("blink",function(t){return function(){return t(this,"blink","","")}})},"4ZU1":function(t,e,n){var r=n("lDLk"),i=n("Ds5P"),o=n("DIVP"),a=n("s4j0");i(i.S+i.F*n("zgIt")(function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,e,n){o(t),e=a(e,!0),o(n);try{return r.f(t,e,n),!0}catch(t){return!1}}})},"52Wt":function(t,e,n){n("77Ug")("Int8",1,function(t){return function(e,n,r){return t(this,e,n,r)}})},"5iw+":function(t,e,n){"use strict";n("y325")("strike",function(t){return function(){return t(this,"strike","","")}})},"6wXy":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={props:{title:String,id:String,className:String,active:Boolean},inject:["$validator"],data:function(){return{isActive:!1,imageData:""}},mounted:function(){this.isActive=this.active},methods:{toggleAccordion:function(){this.isActive=!this.isActive}},computed:{iconClass:function(){return{"accordian-down-icon":!this.isActive,"accordian-up-icon":this.isActive}}}}},"73qY":function(t,e,n){t.exports=n("VWgF")("native-function-to-string",Function.toString)},"77Pl":function(t,e,n){var r=n("EqjI");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},"77Ug":function(t,e,n){"use strict";if(n("bUqO")){var r=n("V3l/"),i=n("OzIq"),o=n("zgIt"),a=n("Ds5P"),s=n("07k+"),c=n("LrcN"),u=n("rFzY"),l=n("9GpA"),f=n("fU25"),p=n("2p1q"),d=n("A16L"),h=n("oeih"),v=n("BbyF"),g=n("8D8H"),m=n("zo/l"),y=n("s4j0"),b=n("WBcL"),w=n("wC1N"),x=n("UKM+"),_=n("FryR"),k=n("9vb1"),S=n("7ylX"),D=n("KOrd"),C=n("WcO1").f,O=n("SHe9"),E=n("ulTY"),M=n("kkCw"),P=n("LhTa"),F=n("ot5s"),I=n("7O1s"),T=n("WgSQ"),A=n("bN1p"),L=n("qkyc"),j=n("CEne"),N=n("zCYm"),R=n("DPsE"),V=n("lDLk"),z=n("x9zv"),U=V.f,B=z.f,q=i.RangeError,Y=i.TypeError,W=i.Uint8Array,H=Array.prototype,$=c.ArrayBuffer,G=c.DataView,K=P(0),X=P(2),J=P(3),Z=P(4),Q=P(5),tt=P(6),et=F(!0),nt=F(!1),rt=T.values,it=T.keys,ot=T.entries,at=H.lastIndexOf,st=H.reduce,ct=H.reduceRight,ut=H.join,lt=H.sort,ft=H.slice,pt=H.toString,dt=H.toLocaleString,ht=M("iterator"),vt=M("toStringTag"),gt=E("typed_constructor"),mt=E("def_constructor"),yt=s.CONSTR,bt=s.TYPED,wt=s.VIEW,xt=P(1,function(t,e){return Ct(I(t,t[mt]),e)}),_t=o(function(){return 1===new W(new Uint16Array([1]).buffer)[0]}),kt=!!W&&!!W.prototype.set&&o(function(){new W(1).set({})}),St=function(t,e){var n=h(t);if(n<0||n%e)throw q("Wrong offset!");return n},Dt=function(t){if(x(t)&&bt in t)return t;throw Y(t+" is not a typed array!")},Ct=function(t,e){if(!(x(t)&> in t))throw Y("It is not a typed array constructor!");return new t(e)},Ot=function(t,e){return Et(I(t,t[mt]),e)},Et=function(t,e){for(var n=0,r=e.length,i=Ct(t,r);r>n;)i[n]=e[n++];return i},Mt=function(t,e,n){U(t,e,{get:function(){return this._d[n]}})},Pt=function(t){var e,n,r,i,o,a,s=_(t),c=arguments.length,l=c>1?arguments[1]:void 0,f=void 0!==l,p=O(s);if(void 0!=p&&!k(p)){for(a=p.call(s),r=[],e=0;!(o=a.next()).done;e++)r.push(o.value);s=r}for(f&&c>2&&(l=u(l,arguments[2],2)),e=0,n=v(s.length),i=Ct(this,n);n>e;e++)i[e]=f?l(s[e],e):s[e];return i},Ft=function(){for(var t=0,e=arguments.length,n=Ct(this,e);e>t;)n[t]=arguments[t++];return n},It=!!W&&o(function(){dt.call(new W(1))}),Tt=function(){return dt.apply(It?ft.call(Dt(this)):Dt(this),arguments)},At={copyWithin:function(t,e){return R.call(Dt(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return Z(Dt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return N.apply(Dt(this),arguments)},filter:function(t){return Ot(this,X(Dt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Q(Dt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(Dt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){K(Dt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return nt(Dt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return et(Dt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return ut.apply(Dt(this),arguments)},lastIndexOf:function(t){return at.apply(Dt(this),arguments)},map:function(t){return xt(Dt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return st.apply(Dt(this),arguments)},reduceRight:function(t){return ct.apply(Dt(this),arguments)},reverse:function(){for(var t,e=Dt(this).length,n=Math.floor(e/2),r=0;r1?arguments[1]:void 0)},sort:function(t){return lt.call(Dt(this),t)},subarray:function(t,e){var n=Dt(this),r=n.length,i=m(t,r);return new(I(n,n[mt]))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,v((void 0===e?r:m(e,r))-i))}},Lt=function(t,e){return Ot(this,ft.call(Dt(this),t,e))},jt=function(t){Dt(this);var e=St(arguments[1],1),n=this.length,r=_(t),i=v(r.length),o=0;if(i+e>n)throw q("Wrong length!");for(;o255?255:255&r),i.v[d](n*e+i.o,r,_t)}(this,n,t)},enumerable:!0})};b?(h=n(function(t,n,r,i){l(t,h,u,"_d");var o,a,s,c,f=0,d=0;if(x(n)){if(!(n instanceof $||"ArrayBuffer"==(c=w(n))||"SharedArrayBuffer"==c))return bt in n?Et(h,n):Pt.call(h,n);o=n,d=St(r,e);var m=n.byteLength;if(void 0===i){if(m%e)throw q("Wrong length!");if((a=m-d)<0)throw q("Wrong length!")}else if((a=v(i)*e)+d>m)throw q("Wrong length!");s=a/e}else s=g(n),o=new $(a=s*e);for(p(t,"_d",{b:o,o:d,l:a,e:s,v:new G(o)});f0),"Math",{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):Math.log(e+Math.sqrt(e*e+1)):e}})},"7KvD":function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"7O1s":function(t,e,n){var r=n("DIVP"),i=n("XSOZ"),o=n("kkCw")("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[o])?e:i(n)}},"7aQn":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"tree-view",inheritAttrs:!1,props:{inputType:{type:String,required:!1,default:"checkbox"},nameField:{type:String,required:!1,default:"permissions"},idField:{type:String,required:!1,default:"id"},valueField:{type:String,required:!1,default:"value"},captionField:{type:String,required:!1,default:"name"},childrenField:{type:String,required:!1,default:"children"},items:{type:[Array,String,Object],required:!1,default:function(){return[]}},behavior:{type:String,required:!1,default:"reactive"},value:{type:[Array,String,Object],required:!1,default:function(){return[]}}},data:function(){return{finalValues:[]}},computed:{savedValues:function(){return this.value?"radio"==this.inputType?[this.value]:"string"==typeof this.value?JSON.parse(this.value):this.value:[]}},methods:{generateChildren:function(){var t=[],e="string"==typeof this.items?JSON.parse(this.items):this.items;for(var n in e)t.push(this.generateTreeItem(e[n]));return t},generateTreeItem:function(t){var e=this;return this.$createElement("tree-item",{props:{items:t,value:this.finalValues,savedValues:this.savedValues,nameField:this.nameField,inputType:this.inputType,captionField:this.captionField,childrenField:this.childrenField,valueField:this.valueField,idField:this.idField,behavior:this.behavior},on:{input:function(t){e.finalValues=t}}})}},render:function(t){return t("div",{class:["tree-container"]},[this.generateChildren()])}}},"7gX0":function(t,e){var n=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},"7ylX":function(t,e,n){var r=n("DIVP"),i=n("twxM"),o=n("QKXm"),a=n("mZON")("IE_PROTO"),s=function(){},c=function(){var t,e=n("jhxf")("iframe"),r=o.length;for(e.style.display="none",n("d075").appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(" + + +@endpush \ No newline at end of file From de1ccc7c0b3eb5af08062f7930545232cc852d42 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Fri, 23 Aug 2019 19:04:18 +0530 Subject: [PATCH 142/172] Webfont changes --- packages/Webkul/Webfont/src/Config/menu.php | 6 ------ packages/Webkul/Webfont/src/Http/routes.php | 2 -- .../Webkul/Webfont/src/Models/Webfont.php | 20 ++++++++++++++++++- .../src/Providers/WebfontServiceProvider.php | 2 +- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/packages/Webkul/Webfont/src/Config/menu.php b/packages/Webkul/Webfont/src/Config/menu.php index 31f5a5d7c..46d9b717a 100644 --- a/packages/Webkul/Webfont/src/Config/menu.php +++ b/packages/Webkul/Webfont/src/Config/menu.php @@ -7,11 +7,5 @@ return [ 'route' => 'admin.cms.webfont', 'sort' => 2, 'icon-class' => '', - ], [ - 'key' => 'cms.homeseo', - 'name' => 'webfont::app.homeseo', - 'route' => 'admin.cms.homeseo', - 'sort' => 2, - 'icon-class' => '', ] ]; \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Http/routes.php b/packages/Webkul/Webfont/src/Http/routes.php index 8e93cfe27..4e7f7261d 100644 --- a/packages/Webkul/Webfont/src/Http/routes.php +++ b/packages/Webkul/Webfont/src/Http/routes.php @@ -10,6 +10,4 @@ Route::group(['middleware' => ['admin']], function () { Route::get('admin/webfont/activate/{id}', 'Webkul\Webfont\Http\Controllers\WebfontController@activate')->name('admin.cms.webfont.activate'); Route::post('admin/webfont/remove/{id}', 'Webkul\Webfont\Http\Controllers\WebfontController@remove')->name('admin.cms.webfont.remove'); - - Route::get('admin/home/seo', 'Webkul\Webfont\Http\Controllers\WebfontController@homeSeo')->name('admin.cms.homeseo'); }); diff --git a/packages/Webkul/Webfont/src/Models/Webfont.php b/packages/Webkul/Webfont/src/Models/Webfont.php index 728a4d006..9ff8e0281 100644 --- a/packages/Webkul/Webfont/src/Models/Webfont.php +++ b/packages/Webkul/Webfont/src/Models/Webfont.php @@ -4,10 +4,28 @@ namespace Webkul\Webfont\Models; use Illuminate\Database\Eloquent\Model; use Webkul\Webfont\Contracts\Webfont as WebfontContract; +use Company; class Webfont extends Model implements WebfontContract { protected $table = 'google_web_fonts'; - protected $fillable = ['font', 'activated']; + protected $fillable = ['font', 'activated', 'company_id']; + + /** + * Create a new Eloquent query builder for the model. + * + * @param \Illuminate\Database\Query\Builder $query + * @return \Illuminate\Database\Eloquent\Builder|static + */ + public function newEloquentBuilder($query) + { + $company = Company::getCurrent(); + + if (auth()->guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('google_web_fonts' . '.company_id', $company->id)); + } + } } \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Providers/WebfontServiceProvider.php b/packages/Webkul/Webfont/src/Providers/WebfontServiceProvider.php index 964d22c2a..8879f1c2a 100644 --- a/packages/Webkul/Webfont/src/Providers/WebfontServiceProvider.php +++ b/packages/Webkul/Webfont/src/Providers/WebfontServiceProvider.php @@ -22,7 +22,7 @@ class WebfontServiceProvider extends ServiceProvider $this->loadRoutesFrom(__DIR__ . '/../Http/routes.php'); - $this->app->concord->registerModel(\Webkul\Webfont\Contracts\Webfont::class, \Webkul\Webfont\Models\Webfont::class); + \Webkul\Webfont\Models\Webfont::observe(\Webkul\Webfont\Observers\WebfontObserver::class); $this->app->register(EventServiceProvider::class); } From b570bf229b7624c7c83515d2b4163628682c1ed2 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 24 Aug 2019 15:57:09 +0530 Subject: [PATCH 143/172] CMS pages seeder implemented and now seeder generates all prebuilt pages that were listed in footer quicklinks --- .../src/Database/Seeders/DatabaseSeeder.php | 4 +- .../Database/Seeders/CMSPagesTableSeeder.php | 114 ++++++++++++++++++ .../src/Database/Seeders/DatabaseSeeder.php | 18 +++ .../Database/Seeders/ChannelTableSeeder.php | 4 +- 4 files changed, 137 insertions(+), 3 deletions(-) create mode 100644 packages/Webkul/CMS/src/Database/Seeders/CMSPagesTableSeeder.php create mode 100644 packages/Webkul/CMS/src/Database/Seeders/DatabaseSeeder.php diff --git a/packages/Webkul/Admin/src/Database/Seeders/DatabaseSeeder.php b/packages/Webkul/Admin/src/Database/Seeders/DatabaseSeeder.php index 3f28f5ddb..dbdaed761 100755 --- a/packages/Webkul/Admin/src/Database/Seeders/DatabaseSeeder.php +++ b/packages/Webkul/Admin/src/Database/Seeders/DatabaseSeeder.php @@ -9,6 +9,7 @@ use Webkul\Core\Database\Seeders\DatabaseSeeder as CoreSeeder; use Webkul\User\Database\Seeders\DatabaseSeeder as UserSeeder; use Webkul\Customer\Database\Seeders\DatabaseSeeder as CustomerSeeder; use Webkul\Inventory\Database\Seeders\DatabaseSeeder as InventorySeeder; +use Webkul\CMS\Database\Seeders\DatabaseSeeder as CMSSeeder; class DatabaseSeeder extends Seeder { @@ -25,5 +26,6 @@ class DatabaseSeeder extends Seeder $this->call(AttributeSeeder::class); $this->call(UserSeeder::class); $this->call(CustomerSeeder::class); + $this->call(CMSSeeder::class); } -} +} \ No newline at end of file diff --git a/packages/Webkul/CMS/src/Database/Seeders/CMSPagesTableSeeder.php b/packages/Webkul/CMS/src/Database/Seeders/CMSPagesTableSeeder.php new file mode 100644 index 000000000..a5b0c9803 --- /dev/null +++ b/packages/Webkul/CMS/src/Database/Seeders/CMSPagesTableSeeder.php @@ -0,0 +1,114 @@ +delete(); + + DB::table('cms_pages')->insert([ + [ + 'id' => '1', + 'url_key' => 'about-us', + 'html_content' => '
+
About us page content
+
', + 'page_title' => 'About Us', + 'meta_title' => 'about us', + 'meta_description' => '', + 'meta_keywords' => 'aboutus', + 'content' => '{"html": "
\r\n
About us page content
\r\n
", + "meta_title": "about us", + "page_title": "About Us", + "meta_keywords": "aboutus ", "meta_description": ""}', + 'channel_id' => 1, + 'locale_id' => 1 + ], [ + 'id' => '2', + 'url_key' => 'return-policy', + 'html_content' => '
+
Return policy page content
+
', + 'page_title' => 'Return Policy', + 'meta_title' => 'return policy', + 'meta_description' => '', + 'meta_keywords' => 'return, policy', + 'content' => '{"html": "
\r\n
Return policy page content
\r\n
", + "meta_title": "return policy", + "page_title": "Return Policy", + "meta_keywords": "return, policy ", "meta_description": ""}', + 'channel_id' => 1, + 'locale_id' => 1 + ], [ + 'id' => '3', + 'url_key' => 'refund-policy', + 'html_content' => '
+
Refund policy page content
+
', + 'page_title' => 'Refund Policy', + 'meta_title' => 'Refund policy', + 'meta_description' => '', + 'meta_keywords' => 'refund, policy', + 'content' => '{"html": "
\r\n
Refund policy page content
\r\n
", + "meta_title": "Refund policy", + "page_title": "Refund Policy", + "meta_keywords": "refund,policy ", "meta_description": ""}', + 'channel_id' => 1, + 'locale_id' => 1 + ], [ + 'id' => '4', + 'url_key' => 'terms-conditions', + 'html_content' => '
+
Terms & conditions page content
+
', + 'page_title' => 'Terms & Conditions', + 'meta_title' => 'Terms & Conditions', + 'meta_description' => '', + 'meta_keywords' => 'term, conditions', + 'content' => '{"html": "
\r\n
Terms & conditions page content
\r\n
", + "meta_title": "Terms & Conditions", + "page_title": "Terms & Conditions", + "meta_keywords": "terms, conditions ", "meta_description": ""}', + 'channel_id' => 1, + 'locale_id' => 1 + ], [ + 'id' => '5', + 'url_key' => 'terms-of-use', + 'html_content' => '
+
Terms of use page content
+
', + 'page_title' => 'Terms of use', + 'meta_title' => 'Terms of use', + 'meta_description' => '', + 'meta_keywords' => 'term, use', + 'content' => '{"html": "
\r\n
Terms of use page content
\r\n
", + "meta_title": "Terms of use", + "page_title": "Terms of use", + "meta_keywords": "terms, use ", "meta_description": ""}', + 'channel_id' => 1, + 'locale_id' => 1 + ], [ + 'id' => '6', + 'url_key' => 'contact-us', + 'html_content' => '
+
Contact us page content
+
', + 'page_title' => 'Contact Us', + 'meta_title' => 'Contact Us', + 'meta_description' => '', + 'meta_keywords' => 'contact, us', + 'content' => '{"html": "
\r\n
Contact us page content
\r\n
", + "meta_title": "Contact Us", + "page_title": "Contact Us", + "meta_keywords": "contact, us ", "meta_description": ""}', + 'channel_id' => 1, + 'locale_id' => 1 + ] + ]); + } +} \ No newline at end of file diff --git a/packages/Webkul/CMS/src/Database/Seeders/DatabaseSeeder.php b/packages/Webkul/CMS/src/Database/Seeders/DatabaseSeeder.php new file mode 100644 index 000000000..3111413dd --- /dev/null +++ b/packages/Webkul/CMS/src/Database/Seeders/DatabaseSeeder.php @@ -0,0 +1,18 @@ +call(CMSPagesTableSeeder::class); + } +} \ No newline at end of file diff --git a/packages/Webkul/Core/src/Database/Seeders/ChannelTableSeeder.php b/packages/Webkul/Core/src/Database/Seeders/ChannelTableSeeder.php index cef99543a..9e8fdeba1 100755 --- a/packages/Webkul/Core/src/Database/Seeders/ChannelTableSeeder.php +++ b/packages/Webkul/Core/src/Database/Seeders/ChannelTableSeeder.php @@ -17,7 +17,7 @@ class ChannelTableSeeder extends Seeder 'name' => 'Default', 'root_category_id' => 1, 'home_page_content' => '

@include("shop::home.slider") @include("shop::home.featured-products") @include("shop::home.new-products")

', - 'footer_content' => '', + 'footer_content' => '', 'name' => 'Default', 'default_locale_id' => 1, 'base_currency_id' => 1 @@ -27,7 +27,7 @@ class ChannelTableSeeder extends Seeder 'channel_id' => 1, 'currency_id' => 1, ]); - + DB::table('channel_locales')->insert([ 'channel_id' => 1, 'locale_id' => 1, From 940025eadc57c27086bc0b40ae6fa97b06ba7484 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 24 Aug 2019 17:04:33 +0530 Subject: [PATCH 144/172] Added the seeders for cms pages which will generate the pages for the links present in footer's quick links section --- .../SAASCustomizer/src/Exceptions/Handler.php | 2 +- .../SAASCustomizer/src/Helpers/DataPurger.php | 161 ++++++++++++++++-- .../src/Http/Controllers/PurgeController.php | 13 +- .../SAASCustomizer/src/Models/CMS/CMS.php | 4 +- .../SAASCustomizerServiceProvider.php | 2 + 5 files changed, 164 insertions(+), 18 deletions(-) diff --git a/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php b/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php index e52b781fc..12bcfffc4 100644 --- a/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php +++ b/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php @@ -29,7 +29,7 @@ class Handler extends ExceptionHandler public function render($request, Exception $exception) { $path = 'saas'; - + dd($exception); if ($exception->getMessage() == 'domain_not_found') { return $this->response($path, 400, trans('saas::app.exceptions.domain-not-found'), 'domain_not_found'); } diff --git a/packages/Webkul/SAASCustomizer/src/Helpers/DataPurger.php b/packages/Webkul/SAASCustomizer/src/Helpers/DataPurger.php index d80457126..48f88117f 100644 --- a/packages/Webkul/SAASCustomizer/src/Helpers/DataPurger.php +++ b/packages/Webkul/SAASCustomizer/src/Helpers/DataPurger.php @@ -13,10 +13,10 @@ use Webkul\Core\Repositories\LocaleRepository as Locale; use Webkul\Core\Repositories\CurrencyRepository as Currency; use Webkul\Core\Repositories\ChannelRepository as Channel; use Webkul\Attribute\Repositories\AttributeRepository as Attribute; -use Webkul\Attribute\Repositories\AttributeOptionRepository as AttributeOption; use Webkul\Attribute\Repositories\AttributeFamilyRepository as AttributeFamily; use Webkul\Attribute\Repositories\AttributeGroupRepository as AttributeGroup; use Webkul\Customer\Repositories\CustomerGroupRepository as CustomerGroup; +use Webkul\CMS\Repositories\CMSRepository as CMS; use Log; /** @@ -25,55 +25,60 @@ use Log; class DataPurger { /** - * Company Repository Object + * Company Repository instance */ protected $company; /** - * CategoryRepository Object + * CategoryRepository instance */ protected $category; /** - * InventoryRepository Object + * InventoryRepository instance */ protected $inventory; /** - * LocaleRepository Object + * LocaleRepository instance */ protected $locale; /** - * CurrencyRepository Object + * CurrencyRepository instance */ protected $currency; /** - * ChannelRepository Object + * ChannelRepository instance */ protected $channel; /** - * AttributeRepository Object + * AttributeRepository instance */ protected $attribute; /** - * AttributeFamilyRepository Object + * AttributeFamilyRepository instance */ protected $attributeFamily; /** - * AttributeGroupRepository Object + * AttributeGroupRepository instance */ protected $attributeGroup; /** - * CustomerGroupRepository Object + * CustomerGroupRepository instance */ protected $customerGroup; + /** + * CMSRepository instance + */ + protected $cms; + protected $seedCompleted = true; public function __construct( @@ -85,7 +90,8 @@ class DataPurger Attribute $attribute, AttributeFamily $attributeFamily, AttributeGroup $attributeGroup, - CustomerGroup $customerGroup + CustomerGroup $customerGroup, + CMS $cms ) { // $this->company = Company::getCurrent(); @@ -98,6 +104,7 @@ class DataPurger $this->attributeFamily = $attributeFamily; $this->attributeGroup = $attributeGroup; $this->customerGroup = $customerGroup; + $this->cms = $cms; } /** @@ -259,7 +266,7 @@ class DataPurger 'home_page_content' => '

@include("shop::home.slider") @include("shop::home.featured-products") @include("shop::home.new-products")

', - 'footer_content' => '', + 'footer_content' => '', 'company_id' => $this->company->id ]; @@ -535,6 +542,132 @@ class DataPurger return true; } + /** + * To prepare the cms pages data for the seller's shop + */ + public function prepareCMSPagesData($channel, $locale) + { + $aboutus = [ + 'url_key' => 'about-us', + 'html_content' => '
+
About us page content
+
', + 'page_title' => 'About Us', + 'meta_title' => 'about us', + 'meta_description' => '', + 'meta_keywords' => 'aboutus', + 'content' => '{"html": "
\r\n
About us page content
\r\n
", + "meta_title": "about us", + "page_title": "About Us", + "meta_keywords": "aboutus ", "meta_description": ""}', + 'channel_id' => $channel->id, + 'locale_id' => $locale->id, + 'company_id' => $this->company->id + ]; + + $this->cms->create($aboutus); + + $returnpolicy = [ + 'url_key' => 'return-policy', + 'html_content' => '
+
Return policy page content
+
', + 'page_title' => 'Return Policy', + 'meta_title' => 'return policy', + 'meta_description' => '', + 'meta_keywords' => 'return, policy', + 'content' => '{"html": "
\r\n
Return policy page content
\r\n
", + "meta_title": "return policy", + "page_title": "Return Policy", + "meta_keywords": "return, policy ", "meta_description": ""}', + 'channel_id' => $channel->id, + 'locale_id' => $locale->id, + 'company_id' => $this->company->id + ]; + + $this->cms->create($returnpolicy); + + $refundpolicy = [ + 'url_key' => 'refund-policy', + 'html_content' => '
+
Refund policy page content
+
', + 'page_title' => 'Refund Policy', + 'meta_title' => 'Refund policy', + 'meta_description' => '', + 'meta_keywords' => 'refund, policy', + 'content' => '{"html": "
\r\n
Refund policy page content
\r\n
", + "meta_title": "Refund policy", + "page_title": "Refund Policy", + "meta_keywords": "refund,policy ", "meta_description": ""}', + 'channel_id' => $channel->id, + 'locale_id' => $locale->id, + 'company_id' => $this->company->id + ]; + + $this->cms->create($refundpolicy); + + $termsconditions = [ + 'url_key' => 'terms-conditions', + 'html_content' => '
+
Terms & conditions page content
+
', + 'page_title' => 'Terms & Conditions', + 'meta_title' => 'Terms & Conditions', + 'meta_description' => '', + 'meta_keywords' => 'term, conditions', + 'content' => '{"html": "
\r\n
Terms & conditions page content
\r\n
", + "meta_title": "Terms & Conditions", + "page_title": "Terms & Conditions", + "meta_keywords": "terms, conditions ", "meta_description": ""}', + 'channel_id' => $channel->id, + 'locale_id' => $locale->id, + 'company_id' => $this->company->id + ]; + + $this->cms->create($termsconditions); + + $termsofuse = [ + 'url_key' => 'terms-of-use', + 'html_content' => '
+
Terms of use page content
+
', + 'page_title' => 'Terms of use', + 'meta_title' => 'Terms of use', + 'meta_description' => '', + 'meta_keywords' => 'term, use', + 'content' => '{"html": "
\r\n
Terms of use page content
\r\n
", + "meta_title": "Terms of use", + "page_title": "Terms of use", + "meta_keywords": "terms, use ", "meta_description": ""}', + 'channel_id' => $channel->id, + 'locale_id' => $locale->id, + 'company_id' => $this->company->id + ]; + + $this->cms->create($termsofuse); + + $contactus = [ + 'url_key' => 'contact-us', + 'html_content' => '
+
Contact us page content
+
', + 'page_title' => 'Contact Us', + 'meta_title' => 'Contact Us', + 'meta_description' => '', + 'meta_keywords' => 'contact, us', + 'content' => '{"html": "
\r\n
Contact us page content
\r\n
", + "meta_title": "Contact Us", + "page_title": "Contact Us", + "meta_keywords": "contact, us ", "meta_description": ""}', + 'channel_id' => $channel->id, + 'locale_id' => $locale->id, + 'company_id' => $this->company->id + ]; + + $this->cms->create($contactus); + } + /** * It will store a check in the companies * that all the necessary data had been @@ -548,7 +681,7 @@ class DataPurger $info = [ 'company_created' => true, - 'seeded' => true, + 'seeded' => true ]; $info = json_encode($info); diff --git a/packages/Webkul/SAASCustomizer/src/Http/Controllers/PurgeController.php b/packages/Webkul/SAASCustomizer/src/Http/Controllers/PurgeController.php index b5d37fe77..a8ef90e8c 100644 --- a/packages/Webkul/SAASCustomizer/src/Http/Controllers/PurgeController.php +++ b/packages/Webkul/SAASCustomizer/src/Http/Controllers/PurgeController.php @@ -25,21 +25,30 @@ class PurgeController extends Controller public function seedDatabase() { - $this->dataSeed->prepareLocaleData(); + $locale = $this->dataSeed->prepareLocaleData(); + $this->dataSeed->prepareCategoryData(); // translation table not getting populated + $this->dataSeed->prepareInventoryData(); + $this->dataSeed->prepareCurrencyData(); - $this->dataSeed->prepareChannelData(); + + $channel = $this->dataSeed->prepareChannelData(); // need to get executed only first time if (Company::count() == 1) $this->dataSeed->prepareCountryStateData(); $this->dataSeed->prepareCustomerGroupData(); + $this->dataSeed->prepareAttributeData(); + $this->dataSeed->prepareAttributeFamilyData(); + $this->dataSeed->prepareAttributeGroupData(); + $this->dataSeed->prepareCMSPagesData($channel, $locale); + Event::fire('new.company.registered'); $this->dataSeed->setInstallationCompleteParam(); diff --git a/packages/Webkul/SAASCustomizer/src/Models/CMS/CMS.php b/packages/Webkul/SAASCustomizer/src/Models/CMS/CMS.php index 56f2a10e9..ce717e79f 100644 --- a/packages/Webkul/SAASCustomizer/src/Models/CMS/CMS.php +++ b/packages/Webkul/SAASCustomizer/src/Models/CMS/CMS.php @@ -8,6 +8,8 @@ use Company; class CMS extends BaseModel { + protected $fillable = ['url_key', 'html_content', 'page_title', 'meta_title', 'meta_description', 'meta_keywords', 'content', 'channel_id', 'locale_id', 'company_id']; + /** * Create a new Eloquent query builder for the model. * @@ -21,7 +23,7 @@ class CMS extends BaseModel if (auth()->guard('super-admin')->check() || ! isset($company->id)) { return new \Illuminate\Database\Eloquent\Builder($query); } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('cart_rules' . '.company_id', $company->id)); + return new \Illuminate\Database\Eloquent\Builder($query->where('cms_pages' . '.company_id', $company->id)); } } } \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Providers/SAASCustomizerServiceProvider.php b/packages/Webkul/SAASCustomizer/src/Providers/SAASCustomizerServiceProvider.php index 7e49e85a7..3dce4b5d5 100644 --- a/packages/Webkul/SAASCustomizer/src/Providers/SAASCustomizerServiceProvider.php +++ b/packages/Webkul/SAASCustomizer/src/Providers/SAASCustomizerServiceProvider.php @@ -237,6 +237,8 @@ class SAASCustomizerServiceProvider extends ServiceProvider $this->app->concord->registerModel(\Webkul\Discount\Contracts\CatalogRule::class, \Webkul\SAASCustomizer\Models\Discount\CatalogRule::class); $this->app->concord->registerModel(\Webkul\Discount\Contracts\CatalogRuleProducts::class, \Webkul\SAASCustomizer\Models\Discount\CatalogRuleProducts::class); $this->app->concord->registerModel(\Webkul\Discount\Contracts\CatalogRuleProductsPrice::class, \Webkul\SAASCustomizer\Models\Discount\CatalogRuleProductsPrice::class); + + $this->app->concord->registerModel(\Webkul\CMS\Contracts\CMS::class, \Webkul\SAASCustomizer\Models\CMS\CMS::class); } /** From b2249e3a2213a73f13ee9b978fcc0f95d57eb917 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 24 Aug 2019 20:57:24 +0530 Subject: [PATCH 145/172] Header customized --- .../Custom/src/Observers/CustomerObserver.php | 19 ++ .../src/Providers/CustomServiceProvider.php | 6 + .../src/Resources/views/header.blade.php | 0 .../src/Resources/views/navmenu.blade.php | 177 ++++++++++++++++++ .../CustomerGroupCatalogServiceProvider.php | 1 - .../layouts/header/nav-menu/navmenu.blade.php | 56 +++++- 6 files changed, 250 insertions(+), 9 deletions(-) create mode 100644 packages/Webkul/Custom/src/Observers/CustomerObserver.php delete mode 100644 packages/Webkul/Custom/src/Resources/views/header.blade.php create mode 100644 packages/Webkul/Custom/src/Resources/views/navmenu.blade.php diff --git a/packages/Webkul/Custom/src/Observers/CustomerObserver.php b/packages/Webkul/Custom/src/Observers/CustomerObserver.php new file mode 100644 index 000000000..2cc88330a --- /dev/null +++ b/packages/Webkul/Custom/src/Observers/CustomerObserver.php @@ -0,0 +1,19 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + + $model->status = 0; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/Custom/src/Providers/CustomServiceProvider.php b/packages/Webkul/Custom/src/Providers/CustomServiceProvider.php index 104dc31ea..a52571833 100755 --- a/packages/Webkul/Custom/src/Providers/CustomServiceProvider.php +++ b/packages/Webkul/Custom/src/Providers/CustomServiceProvider.php @@ -18,7 +18,13 @@ class CustomServiceProvider extends ServiceProvider $this->app->concord->registerModel(\Webkul\Core\Contracts\Slider::class, \Webkul\Custom\Models\Slider::class); + \Webkul\SAASCustomizer\Models\Customer\Customer::observe(\Webkul\Custom\Observers\CustomerObserver::class); + \Webkul\Custom\Models\Slider::observe(\Webkul\Custom\Observers\SliderObserver::class); + + $this->publishes([ + __DIR__ . '/../Resources/views/navmenu.blade.php' => resource_path('views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php'), + ]); } public function register() diff --git a/packages/Webkul/Custom/src/Resources/views/header.blade.php b/packages/Webkul/Custom/src/Resources/views/header.blade.php deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/Webkul/Custom/src/Resources/views/navmenu.blade.php b/packages/Webkul/Custom/src/Resources/views/navmenu.blade.php new file mode 100644 index 000000000..200a9b60d --- /dev/null +++ b/packages/Webkul/Custom/src/Resources/views/navmenu.blade.php @@ -0,0 +1,177 @@ +{!! view_render_event('bagisto.shop.layout.header.category.before') !!} + +getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) { + if ($category->slug) + array_push($categories, $category); +} + +$cmsPages = app('Webkul\CMS\Repositories\CMSRepository')->findWhere([ + 'channel_id' => core()->getCurrentChannel()->id, + 'locale_id' => core()->getCurrentLocale()->id +]); + +?> + + + +{!! view_render_event('bagisto.shop.layout.header.category.after') !!} + + +@push('scripts') + + + + + + + + + + + + +@endpush \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php b/packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php index 62777e295..d0f682a70 100755 --- a/packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php +++ b/packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php @@ -23,7 +23,6 @@ class CustomerGroupCatalogServiceProvider extends ServiceProvider $this->publishes([ __DIR__ . '/../Resources/views/admin/customers/groups' => resource_path('views/vendor/admin/customers/groups'), - __DIR__ . '/../Resources/views/shop/products' => resource_path('views/vendor/shop/products'), __DIR__ . '/../Resources/views/shop/layouts' => resource_path('views/vendor/shop/layouts'), ]); } diff --git a/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php b/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php index c0e357257..200a9b60d 100644 --- a/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php +++ b/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php @@ -4,11 +4,16 @@ $categories = []; -foreach (app('Webkul\Category\Repositories\CategoryRepository')->getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) { +foreach (app('Webkul\CustomerGroupCatalog\Repositories\CategoryRepository')->getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) { if ($category->slug) array_push($categories, $category); } +$cmsPages = app('Webkul\CMS\Repositories\CMSRepository')->findWhere([ + 'channel_id' => core()->getCurrentChannel()->id, + 'locale_id' => core()->getCurrentLocale()->id +]); + ?> @@ -22,13 +27,27 @@ foreach (app('Webkul\Category\Repositories\CategoryRepository')->getVisibleCateg @@ -133,5 +152,26 @@ foreach (app('Webkul\Category\Repositories\CategoryRepository')->getVisibleCateg }); + @endpush \ No newline at end of file From 46a40cc421fe1a5de0775ec00421b7eb4263ed70 Mon Sep 17 00:00:00 2001 From: Karim Qaderi <32425175+KarimQaderi@users.noreply.github.com> Date: Sun, 25 Aug 2019 21:36:06 +0430 Subject: [PATCH 146/172] add event page checkout/success --- .../Shop/src/Resources/views/checkout/success.blade.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/success.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/success.blade.php index 0608ef3dc..41d3d989f 100755 --- a/packages/Webkul/Shop/src/Resources/views/checkout/success.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/success.blade.php @@ -13,10 +13,15 @@

{{ __('shop::app.checkout.success.info') }}

+ {{ view_render_event('bagisto.shop.checkout.continue-shopping.before', ['order' => $order]) }} + + + {{ view_render_event('bagisto.shop.checkout.continue-shopping.after', ['order' => $order]) }} +
-@endsection \ No newline at end of file +@endsection From 0e048f6dcb8e8964655dfe344cafa0fcca63f86e Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 27 Aug 2019 10:27:46 +0530 Subject: [PATCH 147/172] Added the cms pages create and edit form in two separate accordian one for design and one for seo --- README.md | 1 + .../Admin/src/Resources/lang/en/app.php | 2 + .../src/Resources/views/cms/create.blade.php | 123 +++++++++--------- .../src/Resources/views/cms/edit.blade.php | 83 ++++++------ 4 files changed, 113 insertions(+), 96 deletions(-) diff --git a/README.md b/README.md index d7f8566a2..3b2800f16 100755 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ It packs in lots of demanding features that allows your business to scale in no * Customer Cart, Wishlist, Product Reviews. * Simple and Configurable Products. * Price rules (Discount) inbuilt. +* CMS Pages. * Check out [click here](https://bagisto.com/features/). **For Developers**: diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index f37cd3a71..3cb6f01b3 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -991,6 +991,8 @@ return [ 'cms' => [ 'pages' => [ + 'general' => 'General', + 'seo' => 'SEO', 'pages' => 'Page', 'title' => 'pages', 'add-title' => 'Add Page', diff --git a/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php b/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php index 255a73326..078c1edd1 100644 --- a/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php @@ -28,91 +28,98 @@
@csrf() + +
+
+ -
- + - + @{{ errors.first('page_title') }} +
- @{{ errors.first('page_title') }} -
+
+ -
- + - + @{{ errors.first('url_key') }} +
- @{{ errors.first('url_key') }} -
+ @inject('channels', 'Webkul\Core\Repositories\ChannelRepository') + @inject('locales', 'Webkul\Core\Repositories\LocaleRepository') - @inject('channels', 'Webkul\Core\Repositories\ChannelRepository') - @inject('locales', 'Webkul\Core\Repositories\LocaleRepository') +
+ -
- + - + @{{ errors.first('channels[]') }} +
- @{{ errors.first('channels[]') }} -
+
+ -
- + - + @{{ errors.first('locales[]') }} +
- @{{ errors.first('locales[]') }} -
+
+ -
- + - + {!! __('admin::app.cms.pages.one-col') !!} + {!! __('admin::app.cms.pages.two-col') !!} + {!! __('admin::app.cms.pages.three-col') !!} - {!! __('admin::app.cms.pages.one-col') !!} - {!! __('admin::app.cms.pages.two-col') !!} - {!! __('admin::app.cms.pages.three-col') !!} + -
- - {{ __('admin::app.cms.pages.helper-classes') }} - + @{{ errors.first('html_content') }} +
+ - @{{ errors.first('html_content') }} -
+ +
+
+ -
- + - + @{{ errors.first('meta_title') }} +
- @{{ errors.first('meta_title') }} -
+
+ -
- + - + @{{ errors.first('meta_keywords') }} +
- @{{ errors.first('meta_keywords') }} -
+
+ -
- + - - - @{{ errors.first('meta_description') }} -
+ @{{ errors.first('meta_description') }} +
+
+
diff --git a/packages/Webkul/Admin/src/Resources/views/cms/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/cms/edit.blade.php index e18ff2440..7a071f571 100644 --- a/packages/Webkul/Admin/src/Resources/views/cms/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/cms/edit.blade.php @@ -32,64 +32,71 @@
@csrf() + +
+
+ -
- + - + @{{ errors.first('page_title') }} +
- @{{ errors.first('page_title') }} -
+
+ -
- + - + @{{ errors.first('url_key') }} +
- @{{ errors.first('url_key') }} -
+
+ -
- + - + {!! __('admin::app.cms.pages.one-col') !!} + {!! __('admin::app.cms.pages.two-col') !!} + {!! __('admin::app.cms.pages.three-col') !!} - {!! __('admin::app.cms.pages.one-col') !!} - {!! __('admin::app.cms.pages.two-col') !!} - {!! __('admin::app.cms.pages.three-col') !!} + -
- - {{ __('admin::app.cms.pages.helper-classes') }} - + @{{ errors.first('html_content') }} +
+ - @{{ errors.first('html_content') }} -
+ +
+
+ -
- + - + @{{ errors.first('meta_title') }} +
- @{{ errors.first('meta_title') }} -
+
+ -
- + - + @{{ errors.first('meta_keywords') }} +
- @{{ errors.first('meta_keywords') }} -
+
+ -
- + - - - @{{ errors.first('meta_description') }} -
+ @{{ errors.first('meta_description') }} +
+
+
From 670959488956f83353247c3d219ec7b0a2956679 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 27 Aug 2019 13:07:48 +0530 Subject: [PATCH 148/172] Added a new type of field for color picker in configuration --- .../src/Resources/views/configuration/field-type.blade.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php b/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php index c0859e99e..26b21a4c6 100755 --- a/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php @@ -100,6 +100,10 @@ + @elseif ($field['type'] == 'color') + + + @elseif ($field['type'] == 'textarea') From 75ccc47923120083e3f38bcfaf208e93436e0eb8 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 27 Aug 2019 13:28:08 +0530 Subject: [PATCH 149/172] The non attribute case of Cart rule action AdjustWholeCartToPercent was checking for product id and it didn't needed any product_id checks there. --- .../src/Actions/Cart/WholeCartToPercent.php | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php b/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php index 60037f191..d9f333412 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php +++ b/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php @@ -78,24 +78,22 @@ class WholeCartToPercent extends Action $totalDiscount = $totalDiscount + $discount; - if ($item->product_id == $productID) { - $report = array(); + $report = array(); - $report['item_id'] = $item->id; - $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; + $report['item_id'] = $item->id; + $report['product_id'] = $item->child ? $item->child->product_id : $item->product_id; - if ($discount <= $itemPrice) { - $report['discount'] = $discount; - } else { - $report['discount'] = $itemPrice; - } - - $report['formatted_discount'] = core()->currency(round($discount, 4)); - - $impact->push($report); - - unset($report); + if ($discount <= $itemPrice) { + $report['discount'] = $discount; + } else { + $report['discount'] = $itemPrice; } + + $report['formatted_discount'] = core()->currency(round($discount, 4)); + + $impact->push($report); + + unset($report); } } From 44aff5f761724ffb060ab2feae1c9795c7984743 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 27 Aug 2019 14:51:47 +0530 Subject: [PATCH 150/172] FixedAmount action class added provision to check more if rule's disc is greater than item's then discount will be equal to item's price --- .../Discount/src/Actions/Cart/FixedAmount.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php index a8a76352c..419c63722 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php +++ b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php @@ -37,13 +37,13 @@ class FixedAmount extends Action if ($discQuantity > 1) { if ($itemQuantity >= $discQuantity) { if ($rule->disc_amount > $itemPrice) { - $discount = round(($itemPrice - $rule->disc_amount), 4) * $discQuantity; + $discount = round($rule->disc_amount * $discQuantity, 4); } else { $discount = $itemPrice; } } else if ($itemQuantity < $discQuantity) { if ($rule->disc_amount > $itemPrice) { - $discount = round(($itemPrice - $rule->disc_amount), 4) * $itemQuantity; + $discount = round($rule->disc_amount * $itemQuantity, 4); } else { $discount = $itemPrice; } @@ -78,9 +78,17 @@ class FixedAmount extends Action if ($discQuantity > 1) { if ($itemQuantity >= $discQuantity) { - $discount = round(($itemPrice - $rule->disc_amount), 4) * $discQuantity; + if ($rule->disc_amount > $itemPrice) { + $discount = round($rule->disc_amount * $discQuantity, 4); + } else { + $discount = $itemPrice; + } } else if ($itemQuantity < $discQuantity) { - $discount = round(($itemPrice - $rule->disc_amount), 4) * $itemQuantity; + if ($rule->disc_amount > $itemPrice) { + $discount = round($rule->disc_amount * $itemQuantity, 4); + } else { + $discount = $itemPrice; + } } } else { $discount = round(($itemPrice - $rule->disc_amount), 4); From 1e0da3c42a6fc250d1459def863075f456d37d75 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Thu, 29 Aug 2019 16:11:12 +0530 Subject: [PATCH 151/172] Fixed issue #778 --- packages/Webkul/Admin/src/Resources/lang/en/app.php | 2 +- packages/Webkul/Checkout/src/Cart.php | 4 ++++ packages/Webkul/Customer/src/Resources/lang/en/app.php | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 3cb6f01b3..dbde85f72 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -1000,7 +1000,7 @@ return [ 'url-key' => 'URL Key', 'channel' => 'Channel', 'locale' => 'Locale', - 'create-btn-title' => 'Add Page', + 'create-btn-title' => 'Save Page', 'edit-title' => 'Edit Page', 'edit-btn-title' => 'Save Page', 'create-success' => 'Page created successfully', diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 6bbb39e25..3dcc9a055 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -313,6 +313,10 @@ class Cart { $weight = ($product->type == 'configurable' ? $childProduct->weight : $product->weight); + if (gettype($weight)) { + $weight = floatval($weight); + } + $parentData = [ 'sku' => $product->sku, 'quantity' => $data['quantity'], diff --git a/packages/Webkul/Customer/src/Resources/lang/en/app.php b/packages/Webkul/Customer/src/Resources/lang/en/app.php index 5f4c1f5ee..22f609f5e 100755 --- a/packages/Webkul/Customer/src/Resources/lang/en/app.php +++ b/packages/Webkul/Customer/src/Resources/lang/en/app.php @@ -12,6 +12,6 @@ return [ 'remove-all-success' => 'All The Items From Your Wishlist Have Been Removed', ], 'reviews' => [ - 'empty' => 'You Have Not Reviewed Any Of Product Yet' + 'empty' => 'You have not reviewed any of product yet' ] ]; \ No newline at end of file From 2619623a2472c1bd473a13ecab7f7b16344c4e2b Mon Sep 17 00:00:00 2001 From: Glenn Hermans Date: Fri, 30 Aug 2019 10:39:55 +0200 Subject: [PATCH 152/172] Possible fix for #1367 --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b97e6c745..bfa1b36cc 100755 --- a/composer.json +++ b/composer.json @@ -101,7 +101,8 @@ "extra": { "laravel": { "dont-discover": [ - "barryvdh/laravel-debugbar" + "barryvdh/laravel-debugbar", + "laravel/dusk" ] } }, From 62d1b23a144ed0e6e008820c70399c54c29278de Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 31 Aug 2019 14:37:40 +0530 Subject: [PATCH 153/172] New issue template for filing issue and cut the issue filing hassle --- FEATURE_REQUEST_TEMPLATE.md | 66 +++++++++++++++++++++++ ISSUE_TEMPLATE.md | 33 ++++++++++++ SUPPORT_TEMPLATE.md | 48 +++++++++++++++++ packages/Webkul/Admin/src/Config/menu.php | 6 +-- 4 files changed, 150 insertions(+), 3 deletions(-) create mode 100644 FEATURE_REQUEST_TEMPLATE.md create mode 100644 ISSUE_TEMPLATE.md create mode 100644 SUPPORT_TEMPLATE.md diff --git a/FEATURE_REQUEST_TEMPLATE.md b/FEATURE_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..72ac44d98 --- /dev/null +++ b/FEATURE_REQUEST_TEMPLATE.md @@ -0,0 +1,66 @@ + + + Feature + + + + +
+

Title

+
+

+ + A well written title should contain a clear, brief explanation of the Feature, making emphasis on the most important points. +

+
+ +
+

Preconditions

+
+

Please provide as detailed information about your environment as possible.

+
    +
  • framework Version:
  • +
  • Commit id:
  • +
+
+ +
+

Description

+
+

Description helps the developer to understand the Feature. +

+
+ +
+

Steps to reproduce

+
+

It is important to provide a set of clear steps to that location where feature need to be added. If relevant please include code samples.

+
    +
  1. step1
  2. +
  3. step2
  4. +
+
+ + + + + + + + + + + + + + + + + + + diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..ba6e43ec7 --- /dev/null +++ b/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ +# Bug report + +### Title + +

+ Title is a vital part of bug report for developer and triager to quickly identify a unique issue. + + A well written title should contain a clear, brief explanation of the issue, making emphasis on the most important points. +

+
+ +### Issue Description + Bug description helps the developer to understand the bug.It describes the problem encountered. + +### Preconditions + Please provide as detailed information about your environment as possible. + + 1. framework Version. + 2. Commit id. + +### Steps to reproduce + It is important to provide a set of clear steps to reproduce this bug.If relevant please include code samples. + + 1. step1 + 2. step2 + +### Expected result + Tell us what should happen +* [Screenshots, logs or description] + +### Actual result + Tell us what happens instead + * [Tell us what happens instead] \ No newline at end of file diff --git a/SUPPORT_TEMPLATE.md b/SUPPORT_TEMPLATE.md new file mode 100644 index 000000000..f692a9498 --- /dev/null +++ b/SUPPORT_TEMPLATE.md @@ -0,0 +1,48 @@ + + + Support + + + + +
+

Title

+
+

+ Title is a vital part of bug report for developer and triager to quickly identify a unique issue. +
+ A well written title should contain a clear, brief explanation of the issue, making emphasis on the most important points. +

+
+ +
+

Preconditions

+
+

Please provide as detailed information about your environment as possible.

+
    +
  • framework Version:
  • +
  • Commit id:
  • +
+
+ +
+

Description

+
+

Description helps the developer to understand the exact scenario.It describes the problem encountered.

+
+ +
+

Steps to reproduce

+
+

It is important to provide a set of clear steps to reproduce that scenario. If relevant please include code samples.

+
    +
  1. step1
  2. +
  3. step2
  4. +
+
+ diff --git a/packages/Webkul/Admin/src/Config/menu.php b/packages/Webkul/Admin/src/Config/menu.php index dd92aa092..6435b5f41 100755 --- a/packages/Webkul/Admin/src/Config/menu.php +++ b/packages/Webkul/Admin/src/Config/menu.php @@ -42,7 +42,7 @@ return [ 'key' => 'catalog.products', 'name' => 'admin::app.layouts.products', 'route' => 'admin.catalog.products.index', - 'sort' => 4, + 'sort' => 1, 'icon-class' => '' ], [ 'key' => 'catalog.categories', @@ -54,13 +54,13 @@ return [ 'key' => 'catalog.attributes', 'name' => 'admin::app.layouts.attributes', 'route' => 'admin.catalog.attributes.index', - 'sort' => 1, + 'sort' => 2, 'icon-class' => '' ], [ 'key' => 'catalog.families', 'name' => 'admin::app.layouts.attribute-families', 'route' => 'admin.catalog.families.index', - 'sort' => 2, + 'sort' => 4, 'icon-class' => '' ], [ 'key' => 'customers', From 484f1d7a934fe6562b53bc4f519f26e6424428fa Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 31 Aug 2019 14:39:47 +0530 Subject: [PATCH 154/172] ISSUE_TEMPLATE corrections --- ISSUE_TEMPLATE.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index ba6e43ec7..8dc67d40e 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,33 +1,29 @@ # Bug report ### Title + **Title is a vital part of bug report for developer and triager to quickly identify a unique issue.** -

- Title is a vital part of bug report for developer and triager to quickly identify a unique issue. - - A well written title should contain a clear, brief explanation of the issue, making emphasis on the most important points. -

-
+ A well written title should contain a clear, brief explanation of the issue, making emphasis on the most important points. ### Issue Description - Bug description helps the developer to understand the bug.It describes the problem encountered. + **Bug description helps the developer to understand the bug.It describes the problem encountered.** ### Preconditions - Please provide as detailed information about your environment as possible. + **Please provide as detailed information about your environment as possible.** 1. framework Version. 2. Commit id. ### Steps to reproduce - It is important to provide a set of clear steps to reproduce this bug.If relevant please include code samples. + **It is important to provide a set of clear steps to reproduce this bug.If relevant please include code samples.** 1. step1 2. step2 ### Expected result - Tell us what should happen + **Tell us what should happen.** * [Screenshots, logs or description] ### Actual result - Tell us what happens instead + **Tell us what happens instead.** * [Tell us what happens instead] \ No newline at end of file From f78d9e8487a39ae15fc90e572fb7908acd628e48 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 31 Aug 2019 15:21:10 +0530 Subject: [PATCH 155/172] Fixed the issue #1372 --- .../Discount/src/Helpers/Cart/ConvertXToProductId.php | 9 ++++++++- .../Discount/src/Http/Controllers/CartRuleController.php | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/Webkul/Discount/src/Helpers/Cart/ConvertXToProductId.php b/packages/Webkul/Discount/src/Helpers/Cart/ConvertXToProductId.php index 9a356caf2..9f596b845 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/ConvertXToProductId.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/ConvertXToProductId.php @@ -70,9 +70,16 @@ class ConvertXToProductId $this->conditionSymbols = config('pricerules.cart.conditions.symbols'); } + /** + * Collects the attribute and category conditions + * + * @param Integer $ruleId + * + * @param Object $attrribute_conditions + */ public function convertX($ruleId, $attribute_conditions) { - $attributeConditions = json_decode($attribute_conditions); + $attributeConditions = $attribute_conditions; $categoryValues = $attributeConditions->categories ?? null; diff --git a/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php b/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php index 1c98d4b92..3beca8b8c 100644 --- a/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php +++ b/packages/Webkul/Discount/src/Http/Controllers/CartRuleController.php @@ -269,6 +269,7 @@ class CartRuleController extends Controller // $coupons['limit'] = $data['usage_limit']; // } + // create a cart rule $ruleCreated = $this->cartRule->create($data); From c19159ddc239d3606ab1b1c7b61d28602432c9b4 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 31 Aug 2019 17:20:55 +0530 Subject: [PATCH 156/172] Validation case for cart rule fix, the rule was not getting deleted from cart and cartrulecart's table --- packages/Webkul/Discount/src/Helpers/Cart/Discount.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php index 6514ecde2..afb761cc9 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php @@ -668,7 +668,7 @@ abstract class Discount if (! $result) { $this->clearDiscount(); - $alreadyAppliedRule->delete(); + $alreadyAppliedRule->first()->delete(); } else { $this->reassess($alreadyAppliedCartRule); } From d31d9d991617875db12d4509c1b4a0ee4a0612ae Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 31 Aug 2019 17:59:00 +0530 Subject: [PATCH 157/172] Isolation case for FixedAction in CartRule fixed --- packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php index 419c63722..596a30128 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php +++ b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php @@ -49,7 +49,7 @@ class FixedAmount extends Action } } } else { - $discount = round(($itemPrice - $rule->disc_amount), 4); + $discount = $rule->disc_amount; } if ($itemProductId == $productID) { @@ -91,7 +91,7 @@ class FixedAmount extends Action } } } else { - $discount = round(($itemPrice - $rule->disc_amount), 4); + $discount = $rule->disc_amount; } $totalDiscount = $totalDiscount + $discount; From f8e9f37c5d6ac921e0b916949b4b98777b63aca8 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 31 Aug 2019 18:18:28 +0530 Subject: [PATCH 158/172] Current discount actions are normalized again with safe conditions implemented --- .../Discount/src/Actions/Cart/FixedAmount.php | 36 +++++++++++-------- .../src/Actions/Cart/PercentOfProduct.php | 24 +++++++++++++ .../src/Actions/Cart/WholeCartToPercent.php | 8 +++++ 3 files changed, 54 insertions(+), 14 deletions(-) diff --git a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php index 596a30128..4a8990ef2 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php +++ b/packages/Webkul/Discount/src/Actions/Cart/FixedAmount.php @@ -36,20 +36,24 @@ class FixedAmount extends Action if ($discQuantity > 1) { if ($itemQuantity >= $discQuantity) { - if ($rule->disc_amount > $itemPrice) { - $discount = round($rule->disc_amount * $discQuantity, 4); + if ($rule->disc_amount >= $itemPrice) { + $discount = round($itemPrice * $discQuantity, 4); } else { - $discount = $itemPrice; + $discount = $rule->disc_amount; } } else if ($itemQuantity < $discQuantity) { - if ($rule->disc_amount > $itemPrice) { - $discount = round($rule->disc_amount * $itemQuantity, 4); + if ($rule->disc_amount >= $itemPrice) { + $discount = round($itemPrice * $discQuantity, 4); } else { - $discount = $itemPrice; + $discount = $rule->disc_amount; } } } else { - $discount = $rule->disc_amount; + if ($rule->disc_amount >= $itemPrice) { + $discount = round($itemPrice * $discQuantity, 4); + } else { + $discount = $rule->disc_amount; + } } if ($itemProductId == $productID) { @@ -78,20 +82,24 @@ class FixedAmount extends Action if ($discQuantity > 1) { if ($itemQuantity >= $discQuantity) { - if ($rule->disc_amount > $itemPrice) { - $discount = round($rule->disc_amount * $discQuantity, 4); + if ($rule->disc_amount >= $itemPrice) { + $discount = round($itemPrice * $discQuantity, 4); } else { - $discount = $itemPrice; + $discount = $rule->disc_amount; } } else if ($itemQuantity < $discQuantity) { - if ($rule->disc_amount > $itemPrice) { - $discount = round($rule->disc_amount * $itemQuantity, 4); + if ($rule->disc_amount >= $itemPrice) { + $discount = round($itemPrice * $discQuantity, 4); } else { - $discount = $itemPrice; + $discount = $rule->disc_amount; } } } else { - $discount = $rule->disc_amount; + if ($rule->disc_amount >= $itemPrice) { + $discount = round($itemPrice * $discQuantity, 4); + } else { + $discount = $rule->disc_amount; + } } $totalDiscount = $totalDiscount + $discount; diff --git a/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php b/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php index 1ad74a6c8..c14b279af 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php +++ b/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php @@ -53,11 +53,23 @@ class PercentOfProduct extends Action if ($discQuantity > 1) { if ($itemQuantity >= $discQuantity) { $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + + if ($discount >= $itemPrice) { + $discount = $itemPrice; + } } else if ($itemQuantity < $discQuantity) { $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $itemQuantity; + + if ($discount >= $itemPrice) { + $discount = $itemPrice; + } } } else { $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + + if ($discount >= $itemPrice) { + $discount = $itemPrice; + } } if ($itemProductId == $productID) { @@ -87,11 +99,23 @@ class PercentOfProduct extends Action if ($discQuantity > 1) { if ($itemQuantity >= $discQuantity) { $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + + if ($discount >= $itemPrice) { + $discount = $itemPrice; + } } else if ($itemQuantity < $discQuantity) { $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $itemQuantity; + + if ($discount >= $itemPrice) { + $discount = $itemPrice; + } } } else { $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + + if ($discount >= $itemPrice) { + $discount = $itemPrice; + } } $totalDiscount = $totalDiscount + $discount; diff --git a/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php b/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php index d9f333412..8f2c64f21 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php +++ b/packages/Webkul/Discount/src/Actions/Cart/WholeCartToPercent.php @@ -47,6 +47,10 @@ class WholeCartToPercent extends Action $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + if ($discount >= $itemPrice) { + $discount = $itemPrice; + } + $totalDiscount = $totalDiscount + $discount; if ($item->product_id == $productID) { @@ -76,6 +80,10 @@ class WholeCartToPercent extends Action $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + if ($discount > $itemPrice) { + $discount = $itemPrice; + } + $totalDiscount = $totalDiscount + $discount; $report = array(); From 5ad8e46a86b854994dfe75d599741399b2fd1d18 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 31 Aug 2019 20:37:28 +0530 Subject: [PATCH 159/172] Catalog rule frontend implementation started --- packages/Webkul/Product/src/Helpers/Price.php | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/Product/src/Helpers/Price.php b/packages/Webkul/Product/src/Helpers/Price.php index bfdb08c51..0c26db2ea 100755 --- a/packages/Webkul/Product/src/Helpers/Price.php +++ b/packages/Webkul/Product/src/Helpers/Price.php @@ -5,6 +5,8 @@ namespace Webkul\Product\Helpers; use Webkul\Attribute\Repositories\AttributeRepository as Attribute; use Webkul\Product\Models\Product; use Webkul\Product\Models\ProductFlat; +use Webkul\Discount\Repositories\CatalogRuleProductsRepository as CatalogRuleProduct; +use Webkul\Customer\Repositories\CustomerGroupRepository as CustomerGroup; class Price extends AbstractProduct { @@ -15,15 +17,33 @@ class Price extends AbstractProduct */ protected $attribute; + /** + * CatalogRuleProductsRepository object + * + */ + protected $catalogRuleProduct; + + /** + * CustomerGroupRepository object + */ + protected $customerGroup; + /** * Create a new controller instance. * * @param Webkul\Attribute\Repositories\AttributeRepository $attribute * @return void */ - public function __construct(Attribute $attribute) - { + public function __construct( + Attribute $attribute, + CatalogRuleProduct $catalogRuleProduct, + CustomerGroup $customerGroup + ) { $this->attribute = $attribute; + + $this->catalogRuleProduct = $catalogRuleProduct; + + $this->customerGroup = $customerGroup; } /** @@ -82,6 +102,23 @@ class Price extends AbstractProduct ->where('product_flat.locale', app()->getLocale()) ->get(); + + if (! auth()->guard('customer')->check()) { + $groupID = $this->customerGroup->findOneWhere([ + 'code' => 'guest' + ])->id; + } else { + $groupID = auth()->guard('customer')->user()->customer_group_id; + } + + if ($groupID) { + $something = $this->catalogRuleProduct->findWhere([ + 'product_id' => $productId, + 'channel_id' => core()->getCurrentChannel()->id, + 'customer_group_id' => $groupID + ]); + } + foreach ($result as $price) { $finalPrice[] = $price->final_price; } From ca3dfe804cdbe942829c2c804878f3a8fce91cc4 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 2 Sep 2019 13:52:28 +0530 Subject: [PATCH 160/172] Fixed issue #1380 --- .../Commands/Console/ActivateCatalogRule.php | 72 ------------------- .../Discount/src/Helpers/Cart/Discount.php | 21 ++++++ .../src/Providers/DiscountServiceProvider.php | 6 -- 3 files changed, 21 insertions(+), 78 deletions(-) delete mode 100644 packages/Webkul/Discount/src/Commands/Console/ActivateCatalogRule.php diff --git a/packages/Webkul/Discount/src/Commands/Console/ActivateCatalogRule.php b/packages/Webkul/Discount/src/Commands/Console/ActivateCatalogRule.php deleted file mode 100644 index 38d216eda..000000000 --- a/packages/Webkul/Discount/src/Commands/Console/ActivateCatalogRule.php +++ /dev/null @@ -1,72 +0,0 @@ -attribute = $attribute; - - $this->description = trans('admin::app.promotion.activate-catalog'); - } - - /** - * Execute the console command. - * - * @return mixed - */ - public function handle() - { - $param = $this->argument('param'); - - if (isset($param) && $param == 'catalog-rule') { - $attribute = $this->attribute->findWhere([ - 'code' => 'special_price' - ]); - - if ($attribute->count()) { - $attribute = $attribute->first(); - - if ($attribute->value_per_channel == 1) { - $this->info(trans('admin::app.promotion.catalog-rule-already-activated')); - } else { - $attribute->update(['value_per_channel' => 1]); - - $this->info(trans('admin::app.promotion.catalog-rule-activated')); - } - } else { - $this->info(trans('admin::app.promotion.cannot-activate-catalog-rule')); - } - } - } -} \ No newline at end of file diff --git a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php index afb761cc9..33c7031a9 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php @@ -143,6 +143,27 @@ abstract class Discount return collect(); } + /** + * To find the oldes rule + * + * @param Collection $rules + * + * @return CartRule $oldestRule + */ + public function findOldestRule($rules) + { + $leastID = 999999999999; + + foreach ($rules as $index => $rule) { + if ($rule->id < $leastID) { + $leastID = $rule->id; + $oldestRule = $rule; + } + } + + return $oldestRule; + } + /** * To sort the rules by the least priority * diff --git a/packages/Webkul/Discount/src/Providers/DiscountServiceProvider.php b/packages/Webkul/Discount/src/Providers/DiscountServiceProvider.php index 43e43f425..9c4e5fd5c 100644 --- a/packages/Webkul/Discount/src/Providers/DiscountServiceProvider.php +++ b/packages/Webkul/Discount/src/Providers/DiscountServiceProvider.php @@ -7,10 +7,6 @@ use Illuminate\Routing\Router; class DiscountServiceProvider extends ServiceProvider { - protected $commands = [ - 'Webkul\Discount\Commands\Console\ActivateCatalogRule' - ]; - /** * Bootstrap services. * @@ -29,8 +25,6 @@ class DiscountServiceProvider extends ServiceProvider public function register() { $this->registerConfig(); - - $this->commands($this->commands); } /** From 3794dc2e7c3d3e0d1e63d6f22ab519ef0740fcdb Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 2 Sep 2019 19:52:39 +0530 Subject: [PATCH 161/172] removed provider issues in GTM and Webfont --- .../src/Providers/EventServiceProvider.php | 14 +- .../GTM/src/Resources/views/body.blade.php | 28 ++- .../GTM/src/Resources/views/head.blade.php | 4 +- .../Payment/src/Config/paymentmethods.php | 6 +- .../SAASCustomizer/src/Exceptions/Handler.php | 5 +- .../SAASCustomizer/src/Helpers/DataPurger.php | 1 + .../src/Http/Controllers/PurgeController.php | 9 +- .../src/Listeners/CompanyRegistered.php | 8 +- .../Notifications/NewCompanyNotification.php | 2 +- .../views/installation/holdscreen.blade.php | 9 + .../src/Config/paymentmethods.php | 4 +- .../Webkul/Webfont/src/Listeners/Webfont.php | 19 +- .../src/Providers/EventServiceProvider.php | 16 +- .../src/Resources/views/webfont.blade.php | 214 +++++++++--------- 14 files changed, 186 insertions(+), 153 deletions(-) create mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/installation/holdscreen.blade.php diff --git a/packages/Webkul/GTM/src/Providers/EventServiceProvider.php b/packages/Webkul/GTM/src/Providers/EventServiceProvider.php index c44038f94..6d056bfea 100644 --- a/packages/Webkul/GTM/src/Providers/EventServiceProvider.php +++ b/packages/Webkul/GTM/src/Providers/EventServiceProvider.php @@ -15,14 +15,12 @@ class EventServiceProvider extends ServiceProvider */ public function boot() { - if (core()->getConfigData('general.gtm.values.status')) { - Event::listen('bagisto.shop.layout.head', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('gtm::head'); - }); + Event::listen('bagisto.shop.layout.head', function($viewRenderEventManager) { + $viewRenderEventManager->addTemplate('gtm::head'); + }); - Event::listen('bagisto.shop.layout.body.before', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('gtm::body'); - }); - } + Event::listen('bagisto.shop.layout.body.before', function($viewRenderEventManager) { + $viewRenderEventManager->addTemplate('gtm::body'); + }); } } \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/body.blade.php b/packages/Webkul/GTM/src/Resources/views/body.blade.php index e08760d41..b32f35172 100644 --- a/packages/Webkul/GTM/src/Resources/views/body.blade.php +++ b/packages/Webkul/GTM/src/Resources/views/body.blade.php @@ -1,17 +1,21 @@ - +@if (core()->getConfigData('general.gtm.values.status')) -@if (\Route::current()->getName() == 'shop.products.index') - @include('gtm::product') -@endif + -@if (\Route::current()->getName() == 'shop.categories.index') - @include('gtm::category') -@endif + @if (\Route::current()->getName() == 'shop.products.index') + @include('gtm::product') + @endif -@if (\Route::current()->getName() == 'shop.checkout.cart.index') - @include('gtm::cart') -@endif + @if (\Route::current()->getName() == 'shop.categories.index') + @include('gtm::category') + @endif + + @if (\Route::current()->getName() == 'shop.checkout.cart.index') + @include('gtm::cart') + @endif + + @if (\Route::current()->getName() == 'shop.checkout.success') + @include('gtm::checkout-success') + @endif -@if (\Route::current()->getName() == 'shop.checkout.success') - @include('gtm::checkout-success') @endif \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/head.blade.php b/packages/Webkul/GTM/src/Resources/views/head.blade.php index d4bbde5a8..2eb537f67 100644 --- a/packages/Webkul/GTM/src/Resources/views/head.blade.php +++ b/packages/Webkul/GTM/src/Resources/views/head.blade.php @@ -1 +1,3 @@ - \ No newline at end of file +@if (core()->getConfigData('general.gtm.values.status')) + +@endif \ No newline at end of file diff --git a/packages/Webkul/Payment/src/Config/paymentmethods.php b/packages/Webkul/Payment/src/Config/paymentmethods.php index 864751d7a..a4380b36a 100755 --- a/packages/Webkul/Payment/src/Config/paymentmethods.php +++ b/packages/Webkul/Payment/src/Config/paymentmethods.php @@ -5,13 +5,13 @@ return [ 'title' => 'Cash On Delivery', 'description' => 'shop::app.checkout.onepage.cash-desc', 'class' => 'Webkul\Payment\Payment\CashOnDelivery', - 'active' => true, + 'active' => false, 'sort' => 1 ], 'moneytransfer' => [ 'code' => 'moneytransfer', - 'title' => 'Money Transfer', + 'title' => 'Invoice', 'description' => 'shop::app.checkout.onepage.money-desc', 'class' => 'Webkul\Payment\Payment\MoneyTransfer', 'active' => true, @@ -24,7 +24,7 @@ return [ 'description' => 'shop::app.checkout.onepage.paypal-desc', 'class' => 'Webkul\Paypal\Payment\Standard', 'sandbox' => true, - 'active' => true, + 'active' => false, 'business_account' => 'test@webkul.com', 'sort' => 3 ] diff --git a/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php b/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php index 12bcfffc4..01cab317b 100644 --- a/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php +++ b/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php @@ -5,7 +5,6 @@ namespace Webkul\SAASCustomizer\Exceptions; use Exception; use Illuminate\Auth\AuthenticationException; use Illuminate\Database\Eloquent\PDOException; -use Illuminate\Database\Eloquent\ErrorException; use Illuminate\Database\Eloquent\ModelNotFoundException; use Symfony\Component\HttpKernel\Exception\HttpException; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; @@ -29,7 +28,7 @@ class Handler extends ExceptionHandler public function render($request, Exception $exception) { $path = 'saas'; - dd($exception); + if ($exception->getMessage() == 'domain_not_found') { return $this->response($path, 400, trans('saas::app.exceptions.domain-not-found'), 'domain_not_found'); } @@ -58,8 +57,6 @@ class Handler extends ExceptionHandler return $this->response($path, 404); } else if ($exception instanceof PDOException) { return $this->response($path, 500); - } else { - return $this->response($path, 500); } return parent::render($request, $exception); diff --git a/packages/Webkul/SAASCustomizer/src/Helpers/DataPurger.php b/packages/Webkul/SAASCustomizer/src/Helpers/DataPurger.php index 48f88117f..e06f83c44 100644 --- a/packages/Webkul/SAASCustomizer/src/Helpers/DataPurger.php +++ b/packages/Webkul/SAASCustomizer/src/Helpers/DataPurger.php @@ -118,6 +118,7 @@ class DataPurger 'code' => 'guest', 'name' => 'Guest', 'is_user_defined' => 0, + 'company_id' => $this->company->id ]; $customerGroup0 = $this->customerGroup->create($data); diff --git a/packages/Webkul/SAASCustomizer/src/Http/Controllers/PurgeController.php b/packages/Webkul/SAASCustomizer/src/Http/Controllers/PurgeController.php index a8ef90e8c..384999d56 100644 --- a/packages/Webkul/SAASCustomizer/src/Http/Controllers/PurgeController.php +++ b/packages/Webkul/SAASCustomizer/src/Http/Controllers/PurgeController.php @@ -36,8 +36,13 @@ class PurgeController extends Controller $channel = $this->dataSeed->prepareChannelData(); // need to get executed only first time - if (Company::count() == 1) - $this->dataSeed->prepareCountryStateData(); + if (Company::count() == 1) { + try { + $this->dataSeed->prepareCountryStateData(); + } catch (\Exception $e) { + + } + } $this->dataSeed->prepareCustomerGroupData(); diff --git a/packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php b/packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php index a821b908a..54c0e56e3 100644 --- a/packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php +++ b/packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php @@ -4,7 +4,7 @@ namespace Webkul\SAASCustomizer\Listeners; use Company; use Illuminate\Support\Facades\Mail; -use Webkul\SAASCustomizer\Mail\NewCompanyNotification; +use Webkul\SAASCustomizer\Notifications\NewCompanyNotification; /** * New company registered events handler @@ -24,6 +24,10 @@ class CompanyRegistered $poolInstance->createPreOrderData($company->id); } - Mail::queue(new NewCompanyNotification($company)); + try { + Mail::queue(new NewCompanyNotification($company)); + } catch (\Exception $e) { + + } } } \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Notifications/NewCompanyNotification.php b/packages/Webkul/SAASCustomizer/src/Notifications/NewCompanyNotification.php index b0b888526..bc0c8a1ae 100644 --- a/packages/Webkul/SAASCustomizer/src/Notifications/NewCompanyNotification.php +++ b/packages/Webkul/SAASCustomizer/src/Notifications/NewCompanyNotification.php @@ -1,6 +1,6 @@ [ 'code' => 'stripe', - 'title' => 'Stripe', - 'description' => 'Stripe Payments', + 'title' => 'RazzoPay', + 'description' => 'RazzoPay Payments', 'class' => 'Webkul\StripeConnect\Payment\StripePayment', 'sandbox' => true, 'active' => true diff --git a/packages/Webkul/Webfont/src/Listeners/Webfont.php b/packages/Webkul/Webfont/src/Listeners/Webfont.php index c6368868e..297c686ba 100644 --- a/packages/Webkul/Webfont/src/Listeners/Webfont.php +++ b/packages/Webkul/Webfont/src/Listeners/Webfont.php @@ -3,7 +3,22 @@ namespace Webkul\Webfont\Listeners; class Webfont { - public function load() { - return view('webfont::webfont'); + + public function handleFrontFont() + { + if (core()->getConfigData('general.design.webfont.status') && core()->getConfigData('general.design.webfont.enable_frontend')) { + Event::listen('bagisto.shop.layout.head', function($viewRenderEventManager) { + $viewRenderEventManager->addTemplate('webfont::webfont'); + }); + } + } + + public function handleBackFont() + { + if (core()->getConfigData('general.design.webfont.status') && core()->getConfigData('general.design.webfont.enable_backend')) { + Event::listen('bagisto.admin.layout.head', function($viewRenderEventManager) { + $viewRenderEventManager->addTemplate('webfont::webfont'); + }); + } } } \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Providers/EventServiceProvider.php b/packages/Webkul/Webfont/src/Providers/EventServiceProvider.php index ddafa5456..66ef37a1a 100644 --- a/packages/Webkul/Webfont/src/Providers/EventServiceProvider.php +++ b/packages/Webkul/Webfont/src/Providers/EventServiceProvider.php @@ -15,16 +15,12 @@ class EventServiceProvider extends ServiceProvider */ public function boot() { - if (core()->getConfigData('general.design.webfont.status') && core()->getConfigData('general.design.webfont.enable_backend')) { - Event::listen('bagisto.admin.layout.head', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('webfont::webfont'); - }); - } + Event::listen('bagisto.admin.layout.head', function($viewRenderEventManager) { + $viewRenderEventManager->addTemplate('webfont::webfont'); + }); - if (core()->getConfigData('general.design.webfont.status') && core()->getConfigData('general.design.webfont.enable_frontend')) { - Event::listen('bagisto.shop.layout.head', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('webfont::webfont'); - }); - } + Event::listen('bagisto.shop.layout.head', function($viewRenderEventManager) { + $viewRenderEventManager->addTemplate('webfont::webfont'); + }); } } \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Resources/views/webfont.blade.php b/packages/Webkul/Webfont/src/Resources/views/webfont.blade.php index 67a9fe894..cb3d6ab7e 100644 --- a/packages/Webkul/Webfont/src/Resources/views/webfont.blade.php +++ b/packages/Webkul/Webfont/src/Resources/views/webfont.blade.php @@ -1,115 +1,117 @@ - +@if(core()->getConfigData('general.design.webfont.status') && core()->getConfigData('general.design.webfont.enable_backend') || (core()->getConfigData('general.design.webfont.status') && core()->getConfigData('general.design.webfont.enable_frontend'))) + -@php - $activatedFont = app('Webkul\Webfont\Repositories\WebfontRepository'); + @php + $activatedFont = app('Webkul\Webfont\Repositories\WebfontRepository'); - $primaryColor = core()->getConfigData('general.design.webfont.primary_color') ?? '#02bb89'; + $primaryColor = core()->getConfigData('general.design.webfont.primary_color') ?? '#02bb89'; - $secondaryColor = core()->getConfigData('general.design.webfont.secondary_color') ?? '#436be0'; + $secondaryColor = core()->getConfigData('general.design.webfont.secondary_color') ?? '#436be0'; - $font = $activatedFont->findOneWhere([ - 'activated' => 1 - ]); + $font = $activatedFont->findOneWhere([ + 'activated' => 1 + ]); - if (isset($font)) { - $activeFont = $font->font; + if (isset($font)) { + $activeFont = $font->font; - $font = explode(',', $activeFont)[0]; + $font = explode(',', $activeFont)[0]; - $family = explode(',', $activeFont)[1]; - } else { - $font = 'Montserrat'; + $family = explode(',', $activeFont)[1]; + } else { + $font = 'Montserrat'; - $family = 'sans-serif'; + $family = 'sans-serif'; + } + @endphp + + + + \ No newline at end of file + +@endif \ No newline at end of file From 1c1961f2d2451fb094648e9a4f7c9fc915f6b114 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 2 Sep 2019 19:58:18 +0530 Subject: [PATCH 162/172] Upgraded with Base and updated preorder --- packages/Webkul/PreOrder/src/DataGrids/Admin/Order.php | 2 +- packages/Webkul/PreOrder/src/Helpers/PreOrderDataPurger.php | 3 +++ packages/Webkul/PreOrder/src/Helpers/Product.php | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/PreOrder/src/DataGrids/Admin/Order.php b/packages/Webkul/PreOrder/src/DataGrids/Admin/Order.php index 272304438..5dfcd366c 100644 --- a/packages/Webkul/PreOrder/src/DataGrids/Admin/Order.php +++ b/packages/Webkul/PreOrder/src/DataGrids/Admin/Order.php @@ -100,7 +100,7 @@ class Order extends DataGrid 'sortable' => true, 'searchable' => true, 'closure' => true, - 'filterable' => true, + 'filterable' => false, 'wrapper' => function ($value) { if ($value->status == 'processing') return 'Processing'; diff --git a/packages/Webkul/PreOrder/src/Helpers/PreOrderDataPurger.php b/packages/Webkul/PreOrder/src/Helpers/PreOrderDataPurger.php index 198630fe2..541cfcf2c 100644 --- a/packages/Webkul/PreOrder/src/Helpers/PreOrderDataPurger.php +++ b/packages/Webkul/PreOrder/src/Helpers/PreOrderDataPurger.php @@ -46,6 +46,7 @@ class PreOrderDataPurger "is_configurable" => 0, "is_visible_on_front" => 0, "is_user_defined" => 1, + "use_in_flat" => 1, 'company_id' => $id ]); @@ -62,6 +63,7 @@ class PreOrderDataPurger "is_configurable" => 0, "is_visible_on_front" => 0, "is_user_defined" => 1, + "use_in_flat" => 1, 'company_id' => $id ]); @@ -78,6 +80,7 @@ class PreOrderDataPurger "is_configurable" => 0, "is_visible_on_front" => 0, "is_user_defined" => 1, + "use_in_flat" => 1, 'company_id' => $id ]); diff --git a/packages/Webkul/PreOrder/src/Helpers/Product.php b/packages/Webkul/PreOrder/src/Helpers/Product.php index f05475405..b66efc1ab 100644 --- a/packages/Webkul/PreOrder/src/Helpers/Product.php +++ b/packages/Webkul/PreOrder/src/Helpers/Product.php @@ -44,7 +44,7 @@ class Product foreach ($product->variants as $variant) { if ($variant->totalQuantity() < 1 && $variant->allow_preorder) { - $config[$variant->id] = [ + $config[$variant->product_id] = [ 'preorder_qty' => $variant->preorder_qty, 'availability_text' => $variant->preorder_availability && Carbon::parse($variant->preorder_availability) > Carbon::now() ? trans('preorder::app.shop.products.available-on', [ From 60413b252a06af58202264944c60403424b183ea Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Mon, 2 Sep 2019 22:47:03 +0530 Subject: [PATCH 163/172] Fixed issue #1379 --- packages/Webkul/Discount/src/Helpers/Cart/Discount.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php index 33c7031a9..720d929e2 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php @@ -832,13 +832,13 @@ abstract class Discount break; } } else if ($test_condition == '{}') { - if (! str_contains($test_value, $actual_value)) { + if (! str_contains($actual_value, $test_value)) { $result = false; break; } } else if ($test_condition == '!{}') { - if (str_contains($test_value, $actual_value)) { + if (str_contains($actual_value, $test_value)) { $result = false; break; @@ -961,13 +961,13 @@ abstract class Discount break; } } else if ($test_condition == '{}') { - if (str_contains($test_value, $actual_value)) { + if (str_contains($actual_value, $test_value)) { $result = true; break; } } else if ($test_condition == '!{}') { - if (! str_contains($test_value, $actual_value)) { + if (! str_contains($actual_value, $test_value)) { $result = true; break; From f77cf2263af22fb11879c57b7390150689224c7b Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 3 Sep 2019 10:30:02 +0530 Subject: [PATCH 164/172] sync --- .../shop/layouts/footer/footer.blade.php | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 resources/views/vendor/shop/layouts/footer/footer.blade.php diff --git a/resources/views/vendor/shop/layouts/footer/footer.blade.php b/resources/views/vendor/shop/layouts/footer/footer.blade.php new file mode 100644 index 000000000..2f8532d59 --- /dev/null +++ b/resources/views/vendor/shop/layouts/footer/footer.blade.php @@ -0,0 +1,94 @@ + From f1f0bcac8c99825a1cf7c55555635056d60ad159 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 3 Sep 2019 12:24:20 +0530 Subject: [PATCH 165/172] Dead mods removed --- .env.example | 9 +- app/Http/Kernel.php | 4 +- composer.json | 14 +- config/app.php | 19 +- config/auth.php | 10 - config/concord.php | 5 +- config/excluded-sites.php | 5 - config/purge-pool.php | 5 - packages/Webkul/AdminAuthCheck/composer.json | 27 - .../CustomerApprovalController.php | 33 - .../Listeners/LoginAuthenticationAttempt.php | 54 -- .../src/Providers/AdminAuthCheckProvider.php | 32 - .../src/Providers/EventServiceProvider.php | 24 - .../src/Providers/ModuleServiceProvider.php | 11 - .../src/Resources/lang/en/app.php | 5 - .../Webkul/AdminAuthCheck/src/Routes/web.php | 2 - packages/Webkul/BulkAddToCart/composer.json | 24 - .../Webkul/BulkAddToCart/src/Config/menu.php | 12 - .../Controllers/BulkAddToCartController.php | 194 ----- .../src/Http/Controllers/Controller.php | 13 - .../Webkul/BulkAddToCart/src/Http/routes.php | 22 - .../BulkAddToCartServiceProvider.php | 45 -- .../src/Resources/lang/en/app.php | 17 - .../views/products/bulk-add-to-cart.blade.php | 50 -- packages/Webkul/Custom/.gitignore | 2 - packages/Webkul/Custom/composer.json | 26 - ...53_add_url_key_column_in_sliders_table.php | 34 - .../Custom/src/Helpers/CollectURLKeys.php | 72 -- .../src/Http/Controllers/Controller.php | 13 - packages/Webkul/Custom/src/Models/Slider.php | 31 - .../Custom/src/Observers/CustomerObserver.php | 19 - .../Custom/src/Observers/SliderObserver.php | 28 - .../src/Providers/CustomServiceProvider.php | 34 - .../src/Providers/EventServiceProvider.php | 25 - .../src/Providers/ModuleServiceProvider.php | 11 - .../Custom/src/Resources/lang/en/app.php | 0 .../Resources/views/customslider.blade.php | 51 -- .../src/Resources/views/navmenu.blade.php | 177 ----- .../CustomerCreditMax/src/Config/system.php | 23 - .../CustomerCreditMax/src/Listeners/Cart.php | 72 -- .../src/Providers/CustomerCreditMax.php | 33 - .../src/Providers/EventServiceProvider.php | 19 - .../src/Resources/lang/en/app.php | 11 - packages/Webkul/CustomerDocument/.gitignore | 3 - .../Webkul/CustomerDocument/composer.json | 24 - packages/Webkul/CustomerDocument/package.json | 25 - .../CustomerDocument/src/Config/acl.php | 15 - .../src/Config/customer-menu.php | 10 - .../CustomerDocument/src/Config/menu.php | 19 - .../CustomerDocument/src/Config/system.php | 21 - .../src/Contracts/CustomerDocument.php | 7 - .../DataGrids/CustomerDocumentDataGrid.php | 91 --- ..._06_07_122059_customer_documents_table.php | 39 - .../Controllers/Admin/DocumentController.php | 280 ------- .../src/Http/Controllers/Controller.php | 13 - .../Http/Controllers/DocumentController.php | 144 ---- .../Controllers/Shop/DocumentController.php | 83 --- .../src/Http/admin-routes.php | 41 -- .../src/Http/front-routes.php | 21 - .../src/Models/CustomerDocument.php | 13 - .../src/Models/CustomerDocumentProxy.php | 10 - .../Observers/CustomerDocumentObserver.php | 17 - .../CustomerDocumentServiceProvider.php | 71 -- .../src/Providers/EventServiceProvider.php | 25 - .../src/Providers/ModuleServiceProvider.php | 12 - .../CustomerDocumentRepository.php | 38 - .../assets/images/Icon-Document-Active.svg | 16 - .../Resources/assets/images/Icon-Document.svg | 16 - .../assets/sass/customerdocument.scss | 23 - .../src/Resources/lang/en/app.php | 41 -- .../views/admin/customers/upload.blade.php | 127 ---- .../views/admin/documents/create.blade.php | 98 --- .../views/admin/documents/edit.blade.php | 104 --- .../views/admin/documents/index.blade.php | 29 - .../views/shop/customers/document.blade.php | 117 --- .../src/Resources/views/style.blade.php | 1 - .../Webkul/CustomerDocument/webpack.mix.js | 18 - ...4_create_customer_group_products_table.php | 34 - ...create_customer_group_categories_table.php | 34 - .../Admin/CustomerGroupController.php | 140 ---- .../src/Http/admin-routes.php | 23 - .../src/Models/CustomerGroup.php | 26 - .../src/Observers/CustomerGroupObserver.php | 17 - .../CustomerGroupCatalogServiceProvider.php | 38 - .../src/Repositories/CategoryRepository.php | 129 ---- .../Repositories/CustomerGroupRepository.php | 102 --- .../src/Resources/lang/en/app.php | 14 - .../admin/customers/groups/create.blade.php | 217 ------ .../admin/customers/groups/edit.blade.php | 234 ------ .../shop/layouts/footer/footer.blade.php | 94 --- .../layouts/header/nav-menu/navmenu.blade.php | 137 ---- .../views/shop/products/index.blade.php | 128 ---- packages/Webkul/GTM/composer.json | 27 - packages/Webkul/GTM/readme.md | 52 -- packages/Webkul/GTM/src/Config/system.php | 39 - .../src/Providers/EventServiceProvider.php | 26 - .../GTM/src/Providers/GTMServiceProvider.php | 45 -- .../Webkul/GTM/src/Resources/lang/en/app.php | 8 - .../GTM/src/Resources/views/body.blade.php | 21 - .../GTM/src/Resources/views/cart.blade.php | 50 -- .../src/Resources/views/category.blade.php | 92 --- .../views/checkout-success.blade.php | 13 - .../GTM/src/Resources/views/head.blade.php | 3 - .../GTM/src/Resources/views/product.blade.php | 60 -- packages/Webkul/PreOrder/package.json | 20 - .../publishable/assets/css/preorder-admin.css | 1 - .../publishable/assets/css/preorder.css | 1 - .../assets/images/Icon-Preorder-Active.svg | 14 - .../assets/images/Icon-Preorder.svg | 13 - .../publishable/assets/mix-manifest.json | 4 - .../src/Commands/Console/GenerateData.php | 202 ----- packages/Webkul/PreOrder/src/Config/acl.php | 10 - .../Webkul/PreOrder/src/Config/admin-menu.php | 11 - .../Webkul/PreOrder/src/Config/purge-pool.php | 5 - .../Webkul/PreOrder/src/Config/system.php | 54 -- .../PreOrder/src/Contracts/PreOrderItem.php | 7 - .../PreOrder/src/DataGrids/Admin/Order.php | 164 ----- .../PreOrder/src/DataGrids/Admin/PreOrder.php | 181 ----- ...04_163237_create_pre_order_items_table.php | 50 -- .../src/Database/Seeders/AttributeSeeder.php | 69 -- .../src/Database/Seeders/DatabaseSeeder.php | 18 - .../src/Helpers/PreOrderDataPurger.php | 101 --- .../Webkul/PreOrder/src/Helpers/Product.php | 60 -- .../src/Http/Controllers/Admin/Controller.php | 13 - .../Controllers/Admin/PreorderController.php | 94 --- .../src/Http/Controllers/Shop/Controller.php | 12 - .../Controllers/Shop/PreOrderController.php | 132 ---- .../Webkul/PreOrder/src/Http/admin-routes.php | 22 - .../Webkul/PreOrder/src/Http/front-routes.php | 5 - .../Webkul/PreOrder/src/Listeners/Cart.php | 205 ------ .../Webkul/PreOrder/src/Listeners/Invoice.php | 76 -- .../Webkul/PreOrder/src/Listeners/Order.php | 106 --- .../src/Mail/ProductInStockNotification.php | 48 -- .../PreOrder/src/Models/PreOrderItem.php | 71 -- .../PreOrder/src/Models/PreOrderItemProxy.php | 10 - .../src/Observers/PreOrderObserver.php | 17 - .../src/Providers/EventServiceProvider.php | 35 - .../src/Providers/ModuleServiceProvider.php | 12 - .../src/Providers/PreorderServiceProvider.php | 112 --- .../Repositories/PreOrderItemRepository.php | 92 --- .../assets/images/Icon-Preorder-Active.svg | 14 - .../Resources/assets/images/Icon-Preorder.svg | 13 - .../src/Resources/assets/sass/admin.scss | 40 - .../src/Resources/assets/sass/app.scss | 27 - .../src/Resources/assets/sass/icons.scss | 17 - .../PreOrder/src/Resources/lang/en/app.php | 93 --- .../views/admin/layouts/style.blade.php | 1 - .../views/admin/preorders/index.blade.php | 26 - .../views/admin/sales/orders/index.blade.php | 42 -- .../views/admin/sales/orders/view.blade.php | 503 ------------- .../Resources/views/emails/in-stock.blade.php | 44 -- .../customers/account/orders/view.blade.php | 414 ----------- .../views/shop/products/add-buttons.blade.php | 34 - .../shop/products/preorder-info.blade.php | 89 --- .../shop/products/view/product-add.blade.php | 25 - packages/Webkul/PreOrder/src/Shipping.php | 62 -- packages/Webkul/PreOrder/webpack.mix.js | 22 - packages/Webkul/SAASCustomizer/.gitignore | 1 - .../Webkul/SAASCustomizer/changelog-0.1.x.md | 22 - packages/Webkul/SAASCustomizer/composer.json | 27 - .../SAASCustomizer/customization-readme.md | 31 - packages/Webkul/SAASCustomizer/package.json | 25 - .../publishable/assets/css/saas.css | 1 - .../publishable/assets/images/block.svg | 14 - .../publishable/assets/images/compass.svg | 19 - .../publishable/assets/images/razzo-logo.png | Bin 3341 -> 0 bytes .../publishable/assets/js/saas.js | 1 - .../publishable/assets/mix-manifest.json | 4 - .../publishable/saas/assets/css/saas.css | 1 - .../publishable/saas/assets/js/saas.js | 1 - .../publishable/saas/assets/mix-manifest.json | 4 - packages/Webkul/SAASCustomizer/readme.md | 70 -- .../src/Commands/Console/GenerateSU.php | 117 --- .../Webkul/SAASCustomizer/src/Company.php | 135 ---- .../src/Config/excluded-sites.php | 5 - .../SAASCustomizer/src/Config/purge-pool.php | 5 - .../SAASCustomizer/src/Config/super-menu.php | 11 - .../src/DataGrids/CompaniesDataGrid.php | 92 --- .../src/Database/DatabaseManager.php | 48 -- .../src/Database/Eloquent/Builder.php | 14 - ...19_03_26_151001_create_companies_table.php | 45 -- ..._26_152524_alter_all_unique_contraints.php | 248 ------- ..._create_company_personal_details_table.php | 38 - ...05_20_102233_create_super_admins_table.php | 35 - ...6_11_164314_alter_catalog_rules_tables.php | 35 - ...16_121748_alter_cms_catalog_rule_table.php | 64 -- ..._19_222319_alter_customer_groups_table.php | 35 - .../SAASCustomizer/src/Exceptions/Handler.php | 102 --- .../SAASCustomizer/src/Facades/Company.php | 18 - .../SAASCustomizer/src/Helpers/DataPurger.php | 696 ------------------ .../src/Helpers/StatsPurger.php | 77 -- .../Http/Controllers/CompanyController.php | 302 -------- .../src/Http/Controllers/Controller.php | 13 - .../src/Http/Controllers/PurgeController.php | 65 -- .../Http/Controllers/SuperUserController.php | 69 -- .../Middleware/RedirectIfNotSuperAdmin.php | 26 - .../src/Http/Middleware/ValidatesDomain.php | 87 --- .../src/Listeners/CompanyRegistered.php | 33 - .../src/Models/Attribute/Attribute.php | 29 - .../src/Models/Attribute/AttributeFamily.php | 27 - .../src/Models/Attribute/AttributeGroup.php | 29 - .../src/Models/Attribute/AttributeOption.php | 20 - .../Attribute/AttributeOptionTranslation.php | 20 - .../Models/Attribute/AttributeTranslation.php | 19 - .../SAASCustomizer/src/Models/CMS/CMS.php | 29 - .../src/Models/Category/Category.php | 28 - .../Models/Category/CategoryTranslation.php | 29 - .../src/Models/Checkout/Cart.php | 27 - .../src/Models/Checkout/CartAddress.php | 22 - .../src/Models/Checkout/CartItem.php | 19 - .../src/Models/Checkout/CartPayment.php | 19 - .../src/Models/Checkout/CartShippingRate.php | 19 - .../SAASCustomizer/src/Models/Company.php | 25 - .../src/Models/CompanyDetails.php | 17 - .../src/Models/Core/Channel.php | 27 - .../src/Models/Core/CoreConfig.php | 27 - .../src/Models/Core/Currency.php | 27 - .../src/Models/Core/CurrencyExchangeRate.php | 27 - .../SAASCustomizer/src/Models/Core/Locale.php | 28 - .../SAASCustomizer/src/Models/Core/Slider.php | 27 - .../src/Models/Core/SubscribersList.php | 27 - .../src/Models/Customer/Customer.php | 27 - .../src/Models/Customer/CustomerAddress.php | 28 - .../src/Models/Customer/CustomerGroup.php | 27 - .../src/Models/Customer/Wishlist.php | 29 - .../src/Models/Discount/CartRule.php | 27 - .../src/Models/Discount/CatalogRule.php | 27 - .../Models/Discount/CatalogRuleProducts.php | 27 - .../Discount/CatalogRuleProductsPrice.php | 27 - .../src/Models/Inventory/InventorySource.php | 27 - .../src/Models/Product/Product.php | 27 - .../Models/Product/ProductAttributeValue.php | 21 - .../src/Models/Product/ProductFlat.php | 27 - .../src/Models/Product/ProductImage.php | 21 - .../src/Models/Product/ProductInventory.php | 27 - .../Product/ProductOrderedInventory.php | 21 - .../src/Models/Product/ProductReview.php | 27 - .../src/Models/Sales/Invoice.php | 27 - .../src/Models/Sales/InvoiceItem.php | 27 - .../SAASCustomizer/src/Models/Sales/Order.php | 27 - .../src/Models/Sales/OrderAddress.php | 27 - .../src/Models/Sales/OrderItem.php | 27 - .../src/Models/Sales/OrderPayment.php | 27 - .../src/Models/Sales/Shipment.php | 26 - .../src/Models/Sales/ShipmentItem.php | 28 - .../SAASCustomizer/src/Models/SuperAdmin.php | 24 - .../src/Models/Tax/TaxCategory.php | 28 - .../SAASCustomizer/src/Models/Tax/TaxMap.php | 19 - .../SAASCustomizer/src/Models/Tax/TaxRate.php | 27 - .../SAASCustomizer/src/Models/User/Admin.php | 36 - .../SAASCustomizer/src/Models/User/Role.php | 30 - .../Notifications/NewCompanyNotification.php | 50 -- .../src/Notifications/SuperAdminGenerated.php | 48 -- .../Attribute/AttributeFamilyObserver.php | 17 - .../Attribute/AttributeGroupObserver.php | 17 - .../Observers/Attribute/AttributeObserver.php | 25 - .../Attribute/AttributeOptionObserver.php | 15 - .../AttributeOptionTranslationObserver.php | 14 - .../AttributeTranslationObserver.php | 14 - .../src/Observers/CMS/CMSObserver.php | 17 - .../Observers/Category/CategoryObserver.php | 17 - .../Category/CategoryTranslationObserver.php | 17 - .../Checkout/CartAddressObserver.php | 14 - .../Observers/Checkout/CartItemObserver.php | 14 - .../src/Observers/Checkout/CartObserver.php | 17 - .../Checkout/CartPaymentObserver.php | 14 - .../Checkout/CartShippingRateObserver.php | 14 - .../src/Observers/Core/ChannelObserver.php | 34 - .../src/Observers/Core/CoreConfigObserver.php | 17 - .../Observers/Core/CurrencyExchangeRate.php | 17 - .../src/Observers/Core/CurrencyObserver.php | 17 - .../src/Observers/Core/LocaleObserver.php | 32 - .../src/Observers/Core/SliderObserver.php | 17 - .../Core/SubscribersListObserver.php | 17 - .../Customer/CustomerAddressObserver.php | 17 - .../Customer/CustomerGroupObserver.php | 17 - .../Observers/Customer/CustomerObserver.php | 17 - .../Observers/Customer/WishlistObserver.php | 17 - .../Observers/Discount/CartRuleObserver.php | 17 - .../Discount/CatalogRuleObserver.php | 17 - .../Discount/CatalogRuleProductsObserver.php | 17 - .../CatalogRuleProductsPriceObserver.php | 17 - .../Inventory/InventorySourceObserver.php | 17 - .../Product/ProductAttributeValueObserver.php | 17 - .../Observers/Product/ProductFlatObserver.php | 17 - .../Product/ProductImageObserver.php | 17 - .../Product/ProductInventoryObserver.php | 17 - .../src/Observers/Product/ProductObserver.php | 17 - .../ProductOrderedInventoryObserver.php | 14 - .../Product/ProductReviewObserver.php | 17 - .../ProductSalableInventoryObserver.php | 14 - .../Observers/Sales/InvoiceItemObserver.php | 17 - .../src/Observers/Sales/InvoiceObserver.php | 17 - .../Observers/Sales/OrderAddressObserver.php | 17 - .../Sales/OrderItemInventoryObserver.php | 17 - .../src/Observers/Sales/OrderItemObserver.php | 17 - .../src/Observers/Sales/OrderObserver.php | 17 - .../Observers/Sales/OrderPaymentObserver.php | 17 - .../Observers/Sales/ShipmentItemObserver.php | 17 - .../src/Observers/Sales/ShipmentObserver.php | 16 - .../src/Observers/Tax/TaxCategoryObserver.php | 17 - .../src/Observers/Tax/TaxRateObserver.php | 17 - .../src/Observers/User/AdminObserver.php | 19 - .../src/Observers/User/RoleObserver.php | 19 - .../src/Providers/EventServiceProvider.php | 19 - .../src/Providers/ModuleServiceProvider.php | 14 - .../SAASCustomizerServiceProvider.php | 347 --------- .../Repositories/CompanyDetailsRepository.php | 24 - .../src/Repositories/CompanyRepository.php | 24 - .../StripeSuperAdminRepository.php | 24 - .../src/Repositories/SuperAdminRepository.php | 24 - .../src/Resources/assets/images/block.svg | 14 - .../src/Resources/assets/images/compass.svg | 19 - .../Resources/assets/images/razzo-logo.png | Bin 3341 -> 0 bytes .../src/Resources/assets/js/app.js | 0 .../src/Resources/assets/sass/app.scss | 84 --- .../src/Resources/lang/en/app.php | 76 -- .../views/companies/auth/login.blade.php | 36 - .../views/companies/auth/register.blade.php | 287 -------- .../views/companies/auth/step-one.blade.php | 34 - .../views/companies/company/edit.blade.php | 92 --- .../views/companies/company/index.blade.php | 43 -- .../Resources/views/companies/index.blade.php | 20 - .../views/companies/layouts/master.blade.php | 65 -- .../companies/layouts/nav-aside.blade.php | 37 - .../companies/layouts/nav-left.blade.php | 13 - .../views/companies/layouts/nav-top.blade.php | 37 - .../views/companies/layouts/tabs.blade.php | 0 .../Resources/views/emails/new-company.php | 1 - .../src/Resources/views/errors/400.blade.php | 34 - .../src/Resources/views/errors/401.blade.php | 38 - .../src/Resources/views/errors/403.blade.php | 38 - .../src/Resources/views/errors/404.blade.php | 38 - .../src/Resources/views/errors/500.blade.php | 34 - .../src/Resources/views/errors/503.blade.php | 32 - .../src/Resources/views/errors/auth.blade.php | 34 - ...company_blocked_by_administrator.blade.php | 35 - .../views/errors/domain_not_found.blade.php | 45 -- .../views/errors/illegal_action.blade.php | 35 - ...ot_allowed_to_visit_this_section.blade.php | 25 - .../views/installation/holdscreen.blade.php | 9 - .../Webkul/SAASCustomizer/src/Routes/web.php | 41 -- .../Validation/DatabasePresenceVerifier.php | 32 - packages/Webkul/SAASCustomizer/webpack.mix.js | 22 - .../ShowPriceAfterLogin/Config/system.php | 47 -- .../Webkul/ShowPriceAfterLogin/composer.json | 26 - .../Webkul/ShowPriceAfterLogin/package.json | 16 - .../Http/Middleware/ShowShopAfterLogin.php | 56 -- .../ShowPriceAfterLoginServiceProvider.php | 58 -- .../src/Resources/lang/en/app.php | 20 - .../src/Resources/views/add-to-cart.blade.php | 19 - .../src/Resources/views/buy-now.blade.php | 15 - .../src/Resources/views/card.blade.php | 55 -- .../src/Resources/views/price.blade.php | 33 - .../Resources/views/review-price.blade.php | 20 - .../Webkul/ShowPriceAfterLogin/webpack.mix.js | 22 - packages/Webkul/StripeConnect/.gitignore | 3 - packages/Webkul/StripeConnect/composer.json | 25 - packages/Webkul/StripeConnect/package.json | 25 - .../publishable/assets/css/stripe.css | 1 - .../fonts/montserrat-v12-latin-regular.eot | Bin 21800 -> 0 bytes .../images/icons/Icon-Stripe-Active.svg | 15 - .../assets/images/icons/Icon-Stripe.svg | 15 - .../assets/images/icons/calender copy 2.png | Bin 581 -> 0 bytes .../assets/images/icons/calender copy 2.svg | 13 - .../assets/images/icons/calender copy.png | Bin 334 -> 0 bytes .../assets/images/icons/calender copy.svg | 13 - .../assets/images/icons/calender.png | Bin 279 -> 0 bytes .../assets/images/icons/calender.svg | 15 - .../publishable/assets/images/icons/card.png | Bin 275 -> 0 bytes .../publishable/assets/images/icons/card.svg | 13 - .../assets/images/icons/check-1.png | Bin 690 -> 0 bytes .../assets/images/icons/check-1.svg | 16 - .../assets/images/icons/close-icon.svg | 13 - .../publishable/assets/images/icons/close.svg | 11 - .../assets/images/icons/cross-icon.svg | 16 - .../publishable/assets/images/icons/logo.png | Bin 2316 -> 0 bytes .../publishable/assets/images/icons/logo.svg | 11 - .../assets/images/icons/master.svg | 16 - .../assets/images/icons/mastro.svg | 14 - .../publishable/assets/images/icons/pci.svg | 14 - .../assets/images/icons/stripe-logo.png | Bin 34204 -> 0 bytes .../assets/images/icons/successful.png | Bin 3206 -> 0 bytes .../assets/images/icons/successful.svg | 11 - .../publishable/assets/images/icons/visa.svg | 17 - .../publishable/assets/mix-manifest.json | 3 - packages/Webkul/StripeConnect/readme.md | 1 - .../Webkul/StripeConnect/src/Config/acl.php | 15 - .../StripeConnect/src/Config/admin-menu.php | 17 - .../src/Config/paymentmethods.php | 12 - .../StripeConnect/src/Config/system.php | 38 - .../src/Contracts/StripeCart.php | 7 - .../src/Contracts/StripeConnect.php | 7 - ...02_20_131808_create_stripe_cards_table.php | 38 - ...9_152250_create_stripe_companies_table.php | 37 - ..._06_11_174319_create_stripe_cart_table.php | 34 - .../src/Http/Controllers/Controller.php | 12 - .../SellerRegistrationController.php | 107 --- .../Controllers/StripeConnectController.php | 354 --------- .../Webkul/StripeConnect/src/Http/routes.php | 38 - .../StripeConnect/src/Models/StripeCart.php | 15 - .../src/Models/StripeCartProxy.php | 10 - .../src/Models/StripeConnect.php | 33 - .../src/Models/StripeConnectProxy.php | 10 - .../src/Observers/StripeConnectObserver.php | 17 - .../StripeConnect/src/Payment/Stripe.php | 61 -- .../src/Payment/StripePayment.php | 33 - .../src/Providers/EventServiceProvider.php | 34 - .../src/Providers/ModuleServiceProvider.php | 13 - .../StripeConnectServiceProvider.php | 71 -- .../src/Repositories/StripeCartRepository.php | 24 - .../Repositories/StripeConnectRepository.php | 24 - .../fonts/montserrat-v12-latin-regular.eot | Bin 21800 -> 0 bytes .../images/icons/Icon-Stripe-Active.svg | 15 - .../assets/images/icons/Icon-Stripe.svg | 15 - .../assets/images/icons/calender copy 2.png | Bin 581 -> 0 bytes .../assets/images/icons/calender copy 2.svg | 13 - .../assets/images/icons/calender copy.png | Bin 334 -> 0 bytes .../assets/images/icons/calender copy.svg | 13 - .../assets/images/icons/calender.png | Bin 279 -> 0 bytes .../assets/images/icons/calender.svg | 15 - .../Resources/assets/images/icons/card.png | Bin 275 -> 0 bytes .../Resources/assets/images/icons/card.svg | 13 - .../Resources/assets/images/icons/check-1.png | Bin 690 -> 0 bytes .../Resources/assets/images/icons/check-1.svg | 16 - .../assets/images/icons/close-icon.svg | 13 - .../Resources/assets/images/icons/close.svg | 11 - .../assets/images/icons/cross-icon.svg | 16 - .../Resources/assets/images/icons/logo.png | Bin 2316 -> 0 bytes .../Resources/assets/images/icons/logo.svg | 11 - .../Resources/assets/images/icons/master.svg | 16 - .../Resources/assets/images/icons/mastro.svg | 14 - .../src/Resources/assets/images/icons/pci.svg | 14 - .../assets/images/icons/stripe-logo.png | Bin 34204 -> 0 bytes .../assets/images/icons/successful.png | Bin 3206 -> 0 bytes .../assets/images/icons/successful.svg | 11 - .../Resources/assets/images/icons/visa.svg | 17 - .../src/Resources/assets/sass/stripe.scss | 156 ---- .../src/Resources/lang/en/app.php | 31 - .../views/checkout/card-script.blade.php | 320 -------- .../Resources/views/checkout/card.blade.php | 19 - .../Resources/views/checkout/style.blade.php | 1 - .../views/checkout/total/summary.blade.php | 96 --- .../views/components/add-card.blade.php | 7 - .../views/components/saved-cards.blade.php | 31 - .../views/components/stripe-form.blade.php | 69 -- .../src/Resources/views/connect.blade.php | 35 - .../views/super-admin/create.blade.php | 91 --- .../views/super-admin/edit.blade.php | 85 --- packages/Webkul/StripeConnect/webpack.mix.js | 22 - packages/Webkul/Webfont/composer.json | 26 - packages/Webkul/Webfont/readme.md | 54 -- packages/Webkul/Webfont/src/Config/menu.php | 11 - packages/Webkul/Webfont/src/Config/system.php | 77 -- .../Webkul/Webfont/src/Contracts/Webfont.php | 7 - .../Webfont/src/DataGrids/WebfontDataGrid.php | 81 -- ...3_141430_create_google_web_fonts_table.php | 35 - .../src/Http/Controllers/Controller.php | 13 - .../Http/Controllers/WebfontController.php | 126 ---- packages/Webkul/Webfont/src/Http/routes.php | 13 - .../Webkul/Webfont/src/Listeners/Webfont.php | 24 - .../Webkul/Webfont/src/Models/Webfont.php | 31 - .../Webfont/src/Models/WebfontProxy.php | 10 - .../Webfont/src/Observers/WebfontObserver.php | 17 - .../src/Providers/EventServiceProvider.php | 26 - .../src/Providers/ModuleServiceProvider.php | 12 - .../src/Providers/WebfontServiceProvider.php | 53 -- .../src/Repositories/WebfontRepository.php | 26 - .../Webfont/src/Resources/lang/en/app.php | 30 - .../src/Resources/views/add-font.blade.php | 104 --- .../src/Resources/views/admin-index.blade.php | 27 - .../src/Resources/views/webfont.blade.php | 117 --- 472 files changed, 7 insertions(+), 18882 deletions(-) delete mode 100644 config/excluded-sites.php delete mode 100644 config/purge-pool.php delete mode 100644 packages/Webkul/AdminAuthCheck/composer.json delete mode 100644 packages/Webkul/AdminAuthCheck/src/Http/Controllers/CustomerApprovalController.php delete mode 100644 packages/Webkul/AdminAuthCheck/src/Listeners/LoginAuthenticationAttempt.php delete mode 100644 packages/Webkul/AdminAuthCheck/src/Providers/AdminAuthCheckProvider.php delete mode 100644 packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php delete mode 100644 packages/Webkul/AdminAuthCheck/src/Providers/ModuleServiceProvider.php delete mode 100644 packages/Webkul/AdminAuthCheck/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/AdminAuthCheck/src/Routes/web.php delete mode 100644 packages/Webkul/BulkAddToCart/composer.json delete mode 100644 packages/Webkul/BulkAddToCart/src/Config/menu.php delete mode 100644 packages/Webkul/BulkAddToCart/src/Http/Controllers/BulkAddToCartController.php delete mode 100644 packages/Webkul/BulkAddToCart/src/Http/Controllers/Controller.php delete mode 100644 packages/Webkul/BulkAddToCart/src/Http/routes.php delete mode 100644 packages/Webkul/BulkAddToCart/src/Providers/BulkAddToCartServiceProvider.php delete mode 100644 packages/Webkul/BulkAddToCart/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/BulkAddToCart/src/Resources/views/products/bulk-add-to-cart.blade.php delete mode 100755 packages/Webkul/Custom/.gitignore delete mode 100644 packages/Webkul/Custom/composer.json delete mode 100644 packages/Webkul/Custom/src/Database/Migrations/2019_08_23_102253_add_url_key_column_in_sliders_table.php delete mode 100644 packages/Webkul/Custom/src/Helpers/CollectURLKeys.php delete mode 100755 packages/Webkul/Custom/src/Http/Controllers/Controller.php delete mode 100644 packages/Webkul/Custom/src/Models/Slider.php delete mode 100644 packages/Webkul/Custom/src/Observers/CustomerObserver.php delete mode 100644 packages/Webkul/Custom/src/Observers/SliderObserver.php delete mode 100755 packages/Webkul/Custom/src/Providers/CustomServiceProvider.php delete mode 100644 packages/Webkul/Custom/src/Providers/EventServiceProvider.php delete mode 100644 packages/Webkul/Custom/src/Providers/ModuleServiceProvider.php delete mode 100644 packages/Webkul/Custom/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/Custom/src/Resources/views/customslider.blade.php delete mode 100644 packages/Webkul/Custom/src/Resources/views/navmenu.blade.php delete mode 100644 packages/Webkul/CustomerCreditMax/src/Config/system.php delete mode 100644 packages/Webkul/CustomerCreditMax/src/Listeners/Cart.php delete mode 100755 packages/Webkul/CustomerCreditMax/src/Providers/CustomerCreditMax.php delete mode 100644 packages/Webkul/CustomerCreditMax/src/Providers/EventServiceProvider.php delete mode 100644 packages/Webkul/CustomerCreditMax/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/CustomerDocument/.gitignore delete mode 100644 packages/Webkul/CustomerDocument/composer.json delete mode 100644 packages/Webkul/CustomerDocument/package.json delete mode 100644 packages/Webkul/CustomerDocument/src/Config/acl.php delete mode 100644 packages/Webkul/CustomerDocument/src/Config/customer-menu.php delete mode 100644 packages/Webkul/CustomerDocument/src/Config/menu.php delete mode 100644 packages/Webkul/CustomerDocument/src/Config/system.php delete mode 100644 packages/Webkul/CustomerDocument/src/Contracts/CustomerDocument.php delete mode 100644 packages/Webkul/CustomerDocument/src/DataGrids/CustomerDocumentDataGrid.php delete mode 100644 packages/Webkul/CustomerDocument/src/Database/migrations/2019_06_07_122059_customer_documents_table.php delete mode 100644 packages/Webkul/CustomerDocument/src/Http/Controllers/Admin/DocumentController.php delete mode 100644 packages/Webkul/CustomerDocument/src/Http/Controllers/Controller.php delete mode 100644 packages/Webkul/CustomerDocument/src/Http/Controllers/DocumentController.php delete mode 100644 packages/Webkul/CustomerDocument/src/Http/Controllers/Shop/DocumentController.php delete mode 100644 packages/Webkul/CustomerDocument/src/Http/admin-routes.php delete mode 100644 packages/Webkul/CustomerDocument/src/Http/front-routes.php delete mode 100644 packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php delete mode 100644 packages/Webkul/CustomerDocument/src/Models/CustomerDocumentProxy.php delete mode 100644 packages/Webkul/CustomerDocument/src/Observers/CustomerDocumentObserver.php delete mode 100644 packages/Webkul/CustomerDocument/src/Providers/CustomerDocumentServiceProvider.php delete mode 100644 packages/Webkul/CustomerDocument/src/Providers/EventServiceProvider.php delete mode 100644 packages/Webkul/CustomerDocument/src/Providers/ModuleServiceProvider.php delete mode 100644 packages/Webkul/CustomerDocument/src/Repositories/CustomerDocumentRepository.php delete mode 100644 packages/Webkul/CustomerDocument/src/Resources/assets/images/Icon-Document-Active.svg delete mode 100644 packages/Webkul/CustomerDocument/src/Resources/assets/images/Icon-Document.svg delete mode 100644 packages/Webkul/CustomerDocument/src/Resources/assets/sass/customerdocument.scss delete mode 100644 packages/Webkul/CustomerDocument/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/CustomerDocument/src/Resources/views/admin/customers/upload.blade.php delete mode 100644 packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/create.blade.php delete mode 100644 packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/edit.blade.php delete mode 100644 packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/index.blade.php delete mode 100644 packages/Webkul/CustomerDocument/src/Resources/views/shop/customers/document.blade.php delete mode 100644 packages/Webkul/CustomerDocument/src/Resources/views/style.blade.php delete mode 100644 packages/Webkul/CustomerDocument/webpack.mix.js delete mode 100644 packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171024_create_customer_group_products_table.php delete mode 100644 packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171240_create_customer_group_categories_table.php delete mode 100644 packages/Webkul/CustomerGroupCatalog/src/Http/Controllers/Admin/CustomerGroupController.php delete mode 100644 packages/Webkul/CustomerGroupCatalog/src/Http/admin-routes.php delete mode 100644 packages/Webkul/CustomerGroupCatalog/src/Models/CustomerGroup.php delete mode 100644 packages/Webkul/CustomerGroupCatalog/src/Observers/CustomerGroupObserver.php delete mode 100755 packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php delete mode 100644 packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php delete mode 100755 packages/Webkul/CustomerGroupCatalog/src/Repositories/CustomerGroupRepository.php delete mode 100644 packages/Webkul/CustomerGroupCatalog/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/create.blade.php delete mode 100644 packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/edit.blade.php delete mode 100755 packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/footer/footer.blade.php delete mode 100755 packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/header/nav-menu/navmenu.blade.php delete mode 100755 packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/products/index.blade.php delete mode 100644 packages/Webkul/GTM/composer.json delete mode 100644 packages/Webkul/GTM/readme.md delete mode 100644 packages/Webkul/GTM/src/Config/system.php delete mode 100644 packages/Webkul/GTM/src/Providers/EventServiceProvider.php delete mode 100644 packages/Webkul/GTM/src/Providers/GTMServiceProvider.php delete mode 100644 packages/Webkul/GTM/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/GTM/src/Resources/views/body.blade.php delete mode 100644 packages/Webkul/GTM/src/Resources/views/cart.blade.php delete mode 100644 packages/Webkul/GTM/src/Resources/views/category.blade.php delete mode 100644 packages/Webkul/GTM/src/Resources/views/checkout-success.blade.php delete mode 100644 packages/Webkul/GTM/src/Resources/views/head.blade.php delete mode 100644 packages/Webkul/GTM/src/Resources/views/product.blade.php delete mode 100644 packages/Webkul/PreOrder/package.json delete mode 100644 packages/Webkul/PreOrder/publishable/assets/css/preorder-admin.css delete mode 100644 packages/Webkul/PreOrder/publishable/assets/css/preorder.css delete mode 100644 packages/Webkul/PreOrder/publishable/assets/images/Icon-Preorder-Active.svg delete mode 100644 packages/Webkul/PreOrder/publishable/assets/images/Icon-Preorder.svg delete mode 100644 packages/Webkul/PreOrder/publishable/assets/mix-manifest.json delete mode 100644 packages/Webkul/PreOrder/src/Commands/Console/GenerateData.php delete mode 100644 packages/Webkul/PreOrder/src/Config/acl.php delete mode 100644 packages/Webkul/PreOrder/src/Config/admin-menu.php delete mode 100644 packages/Webkul/PreOrder/src/Config/purge-pool.php delete mode 100644 packages/Webkul/PreOrder/src/Config/system.php delete mode 100644 packages/Webkul/PreOrder/src/Contracts/PreOrderItem.php delete mode 100644 packages/Webkul/PreOrder/src/DataGrids/Admin/Order.php delete mode 100644 packages/Webkul/PreOrder/src/DataGrids/Admin/PreOrder.php delete mode 100644 packages/Webkul/PreOrder/src/Database/Migrations/2019_06_04_163237_create_pre_order_items_table.php delete mode 100755 packages/Webkul/PreOrder/src/Database/Seeders/AttributeSeeder.php delete mode 100755 packages/Webkul/PreOrder/src/Database/Seeders/DatabaseSeeder.php delete mode 100644 packages/Webkul/PreOrder/src/Helpers/PreOrderDataPurger.php delete mode 100644 packages/Webkul/PreOrder/src/Helpers/Product.php delete mode 100644 packages/Webkul/PreOrder/src/Http/Controllers/Admin/Controller.php delete mode 100644 packages/Webkul/PreOrder/src/Http/Controllers/Admin/PreorderController.php delete mode 100644 packages/Webkul/PreOrder/src/Http/Controllers/Shop/Controller.php delete mode 100644 packages/Webkul/PreOrder/src/Http/Controllers/Shop/PreOrderController.php delete mode 100644 packages/Webkul/PreOrder/src/Http/admin-routes.php delete mode 100644 packages/Webkul/PreOrder/src/Http/front-routes.php delete mode 100644 packages/Webkul/PreOrder/src/Listeners/Cart.php delete mode 100644 packages/Webkul/PreOrder/src/Listeners/Invoice.php delete mode 100644 packages/Webkul/PreOrder/src/Listeners/Order.php delete mode 100644 packages/Webkul/PreOrder/src/Mail/ProductInStockNotification.php delete mode 100644 packages/Webkul/PreOrder/src/Models/PreOrderItem.php delete mode 100644 packages/Webkul/PreOrder/src/Models/PreOrderItemProxy.php delete mode 100644 packages/Webkul/PreOrder/src/Observers/PreOrderObserver.php delete mode 100644 packages/Webkul/PreOrder/src/Providers/EventServiceProvider.php delete mode 100644 packages/Webkul/PreOrder/src/Providers/ModuleServiceProvider.php delete mode 100755 packages/Webkul/PreOrder/src/Providers/PreorderServiceProvider.php delete mode 100755 packages/Webkul/PreOrder/src/Repositories/PreOrderItemRepository.php delete mode 100644 packages/Webkul/PreOrder/src/Resources/assets/images/Icon-Preorder-Active.svg delete mode 100644 packages/Webkul/PreOrder/src/Resources/assets/images/Icon-Preorder.svg delete mode 100644 packages/Webkul/PreOrder/src/Resources/assets/sass/admin.scss delete mode 100644 packages/Webkul/PreOrder/src/Resources/assets/sass/app.scss delete mode 100644 packages/Webkul/PreOrder/src/Resources/assets/sass/icons.scss delete mode 100644 packages/Webkul/PreOrder/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/PreOrder/src/Resources/views/admin/layouts/style.blade.php delete mode 100644 packages/Webkul/PreOrder/src/Resources/views/admin/preorders/index.blade.php delete mode 100644 packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/index.blade.php delete mode 100644 packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/view.blade.php delete mode 100644 packages/Webkul/PreOrder/src/Resources/views/emails/in-stock.blade.php delete mode 100644 packages/Webkul/PreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php delete mode 100644 packages/Webkul/PreOrder/src/Resources/views/shop/products/add-buttons.blade.php delete mode 100644 packages/Webkul/PreOrder/src/Resources/views/shop/products/preorder-info.blade.php delete mode 100644 packages/Webkul/PreOrder/src/Resources/views/shop/products/view/product-add.blade.php delete mode 100644 packages/Webkul/PreOrder/src/Shipping.php delete mode 100644 packages/Webkul/PreOrder/webpack.mix.js delete mode 100755 packages/Webkul/SAASCustomizer/.gitignore delete mode 100644 packages/Webkul/SAASCustomizer/changelog-0.1.x.md delete mode 100755 packages/Webkul/SAASCustomizer/composer.json delete mode 100644 packages/Webkul/SAASCustomizer/customization-readme.md delete mode 100755 packages/Webkul/SAASCustomizer/package.json delete mode 100644 packages/Webkul/SAASCustomizer/publishable/assets/css/saas.css delete mode 100644 packages/Webkul/SAASCustomizer/publishable/assets/images/block.svg delete mode 100644 packages/Webkul/SAASCustomizer/publishable/assets/images/compass.svg delete mode 100644 packages/Webkul/SAASCustomizer/publishable/assets/images/razzo-logo.png delete mode 100644 packages/Webkul/SAASCustomizer/publishable/assets/js/saas.js delete mode 100644 packages/Webkul/SAASCustomizer/publishable/assets/mix-manifest.json delete mode 100644 packages/Webkul/SAASCustomizer/publishable/saas/assets/css/saas.css delete mode 100644 packages/Webkul/SAASCustomizer/publishable/saas/assets/js/saas.js delete mode 100644 packages/Webkul/SAASCustomizer/publishable/saas/assets/mix-manifest.json delete mode 100644 packages/Webkul/SAASCustomizer/readme.md delete mode 100644 packages/Webkul/SAASCustomizer/src/Commands/Console/GenerateSU.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Company.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Config/excluded-sites.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Config/purge-pool.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Config/super-menu.php delete mode 100644 packages/Webkul/SAASCustomizer/src/DataGrids/CompaniesDataGrid.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Database/DatabaseManager.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Database/Eloquent/Builder.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_03_26_151001_create_companies_table.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_03_26_152524_alter_all_unique_contraints.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_04_05_105951_create_company_personal_details_table.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_05_20_102233_create_super_admins_table.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_06_11_164314_alter_catalog_rules_tables.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_08_16_121748_alter_cms_catalog_rule_table.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_08_19_222319_alter_customer_groups_table.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Facades/Company.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Helpers/DataPurger.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Helpers/StatsPurger.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Http/Controllers/Controller.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Http/Controllers/PurgeController.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Http/Controllers/SuperUserController.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Http/Middleware/RedirectIfNotSuperAdmin.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Http/Middleware/ValidatesDomain.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/Attribute/Attribute.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeFamily.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeGroup.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeOption.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeOptionTranslation.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeTranslation.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/CMS/CMS.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Category/Category.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Category/CategoryTranslation.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Checkout/Cart.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Checkout/CartAddress.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Checkout/CartItem.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Checkout/CartPayment.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Checkout/CartShippingRate.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/Company.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/CompanyDetails.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/Channel.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/CoreConfig.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/Currency.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/CurrencyExchangeRate.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/Locale.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/Slider.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Core/SubscribersList.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Customer/Customer.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerAddress.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerGroup.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Customer/Wishlist.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/Discount/CartRule.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRule.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRuleProducts.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRuleProductsPrice.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Inventory/InventorySource.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Product/Product.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Product/ProductAttributeValue.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/Product/ProductFlat.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Product/ProductImage.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Product/ProductInventory.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/Product/ProductOrderedInventory.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Product/ProductReview.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/Invoice.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/InvoiceItem.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/Order.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/OrderAddress.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/OrderItem.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/OrderPayment.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/Shipment.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Sales/ShipmentItem.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Models/SuperAdmin.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Tax/TaxCategory.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Tax/TaxMap.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/Tax/TaxRate.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/User/Admin.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Models/User/Role.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Notifications/NewCompanyNotification.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Notifications/SuperAdminGenerated.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeFamilyObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeGroupObserver.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeOptionObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeOptionTranslationObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeTranslationObserver.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Observers/CMS/CMSObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryTranslationObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartAddressObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartItemObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartPaymentObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartShippingRateObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/ChannelObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/CoreConfigObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyExchangeRate.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/LocaleObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/SliderObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Core/SubscribersListObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerAddressObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerGroupObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Customer/WishlistObserver.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Discount/CartRuleObserver.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleObserver.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleProductsObserver.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleProductsPriceObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Inventory/InventorySourceObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductAttributeValueObserver.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductFlatObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductImageObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductInventoryObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductObserver.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductOrderedInventoryObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductReviewObserver.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Observers/Product/ProductSalableInventoryObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/InvoiceItemObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/InvoiceObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderAddressObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemInventoryObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderPaymentObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentItemObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxCategoryObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxRateObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/User/AdminObserver.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Observers/User/RoleObserver.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Providers/EventServiceProvider.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Providers/ModuleServiceProvider.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Providers/SAASCustomizerServiceProvider.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Repositories/CompanyDetailsRepository.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Repositories/CompanyRepository.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Repositories/StripeSuperAdminRepository.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Repositories/SuperAdminRepository.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/assets/images/block.svg delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/assets/images/compass.svg delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/assets/images/razzo-logo.png delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/assets/js/app.js delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/assets/sass/app.scss delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/login.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/step-one.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/edit.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/index.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/index.blade.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/master.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-aside.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-left.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-top.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/tabs.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/emails/new-company.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/errors/400.blade.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Resources/views/errors/401.blade.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Resources/views/errors/403.blade.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Resources/views/errors/404.blade.php delete mode 100755 packages/Webkul/SAASCustomizer/src/Resources/views/errors/500.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/errors/503.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/errors/auth.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/errors/company_blocked_by_administrator.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/errors/domain_not_found.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/errors/illegal_action.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/errors/not_allowed_to_visit_this_section.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Resources/views/installation/holdscreen.blade.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Routes/web.php delete mode 100644 packages/Webkul/SAASCustomizer/src/Validation/DatabasePresenceVerifier.php delete mode 100644 packages/Webkul/SAASCustomizer/webpack.mix.js delete mode 100644 packages/Webkul/ShowPriceAfterLogin/Config/system.php delete mode 100644 packages/Webkul/ShowPriceAfterLogin/composer.json delete mode 100644 packages/Webkul/ShowPriceAfterLogin/package.json delete mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Http/Middleware/ShowShopAfterLogin.php delete mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Providers/ShowPriceAfterLoginServiceProvider.php delete mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/add-to-cart.blade.php delete mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/buy-now.blade.php delete mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/card.blade.php delete mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/price.blade.php delete mode 100644 packages/Webkul/ShowPriceAfterLogin/src/Resources/views/review-price.blade.php delete mode 100644 packages/Webkul/ShowPriceAfterLogin/webpack.mix.js delete mode 100644 packages/Webkul/StripeConnect/.gitignore delete mode 100644 packages/Webkul/StripeConnect/composer.json delete mode 100644 packages/Webkul/StripeConnect/package.json delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/css/stripe.css delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/fonts/montserrat-v12-latin-regular.eot delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/Icon-Stripe-Active.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/Icon-Stripe.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy 2.png delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy 2.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy.png delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/calender.png delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/calender.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/card.png delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/card.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/check-1.png delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/check-1.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/close-icon.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/close.svg delete mode 100755 packages/Webkul/StripeConnect/publishable/assets/images/icons/cross-icon.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/logo.png delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/logo.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/master.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/mastro.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/pci.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/stripe-logo.png delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/successful.png delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/successful.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/images/icons/visa.svg delete mode 100644 packages/Webkul/StripeConnect/publishable/assets/mix-manifest.json delete mode 100644 packages/Webkul/StripeConnect/readme.md delete mode 100644 packages/Webkul/StripeConnect/src/Config/acl.php delete mode 100644 packages/Webkul/StripeConnect/src/Config/admin-menu.php delete mode 100644 packages/Webkul/StripeConnect/src/Config/paymentmethods.php delete mode 100644 packages/Webkul/StripeConnect/src/Config/system.php delete mode 100644 packages/Webkul/StripeConnect/src/Contracts/StripeCart.php delete mode 100644 packages/Webkul/StripeConnect/src/Contracts/StripeConnect.php delete mode 100644 packages/Webkul/StripeConnect/src/Database/Migrations/2019_02_20_131808_create_stripe_cards_table.php delete mode 100644 packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_09_152250_create_stripe_companies_table.php delete mode 100644 packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_11_174319_create_stripe_cart_table.php delete mode 100755 packages/Webkul/StripeConnect/src/Http/Controllers/Controller.php delete mode 100644 packages/Webkul/StripeConnect/src/Http/Controllers/SellerRegistrationController.php delete mode 100644 packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php delete mode 100644 packages/Webkul/StripeConnect/src/Http/routes.php delete mode 100644 packages/Webkul/StripeConnect/src/Models/StripeCart.php delete mode 100644 packages/Webkul/StripeConnect/src/Models/StripeCartProxy.php delete mode 100644 packages/Webkul/StripeConnect/src/Models/StripeConnect.php delete mode 100644 packages/Webkul/StripeConnect/src/Models/StripeConnectProxy.php delete mode 100644 packages/Webkul/StripeConnect/src/Observers/StripeConnectObserver.php delete mode 100755 packages/Webkul/StripeConnect/src/Payment/Stripe.php delete mode 100644 packages/Webkul/StripeConnect/src/Payment/StripePayment.php delete mode 100644 packages/Webkul/StripeConnect/src/Providers/EventServiceProvider.php delete mode 100644 packages/Webkul/StripeConnect/src/Providers/ModuleServiceProvider.php delete mode 100644 packages/Webkul/StripeConnect/src/Providers/StripeConnectServiceProvider.php delete mode 100644 packages/Webkul/StripeConnect/src/Repositories/StripeCartRepository.php delete mode 100644 packages/Webkul/StripeConnect/src/Repositories/StripeConnectRepository.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/fonts/montserrat-v12-latin-regular.eot delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe-Active.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy 2.png delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy 2.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.png delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.png delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.png delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.png delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close-icon.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close.svg delete mode 100755 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/cross-icon.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/logo.png delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/logo.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/master.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/mastro.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/pci.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/stripe-logo.png delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/successful.png delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/successful.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/images/icons/visa.svg delete mode 100644 packages/Webkul/StripeConnect/src/Resources/assets/sass/stripe.scss delete mode 100644 packages/Webkul/StripeConnect/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/checkout/card.blade.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/checkout/style.blade.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/checkout/total/summary.blade.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/components/add-card.blade.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/components/saved-cards.blade.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/components/stripe-form.blade.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/connect.blade.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/super-admin/create.blade.php delete mode 100644 packages/Webkul/StripeConnect/src/Resources/views/super-admin/edit.blade.php delete mode 100644 packages/Webkul/StripeConnect/webpack.mix.js delete mode 100644 packages/Webkul/Webfont/composer.json delete mode 100644 packages/Webkul/Webfont/readme.md delete mode 100644 packages/Webkul/Webfont/src/Config/menu.php delete mode 100644 packages/Webkul/Webfont/src/Config/system.php delete mode 100644 packages/Webkul/Webfont/src/Contracts/Webfont.php delete mode 100644 packages/Webkul/Webfont/src/DataGrids/WebfontDataGrid.php delete mode 100644 packages/Webkul/Webfont/src/Database/Migrations/2019_08_13_141430_create_google_web_fonts_table.php delete mode 100644 packages/Webkul/Webfont/src/Http/Controllers/Controller.php delete mode 100644 packages/Webkul/Webfont/src/Http/Controllers/WebfontController.php delete mode 100644 packages/Webkul/Webfont/src/Http/routes.php delete mode 100644 packages/Webkul/Webfont/src/Listeners/Webfont.php delete mode 100644 packages/Webkul/Webfont/src/Models/Webfont.php delete mode 100644 packages/Webkul/Webfont/src/Models/WebfontProxy.php delete mode 100644 packages/Webkul/Webfont/src/Observers/WebfontObserver.php delete mode 100644 packages/Webkul/Webfont/src/Providers/EventServiceProvider.php delete mode 100644 packages/Webkul/Webfont/src/Providers/ModuleServiceProvider.php delete mode 100644 packages/Webkul/Webfont/src/Providers/WebfontServiceProvider.php delete mode 100644 packages/Webkul/Webfont/src/Repositories/WebfontRepository.php delete mode 100644 packages/Webkul/Webfont/src/Resources/lang/en/app.php delete mode 100644 packages/Webkul/Webfont/src/Resources/views/add-font.blade.php delete mode 100644 packages/Webkul/Webfont/src/Resources/views/admin-index.blade.php delete mode 100644 packages/Webkul/Webfont/src/Resources/views/webfont.blade.php diff --git a/.env.example b/.env.example index f136fbdf2..a06cfe97c 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,4 @@ -APP_NAME=Razzo +APP_NAME=Bagisto APP_ENV=local APP_VERSION=0.1.6 APP_KEY= @@ -34,13 +34,6 @@ MAIL_ENCRYPTION=tls SHOP_MAIL_FROM= ADMIN_MAIL_TO= -STRIPE_ENABLE_TESTING= -STRIPE_TEST_PUBLISHABLE_KEY= -STRIPE_TEST_SECRET_KEY= -STRIPE_LIVE_PUBLISHABLE_KEY= -STRIPE_LIVE_SECRET_KEY= -STRIPE_STATEMENT_DESCRIPTOR= - fixer_api_key= PUSHER_APP_ID= diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 51792b28d..4c2d12de3 100755 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -30,9 +30,7 @@ class Kernel extends HttpKernel \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - \Webkul\SAASCustomizer\Http\Middleware\ValidatesDomain::class, - \Webkul\ShowPriceAfterLogin\Http\Middleware\ShowShopAfterLogin::class + \Illuminate\Routing\Middleware\SubstituteBindings::class ], 'api' => [ diff --git a/composer.json b/composer.json index fa707f8ab..bfa1b36cc 100755 --- a/composer.json +++ b/composer.json @@ -90,19 +90,7 @@ "Webkul\\Tax\\": "packages/Webkul/Tax/src", "Webkul\\API\\": "packages/Webkul/API", "Webkul\\Discount\\": "packages/Webkul/Discount/src", - "Webkul\\CMS\\": "packages/Webkul/CMS/src", - "Webkul\\CustomerDocument\\": "packages/Webkul/CustomerDocument", - "Webkul\\BulkAddToCart\\": "packages/Webkul/BulkAddToCart", - "Webkul\\AdminAuthCheck\\": "packages/Webkul/AdminAuthCheck/src", - "Webkul\\StripeConnect\\": "packages/Webkul/StripeConnect/src", - "Webkul\\CustomerCreditMax\\": "packages/Webkul/CustomerCreditMax", - "Webkul\\CustomerGroupCatalog\\": "packages/Webkul/CustomerGroupCatalog", - "Webkul\\ShowPriceAfterLogin\\": "packages/Webkul/ShowPriceAfterLogin/src", - "Webkul\\PreOrder\\": "packages/Webkul/PreOrder/src", - "Webkul\\Webfont\\": "packages/Webkul/Webfont/src", - "Webkul\\GTM\\": "packages/Webkul/GTM/src", - "Webkul\\Custom\\": "packages/Webkul/Custom/src", - "Webkul\\SAASCustomizer\\": "packages/Webkul/SAASCustomizer/src" + "Webkul\\CMS\\": "packages/Webkul/CMS/src" } }, "autoload-dev": { diff --git a/config/app.php b/config/app.php index 77070b7cc..3bb520a73 100755 --- a/config/app.php +++ b/config/app.php @@ -52,7 +52,7 @@ return [ | */ - 'url' => env('APP_URL', 'http://bagsaas.com'), + 'url' => env('APP_URL', 'http://localhost'), /* |-------------------------------------------------------------------------- @@ -245,19 +245,7 @@ return [ Webkul\Tax\Providers\TaxServiceProvider::class, Webkul\API\Providers\APIServiceProvider::class, Webkul\Discount\Providers\DiscountServiceProvider::class, - Webkul\CMS\Providers\CMSServiceProvider::class, - Webkul\CustomerDocument\Providers\CustomerDocumentServiceProvider::class, - Webkul\BulkAddToCart\Providers\BulkAddToCartServiceProvider::class, - Webkul\AdminAuthCheck\Providers\AdminAuthCheckServiceProvider::class, - Webkul\Webfont\Providers\WebfontServiceProvider::class, - Webkul\GTM\Providers\GTMServiceProvider::class, - Webkul\StripeConnect\Providers\StripeConnectServiceProvider::class, - Webkul\ShowPriceAfterLogin\Providers\ShowPriceAfterLoginServiceProvider::class, - Webkul\CustomerCreditMax\Providers\CustomerCreditMaxServiceProvider::class, - Webkul\PreOrder\Providers\PreOrderServiceProvider::class, - Webkul\CustomerGroupCatalog\Providers\CustomerGroupCatalogServiceProvider::class, - Webkul\SAASCustomizer\Providers\SAASCustomizerServiceProvider::class, - Webkul\Custom\Providers\CustomServiceProvider::class + Webkul\CMS\Providers\CMSServiceProvider::class ], /* @@ -315,7 +303,6 @@ return [ 'PDF' => Barryvdh\DomPDF\Facade::class, 'Excel' => Maatwebsite\Excel\Facades\Excel::class, 'Concord' => Konekt\Concord\Facades\Concord::class, - 'Helper' => Konekt\Concord\Facades\Helper::class, - 'Company' => Webkul\SAASCustomizer\Facades\Company::class + 'Helper' => Konekt\Concord\Facades\Helper::class ], ]; \ No newline at end of file diff --git a/config/auth.php b/config/auth.php index df9f39404..cd086cdb3 100755 --- a/config/auth.php +++ b/config/auth.php @@ -27,11 +27,6 @@ return [ 'provider' => 'admins' ], - 'super-admin' => [ - 'driver' => 'session', - 'provider' => 'superadmins' - ], - 'admin-api' => [ 'driver' => 'token', 'provider' => 'admins', @@ -47,11 +42,6 @@ return [ 'admins' => [ 'driver' => 'eloquent', 'model' => Webkul\User\Models\Admin::class, - ], - - 'superadmins' => [ - 'driver' => 'eloquent', - 'model' => Webkul\SAASCustomizer\Models\SuperAdmin::class ] ], diff --git a/config/concord.php b/config/concord.php index 4ffc94270..311ede347 100755 --- a/config/concord.php +++ b/config/concord.php @@ -20,9 +20,6 @@ return [ \Webkul\Tax\Providers\ModuleServiceProvider::class, \Webkul\User\Providers\ModuleServiceProvider::class, \Webkul\Discount\Providers\ModuleServiceProvider::class, - \Webkul\CMS\Providers\ModuleServiceProvider::class, - \Webkul\StripeConnect\Providers\ModuleServiceProvider::class, - \Webkul\PreOrder\Providers\ModuleServiceProvider::class, - \Webkul\Webfont\Providers\ModuleServiceProvider::class + \Webkul\CMS\Providers\ModuleServiceProvider::class ] ]; \ No newline at end of file diff --git a/config/excluded-sites.php b/config/excluded-sites.php deleted file mode 100644 index 25058db0c..000000000 --- a/config/excluded-sites.php +++ /dev/null @@ -1,5 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CustomerApprovalController extends Controller -{ - protected $_config; - - public function __construct() - { - $this->_config = request('_config'); - } - - public function index() - { - - } - - public function approve() - { - dd('approving the newly created customer'); - } -} \ No newline at end of file diff --git a/packages/Webkul/AdminAuthCheck/src/Listeners/LoginAuthenticationAttempt.php b/packages/Webkul/AdminAuthCheck/src/Listeners/LoginAuthenticationAttempt.php deleted file mode 100644 index a9cd8244a..000000000 --- a/packages/Webkul/AdminAuthCheck/src/Listeners/LoginAuthenticationAttempt.php +++ /dev/null @@ -1,54 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class LoginAuthenticationAttempt -{ - protected $superAdmin; - - public function __construct(SuperAdmin $superAdmin) { - $this->superAdmin = $superAdmin; - } - - public function handle() - { - $company = Company::getCurrent(); - - if (! auth()->guard('super-admin')->check()) { - $credentials = request()->all(); - $credentials['company_id'] = $company->id; - - unset($credentials['_token']); - - if (auth()->guard('admin')->check()) { - $admin = auth()->guard('admin')->user(); - - if (Company::getCurrent()->id != $admin->company_id) { - auth()->guard('admin')->logout(); - - throw new \Exception('invalid_admin_login', 400); - } - } else if (auth()->guard('customer')->check()) { - $customer = auth()->guard('customer')->user(); - - if (Company::getCurrent()->id != $customer->company_id) { - auth()->guard('customer')->logout(); - - if (! auth()->guard('customer')->attempt($credentials)) { - - throw new \Exception('invalid_customer_login', 400); - } - } - } - } - } -} \ No newline at end of file diff --git a/packages/Webkul/AdminAuthCheck/src/Providers/AdminAuthCheckProvider.php b/packages/Webkul/AdminAuthCheck/src/Providers/AdminAuthCheckProvider.php deleted file mode 100644 index 224453f11..000000000 --- a/packages/Webkul/AdminAuthCheck/src/Providers/AdminAuthCheckProvider.php +++ /dev/null @@ -1,32 +0,0 @@ -loadRoutesFrom(__DIR__.'/../Routes/web.php'); - - $this->app->bind( - ExceptionHandler::class, - Handler::class - ); - - // $this->app->register(ModuleServiceProvider::class); - } - - public function register() - { - $this->app->register(EventServiceProvider::class); - } -} \ No newline at end of file diff --git a/packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php b/packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php deleted file mode 100644 index b399e71be..000000000 --- a/packages/Webkul/AdminAuthCheck/src/Providers/EventServiceProvider.php +++ /dev/null @@ -1,24 +0,0 @@ - [ - // 'Webkul\AdminAuthCheck\Listeners\LoginAuthenticationAttempt' - // ], // make use of this to stop admins logging into other sites - - 'Illuminate\Auth\Events\Authenticated' => [ - 'Webkul\AdminAuthCheck\Listeners\LoginAuthenticationAttempt' - ] - ]; -} \ No newline at end of file diff --git a/packages/Webkul/AdminAuthCheck/src/Providers/ModuleServiceProvider.php b/packages/Webkul/AdminAuthCheck/src/Providers/ModuleServiceProvider.php deleted file mode 100644 index 3372c26ef..000000000 --- a/packages/Webkul/AdminAuthCheck/src/Providers/ModuleServiceProvider.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Set Category Visibility', -]; \ No newline at end of file diff --git a/packages/Webkul/AdminAuthCheck/src/Routes/web.php b/packages/Webkul/AdminAuthCheck/src/Routes/web.php deleted file mode 100644 index a4abe2daf..000000000 --- a/packages/Webkul/AdminAuthCheck/src/Routes/web.php +++ /dev/null @@ -1,2 +0,0 @@ - 'account.bulk-add-to-cart', - 'name' => 'bulkaddtocart::app.products.bulk-add-to-cart', - 'route' =>'cart.bulk-add-to-cart.create', - 'sort' => 7 - ] -]; - -?> \ No newline at end of file diff --git a/packages/Webkul/BulkAddToCart/src/Http/Controllers/BulkAddToCartController.php b/packages/Webkul/BulkAddToCart/src/Http/Controllers/BulkAddToCartController.php deleted file mode 100644 index 80fbe4a6b..000000000 --- a/packages/Webkul/BulkAddToCart/src/Http/Controllers/BulkAddToCartController.php +++ /dev/null @@ -1,194 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class BulkAddToCartController extends Controller -{ - /** - * Contains route related configuration - * - * @var array - */ - protected $_config; - - /** - * ProductRepository object - * - * @var array - */ - protected $product; - - /** - * Create a new controller instance. - * - * @param \Webkul\Product\Repositories\ProductRepository $product - * @return void - */ - public function __construct(Product $product) - { - $this->product = $product; - - $this->_config = request('_config'); - } - - /** - * Show the form for creating a new resource. - * - * @return \Illuminate\Http\Response - */ - public function create() - { - return view($this->_config['view']); - } - - /** - * Store a newly created resource in storage. - * - * @return \Illuminate\Http\Response - */ - public function store() - { - $valid_extension = ['xlsx', 'csv', 'xls', 'ods']; - - if (! in_array(request()->file('file')->getClientOriginalExtension(), $valid_extension)) { - session()->flash('error', trans('bulkaddtocart::app.products.upload-error')); - - return redirect()->back(); - } else { - try { - $excelData = (new DataGridImport)->toArray(request()->file('file')); - $cart = []; - - foreach ($excelData as $data) { - foreach ($data as $column => $uploadData) { - $validator = Validator::make($uploadData, [ - 'sku' => 'required', - 'quantity' => 'required|numeric|min:1', - ]); - - $product = $this->product->findOneWhere([ - 'sku' => $uploadData['sku'], - ]); - - if ($product) { - $canAdd = $product->haveSufficientQuantity($uploadData['quantity']); - - if (! $canAdd) { - $sufficientQuantity[] = $column + 1; - } else if ($product->type == 'simple' && $uploadData['quantity'] > 0) { - if ($product->parent_id != null) { - $parentProduct = $this->product->findOneWhere([ - 'id' => $product->parent_id, - ]); - - foreach ($parentProduct->super_attributes as $super_attribute) { - if ($super_attribute->type == 'select') { - foreach ($product->attribute_values as $attribute_value) { - if ($super_attribute->id == $attribute_value->attribute_id) { - $attributes[$super_attribute->id] = (string) $attribute_value->integer_value; - } - } - } - } - - $cart['product'] = (string) $parentProduct->id; - $cart['quantity'] = (string) $uploadData['quantity']; - $cart['is_configurable'] = 'true'; - $cart['selected_configurable_option'] = (string) $product->id; - $cart['super_attribute'] = $attributes; - } else { - $cart['product'] = (string) $product->id; - $cart['quantity'] = (string) $uploadData['quantity']; - $cart['is_configurable'] = 'false'; - } - - request()->merge([ - 'quantity' => $cart['quantity'] - ]); - - Event::fire('checkout.cart.add.before', $cart['product']); - - $result = Cart::add($cart['product'], $cart); - - Event::fire('checkout.cart.add.after', $result); - - Cart::collectTotals(); - } - } else { - $skuError[] = $column + 1; - } - - if ($validator->fails()) { - $failedRules[$column+1] = $validator->errors(); - } - } - } - - if (isset($failedRules)) { - foreach ($failedRules as $coulmn => $fail) { - if ($fail->first('sku')) { - $errorMsg[$coulmn] = $fail->first('sku'); - } else if ($fail->first('quantity')) { - $errorMsg[$coulmn] = $fail->first('quantity'); - } - } - - foreach ($errorMsg as $key => $msg) { - $msg = str_replace(".", "", $msg); - $message[] = $msg. ' at Row ' .$key . '.'; - } - - $finalMsg[] = implode(" ", $message); - } - if (isset($skuError)) { - $errorRows = implode(",", $skuError); - $finalMsg[] = trans('bulkaddtocart::app.products.sku-error') . ' ' . $errorRows . '.'; - } - if (isset($sufficientQuantity)) { - $errorRows = implode(",", $sufficientQuantity); - $finalMsg[] = trans('bulkaddtocart::app.products.quantity-error') . ' ' . $errorRows . '.'; - } - if (isset($finalMsg)) { - $finalErrorMsg = implode(" ", $finalMsg); - - session()->flash('error', $finalErrorMsg); - - return redirect()->back(); - } else { - session()->flash('success', trans('bulkaddtocart::app.products.upload-sucess')); - - return redirect()->route($this->_config['redirect']); - } - } catch (\Exception $e) { - session()->flash('error', $e->getMessage()); - - return redirect()->back(); - } - } - } - - /** - * Download Sample - * - * @return \Illuminate\Http\Response - */ - public function downLoadSample() - { - return Storage::download('sample/sample.xls'); - } -} \ No newline at end of file diff --git a/packages/Webkul/BulkAddToCart/src/Http/Controllers/Controller.php b/packages/Webkul/BulkAddToCart/src/Http/Controllers/Controller.php deleted file mode 100644 index 47f4fa3ef..000000000 --- a/packages/Webkul/BulkAddToCart/src/Http/Controllers/Controller.php +++ /dev/null @@ -1,13 +0,0 @@ - ['web', 'locale', 'theme', 'currency']], function () { - - Route::prefix('customer')->group(function () { - - Route::group(['middleware' => ['customer']], function () { - - Route::get('bulk-add-to-cart', 'Webkul\BulkAddToCart\Http\Controllers\BulkAddToCartController@create')->defaults('_config', [ - 'view' => 'bulkaddtocart::products.bulk-add-to-cart' - ])->name('cart.bulk-add-to-cart.create'); - - Route::post('bulk-add-to-cart', 'Webkul\BulkAddToCart\Http\Controllers\BulkAddToCartController@store')->defaults('_config', [ - 'redirect' => 'shop.checkout.cart.index' - ])->name('cart.bulk-add-to-cart.store'); - - Route::get('download-sample', 'Webkul\BulkAddToCart\Http\Controllers\BulkAddToCartController@downLoadSample')->defaults('_config', [ - 'view' => 'bulkaddtocart::products.bulk-add-to-cart' - ])->name('cart.bulk-add-to-cart.sample.download'); - }); - }); -}); \ No newline at end of file diff --git a/packages/Webkul/BulkAddToCart/src/Providers/BulkAddToCartServiceProvider.php b/packages/Webkul/BulkAddToCart/src/Providers/BulkAddToCartServiceProvider.php deleted file mode 100644 index f9f096835..000000000 --- a/packages/Webkul/BulkAddToCart/src/Providers/BulkAddToCartServiceProvider.php +++ /dev/null @@ -1,45 +0,0 @@ -loadRoutesFrom(__DIR__ . '/../Http/routes.php'); - - $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'bulkaddtocart'); - - $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'bulkaddtocart'); - } - - /** - * Register services. - * - * @return void - */ - public function register() - { - $this->registerConfig(); - } - - /** - * Register package config. - * - * @return void - */ - protected function registerConfig() - { - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/menu.php', 'menu.customer' - ); - } -} \ No newline at end of file diff --git a/packages/Webkul/BulkAddToCart/src/Resources/lang/en/app.php b/packages/Webkul/BulkAddToCart/src/Resources/lang/en/app.php deleted file mode 100644 index f50ca79c5..000000000 --- a/packages/Webkul/BulkAddToCart/src/Resources/lang/en/app.php +++ /dev/null @@ -1,17 +0,0 @@ - [ - 'bulk-add-to-cart' => 'Bulk Add to Cart', - 'file' => 'File', - 'submit' => 'Submit', - 'upload-sucess' => 'Products Sucessfully added to Cart', - 'quantity-error' => 'Products have not sufficient quantity at row', - 'upload-error' => 'The file must be a file of type: xls, xlsx, csv, ods.', - 'enough-row-error' => 'file has not enough rows', - 'sku-error' => 'Invalid SKU at row', - 'allowed-type' => 'Allowed Type :', - 'file-type' => 'csv, xls, xlsx, ods.', - 'download-sample' => 'Download Sample' - ], -]; \ No newline at end of file diff --git a/packages/Webkul/BulkAddToCart/src/Resources/views/products/bulk-add-to-cart.blade.php b/packages/Webkul/BulkAddToCart/src/Resources/views/products/bulk-add-to-cart.blade.php deleted file mode 100644 index d024f5a67..000000000 --- a/packages/Webkul/BulkAddToCart/src/Resources/views/products/bulk-add-to-cart.blade.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('shop::layouts.master') - -@section('page_title') - {{ __('bulkaddtocart::app.products.bulk-add-to-cart') }} -@endsection - -@section('content-wrapper') - - -@endsection \ No newline at end of file diff --git a/packages/Webkul/Custom/.gitignore b/packages/Webkul/Custom/.gitignore deleted file mode 100755 index 49e0fc6b4..000000000 --- a/packages/Webkul/Custom/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/node_modules -/package-lock.json \ No newline at end of file diff --git a/packages/Webkul/Custom/composer.json b/packages/Webkul/Custom/composer.json deleted file mode 100644 index 739e6ea92..000000000 --- a/packages/Webkul/Custom/composer.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "bagisto/laravel-custom", - "description": "Custom package to over ride settings", - "license": "MIT", - "authors": [ - { - "name": "Webkul", - "email": "support@webkul.com" - } - ], - "require": {}, - "autoload": { - "psr-4": { - "Webkul\\Custom\\": "src/" - } - }, - "extra": { - "laravel": { - "providers": [ - "Webkul\\Custom\\Providers\\CustomServiceProvider" - ], - "aliases": {} - } - }, - "minimum-stability": "dev" -} \ No newline at end of file diff --git a/packages/Webkul/Custom/src/Database/Migrations/2019_08_23_102253_add_url_key_column_in_sliders_table.php b/packages/Webkul/Custom/src/Database/Migrations/2019_08_23_102253_add_url_key_column_in_sliders_table.php deleted file mode 100644 index cd82fbbc6..000000000 --- a/packages/Webkul/Custom/src/Database/Migrations/2019_08_23_102253_add_url_key_column_in_sliders_table.php +++ /dev/null @@ -1,34 +0,0 @@ -string('url_type')->nullable(); - $table->string('url_key')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('sliders', function (Blueprint $table) { - $this->dropColumn('url_type'); - $this->dropColumn('url_key'); - }); - } -} diff --git a/packages/Webkul/Custom/src/Helpers/CollectURLKeys.php b/packages/Webkul/Custom/src/Helpers/CollectURLKeys.php deleted file mode 100644 index 08e2894dd..000000000 --- a/packages/Webkul/Custom/src/Helpers/CollectURLKeys.php +++ /dev/null @@ -1,72 +0,0 @@ -category = $category; - - $this->product = $product; - } - - public function getCategoryKeys() - { - $categories = $this->category->all(); - - $categoryURLKeys = collect(); - - foreach ($categories as $category) { - if (strtolower($category->slug) != 'root') { - $categoryURLKeys->push([ - 'id' => $category->id, - 'name' => $category->name, - 'url_key' => $category->slug - ]); - } - } - - return $categoryURLKeys; - } - - public function getProductKeys() - { - $products = $this->product->findWhere( - [ - 'status' => 1, - 'visible_individually' => 1, - 'channel' => core()->getCurrentChannel()->code, - 'locale' => core()->getCurrentlocale()->code - ] - ); - - $productURLKeys = collect(); - - foreach ($products as $product) { - $productURLKeys->push([ - 'id' => $product->id, - 'name' => $product->name, - 'url_key' => $product->url_key - ]); - } - - return $productURLKeys; - } -} \ No newline at end of file diff --git a/packages/Webkul/Custom/src/Http/Controllers/Controller.php b/packages/Webkul/Custom/src/Http/Controllers/Controller.php deleted file mode 100755 index 52b7fdb84..000000000 --- a/packages/Webkul/Custom/src/Http/Controllers/Controller.php +++ /dev/null @@ -1,13 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('sliders' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/Custom/src/Observers/CustomerObserver.php b/packages/Webkul/Custom/src/Observers/CustomerObserver.php deleted file mode 100644 index 2cc88330a..000000000 --- a/packages/Webkul/Custom/src/Observers/CustomerObserver.php +++ /dev/null @@ -1,19 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - - $model->status = 0; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/Custom/src/Observers/SliderObserver.php b/packages/Webkul/Custom/src/Observers/SliderObserver.php deleted file mode 100644 index 56193c827..000000000 --- a/packages/Webkul/Custom/src/Observers/SliderObserver.php +++ /dev/null @@ -1,28 +0,0 @@ -content); - - // if (! auth()->guard('super-admin')->check()) { - // $model->company_id = Company::getCurrent()->id; - // } - // } - - // public function saving(Slider $model) - - // { dd($model->content); - - // if (! auth()->guard('super-admin')->check()) { - // $model->company_id = Company::getCurrent()->id; - // } - // } -} \ No newline at end of file diff --git a/packages/Webkul/Custom/src/Providers/CustomServiceProvider.php b/packages/Webkul/Custom/src/Providers/CustomServiceProvider.php deleted file mode 100755 index a52571833..000000000 --- a/packages/Webkul/Custom/src/Providers/CustomServiceProvider.php +++ /dev/null @@ -1,34 +0,0 @@ -loadViewsFrom(__DIR__ . '/../Resources/views', 'custom'); - - $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'custom'); - - $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); - - $this->app->concord->registerModel(\Webkul\Core\Contracts\Slider::class, \Webkul\Custom\Models\Slider::class); - - \Webkul\SAASCustomizer\Models\Customer\Customer::observe(\Webkul\Custom\Observers\CustomerObserver::class); - - \Webkul\Custom\Models\Slider::observe(\Webkul\Custom\Observers\SliderObserver::class); - - $this->publishes([ - __DIR__ . '/../Resources/views/navmenu.blade.php' => resource_path('views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php'), - ]); - } - - public function register() - { - $this->app->register(EventServiceProvider::class); - } -} diff --git a/packages/Webkul/Custom/src/Providers/EventServiceProvider.php b/packages/Webkul/Custom/src/Providers/EventServiceProvider.php deleted file mode 100644 index 582a94f5c..000000000 --- a/packages/Webkul/Custom/src/Providers/EventServiceProvider.php +++ /dev/null @@ -1,25 +0,0 @@ -addTemplate('custom::customslider'); - }); - - Event::listen('bagisto.admin.settings.slider.edit.after', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('custom::customslider'); - }); - } -} \ No newline at end of file diff --git a/packages/Webkul/Custom/src/Providers/ModuleServiceProvider.php b/packages/Webkul/Custom/src/Providers/ModuleServiceProvider.php deleted file mode 100644 index c3be049e2..000000000 --- a/packages/Webkul/Custom/src/Providers/ModuleServiceProvider.php +++ /dev/null @@ -1,11 +0,0 @@ -getCategoryKeys(); - - $productKeys = $link->getProductKeys(); -@endphp - -
- - - -
\ No newline at end of file diff --git a/packages/Webkul/Custom/src/Resources/views/navmenu.blade.php b/packages/Webkul/Custom/src/Resources/views/navmenu.blade.php deleted file mode 100644 index 200a9b60d..000000000 --- a/packages/Webkul/Custom/src/Resources/views/navmenu.blade.php +++ /dev/null @@ -1,177 +0,0 @@ -{!! view_render_event('bagisto.shop.layout.header.category.before') !!} - -getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) { - if ($category->slug) - array_push($categories, $category); -} - -$cmsPages = app('Webkul\CMS\Repositories\CMSRepository')->findWhere([ - 'channel_id' => core()->getCurrentChannel()->id, - 'locale_id' => core()->getCurrentLocale()->id -]); - -?> - - - -{!! view_render_event('bagisto.shop.layout.header.category.after') !!} - - -@push('scripts') - - - - - - - - - - - - -@endpush \ No newline at end of file diff --git a/packages/Webkul/CustomerCreditMax/src/Config/system.php b/packages/Webkul/CustomerCreditMax/src/Config/system.php deleted file mode 100644 index 2a74ae81b..000000000 --- a/packages/Webkul/CustomerCreditMax/src/Config/system.php +++ /dev/null @@ -1,23 +0,0 @@ - 'customer.settings.credit_max', - 'name' => 'customercreditmax::app.admin.system.credit-max', - 'sort' => 4, - 'fields' => [ - [ - 'name' => 'status', - 'title' => 'customercreditmax::app.admin.system.use-credit-max', - 'type' => 'boolean', - 'channel_based' => true - ], [ - 'name' => 'amount', - 'title' => 'customercreditmax::app.admin.system.max-credit-amount', - 'type' => 'text', - 'validation' => 'decimal', - 'channel_based' => true - ] - ], - ] -]; \ No newline at end of file diff --git a/packages/Webkul/CustomerCreditMax/src/Listeners/Cart.php b/packages/Webkul/CustomerCreditMax/src/Listeners/Cart.php deleted file mode 100644 index c408c5ec6..000000000 --- a/packages/Webkul/CustomerCreditMax/src/Listeners/Cart.php +++ /dev/null @@ -1,72 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class Cart -{ - /** - * OrderRepository object - * - * @var Product - */ - protected $orderRepository; - - /** - * Create a new cart event listener instance. - * - * @param Webkul\Sales\Repositories\OrderRepository $orderRepository - * @return void - */ - public function __construct(OrderRepository $orderRepository) - { - $this->orderRepository = $orderRepository; - } - - /** - * Return current logged in customer - * - * @return Customer | Boolean - */ - public function getCurrentCustomerGuard() - { - $guard = request()->has('token') ? 'api' : 'customer'; - - return auth()->guard($guard); - } - - /** - * Checks if customer credit amount exceeded or not - * - * @param mixed $cartItem - */ - public function cartItemAddBefore($productId) - { - if (! core()->getConfigData('customer.settings.credit_max.status') || ! $this->getCurrentCustomerGuard()->check()) - return; - - $baseGrandTotal = $this->orderRepository->scopeQuery(function ($query) { - return $query - ->where('orders.customer_id', $this->getCurrentCustomerGuard()->user()->id) - ->where('orders.status', '<>', 'canceled'); - })->sum('base_grand_total'); - - $baseGrandTotalInvoiced = $this->orderRepository->scopeQuery(function ($query) { - return $query - ->where('orders.customer_id', $this->getCurrentCustomerGuard()->user()->id) - ->where('orders.status', '<>', 'canceled'); - })->sum('base_grand_total_invoiced'); - - if ( ($baseGrandTotal - $baseGrandTotalInvoiced) >= core()->getConfigData('customer.settings.credit_max.amount')) - throw new \Exception('You available credit limit has been exceeded. Please pay your pending invoice.'); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerCreditMax/src/Providers/CustomerCreditMax.php b/packages/Webkul/CustomerCreditMax/src/Providers/CustomerCreditMax.php deleted file mode 100755 index 0649134c0..000000000 --- a/packages/Webkul/CustomerCreditMax/src/Providers/CustomerCreditMax.php +++ /dev/null @@ -1,33 +0,0 @@ -loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'customercreditmax'); - - $this->app->register(EventServiceProvider::class); - } - - /** - * Register services. - * - * @return void - */ - public function register() - { - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/system.php', 'core' - ); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerCreditMax/src/Providers/EventServiceProvider.php b/packages/Webkul/CustomerCreditMax/src/Providers/EventServiceProvider.php deleted file mode 100644 index 01ea52aea..000000000 --- a/packages/Webkul/CustomerCreditMax/src/Providers/EventServiceProvider.php +++ /dev/null @@ -1,19 +0,0 @@ - [ - 'system' => [ - 'credit-max' => 'Credit Max', - 'use-credit-max' => 'Use Credit Max', - 'max-credit-amount' => 'Max Credit Amount' - ] - ] -]; \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/.gitignore b/packages/Webkul/CustomerDocument/.gitignore deleted file mode 100644 index 6376db975..000000000 --- a/packages/Webkul/CustomerDocument/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/node_modules -/package-lock.json -npm-debug.log \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/composer.json b/packages/Webkul/CustomerDocument/composer.json deleted file mode 100644 index 383539bb4..000000000 --- a/packages/Webkul/CustomerDocument/composer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "bagisto/customer-document", - "license": "MIT", - "authors": [ - { - "name": "Rahul Shukla", - "email": "rahulshukla517@webkul.com" - } - ], - "autoload": { - "psr-4": { - "Webkul\\CustomerDocument\\": "src/" - } - }, - "extra": { - "laravel": { - "providers": [ - "Webkul\\CustomerDocument\\CustomerDocumentServiceProvider" - ], - "aliases": {} - } - }, - "minimum-stability": "dev" -} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/package.json b/packages/Webkul/CustomerDocument/package.json deleted file mode 100644 index 2d948db6a..000000000 --- a/packages/Webkul/CustomerDocument/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "npm run development", - "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch-poll": "cross-env npm run watch -- --watch-poll --progress", - "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", - "prod": "npm run production", - "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" - }, - "devDependencies": { - "axios": "^0.18", - "cross-env": "^5.1.4", - "laravel-mix": "^2.1", - "laravel-mix-merge-manifest": "^0.1.1", - "jquery": "^3.2", - "vue": "^2.1.10" - }, - "dependencies": { - "vee-validate": "2.0.0-rc.26", - "vue-flatpickr": "^2.3.0", - "vue-slider-component": "^2.7.5" - } -} diff --git a/packages/Webkul/CustomerDocument/src/Config/acl.php b/packages/Webkul/CustomerDocument/src/Config/acl.php deleted file mode 100644 index 0a3ad31a6..000000000 --- a/packages/Webkul/CustomerDocument/src/Config/acl.php +++ /dev/null @@ -1,15 +0,0 @@ - 'documents', - 'name' => 'customerdocument::app.admin.customers.documents', - 'route' => 'admin.documents.index', - 'sort' => 1 - ], [ - 'key' => 'documents.files', - 'name' => 'customerdocument::app.admin.documents.b2b-files', - 'route' => 'admin.documents.index', - 'sort' => 2 - ] -]; \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Config/customer-menu.php b/packages/Webkul/CustomerDocument/src/Config/customer-menu.php deleted file mode 100644 index e736b2f99..000000000 --- a/packages/Webkul/CustomerDocument/src/Config/customer-menu.php +++ /dev/null @@ -1,10 +0,0 @@ - 'account.documents', - 'name' => 'customerdocument::app.admin.customers.documents', - 'route' =>'customer.documents.index', - 'sort' => 6 - ] -]; \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Config/menu.php b/packages/Webkul/CustomerDocument/src/Config/menu.php deleted file mode 100644 index 9eacd453a..000000000 --- a/packages/Webkul/CustomerDocument/src/Config/menu.php +++ /dev/null @@ -1,19 +0,0 @@ - 'documents', - 'name' => 'customerdocument::app.admin.customers.documents', - 'route' => 'admin.documents.index', - 'sort' => 6, - 'icon-class' => 'document-icon', - ], [ - 'key' => 'documents.files', - 'name' => 'customerdocument::app.admin.documents.b2b-files', - 'route' => 'admin.documents.index', - 'sort' => 1, - 'icon-class' => '', - ], -]; - -?> \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Config/system.php b/packages/Webkul/CustomerDocument/src/Config/system.php deleted file mode 100644 index 858285d2b..000000000 --- a/packages/Webkul/CustomerDocument/src/Config/system.php +++ /dev/null @@ -1,21 +0,0 @@ - 'customer.settings.documents', - 'name' => 'customerdocument::app.admin.customers.documents', - 'sort' => 4, - 'fields' => [ - [ - 'name' => 'size', - 'title' => 'customerdocument::app.admin.customers.size', - 'type' => 'text', - 'validation' => 'decimal:2' - ], [ - 'name' => 'allowed_extensions', - 'title' => 'customerdocument::app.admin.customers.allowed-types', - 'type' => 'text' - ] - ], - ] -]; \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Contracts/CustomerDocument.php b/packages/Webkul/CustomerDocument/src/Contracts/CustomerDocument.php deleted file mode 100644 index 44ca2e742..000000000 --- a/packages/Webkul/CustomerDocument/src/Contracts/CustomerDocument.php +++ /dev/null @@ -1,7 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CustomerDocumentDataGrid extends DataGrid -{ - protected $index = 'id'; //the column that needs to be treated as index column - - protected $sortOrder = 'desc'; //asc or desc - - protected $itemsPerPage = 10; - - public function prepareQueryBuilder() - { - $queryBuilder = DB::table('customer_documents') - ->addSelect('id', 'name', 'status', 'type'); - - $this->setQueryBuilder($queryBuilder); - } - - public function addColumns() - { - $this->addColumn([ - 'index' => 'id', - 'label' => trans('admin::app.datagrid.id'), - 'type' => 'number', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'name', - 'label' => trans('admin::app.datagrid.name'), - 'type' => 'string', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'status', - 'label' => trans('admin::app.datagrid.status'), - 'type' => 'string', - 'sortable' => true, - 'searchable' => false, - 'filterable' => false, - 'wrapper' => function($value) { - if ($value->status == 1) - return 'Active'; - else - return 'Inactive'; - } - ]); - - $this->addColumn([ - 'index' => 'type', - 'label' => trans('admin::app.datagrid.type'), - 'type' => 'string', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - } - - public function prepareActions() { - $this->addAction([ - 'type' => 'Edit', - 'method' => 'GET', - 'route' => 'admin.documents.edit', - 'icon' => 'icon pencil-lg-icon' - ]); - - $this->addAction([ - 'type' => 'Delete', - 'method' => 'POST', // use GET request only for redirect purposes - 'route' => 'admin.documents.delete', - 'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'product']), - 'icon' => 'icon trash-icon' - ]); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Database/migrations/2019_06_07_122059_customer_documents_table.php b/packages/Webkul/CustomerDocument/src/Database/migrations/2019_06_07_122059_customer_documents_table.php deleted file mode 100644 index 2a8b61f42..000000000 --- a/packages/Webkul/CustomerDocument/src/Database/migrations/2019_06_07_122059_customer_documents_table.php +++ /dev/null @@ -1,39 +0,0 @@ -increments('id'); - $table->string('name'); - $table->text('description')->nullable(); - $table->boolean('status')->default(1); - $table->string('type'); - $table->string('path'); - $table->integer('customer_id')->default(0); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('customer_documents'); - } -} diff --git a/packages/Webkul/CustomerDocument/src/Http/Controllers/Admin/DocumentController.php b/packages/Webkul/CustomerDocument/src/Http/Controllers/Admin/DocumentController.php deleted file mode 100644 index 89fd194ff..000000000 --- a/packages/Webkul/CustomerDocument/src/Http/Controllers/Admin/DocumentController.php +++ /dev/null @@ -1,280 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class DocumentController extends Controller -{ - /** - * Contains route related configuration - * - * @var array - */ - protected $_config; - - /** - * CustomerDocumentRepository object - * - * @var array - */ - protected $customerDocument; - - /** - * Create a new controller instance. - * - * @param \Webkul\Customer\Repositories\CustomerDocumentRepository $customerDocument - */ - public function __construct(CustomerDocumentRepository $customerDocument) - { - $this->_config = request('_config'); - - $this->customerDocument = $customerDocument; - } - - /** - * Display a listing of the resource. - * - * @return \Illuminate\Http\Response - */ - public function index() - { - return view($this->_config['view']); - } - - /** - * Show the form for creating a new resource. - * - * @return \Illuminate\Http\Response - */ - public function create() - { - return view($this->_config['view']); - } - - /** - * Store a newly created resource in storage. - * - * @return \Illuminate\Http\Response - */ - public function store() - { - $excludedExtensions = core()->getConfigData('customer.settings.documents.allowed_extensions'); - $maxSize = core()->getConfigData('customer.settings.documents.size'); - - if ($excludedExtensions != '') { - $valid_extension = explode(',', $excludedExtensions); - } else { - $valid_extension = []; - } - - $originalSize = filesize(request()->file('file')) / 1000; - - if ($maxSize != null) { - $maxSize = (float) $maxSize * 1000; - } else { - $maxSize = 5 * 1024; - } - - if (! ($originalSize <= $maxSize) || $originalSize == 0) { - session()->flash('error', trans('customerdocument::app.admin.customers.size-error')); - - return redirect()->back(); - } - - if (! empty($valid_extension) && (! in_array(request()->file('file')->getClientOriginalExtension(), $valid_extension))) { - session()->flash('error', trans('customerdocument::app.admin.customers.upload-error')); - - return redirect()->back(); - } else { - try { - $data = request()->all(); - - if (request()->hasFile('file')) { - $dir = 'customer'; - $document['path'] = request()->file('file')->store($dir); - } - - if (isset($data['customer_id'])) { - $document['customer_id'] = $data['customer_id']; - } else { - $document['customer_id'] = 0; - } - - if (isset($data['status'])) { - $document['status'] = $data['status']; - } else { - $document['status'] = 1; - } - - $document['name'] = $data['name']; - $document['description'] = $data['description']; - $document['type'] = $data['type']; - - $this->customerDocument->create($document); - - session()->flash('success', trans('customerdocument::app.admin.customers.upload-success')); - - if (isset($data['customer_id'])) { - return redirect()->back(); - } - - return redirect()->route($this->_config['redirect']); - } catch (\Exception $e) { - session()->flash('error', $e); - - return redirect()->back(); - } - } - } - - /** - * Show the form for editing the specified resource. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function edit($id) - { - $document = $this->customerDocument->findOrFail($id); - - return view($this->_config['view'], compact('document')); - } - - /** - * Update the specified resource in storage. - * - * @param \Illuminate\Http\Request $request - * @param int $id - * @return \Illuminate\Http\Response - */ - public function update(Request $request, $id) - { - $excludedExtensions = core()->getConfigData('customer.settings.documents.allowed_extensions'); - $maxSize = core()->getConfigData('customer.settings.documents.size'); - - if ($excludedExtensions != '') { - $valid_extension = explode(',', $excludedExtensions); - } else { - $valid_extension = []; - } - - $originalSize = filesize(request()->file('file')) / 1000; - - if ($maxSize != null) { - $maxSize = (float) $maxSize * 1000; - } else { - $maxSize = 5 * 1024; - } - - if (! ($originalSize <= $maxSize)) { - session()->flash('error', trans('customerdocument::app.admin.customers.size-error')); - - return redirect()->back(); - } - - if (! empty($valid_extension) && (! in_array(request()->file('file')->getClientOriginalExtension(), $valid_extension))) { - session()->flash('error', trans('customerdocument::app.admin.customers.upload-error')); - - return redirect()->back(); - } else { - try { - $data = request()->all(); - - $uploaDocument = $this->customerDocument->findOrfail($id); - - if (request()->hasFile('file')) { - $dir = 'customer'; - $document['path'] = request()->file('file')->store($dir); - Storage::delete($uploaDocument['path']); - } - - $document['name'] = $data['name']; - $document['description'] = $data['description']; - $document['type'] = $data['type']; - $document['status'] = $data['status']; - - $this->customerDocument->update($document, $id); - - session()->flash('success', trans('customerdocument::app.admin.customers.upload-success')); - - return redirect()->route($this->_config['redirect']); - } catch (\Exception $e) { - session()->flash('error', $e); - - return redirect()->back(); - } - } - } - - /** - * Remove the specified resource from storage.. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function destroy($id) - { - $document = $this->customerDocument->findOrfail($id); - - try { - $this->customerDocument->delete($id); - - Storage::delete($document['path']); - - session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Document'])); - - return response()->json(['message' => true], 200); - } catch (\Exception $e) { - session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Document'])); - } - - return response()->json(['message' => false], 400); - } - - /** - * download the file for the specified resource. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function download($id) - { - $document = $this->customerDocument->findOrfail($id); - - $extension = explode('.', $document['path']); - - $name = $document['name'].'.'.end($extension); - - return Storage::download($document['path'], $name); - } - - /** - * Remove the specified resource from storage.. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function delete($id) - { - $document = $this->customerDocument->findOrfail($id); - - $this->customerDocument->delete($id); - - Storage::delete($document['path']); - - session()->flash('success', trans('customerdocument::app.admin.customers.delete-success')); - - return redirect()->back(); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Http/Controllers/Controller.php b/packages/Webkul/CustomerDocument/src/Http/Controllers/Controller.php deleted file mode 100644 index ec04aa1e9..000000000 --- a/packages/Webkul/CustomerDocument/src/Http/Controllers/Controller.php +++ /dev/null @@ -1,13 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class DocumentController extends Controller -{ - /** - * Contains route related configuration - * - * @var array - */ - protected $_config; - - /** - * CustomerDocumentRepository object - * - * @var array - */ - protected $customerDocument; - - /** - * Create a new controller instance. - * - * @param \Webkul\Customer\Repositories\CustomerDocumentRepository $customerDocument - */ - public function __construct(CustomerDocumentRepository $customerDocument) - { - $this->_config = request('_config'); - - $this->customerDocument = $customerDocument; - } - - /** - * Display a listing of the resource. - * - * @return \Illuminate\Http\Response - */ - public function index() - { - $documents = $this->customerDocument->findWhere(['customer_id' => auth()->guard('customer')->user()->id]); - - return view($this->_config['view'], compact('documents')); - } - - /** - * upload document - * - * @return \Illuminate\Http\Response - */ - public function upload() - { - $excludedExtensions = core()->getConfigData('customer.settings.documents.allowed_extensions'); - $maxSize = core()->getConfigData('customer.settings.documents.size'); - - $valid_extension = explode(',', $excludedExtensions); - - $originalSize = filesize(request()->file('file')) / 1000; - - if ($maxSize != null) { - $maxSize = (float) $maxSize * 1000; - } else { - $maxSize = 5 * 1024; - } - - if (! ($originalSize <= $maxSize) || $originalSize == 0) { - session()->flash('error', trans('customerdocument::app.admin.customers.size-error')); - - return redirect()->back(); - } - - if (! in_array(request()->file('file')->getClientOriginalExtension(), $valid_extension)) { - session()->flash('error', trans('customerdocument::app.admin.customers.upload-error')); - - return redirect()->back(); - } else { - try { - $data = request()->all(); - - if (request()->hasFile('file')) { - $dir = 'customer'; - $document['path'] = request()->file('file')->store($dir); - } - - $document['customer_id'] = $data['customer_id']; - $document['name'] = $data['name']; - $document['description'] = $data['description']; - - $this->customerDocument->create($document); - - session()->flash('success', trans('customerdocument::app.admin.customers.upload-success')); - - return redirect()->back(); - } catch (\Exception $e) { - session()->flash('error', $e); - - return redirect()->back(); - } - } - } - - /** - * download the file for the specified resource. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function download($id) - { - $document = $this->customerDocument->findOrfail($id); - - return Storage::download($document['path'], $document['name']); - } - - /** - * Remove the specified resource from storage.. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function delete($id) - { - $document = $this->customerDocument->findOrfail($id); - - $this->customerDocument->delete($id); - - Storage::delete($document['path']); - - session()->flash('success', trans('customerdocument::app.admin.customers.delete-success')); - - return redirect()->back(); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Http/Controllers/Shop/DocumentController.php b/packages/Webkul/CustomerDocument/src/Http/Controllers/Shop/DocumentController.php deleted file mode 100644 index bbc912467..000000000 --- a/packages/Webkul/CustomerDocument/src/Http/Controllers/Shop/DocumentController.php +++ /dev/null @@ -1,83 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class DocumentController extends Controller -{ - /** - * Contains route related configuration - * - * @var array - */ - protected $_config; - - /** - * CustomerDocumentRepository object - * - * @var array - */ - protected $customerDocument; - - /** - * Create a new controller instance. - * - * @param \Webkul\Customer\Repositories\CustomerDocumentRepository $customerDocument - */ - public function __construct(CustomerDocumentRepository $customerDocument) - { - $this->_config = request('_config'); - - $this->customerDocument = $customerDocument; - } - - /** - * Display a listing of the resource. - * - * @return \Illuminate\Http\Response - */ - public function index() - { - $documents = $this->customerDocument->getDocuments(auth()->guard('customer')->user()->id); - - $productDocument = $marketingDocument = []; - - foreach($documents as $document) { - if ($document->type == 'marketing') { - $marketingDocument[] = $document; - } else if ($document->type == 'product') { - $productDocument[] = $document; - } - } - - return view($this->_config['view'], compact('productDocument', 'marketingDocument')); - } - - /** - * download the file for the specified resource. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function download($id) - { - $document = $this->customerDocument->findOrfail($id); - - $extension = explode('.', $document['path']); - - $name = $document['name'].'.'.end($extension); - - return Storage::download($document['path'], $name); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Http/admin-routes.php b/packages/Webkul/CustomerDocument/src/Http/admin-routes.php deleted file mode 100644 index a52e575b4..000000000 --- a/packages/Webkul/CustomerDocument/src/Http/admin-routes.php +++ /dev/null @@ -1,41 +0,0 @@ - ['web']], function () { - - Route::prefix('admin')->group(function () { - - Route::group(['middleware' => ['admin']], function () { - - //document Management Routes - Route::get('documents', 'Webkul\CustomerDocument\Http\Controllers\Admin\DocumentController@index')->defaults('_config',[ - 'view' => 'customerdocument::admin.documents.index' - ])->name('admin.documents.index'); - - Route::get('documents/create', 'Webkul\CustomerDocument\Http\Controllers\Admin\DocumentController@create')->defaults('_config',[ - 'view' => 'customerdocument::admin.documents.create' - ])->name('admin.documents.create'); - - Route::post('documents/create', 'Webkul\CustomerDocument\Http\Controllers\Admin\DocumentController@store')->defaults('_config',[ - 'redirect' => 'admin.documents.index' - ])->name('admin.documents.store'); - - Route::get('documents/edit/{id}', 'Webkul\CustomerDocument\Http\Controllers\Admin\DocumentController@edit')->defaults('_config',[ - 'view' => 'customerdocument::admin.documents.edit' - ])->name('admin.documents.edit'); - - Route::put('documents/edit/{id}', 'Webkul\CustomerDocument\Http\Controllers\Admin\DocumentController@update')->defaults('_config',[ - 'redirect' => 'admin.documents.index' - ])->name('admin.documents.update'); - - Route::post('documents/delete/{id}', 'Webkul\CustomerDocument\Http\Controllers\Admin\DocumentController@destroy')->name('admin.documents.delete'); - - Route::get('download-document/{id}', 'Webkul\CustomerDocument\Http\Controllers\Admin\DocumentController@download')->defaults('_config', [ - 'view' => 'customerdocument::admin.documents.edit' - ])->name('admin.documents.download'); - - Route::get('customer-documents/delete/{id}', 'Webkul\CustomerDocument\Http\Controllers\Admin\DocumentController@delete')->name('admin.customer.documents.delete'); - }); - - }); - -}); diff --git a/packages/Webkul/CustomerDocument/src/Http/front-routes.php b/packages/Webkul/CustomerDocument/src/Http/front-routes.php deleted file mode 100644 index 17510c44c..000000000 --- a/packages/Webkul/CustomerDocument/src/Http/front-routes.php +++ /dev/null @@ -1,21 +0,0 @@ - ['web', 'locale', 'theme', 'currency']], function () { - - Route::prefix('customer')->group(function () { - - Route::group(['middleware' => ['customer']], function () { - - Route::prefix('account')->group(function () { - - Route::get('documents', 'Webkul\CustomerDocument\Http\Controllers\Shop\DocumentController@index')->defaults('_config', [ - 'view' => 'customerdocument::shop.customers.document' - ])->name('customer.documents.index'); - - Route::get('download-document/{id}', 'Webkul\CustomerDocument\Http\Controllers\Shop\DocumentController@download')->defaults('_config', [ - 'redirect' => 'admin.customer.index' - ])->name('customer.document.download'); - }); - }); - }); -}); \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php b/packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php deleted file mode 100644 index f31502d1d..000000000 --- a/packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php +++ /dev/null @@ -1,13 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Providers/CustomerDocumentServiceProvider.php b/packages/Webkul/CustomerDocument/src/Providers/CustomerDocumentServiceProvider.php deleted file mode 100644 index 5a83d91ba..000000000 --- a/packages/Webkul/CustomerDocument/src/Providers/CustomerDocumentServiceProvider.php +++ /dev/null @@ -1,71 +0,0 @@ -loadRoutesFrom(__DIR__ . '/../Http/admin-routes.php'); - - $this->loadRoutesFrom(__DIR__ . '/../Http/front-routes.php'); - - $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'customerdocument'); - - $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'customerdocument'); - - $this->loadMigrationsFrom(__DIR__ . '/../Database/migrations'); - - $this->publishes([ - dirname(__DIR__) . '/Resources/assets/sass/customerdocument.scss' => base_path('public/vendor/webkul/customerdocument/assets/css/customerdocument.css') - ]); - - \Webkul\CustomerDocument\Models\CustomerDocument::observe(\Webkul\CustomerDocument\Observers\CustomerDocumentObserver::class); - - $this->app->register(ModuleServiceProvider::class); - - $this->app->register(EventServiceProvider::class); - } - - /** - * Register services. - * - * @return void - */ - public function register() - { - $this->registerConfig(); - } - - /** - * Register package config. - * - * @return void - */ - protected function registerConfig() - { - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/menu.php', 'menu.admin' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/customer-menu.php', 'menu.customer' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/system.php', 'core' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/acl.php', 'acl' - ); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Providers/EventServiceProvider.php b/packages/Webkul/CustomerDocument/src/Providers/EventServiceProvider.php deleted file mode 100644 index f841c00e7..000000000 --- a/packages/Webkul/CustomerDocument/src/Providers/EventServiceProvider.php +++ /dev/null @@ -1,25 +0,0 @@ -addTemplate('customerdocument::style'); - }); - - Event::listen('bagisto.admin.customer.edit.after', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('customerdocument::admin.customers.upload'); - }); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Providers/ModuleServiceProvider.php b/packages/Webkul/CustomerDocument/src/Providers/ModuleServiceProvider.php deleted file mode 100644 index 49aaf5ace..000000000 --- a/packages/Webkul/CustomerDocument/src/Providers/ModuleServiceProvider.php +++ /dev/null @@ -1,12 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CustomerDocumentRepository extends Repository -{ - /** - * Specify Model class name - * - * @return mixed - */ - function model() - { - return 'Webkul\CustomerDocument\Contracts\CustomerDocument'; - } - - /** - * get All Documents - * - * @param int $id - * @return array - */ - function getDocuments($id) - { - return $this->model - ->whereIn('customer_id', [$id, 0]) - ->where('status', '1') - ->get(); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/assets/images/Icon-Document-Active.svg b/packages/Webkul/CustomerDocument/src/Resources/assets/images/Icon-Document-Active.svg deleted file mode 100644 index b5d872c99..000000000 --- a/packages/Webkul/CustomerDocument/src/Resources/assets/images/Icon-Document-Active.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - Icon-Document-Active - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/assets/images/Icon-Document.svg b/packages/Webkul/CustomerDocument/src/Resources/assets/images/Icon-Document.svg deleted file mode 100644 index 864a1c4c1..000000000 --- a/packages/Webkul/CustomerDocument/src/Resources/assets/images/Icon-Document.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - Icon-Document - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/assets/sass/customerdocument.scss b/packages/Webkul/CustomerDocument/src/Resources/assets/sass/customerdocument.scss deleted file mode 100644 index 11572a59e..000000000 --- a/packages/Webkul/CustomerDocument/src/Resources/assets/sass/customerdocument.scss +++ /dev/null @@ -1,23 +0,0 @@ -.icon { - display: inline-block; - background-size: cover; -} - -%menu-properties { - width: 48px; - height: 48px; - display: inline-block; - background-size: cover; -} - -.document-icon { - @extend %menu-properties; - background-image: url("../images/Icon-Document.svg"); -} - -.active { - .document-icon { - @extend %menu-properties; - background-image: url("../images/Icon-Document-Active.svg"); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/lang/en/app.php b/packages/Webkul/CustomerDocument/src/Resources/lang/en/app.php deleted file mode 100644 index 8f54af8fc..000000000 --- a/packages/Webkul/CustomerDocument/src/Resources/lang/en/app.php +++ /dev/null @@ -1,41 +0,0 @@ -[ - 'customers' => [ - 'documents' => 'Documents', - 'add-document' => 'Add Document', - 'submit' => 'Submit', - 'file' => 'File', - 'name' => 'Name', - 'download' => 'Download', - 'upload-success' => 'Document uploaded successfully.', - 'delete-success' => 'Document deleted successfully.', - 'empty' => 'You Do not Have Any Documents.', - 'allowed-types' => 'Allowed types (ex: csv,xls,doc,docx,etc)', - 'allowed-types-one' => 'Allowed types: ', - 'file-type' => 'csv, xls, xlsx, ods, png, jpeg, zip.', - 'upload-error' => 'Invalid File Format', - 'size-error' => 'File exceeds allowed size limits', - 'description' => 'Description', - 'size' => 'Max Size Allowed (MB)', - 'any-type' => 'All file types are allowed' - ], - - 'documents' => [ - 'title' => 'Documents', - 'add-document' => 'Add Document', - 'b2b-files' => 'B2B Files', - 'save-document' => 'Save Document', - 'type' => 'Type', - 'status' => 'Status', - 'active' => 'Active', - 'in-active' => 'Inactive', - 'product' => 'Product', - 'marketing' => 'Marketing', - 'other' => 'Other', - 'add-document' => 'Add Document', - 'edit-document' => 'Edit Document' - ], - ], -]; \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/views/admin/customers/upload.blade.php b/packages/Webkul/CustomerDocument/src/Resources/views/admin/customers/upload.blade.php deleted file mode 100644 index 7c4914412..000000000 --- a/packages/Webkul/CustomerDocument/src/Resources/views/admin/customers/upload.blade.php +++ /dev/null @@ -1,127 +0,0 @@ -findWhere(['customer_id' => $customer->id, 'status' => 1]); - -?> - -@section('css') - @parent - - -@stop - - -
- - - -
- - - - - - - - - - - - - @foreach ($documents as $document) - - - - - - - - @endforeach - -
{{ __('customerdocument::app.admin.customers.name') }}{{ __('customerdocument::app.admin.documents.type') }}{{ __('customerdocument::app.admin.customers.description') }}{{ __('customerdocument::app.admin.customers.download') }}
{{ $document->name }}{{ $document->type }}{{ $document->description }} - - - - - - - -
-
- -
-
- - -

{{ __('customerdocument::app.admin.customers.add-document') }}

- -
-
- @csrf() - - - -
- - - @{{ errors.first('name') }} -
- -
- - - @{{ errors.first('type') }} -
- -
- - - - - @{{ errors.first('description') }} -
- -
- - - - - @php - $allowedTypes = core()->getConfigData('customer.settings.documents.allowed_extensions'); - @endphp - - {{ __('customerdocument::app.admin.customers.allowed-types-one') }} - - - @if ($allowedTypes != null) - {{ $allowedTypes }} - @else - {{ __('customerdocument::app.admin.customers.any-type') }} - @endif - - - - @{{ errors.first('file') }} -
- - - -
-
-
\ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/create.blade.php b/packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/create.blade.php deleted file mode 100644 index f6506cefd..000000000 --- a/packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/create.blade.php +++ /dev/null @@ -1,98 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('customerdocument::app.admin.documents.add-document') }} -@stop - -@section('content') -
-
- - - -
- -
- @csrf() - -
- - - @{{ errors.first('name') }} -
- -
- - - @{{ errors.first('type') }} -
- -
- - - @{{ errors.first('status') }} -
- -
- - - - - @{{ errors.first('description') }} -
- -
- - - - - @php - $allowedTypes = core()->getConfigData('customer.settings.documents.allowed_extensions'); - @endphp - -
- {{ __('customerdocument::app.admin.customers.allowed-types-one') }} - - - @if ($allowedTypes != null) - {{ $allowedTypes }} - @else - {{ __('customerdocument::app.admin.customers.any-type') }} - @endif - - - -
- - @{{ errors.first('file') }} -
- -
-
-
-
- -@stop \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/edit.blade.php b/packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/edit.blade.php deleted file mode 100644 index 601523c92..000000000 --- a/packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/edit.blade.php +++ /dev/null @@ -1,104 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('customerdocument::app.admin.documents.edit-document') }} -@stop - -@section('content') -
-
- - - -
- -
- @csrf() - - - -
- - - @{{ errors.first('name') }} -
- -
- - - @{{ errors.first('type') }} -
- -
- - - @{{ errors.first('status') }} -
- -
- - - - - @{{ errors.first('description') }} -
- -
- - - - - - - - - @php - $allowedTypes = core()->getConfigData('customer.settings.documents.allowed_extensions'); - @endphp - -
- {{ __('customerdocument::app.admin.customers.allowed-types-one') }} - - - @if ($allowedTypes != null) - {{ $allowedTypes }} - @else - {{ __('customerdocument::app.admin.customers.any-type') }} - @endif - - - -
- - @{{ errors.first('file') }} -
- -
-
-
-
- -@stop \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/index.blade.php b/packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/index.blade.php deleted file mode 100644 index aace174b5..000000000 --- a/packages/Webkul/CustomerDocument/src/Resources/views/admin/documents/index.blade.php +++ /dev/null @@ -1,29 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('customerdocument::app.admin.documents.title') }} -@stop - -@section('content') - -
- - -
- @inject('customerDocumentGrid','Webkul\CustomerDocument\DataGrids\CustomerDocumentDataGrid') - - {!! $customerDocumentGrid->render() !!} -
-
- -@stop - diff --git a/packages/Webkul/CustomerDocument/src/Resources/views/shop/customers/document.blade.php b/packages/Webkul/CustomerDocument/src/Resources/views/shop/customers/document.blade.php deleted file mode 100644 index 3f33c97aa..000000000 --- a/packages/Webkul/CustomerDocument/src/Resources/views/shop/customers/document.blade.php +++ /dev/null @@ -1,117 +0,0 @@ -@extends('shop::layouts.master') - -@section('page_title') - {{ __('customerdocument::app.admin.customers.documents') }} -@endsection - -@section('content-wrapper') - - - -@endsection - -@push('scripts') - - - -@endpush \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Resources/views/style.blade.php b/packages/Webkul/CustomerDocument/src/Resources/views/style.blade.php deleted file mode 100644 index 0107c1567..000000000 --- a/packages/Webkul/CustomerDocument/src/Resources/views/style.blade.php +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/webpack.mix.js b/packages/Webkul/CustomerDocument/webpack.mix.js deleted file mode 100644 index a194837bb..000000000 --- a/packages/Webkul/CustomerDocument/webpack.mix.js +++ /dev/null @@ -1,18 +0,0 @@ -const { mix } = require("laravel-mix"); -require("laravel-mix-merge-manifest"); - -// var publicPath = 'publishable/assets'; -var publicPath = "../../../public/vendor/webkul/customerdocument/assets"; - -mix.setPublicPath(publicPath).mergeManifest(); -mix.disableNotifications(); - - mix.copy(__dirname + "/src/Resources/assets/images", publicPath + "/images/") - .sass(__dirname + "/src/Resources/assets/sass/customerdocument.scss", "css/customerdocument.css") - .options({ - processCssUrls: false - }); - -if (mix.inProduction()) { - mix.version(); -} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171024_create_customer_group_products_table.php b/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171024_create_customer_group_products_table.php deleted file mode 100644 index 461b1eeeb..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171024_create_customer_group_products_table.php +++ /dev/null @@ -1,34 +0,0 @@ -integer('customer_group_id')->unsigned(); - $table->integer('product_id')->unsigned(); - - $table->foreign('customer_group_id')->references('id')->on('customer_groups')->onDelete('cascade'); - $table->foreign('product_id')->references('id')->on('products')->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('customer_group_products'); - } -} diff --git a/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171240_create_customer_group_categories_table.php b/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171240_create_customer_group_categories_table.php deleted file mode 100644 index 6886b95ad..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Database/Migrations/2019_06_14_171240_create_customer_group_categories_table.php +++ /dev/null @@ -1,34 +0,0 @@ -integer('customer_group_id')->unsigned(); - $table->integer('category_id')->unsigned(); - - $table->foreign('customer_group_id')->references('id')->on('customer_groups')->onDelete('cascade'); - $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('customer_group_categories'); - } -} diff --git a/packages/Webkul/CustomerGroupCatalog/src/Http/Controllers/Admin/CustomerGroupController.php b/packages/Webkul/CustomerGroupCatalog/src/Http/Controllers/Admin/CustomerGroupController.php deleted file mode 100644 index eb2d12af5..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Http/Controllers/Admin/CustomerGroupController.php +++ /dev/null @@ -1,140 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CustomerGroupController extends Controller -{ - /** - * Contains route related configuration - * - * @var array - */ - protected $_config; - - /** - * CustomerGroupRepository object - * - * @var object - */ - protected $customerGroupRepository; - - /** - * ProductRepository object - * - * @var object - */ - protected $productRepository; - - /** - * CategoryRepository object - * - * @var object - */ - protected $categoryRepository; - - /** - * Create a new controller instance. - * - * @param \Webkul\Customer\Repositories\CustomerGroupRepository $customerGroupRepositor; - * @param \Webkul\Product\Repositories\ProductRepository $productRepository; - * @param \Webkul\Category\Repositories\CategoryRepository $categoryRepository; - * @return void - */ - public function __construct( - CustomerGroupRepository $customerGroupRepository, - ProductRepository $productRepository, - CategoryRepository $categoryRepository - ) - { - $this->_config = request('_config'); - - $this->customerGroupRepository = $customerGroupRepository; - - $this->productRepository = $productRepository; - - $this->categoryRepository = $categoryRepository; - } - - /** - * Search for catalog - * - * @return \Illuminate\Http\Response - */ - public function search() - { - $results = []; - - if (request()->input('type') == 'products') { - foreach ($this->productRepository->searchProductByAttribute(request()->input('query')) as $row) { - $results[] = [ - 'id' => $row->product_id, - 'name' => $row->name, - ]; - } - } else { - foreach ($this->categoryRepository->search(request()->input('query')) as $row) { - $results[] = [ - 'id' => $row->id, - 'name' => $row->name, - ]; - } - } - - return response()->json($results); - } - - /** - * Store a newly created resource in storage. - * - * @return \Illuminate\Http\Response - */ - public function store() - { - $this->validate(request(), [ - 'name' => 'string|required', - 'code' => 'string|unique:customer_groups,code' - ]); - - $data = request()->all(); - - $data['is_user_defined'] = 1; - - $this->customerGroupRepository->create($data); - - session()->flash('success', trans('admin::app.response.create-success', ['name' => 'Customer Group'])); - - return redirect()->route($this->_config['redirect']); - } - - /** - * Update the specified resource in storage. - * - * @param \Illuminate\Http\Request $request - * @param int $id - * @return \Illuminate\Http\Response - */ - public function update(Request $request, $id) - { - $this->validate(request(), [ - 'name' => 'string|required', - ]); - - $this->customerGroupRepository->update(request()->all(), $id); - - session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Customer Group'])); - - return redirect()->route($this->_config['redirect']); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Http/admin-routes.php b/packages/Webkul/CustomerGroupCatalog/src/Http/admin-routes.php deleted file mode 100644 index 2e57739b0..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Http/admin-routes.php +++ /dev/null @@ -1,23 +0,0 @@ - ['web']], function () { - - Route::prefix('admin')->group(function () { - - Route::group(['middleware' => ['admin']], function () { - - //Seller routes - Route::get('groups/catalog/search', 'Webkul\CustomerGroupCatalog\Http\Controllers\Admin\CustomerGroupController@search')->name('admin.customer_group_catalog.search.catalog'); - - Route::post('groups/create', 'Webkul\CustomerGroupCatalog\Http\Controllers\Admin\CustomerGroupController@store')->defaults('_config',[ - 'redirect' => 'admin.groups.index' - ])->name('admin.customer_group_catalog.store'); - - Route::put('groups/edit/{id}', 'Webkul\CustomerGroupCatalog\Http\Controllers\Admin\CustomerGroupController@update')->defaults('_config',[ - 'redirect' => 'admin.groups.index' - ])->name('admin.customer_group_catalog.update'); - }); - - }); - -}); \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Models/CustomerGroup.php b/packages/Webkul/CustomerGroupCatalog/src/Models/CustomerGroup.php deleted file mode 100644 index 08e59b146..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Models/CustomerGroup.php +++ /dev/null @@ -1,26 +0,0 @@ -belongsToMany(ProductProxy::modelClass(), 'customer_group_products'); - } - - /** - * The categories that belong to the customer group. - */ - public function categories() - { - return $this->belongsToMany(CategoryProxy::modelClass(), 'customer_group_categories'); - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Observers/CustomerGroupObserver.php b/packages/Webkul/CustomerGroupCatalog/src/Observers/CustomerGroupObserver.php deleted file mode 100644 index f182d7a12..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Observers/CustomerGroupObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php b/packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php deleted file mode 100755 index d0f682a70..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Providers/CustomerGroupCatalogServiceProvider.php +++ /dev/null @@ -1,38 +0,0 @@ -loadRoutesFrom(__DIR__ . '/../Http/admin-routes.php'); - - $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); - - $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'customergroupcatalog'); - - \Webkul\CustomerGroupCatalog\Models\CustomerGroup::observe(\Webkul\CustomerGroupCatalog\Observers\CustomerGroupObserver::class); - - $this->publishes([ - __DIR__ . '/../Resources/views/admin/customers/groups' => resource_path('views/vendor/admin/customers/groups'), - __DIR__ . '/../Resources/views/shop/layouts' => resource_path('views/vendor/shop/layouts'), - ]); - } - - /** - * Register services. - * - * @return void - */ - public function register() - { - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php b/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php deleted file mode 100644 index dbd9e3283..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Repositories/CategoryRepository.php +++ /dev/null @@ -1,129 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CategoryRepository extends BaseCategoryRepository -{ - /** - * Search Category - * - * @return Collection - */ - public function search($term) - { - return $this->getModel()->join('category_translations', function ($join) { - $join->on('categories.id', 'category_translations.category_id') - ->where('category_translations.locale', app()->getLocale()) - ->where('category_translations.name', 'like', '%' . urldecode(request()->input('query')) . '%'); - }) - ->select('categories.*') - ->groupBy('categories.id') - ->get(); - } - - /** - * get visible category tree - * - * @param integer $id - * @return mixed - */ - public function getVisibleCategoryTree($id = null) - { - static $categories = []; - - if (array_key_exists($id, $categories)) - return $categories[$id]; - - $customer = auth()->guard(request()->has('token') ? 'api' : 'customer')->user(); - - $categoryIds = []; - $showCategories = []; - $parentCategoryIds = []; - - if (! $customer) { - $categories = app('Webkul\CustomerGroupCatalog\Repositories\CustomerGroupRepository')->findOneByField('code', 'guest')->categories()->get(); - - $categoryIds = app('Webkul\CustomerGroupCatalog\Repositories\CustomerGroupRepository')->findOneByField('code', 'guest')->categories()->pluck('id')->toArray(); - - $showCategories = $this->getShowAbleCatyegory($categories, $categoryIds); - } else { - if ($customer->group) { - $categories = app('Webkul\CustomerGroupCatalog\Repositories\CustomerGroupRepository')->find($customer->group->id)->categories()->get(); - - $categoryIds = app('Webkul\CustomerGroupCatalog\Repositories\CustomerGroupRepository')->find($customer->group->id)->categories()->pluck('id')->toArray(); - - $showCategories = $this->getShowAbleCatyegory($categories, $categoryIds); - } - } - - if (count($showCategories)) { - $categories[$id] = $id - ? $this->model::orderBy('position', 'ASC')->where('status', 1)->whereIn('id', $categoryIds)->descendantsOf($id)->toTree() - : $this->model::orderBy('position', 'ASC')->where('status', 1)->whereIn('id', $categoryIds)->get()->toTree(); - - return $categories[$id]; - } else { - // $categories[$id] = $id - // ? $this->model::orderBy('position', 'ASC')->where('status', 1)->descendantsOf($id)->toTree() - // : $this->model::orderBy('position', 'ASC')->where('status', 1)->get()->toTree(); - - return []; - } - } - - /** - * get show able category - * - * @param integer array - * @return array - */ - public function getShowAbleCatyegory($categories, $categoryIds) { - $showCategories = []; - - foreach ($categories as $category) { - $parentCategoryIds[] = $category->id; - $parentCategory = $this->getParentCategory($category->parent_id); - - $result = array_merge($parentCategoryIds, $parentCategory); - $count = 0; - foreach($result as $cat) { - if (in_array($cat, $categoryIds)) { - $count++; - } - } - - if (count($result) == $count) { - $showCategories[] = $category->id; - } - } - - return $showCategories; - } - - /** - * get parent category - * - * @param integer $id - * @return array - */ - public function getParentCategory($parentId) { - $parentCategories = []; - $parentCategory = $this->getModel()->where('id', $parentId)->first(); - - if ($parentCategory->parent_id != null) { - $parentCategories[] = array_push($parentCategories, $parentCategory->id); - $this->getParentCategory($parentCategory->parent_id); - } - - return $parentCategories; - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Repositories/CustomerGroupRepository.php b/packages/Webkul/CustomerGroupCatalog/src/Repositories/CustomerGroupRepository.php deleted file mode 100755 index 8772764e3..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Repositories/CustomerGroupRepository.php +++ /dev/null @@ -1,102 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CustomerGroupRepository extends Repository -{ - /** - * Specify Model class name - * - * @return mixed - */ - function model() - { - return 'Webkul\CustomerGroupCatalog\Models\CustomerGroup'; - } - - /** - * @param array $data - * @return mixed - */ - public function create(array $data) - { - $group = parent::create($data); - - if (isset($data['products'])) { - $group->products()->sync($data['products']); - } else { - $group->products()->sync([]); - } - - if (isset($data['categories'])) { - $group->categories()->sync($data['categories']); - } else { - $group->categories()->sync([]); - } - - return $group; - } - - /** - * @param array $data - * @param $id - * @param string $attribute - * @return mixed - */ - public function update(array $data, $id, $attribute = "id") - { - parent::update($data, $id, $attribute); - - $group = $this->find($id); - - if (isset($data['products'])) { - $group->products()->sync($data['products']); - } else { - $group->products()->sync([]); - } - - if (isset($data['categories'])) { - $group->categories()->sync($data['categories']); - } else { - $group->categories()->sync([]); - } - - return ; - } - - /** - * @return Collection - */ - public function getProducts($group) - { - $products = []; - - foreach ($this->find($group->id)->products as $product) { - $products[] = ['id' => $product->id, 'name' => $product->name]; - } - - return $products; - } - - /** - * @return Collection - */ - public function getCategories($group) - { - $categories = []; - - foreach ($this->find($group->id)->categories as $category) { - $categories[] = ['id' => $category->id, 'name' => $category->name]; - } - - return $categories; - } -} \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/lang/en/app.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/lang/en/app.php deleted file mode 100644 index 61a55e305..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Resources/lang/en/app.php +++ /dev/null @@ -1,14 +0,0 @@ - [ - 'groups' => [ - 'general' => 'General', - 'linked-product-categories' => 'Linked Categories', - 'categories' => 'Categories', - 'products' => 'Products', - 'search-hint' => 'Start typing name', - 'no-result-found' => 'Categories not found with same name.' - ] - ] -]; \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/create.blade.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/create.blade.php deleted file mode 100644 index d8fde03ef..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/create.blade.php +++ /dev/null @@ -1,217 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('admin::app.customers.groups.add-title') }} -@stop - -@section('content') -
-
- - - -
-
- @csrf() - - -
- -
- - - @{{ errors.first('code') }} -
- -
- - - @{{ errors.first('name') }} -
- -
-
- - -
- - - -
-
- -
-
- -
-
-@stop - -@push('scripts') - - - - -@endpush \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/edit.blade.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/edit.blade.php deleted file mode 100644 index d82c390ae..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/admin/customers/groups/edit.blade.php +++ /dev/null @@ -1,234 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('admin::app.customers.groups.edit-title') }} -@stop - -@section('content') -
-
- - - -
- -
- @csrf() - - - - -
- -
- - - - @{{ errors.first('code') }} -
- -
- - - @{{ errors.first('name') }} -
- -
- -
- - -
- - - -
-
-
-
-
-
-@stop - -@push('scripts') - - - - -@endpush \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/footer/footer.blade.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/footer/footer.blade.php deleted file mode 100755 index 2f8532d59..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/footer/footer.blade.php +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/header/nav-menu/navmenu.blade.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/header/nav-menu/navmenu.blade.php deleted file mode 100755 index e65090536..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/layouts/header/nav-menu/navmenu.blade.php +++ /dev/null @@ -1,137 +0,0 @@ -{!! view_render_event('bagisto.shop.layout.header.category.before') !!} - -getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) { - if ($category->slug) - array_push($categories, $category); -} - -?> - - - -{!! view_render_event('bagisto.shop.layout.header.category.after') !!} - - -@push('scripts') - - - - - - - - - - - -@endpush \ No newline at end of file diff --git a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/products/index.blade.php b/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/products/index.blade.php deleted file mode 100755 index 347e23722..000000000 --- a/packages/Webkul/CustomerGroupCatalog/src/Resources/views/shop/products/index.blade.php +++ /dev/null @@ -1,128 +0,0 @@ -@extends('shop::layouts.master') - -@section('page_title') - {{ $category->meta_title ?? $category->name }} -@stop - -@section('seo') - - -@stop - -@section('content-wrapper') - @inject ('productRepository', 'Webkul\Product\Repositories\ProductRepository') - -
- {!! view_render_event('bagisto.shop.products.index.before', ['category' => $category]) !!} - -
- - @if (in_array($category->display_mode, [null, 'products_only', 'products_and_description'])) - @include ('shop::products.list.layered-navigation') - @endif - -
display_mode == 'description_only') style="width: 100%" @endif> -
- @if (!is_null($category->image)) - - @endif -
- - @if (in_array($category->display_mode, [null, 'description_only', 'products_and_description'])) - @if ($category->description) -
- {!! $category->description !!} -
- @endif - @endif - - @if (in_array($category->display_mode, [null, 'products_only', 'products_and_description'])) - getAll($category->id); ?> - - @if ($products->count()) - - @include ('shop::products.list.toolbar') - - @inject ('toolbarHelper', 'Webkul\Product\Helpers\Toolbar') - - @if ($toolbarHelper->getCurrentMode() == 'grid') -
- @foreach ($products as $productFlat) - - @include ('shop::products.list.card', ['product' => $productFlat]) - - @endforeach -
- @else -
- @foreach ($products as $productFlat) - - @include ('shop::products.list.card', ['product' => $productFlat]) - - @endforeach -
- @endif - - {!! view_render_event('bagisto.shop.products.index.pagination.before', ['category' => $category]) !!} - -
- {{ $products->appends(request()->input())->links() }} -
- - {!! view_render_event('bagisto.shop.products.index.pagination.after', ['category' => $category]) !!} - - @else - -
-

{{ __('shop::app.products.whoops') }}

- -

- {{ __('shop::app.products.empty') }} -

-
- - @endif - @endif -
-
- - {!! view_render_event('bagisto.shop.products.index.after', ['category' => $category]) !!} -
-@stop - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/packages/Webkul/GTM/composer.json b/packages/Webkul/GTM/composer.json deleted file mode 100644 index d887d2a7a..000000000 --- a/packages/Webkul/GTM/composer.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "bagisto/laravel-gtm", - "license": "MIT", - "authors": [ - { - "name": "Prashant Singh", - "email": "prashant.singh852@webkul.com" - } - ], - "require": {}, - "autoload": { - "psr-4": { - "Webkul\\GTM\\": "src/" - } - }, - "extra": { - "laravel": { - "providers": [ - "Webkul\\GTM\\Providers\\GTMServiceProvider" - ], - - "aliases": { - } - } - }, - "minimum-stability": "dev" -} \ No newline at end of file diff --git a/packages/Webkul/GTM/readme.md b/packages/Webkul/GTM/readme.md deleted file mode 100644 index f93ddb239..000000000 --- a/packages/Webkul/GTM/readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# Introduction: -Bagisto webfont is dynamic implementation of google web fonts. It allows you to choose fonts from google fonts directly from your own Bagisto instance. Choose as many google fonts at once and customize your font for storefront or backend or both within few steps. - -# Feature of Bagisto webfont module - -* Allows you to activate and deactivate module. -* Allow a default font in case you have chosen none. -* Separate control for using font in admin panel or storefront. - -# Requirements -* Bagisto v0.1.7 or higher. - -# Note: -Before proceeding you need google fonts API key. You can get your own key by following instructions after opening the link below: - -> https://developers.google.com/fonts/docs/developer_api - -# Installation -* Extract contents of the zip file in the root of your Bagisto instance. -* Do entry in composer.json in psr-4 object: - -``` -"Webkul\\Webfont\\": "packages/Webkul/Webfont/src" -``` - -* Do entry in config/app.php, inside providers array preferably at the end of it: - -``` -Webkul\Webfont\Providers\WebfontServiceProvider::class -``` - -* Do entry in config\concord.php file: - -``` -\Webkul\Webfont\Providers\ModuleServiceProvider::class -``` - -* Run command below: -1. composer dump-autoload -> Proceed if there are no errors encountered - -2. php artisan migrate - -3. php artisan route:cache - -* You can now find the module configuration in admin panel under Configuration > General > Design. - -* In the configuration page, there is a field for API key which will require to enter your own Google Fonts Developer API key. - -* Find the module under CMS > Webfont. - -> Congrats, you are all set to use Google fonts from your Bagisto instance. diff --git a/packages/Webkul/GTM/src/Config/system.php b/packages/Webkul/GTM/src/Config/system.php deleted file mode 100644 index 735f46c1f..000000000 --- a/packages/Webkul/GTM/src/Config/system.php +++ /dev/null @@ -1,39 +0,0 @@ - 'general.gtm', - 'name' => 'gtm::app.gtm', - 'sort' => 3, - ], [ - 'key' => 'general.gtm.values', - 'name' => 'gtm::app.values', - 'sort' => 1, - 'fields' => [ - [ - 'name' => 'status', - 'title' => 'gtm::app.gtm-status', - 'type' => 'select', - 'options' => [ - [ - 'title' => 'Active', - 'value' => true - ], [ - 'title' => 'Inactive', - 'value' => false - ] - ], - - 'channel_based' => false, - 'locale_based' => false - ], [ - 'name' => 'container_id', - 'title' => 'gtm::app.container-id', - 'type' => 'text', - 'validation' => 'required', - 'channel_based' => false, - 'locale_based' => false - ] - ] - ] -]; \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Providers/EventServiceProvider.php b/packages/Webkul/GTM/src/Providers/EventServiceProvider.php deleted file mode 100644 index 6d056bfea..000000000 --- a/packages/Webkul/GTM/src/Providers/EventServiceProvider.php +++ /dev/null @@ -1,26 +0,0 @@ -addTemplate('gtm::head'); - }); - - Event::listen('bagisto.shop.layout.body.before', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('gtm::body'); - }); - } -} \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Providers/GTMServiceProvider.php b/packages/Webkul/GTM/src/Providers/GTMServiceProvider.php deleted file mode 100644 index c1de00f25..000000000 --- a/packages/Webkul/GTM/src/Providers/GTMServiceProvider.php +++ /dev/null @@ -1,45 +0,0 @@ -loadViewsFrom(__DIR__ . '/../Resources/views', 'gtm'); - - $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); - - $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'gtm'); - - $this->app->register(EventServiceProvider::class); - } - - /** - * Register services. - * - * @return void - */ - public function register() - { - $this->registerConfig(); - } - - /** - * Registers config - */ - protected function registerConfig() - { - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/system.php', 'core' - ); - } -} diff --git a/packages/Webkul/GTM/src/Resources/lang/en/app.php b/packages/Webkul/GTM/src/Resources/lang/en/app.php deleted file mode 100644 index 80084c573..000000000 --- a/packages/Webkul/GTM/src/Resources/lang/en/app.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Tag Manager', - 'container-id' => 'Container ID', - 'values' => 'Settings', - 'gtm-status' => 'Status' -]; \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/body.blade.php b/packages/Webkul/GTM/src/Resources/views/body.blade.php deleted file mode 100644 index b32f35172..000000000 --- a/packages/Webkul/GTM/src/Resources/views/body.blade.php +++ /dev/null @@ -1,21 +0,0 @@ -@if (core()->getConfigData('general.gtm.values.status')) - - - - @if (\Route::current()->getName() == 'shop.products.index') - @include('gtm::product') - @endif - - @if (\Route::current()->getName() == 'shop.categories.index') - @include('gtm::category') - @endif - - @if (\Route::current()->getName() == 'shop.checkout.cart.index') - @include('gtm::cart') - @endif - - @if (\Route::current()->getName() == 'shop.checkout.success') - @include('gtm::checkout-success') - @endif - -@endif \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/cart.blade.php b/packages/Webkul/GTM/src/Resources/views/cart.blade.php deleted file mode 100644 index b314c34b7..000000000 --- a/packages/Webkul/GTM/src/Resources/views/cart.blade.php +++ /dev/null @@ -1,50 +0,0 @@ -@inject ('priceHelper', 'Webkul\Product\Helpers\Price') - -@inject('productFlat', 'Webkul\Product\Repositories\ProductFlatRepository') - - \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/category.blade.php b/packages/Webkul/GTM/src/Resources/views/category.blade.php deleted file mode 100644 index 39cf462ca..000000000 --- a/packages/Webkul/GTM/src/Resources/views/category.blade.php +++ /dev/null @@ -1,92 +0,0 @@ -@inject ('priceHelper', 'Webkul\Product\Helpers\Price') - -@inject('productFlat', 'Webkul\Product\Repositories\ProductFlatRepository') - -@php - $uri = request()->getRequestUri(); - - $uri = explode('/', $uri); - - $slug = last($uri); - - $productRepository = app('Webkul\Product\Repositories\ProductRepository'); - - $categoryRepository = app('Webkul\Category\Repositories\CategoryRepository'); - - $category = $categoryRepository->findBySlugOrFail($slug); - - $products = $productRepository->getAll($category->id); - - $toolbarHelper = app('Webkul\Product\Helpers\Toolbar'); -@endphp - - \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/checkout-success.blade.php b/packages/Webkul/GTM/src/Resources/views/checkout-success.blade.php deleted file mode 100644 index a86ec76fa..000000000 --- a/packages/Webkul/GTM/src/Resources/views/checkout-success.blade.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/head.blade.php b/packages/Webkul/GTM/src/Resources/views/head.blade.php deleted file mode 100644 index 2eb537f67..000000000 --- a/packages/Webkul/GTM/src/Resources/views/head.blade.php +++ /dev/null @@ -1,3 +0,0 @@ -@if (core()->getConfigData('general.gtm.values.status')) - -@endif \ No newline at end of file diff --git a/packages/Webkul/GTM/src/Resources/views/product.blade.php b/packages/Webkul/GTM/src/Resources/views/product.blade.php deleted file mode 100644 index 089b36395..000000000 --- a/packages/Webkul/GTM/src/Resources/views/product.blade.php +++ /dev/null @@ -1,60 +0,0 @@ -@inject ('priceHelper', 'Webkul\Product\Helpers\Price') - -@inject('productFlat', 'Webkul\Product\Repositories\ProductFlatRepository') - -@php - $uri = request()->getRequestUri(); - - $uri = explode('/', $uri); - - $slug = last($uri); - - $product = $productFlat->findWhere([ - 'url_key' => $slug, - 'locale' => app()->getLocale(), - 'channel' => core()->getCurrentChannel()->code - ]); -@endphp - -@if (count($product)) - @php - $product = $product->first()->product; - - $category = $product->categories->first()->slug; - @endphp - - -@endif \ No newline at end of file diff --git a/packages/Webkul/PreOrder/package.json b/packages/Webkul/PreOrder/package.json deleted file mode 100644 index f080febb5..000000000 --- a/packages/Webkul/PreOrder/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "npm run development", - "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch-poll": "cross-env npm run watch -- --watch-poll --progress", - "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", - "prod": "npm run production", - "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" - }, - "devDependencies": { - "cross-env": "^5.1.4", - "laravel-mix": "^2.1", - "laravel-mix-merge-manifest": "^0.1.1", - "vue": "^2.1.10" - }, - "dependencies": { - } -} diff --git a/packages/Webkul/PreOrder/publishable/assets/css/preorder-admin.css b/packages/Webkul/PreOrder/publishable/assets/css/preorder-admin.css deleted file mode 100644 index e8dcd59ff..000000000 --- a/packages/Webkul/PreOrder/publishable/assets/css/preorder-admin.css +++ /dev/null @@ -1 +0,0 @@ -.preorder-icon{width:48px;height:48px;display:inline-block;background-size:cover;background-image:url("../images/Icon-Preorder.svg")}.active.preorder-icon,.active .preorder-icon{background-image:url("../images/Icon-Preorder-Active.svg")}.navbar-left{width:100px}.navbar-left ul.menubar li.menu-item{padding:10px 7px}.content-container{padding-left:100px}.preorder-info{padding:15px;width:auto;border:1px solid #d3d3d3;border-left:4px solid #0031f0;margin:15px 0}.pre-order-item-info .heading{font-weight:600;margin-bottom:10px;margin-top:10px;display:block}.pre-order-item-info .row{margin-bottom:5px;padding-left:10px;display:block}.pre-order-item-info .row:last-child{margin-bottom:0} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/publishable/assets/css/preorder.css b/packages/Webkul/PreOrder/publishable/assets/css/preorder.css deleted file mode 100644 index 1d6d36594..000000000 --- a/packages/Webkul/PreOrder/publishable/assets/css/preorder.css +++ /dev/null @@ -1 +0,0 @@ -.preorder-info{padding:15px;width:auto;border:1px solid #d3d3d3;border-left:4px solid #0031f0;margin:15px 0}.pre-order-item-info .heading{font-weight:600;margin-bottom:10px;margin-top:10px;display:block}.pre-order-item-info .row{margin-bottom:5px;display:block;padding:0!important;padding-left:10px!important}.pre-order-item-info .row:last-child{margin-bottom:0} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/publishable/assets/images/Icon-Preorder-Active.svg b/packages/Webkul/PreOrder/publishable/assets/images/Icon-Preorder-Active.svg deleted file mode 100644 index b16e78546..000000000 --- a/packages/Webkul/PreOrder/publishable/assets/images/Icon-Preorder-Active.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - Icon-Preorder-Active - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/PreOrder/publishable/assets/images/Icon-Preorder.svg b/packages/Webkul/PreOrder/publishable/assets/images/Icon-Preorder.svg deleted file mode 100644 index f5666d659..000000000 --- a/packages/Webkul/PreOrder/publishable/assets/images/Icon-Preorder.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - Icon-Preorder - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/PreOrder/publishable/assets/mix-manifest.json b/packages/Webkul/PreOrder/publishable/assets/mix-manifest.json deleted file mode 100644 index 0862fcdef..000000000 --- a/packages/Webkul/PreOrder/publishable/assets/mix-manifest.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "/css/preorder.css": "/css/preorder.css?id=eb619a72fbd2982b4cf1", - "/css/preorder-admin.css": "/css/preorder-admin.css?id=bb404f27ac5c0a5295ce" -} diff --git a/packages/Webkul/PreOrder/src/Commands/Console/GenerateData.php b/packages/Webkul/PreOrder/src/Commands/Console/GenerateData.php deleted file mode 100644 index f9c60b792..000000000 --- a/packages/Webkul/PreOrder/src/Commands/Console/GenerateData.php +++ /dev/null @@ -1,202 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class GenerateData extends Command -{ - /** - * Company Repository object - */ - protected $company; - - /** - * AttributeRepository object - */ - protected $attribute; - - /** - * AttributeFamilyRepository object - */ - protected $attributeFamily; - - /** - * Holds the execution signature of the command needed - * to be executed for generating super user - */ - protected $signature = 'preorder:install'; - - /** - * Will inhibit the description related to this - * command's role - */ - protected $description = 'Generates needed data for preorder module'; - - public function __construct(CompanyRepository $company, AttributeRepository $attribute, AttributeFamilyRepository $attributeFamily) - { - parent::__construct(); - - $this->company = $company; - - $this->attribute = $attribute; - - $this->attributeFamily = $attributeFamily; - } - - /** - * Does the all sought of lifting required to be performed for - * generating a super user - */ - public function handle() - { - $email = $this->ask('Please enter email?'); - - $data = [ - 'email' => $email - ]; - - $validator = Validator::make($data, [ - 'email' => 'required|email', - ]); - - if($validator->fails()) { - $this->comment('Email invalid, please enter try again.'); - - return false; - } - - $this->comment('You entered = '. $email); - - $password = $this->ask('Please enter password?'); - - $data = [ - 'password' => $password - ]; - - $validator = Validator::make($data, [ - 'password' => 'required|string|min:6' - ]); - - if ($validator->fails()) { - $this->comment('Password invalid, make sure password is atleast 6 characters of length.'); - - return false; - } - - if (auth('super-admin')->attempt([ - 'email' => $email, - 'password' => $password - ])) { - $this->comment('Generating preorder data....'); - - $this->generate(); - - auth()->guard('super-admin')->logout(); - - $this->comment('Done'); - } else { - $this->comment('Wrong credentials entered'); - } - } - - /** - * Does the all sought of lifting required to be performed for - * generating a super user - */ - public function generate() - { - $companies = $this->company->all(['id']); - - if ($companies->count() == 0) { - $this->comment('No companies found to generate preorder data'); - - return false; - } else { - foreach ($companies as $company) { - $this->createPreOrderData($company->id); - } - - return true; - } - } - - /*** - * Creates attributes for one company at a time - */ - public function createPreOrderData($id) - { - $allowPreorderAttribute = $this->attribute->create([ - "code" => "allow_preorder", - "type" => "boolean", - "admin_name" => "Allow Preorder", - "is_required" => 0, - "is_unique" => 0, - "validation" => "", - "value_per_locale" => 0, - "value_per_channel" => 1, - "is_filterable" => 0, - "is_configurable" => 0, - "is_visible_on_front" => 0, - "is_user_defined" => 1, - 'company_id' => $id - ]); - - $preorderQtyAttribute = $this->attribute->create([ - "code" => "preorder_qty", - "type" => "text", - "admin_name" => "Preorder Qty", - "is_required" => 0, - "is_unique" => 0, - "validation" => "numeric", - "value_per_locale" => 0, - "value_per_channel" => 1, - "is_filterable" => 0, - "is_configurable" => 0, - "is_visible_on_front" => 0, - "is_user_defined" => 1, - 'company_id' => $id - ]); - - $preorderAvailabilityAttribute = $this->attribute->create([ - "code" => "preorder_availability", - "type" => "date", - "admin_name" => "Product Availability", - "is_required" => 0, - "is_unique" => 0, - "validation" => "", - "value_per_locale" => 0, - "value_per_channel" => 1, - "is_filterable" => 0, - "is_configurable" => 0, - "is_visible_on_front" => 0, - "is_user_defined" => 1, - 'company_id' => $id - ]); - - $attributeFamily = $this->attributeFamily->findWhere([ - 'company_id' => $id - ])->first(); - - $generalGroup = $attributeFamily->attribute_groups()->where('name', 'General')->first(); - - $generalGroup->custom_attributes()->save($allowPreorderAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 1 ]); - - $generalGroup->custom_attributes()->save($preorderQtyAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 2 ]); - - $generalGroup->custom_attributes()->save($preorderAvailabilityAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 3 ]); - - return true; - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Config/acl.php b/packages/Webkul/PreOrder/src/Config/acl.php deleted file mode 100644 index a34dcf342..000000000 --- a/packages/Webkul/PreOrder/src/Config/acl.php +++ /dev/null @@ -1,10 +0,0 @@ - 'preorder', - 'name' => 'preorder::app.admin.layouts.preorder', - 'route' => 'admin.preorder.preorders.index', - 'sort' => 1 - ] -]; \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Config/admin-menu.php b/packages/Webkul/PreOrder/src/Config/admin-menu.php deleted file mode 100644 index 26ce0fb0e..000000000 --- a/packages/Webkul/PreOrder/src/Config/admin-menu.php +++ /dev/null @@ -1,11 +0,0 @@ - 'preorder', - 'name' => 'preorder::app.admin.layouts.preorder', - 'route' => 'admin.preorder.preorders.index', - 'sort' => 3, - 'icon-class' => 'preorder-icon', - ] -]; \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Config/purge-pool.php b/packages/Webkul/PreOrder/src/Config/purge-pool.php deleted file mode 100644 index f4626a1f2..000000000 --- a/packages/Webkul/PreOrder/src/Config/purge-pool.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Webkul\PreOrder\Helpers\PreOrderDataPurger' -]; \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Config/system.php b/packages/Webkul/PreOrder/src/Config/system.php deleted file mode 100644 index e27ab3f61..000000000 --- a/packages/Webkul/PreOrder/src/Config/system.php +++ /dev/null @@ -1,54 +0,0 @@ - 'preorder', - 'name' => 'preorder::app.admin.system.preorder', - 'sort' => 1 - ], [ - 'key' => 'preorder.settings', - 'name' => 'preorder::app.admin.system.settings', - 'sort' => 1, - ], [ - 'key' => 'preorder.settings.general', - 'name' => 'preorder::app.admin.system.general', - 'sort' => 1, - 'fields' => [ - [ - 'name' => 'preorder_type', - 'title' => 'preorder::app.admin.system.preorder-type', - 'type' => 'select', - 'options' => [ - [ - 'title' => 'preorder::app.admin.system.partial-payment', - 'value' => 'partial' - ], [ - 'title' => 'preorder::app.admin.system.complete-payment', - 'value' => 'complete' - ] - ], - 'channel_based' => true, - ], [ - 'name' => 'percent', - 'title' => 'preorder::app.admin.system.preorder-percent', - 'type' => 'text', - 'validation' => 'between:0,99', - 'info' => 'preorder::app.admin.system.preorder-percent-info', - 'depends' => 'preorder_type:partial', - 'channel_based' => true - ], [ - 'name' => 'message', - 'title' => 'preorder::app.admin.system.message', - 'type' => 'textarea', - 'locale_based' => true, - 'channel_based' => true - ] - // , [ - // 'name' => 'enable_auto_mail', - // 'title' => 'preorder::app.admin.system.enable-automatic-mail', - // 'type' => 'boolean', - // 'channel_based' => true - // ] - ] - ] -]; \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Contracts/PreOrderItem.php b/packages/Webkul/PreOrder/src/Contracts/PreOrderItem.php deleted file mode 100644 index 85c9f7289..000000000 --- a/packages/Webkul/PreOrder/src/Contracts/PreOrderItem.php +++ /dev/null @@ -1,7 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class Order extends DataGrid -{ - protected $index = 'id'; - - protected $sortOrder = 'desc'; - - public function prepareQueryBuilder() - { - $queryBuilder = DB::table('orders') - ->leftJoin('order_address as order_address_shipping', function($leftJoin) { - $leftJoin->on('order_address_shipping.order_id', '=', 'orders.id') - ->where('order_address_shipping.address_type', 'shipping'); - }) - ->leftJoin('order_address as order_address_billing', function($leftJoin) { - $leftJoin->on('order_address_billing.order_id', '=', 'orders.id') - ->where('order_address_billing.address_type', 'billing'); - }) - ->leftJoin('pre_order_items', function($leftJoin) { - $leftJoin->on('pre_order_items.order_id', 'orders.id'); - }) - ->addSelect('orders.id', 'orders.base_sub_total', 'orders.base_grand_total', 'orders.created_at', 'channel_name', 'orders.status') - ->addSelect(DB::raw('CONCAT(order_address_billing.first_name, " ", order_address_billing.last_name) as billed_to')) - ->addSelect(DB::raw('CONCAT(order_address_shipping.first_name, " ", order_address_shipping.last_name) as shipped_to')) - ->addSelect(DB::raw('COUNT(pre_order_items.id) as is_preorder')) - ->groupBy('orders.id'); - - $this->addFilter('billed_to', DB::raw('CONCAT(order_address_billing.first_name, " ", order_address_billing.last_name)')); - $this->addFilter('shipped_to', DB::raw('CONCAT(order_address_shipping.first_name, " ", order_address_shipping.last_name)')); - $this->addFilter('id', 'orders.id'); - $this->addFilter('status', 'orders.status'); - $this->addFilter('created_at', 'orders.created_at'); - - $this->setQueryBuilder($queryBuilder); - } - - public function addColumns() - { - $this->addColumn([ - 'index' => 'id', - 'label' => trans('admin::app.datagrid.id'), - 'type' => 'number', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'base_sub_total', - 'label' => trans('admin::app.datagrid.sub-total'), - 'type' => 'price', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'base_grand_total', - 'label' => trans('admin::app.datagrid.grand-total'), - 'type' => 'price', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'created_at', - 'label' => trans('admin::app.datagrid.order-date'), - 'type' => 'datetime', - 'sortable' => true, - 'searchable' => false, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'channel_name', - 'label' => trans('admin::app.datagrid.channel-name'), - 'type' => 'string', - 'sortable' => true, - 'searchable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'status', - 'label' => trans('admin::app.datagrid.status'), - 'type' => 'string', - 'sortable' => true, - 'searchable' => true, - 'closure' => true, - 'filterable' => false, - 'wrapper' => function ($value) { - if ($value->status == 'processing') - return 'Processing'; - else if ($value->status == 'completed') - return 'Completed'; - else if ($value->status == "canceled") - return 'Canceled'; - else if ($value->status == "closed") - return 'Closed'; - else if ($value->status == "pending") - return 'Pending'; - else if ($value->status == "pending_payment") - return 'Pending Payment'; - else if ($value->status == "fraud") - return 'Fraud'; - } - ]); - - $this->addColumn([ - 'index' => 'billed_to', - 'label' => trans('admin::app.datagrid.billed-to'), - 'type' => 'string', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'shipped_to', - 'label' => trans('admin::app.datagrid.shipped-to'), - 'type' => 'string', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'is_preorder', - 'label' => trans('preorder::app.datagrid.order-type'), - 'type' => 'string', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true, - 'wrapper' => function ($row) { - if ($row->is_preorder) - return trans('preorder::app.datagrid.preorder'); - else - return trans('preorder::app.datagrid.normal-order'); - } - ]); - } - - public function prepareActions() { - $this->addAction([ - 'type' => 'View', - 'method' => 'GET', - 'route' => 'admin.sales.orders.view', - 'icon' => 'icon eye-icon' - ]); - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/DataGrids/Admin/PreOrder.php b/packages/Webkul/PreOrder/src/DataGrids/Admin/PreOrder.php deleted file mode 100644 index 4d4bd8fd7..000000000 --- a/packages/Webkul/PreOrder/src/DataGrids/Admin/PreOrder.php +++ /dev/null @@ -1,181 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class PreOrder extends DataGrid -{ - protected $index = 'id'; - - protected $sortOrder = 'desc'; - - public function prepareQueryBuilder() - { - $queryBuilder = DB::table('pre_order_items') - ->leftJoin('order_items', 'pre_order_items.order_item_id', '=', 'order_items.id') - ->leftJoin('orders', 'pre_order_items.order_id', '=', 'orders.id') - ->leftJoin('order_items as payment_order_items', 'pre_order_items.payment_order_item_id', '=', 'payment_order_items.id') - ->addSelect('pre_order_items.id', 'pre_order_items.order_id', 'order_items.name as product_name', 'orders.customer_email', 'order_item_id', 'preorder_type', 'pre_order_items.status', 'base_paid_amount', 'pre_order_items.email_sent', 'base_remaining_amount', 'payment_order_items.order_id as payment_order_id') - ->addSelect(DB::raw('CONCAT(orders.customer_first_name, " ", orders.customer_last_name) as customer_name')); - - $this->addFilter('id', 'pre_order_items.id'); - $this->addFilter('status', 'pre_order_items.status'); - $this->addFilter('order_id', 'pre_order_items.order_id'); - $this->addFilter('payment_order_id', 'payment_order_items.order_id'); - $this->addFilter('product_name', 'order_items.name'); - $this->addFilter('customer_name', DB::raw('CONCAT(orders.customer_first_name, " ", orders.customer_last_name)')); - - $this->setQueryBuilder($queryBuilder); - } - - public function addColumns() - { - $this->addColumn([ - 'index' => 'id', - 'label' => trans('preorder::app.datagrid.id'), - 'type' => 'number', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'order_id', - 'label' => trans('preorder::app.datagrid.order-id'), - 'type' => 'number', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true, - 'closure' => true, - 'wrapper' => function ($row) { - return '' . $row->order_id . ''; - } - ]); - - $this->addColumn([ - 'index' => 'payment_order_id', - 'label' => trans('preorder::app.datagrid.payment-order-id'), - 'type' => 'number', - 'searchable' => false, - 'sortable' => false, - 'filterable' => true, - 'closure' => true, - 'wrapper' => function ($row) { - if ($row->payment_order_id) - return '' . $row->payment_order_id . ''; - else - return 'N/A'; - } - ]); - - $this->addColumn([ - 'index' => 'product_name', - 'label' => trans('preorder::app.datagrid.product-name'), - 'type' => 'string', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'customer_name', - 'label' => trans('preorder::app.datagrid.customer-name'), - 'type' => 'string', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'customer_email', - 'label' => trans('preorder::app.datagrid.customer-email'), - 'type' => 'string', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'base_paid_amount', - 'label' => trans('preorder::app.datagrid.paid-amount'), - 'type' => 'price', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'base_remaining_amount', - 'label' => trans('preorder::app.datagrid.remaining-amount'), - 'type' => 'price', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'preorder_type', - 'label' => trans('preorder::app.datagrid.preorder-type'), - 'type' => 'boolean', - 'sortable' => true, - 'searchable' => false, - 'filterable' => true, - 'wrapper' => function ($value) { - if ($value->preorder_type == 'partial') - return trans('preorder::app.datagrid.partial-payment'); - else - return trans('preorder::app.datagrid.complete-payment'); - } - ]); - - $this->addColumn([ - 'index' => 'status', - 'label' => trans('preorder::app.datagrid.status'), - 'type' => 'string', - 'sortable' => true, - 'searchable' => false, - 'filterable' => true, - 'wrapper' => function ($value) { - if ($value->status == 'pending') - return trans('preorder::app.datagrid.pending'); - if ($value->status == 'processing') - return trans('preorder::app.datagrid.processing'); - else - return trans('preorder::app.datagrid.completed'); - } - ]); - - $this->addColumn([ - 'index' => 'email_sent', - 'label' => trans('preorder::app.datagrid.email-sent'), - 'type' => 'boolean', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true, - 'wrapper' => function($value) { - if ($value->email_sent == 1) - return trans('preorder::app.datagrid.yes'); - else - return trans('preorder::app.datagrid.no'); - } - ]); - } - - public function prepareMassActions() - { - $this->addMassAction([ - 'type' => 'delete', - 'label' => 'Notify Customer', - 'action' => route('admin.preorder.preorders.notify-customer'), - 'method' => 'POST' - ]); - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Database/Migrations/2019_06_04_163237_create_pre_order_items_table.php b/packages/Webkul/PreOrder/src/Database/Migrations/2019_06_04_163237_create_pre_order_items_table.php deleted file mode 100644 index b5db7610c..000000000 --- a/packages/Webkul/PreOrder/src/Database/Migrations/2019_06_04_163237_create_pre_order_items_table.php +++ /dev/null @@ -1,50 +0,0 @@ -increments('id'); - $table->string('preorder_type'); - $table->double('preorder_percent')->default(0); - $table->string('token'); - $table->string('status'); - $table->boolean('email_sent')->default(0); - $table->double('paid_amount')->nullable(); - $table->double('base_paid_amount')->nullable(); - $table->double('base_remaining_amount')->nullable(); - - $table->integer('order_id')->unsigned(); - $table->foreign('order_id')->references('id')->on('orders')->onDelete('cascade'); - - $table->integer('order_item_id')->unsigned(); - $table->foreign('order_item_id')->references('id')->on('order_items')->onDelete('cascade'); - - $table->integer('payment_order_item_id')->nullable()->unsigned(); - $table->foreign('payment_order_item_id')->references('id')->on('order_items')->onDelete('set null'); - - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('pre_order_items'); - } -} diff --git a/packages/Webkul/PreOrder/src/Database/Seeders/AttributeSeeder.php b/packages/Webkul/PreOrder/src/Database/Seeders/AttributeSeeder.php deleted file mode 100755 index 98f9f20b0..000000000 --- a/packages/Webkul/PreOrder/src/Database/Seeders/AttributeSeeder.php +++ /dev/null @@ -1,69 +0,0 @@ -create([ - "code" => "allow_preorder", - "type" => "boolean", - "admin_name" => "Allow Preorder", - "is_required" => 0, - "is_unique" => 0, - "validation" => "", - "value_per_locale" => 0, - "value_per_channel" => 1, - "is_filterable" => 0, - "is_configurable" => 0, - "is_visible_on_front" => 0, - "is_user_defined" => 1 - ]); - - $preorderQtyAttribute = app('Webkul\Attribute\Repositories\AttributeRepository')->create([ - "code" => "preorder_qty", - "type" => "text", - "admin_name" => "Preorder Qty", - "is_required" => 0, - "is_unique" => 0, - "validation" => "numeric", - "value_per_locale" => 0, - "value_per_channel" => 1, - "is_filterable" => 0, - "is_configurable" => 0, - "is_visible_on_front" => 0, - "is_user_defined" => 1 - ]); - - $preorderAvailabilityAttribute = app('Webkul\Attribute\Repositories\AttributeRepository')->create([ - "code" => "preorder_availability", - "type" => "date", - "admin_name" => "Product Availability", - "is_required" => 0, - "is_unique" => 0, - "validation" => "", - "value_per_locale" => 0, - "value_per_channel" => 1, - "is_filterable" => 0, - "is_configurable" => 0, - "is_visible_on_front" => 0, - "is_user_defined" => 1 - ]); - - $attributeFamilies = app('Webkul\Attribute\Repositories\AttributeFamilyRepository')->all(); - - foreach ($attributeFamilies as $attributeFamily) { - $generalGroup = $attributeFamily->attribute_groups()->where('name', 'General')->first(); - - $generalGroup->custom_attributes()->save($allowPreorderAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 1 ]); - - $generalGroup->custom_attributes()->save($preorderQtyAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 2 ]); - - $generalGroup->custom_attributes()->save($preorderAvailabilityAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 3 ]); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Database/Seeders/DatabaseSeeder.php b/packages/Webkul/PreOrder/src/Database/Seeders/DatabaseSeeder.php deleted file mode 100755 index 28979a17c..000000000 --- a/packages/Webkul/PreOrder/src/Database/Seeders/DatabaseSeeder.php +++ /dev/null @@ -1,18 +0,0 @@ -call(AttributeSeeder::class); - } -} diff --git a/packages/Webkul/PreOrder/src/Helpers/PreOrderDataPurger.php b/packages/Webkul/PreOrder/src/Helpers/PreOrderDataPurger.php deleted file mode 100644 index 541cfcf2c..000000000 --- a/packages/Webkul/PreOrder/src/Helpers/PreOrderDataPurger.php +++ /dev/null @@ -1,101 +0,0 @@ -attribute = $attribute; - $this->attributeFamily = $attributeFamily; - } - - /*** - * Creates attributes for one company at a time - */ - public function createPreOrderData($id) - { - $allowPreorderAttribute = $this->attribute->create([ - "code" => "allow_preorder", - "type" => "boolean", - "admin_name" => "Allow Preorder", - "is_required" => 0, - "is_unique" => 0, - "validation" => "", - "value_per_locale" => 0, - "value_per_channel" => 1, - "is_filterable" => 0, - "is_configurable" => 0, - "is_visible_on_front" => 0, - "is_user_defined" => 1, - "use_in_flat" => 1, - 'company_id' => $id - ]); - - $preorderQtyAttribute = $this->attribute->create([ - "code" => "preorder_qty", - "type" => "text", - "admin_name" => "Preorder Qty", - "is_required" => 0, - "is_unique" => 0, - "validation" => "numeric", - "value_per_locale" => 0, - "value_per_channel" => 1, - "is_filterable" => 0, - "is_configurable" => 0, - "is_visible_on_front" => 0, - "is_user_defined" => 1, - "use_in_flat" => 1, - 'company_id' => $id - ]); - - $preorderAvailabilityAttribute = $this->attribute->create([ - "code" => "preorder_availability", - "type" => "date", - "admin_name" => "Product Availability", - "is_required" => 0, - "is_unique" => 0, - "validation" => "", - "value_per_locale" => 0, - "value_per_channel" => 1, - "is_filterable" => 0, - "is_configurable" => 0, - "is_visible_on_front" => 0, - "is_user_defined" => 1, - "use_in_flat" => 1, - 'company_id' => $id - ]); - - $attributeFamilies = $this->attributeFamily->all(); - - foreach ($attributeFamilies as $attributeFamily) { - $generalGroup = $attributeFamily->attribute_groups()->where(['name' => 'General', 'company_id' => $id])->first(); - - $generalGroup->custom_attributes()->save($allowPreorderAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 1 ]); - - $generalGroup->custom_attributes()->save($preorderQtyAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 2 ]); - - $generalGroup->custom_attributes()->save($preorderAvailabilityAttribute, [ 'position' => $generalGroup->custom_attributes()->count() + 3 ]); - } - - return true; - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Helpers/Product.php b/packages/Webkul/PreOrder/src/Helpers/Product.php deleted file mode 100644 index b66efc1ab..000000000 --- a/packages/Webkul/PreOrder/src/Helpers/Product.php +++ /dev/null @@ -1,60 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class Product -{ - /** - * ProductRepository object - * - * @var Product - */ - protected $productRepository; - - /** - * Create a new customer event listener instance. - * - * @param Webkul\Product\Repositories\ProductRepository $productRepository - * @return void - */ - public function __construct( - ProductRepository $productRepository - ) - { - $this->productRepository = $productRepository; - } - - /** - * Return preorder variants - * - * @param Product $product - */ - public function getPreOrderVariants($product) - { - $config = []; - - foreach ($product->variants as $variant) { - if ($variant->totalQuantity() < 1 && $variant->allow_preorder) { - $config[$variant->product_id] = [ - 'preorder_qty' => $variant->preorder_qty, - 'availability_text' => $variant->preorder_availability && Carbon::parse($variant->preorder_availability) > Carbon::now() - ? trans('preorder::app.shop.products.available-on', [ - 'date' => core()->formatDate(Carbon::parse($variant->preorder_availability), 'F d, Y') - ]) - : null - ]; - } - } - - return $config; - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Http/Controllers/Admin/Controller.php b/packages/Webkul/PreOrder/src/Http/Controllers/Admin/Controller.php deleted file mode 100644 index ce821e1b4..000000000 --- a/packages/Webkul/PreOrder/src/Http/Controllers/Admin/Controller.php +++ /dev/null @@ -1,13 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class PreOrderController extends Controller -{ - /** - * Contains route related configuration - * - * @var array - */ - protected $_config; - - /** - * PreOrderItemRepository object - * - * @var array - */ - protected $preOrderItemRepository; - - /** - * Create a new controller instance. - * - * @param \Webkul\PreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository - * @return void - */ - public function __construct( - PreOrderItemRepository $preOrderItemRepository - ) - { - $this->_config = request('_config'); - - $this->preOrderItemRepository = $preOrderItemRepository; - } - - /** - * Method to populate the seller order page which will be populated. - * - * @return Mixed - */ - public function index($url) - { - return view($this->_config['view']); - } - - /** - * Mass notify customers for in stock preorder products - * - * @return response - */ - public function notifyCustomer() - { - $data = request()->all(); - - if (! isset($data['massaction-type'])) { - return redirect()->back(); - } - - $preOrderItemIds = explode(',', $data['indexes']); - - foreach ($preOrderItemIds as $preOrderItemId) { - $preOrderItem = $this->preOrderItemRepository->find($preOrderItemId); - - if (! $this->preOrderItemRepository->canBeComplete($preOrderItem->order_item)) - continue; - - try { - Mail::send(new ProductInStockNotification($preOrderItem)); - - $this->preOrderItemRepository->update([ - 'email_sent' => 1 - ], $preOrderItem->id); - } catch (\Exception $e) { - - } - } - - session()->flash('success', trans('preorder::app.admin.preorders.mass-notify-success')); - - return redirect()->route($this->_config['redirect']); - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Http/Controllers/Shop/Controller.php b/packages/Webkul/PreOrder/src/Http/Controllers/Shop/Controller.php deleted file mode 100644 index ef40c3d6e..000000000 --- a/packages/Webkul/PreOrder/src/Http/Controllers/Shop/Controller.php +++ /dev/null @@ -1,12 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class PreOrderController extends Controller -{ - /** - * ProductRepository object - * - * @var array - */ - protected $productRepository; - - /** - * OrderItemRepository object - * - * @var array - */ - protected $orderItemRepository; - - /** - * PreOrderItemRepository object - * - * @var array - */ - protected $preOrderItemRepository; - - /** - * Create a new controller instance. - * - * @param Webkul\Product\Repositories\ProductRepository $productRepository - * @param Webkul\Sales\Repositories\OrderItemRepository $orderItemRepository - * @param Webkul\PreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository - * @return void - */ - public function __construct( - ProductRepository $productRepository, - OrderItemRepository $orderItemRepository, - PreOrderItemRepository $preOrderItemRepository - ) - { - $this->productRepository = $productRepository; - - $this->orderItemRepository = $orderItemRepository; - - $this->preOrderItemRepository = $preOrderItemRepository; - } - - /** - * @return \Illuminate\Http\Response - */ - public function complete() - { - try { - if (request()->route('token')) - $preOrderItem = $this->preOrderItemRepository->findOneByField('token', request()->route('token')); - else - $preOrderItem = $this->preOrderItemRepository->find(request()->input('id')); - - if (! $preOrderItem) - return abort(404); - - if ($preOrderItem->payment_order_item_id != null) - throw new \Exception('Payment has been done for this order'); - - $orderItem = $this->orderItemRepository->findOrFail($preOrderItem->order_item_id); - - if (! $this->preOrderItemRepository->canBeComplete($orderItem)) { - session()->flash('error', trans('preorder::app.shop.preorders.complete-preorder-error')); - - if (request()->route('token')) - return redirect()->route('shop.home.index'); - else - return back(); - } - - $data = []; - - if ($orderItem->type == 'configurable') { - $data = [ - 'pre_order_payment' => true, - 'order_item_id' => $preOrderItem->order_item_id, - 'product' => $orderItem->product_id, - 'quantity' => $orderItem->qty_ordered, - 'is_configurable' => true, - 'selected_configurable_option' => $orderItem->child->product_id - ]; - - foreach ($this->productRepository->getSuperAttributes($orderItem->product) as $attribute) { - $data['super_attribute'][$attribute['id']] = $orderItem->child->product->{$attribute['code']}; - } - } else { - $data = [ - 'pre_order_payment' => true, - 'order_item_id' => $preOrderItem->order_item_id, - 'product' => $orderItem->product_id, - 'quantity' => $orderItem->qty_ordered, - 'is_configurable' => false, - ]; - } - - request()->request->add($data); - - Event::fire('checkout.cart.add.before', $data['product']); - - $result = Cart::add($data['product'], $data); - - Event::fire('checkout.cart.add.after', $result); - - return redirect()->route('shop.checkout.onepage.index'); - } catch(\Exception $e) { - session()->flash('error', trans($e->getMessage())); - - return redirect()->back(); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Http/admin-routes.php b/packages/Webkul/PreOrder/src/Http/admin-routes.php deleted file mode 100644 index cc24c5b88..000000000 --- a/packages/Webkul/PreOrder/src/Http/admin-routes.php +++ /dev/null @@ -1,22 +0,0 @@ - ['web']], function () { - - Route::prefix('admin')->group(function () { - - Route::group(['middleware' => ['admin']], function () { - - //Seller routes - Route::get('preorders', 'Webkul\PreOrder\Http\Controllers\Admin\PreOrderController@index')->defaults('_config', [ - 'view' => 'preorder::admin.preorders.index' - ])->name('admin.preorder.preorders.index'); - - //product massdelete - Route::post('preorders/notify-customer', 'Webkul\PreOrder\Http\Controllers\Admin\PreOrderController@notifyCustomer')->defaults('_config', [ - 'redirect' => 'admin.preorder.preorders.index' - ])->name('admin.preorder.preorders.notify-customer'); - }); - - }); - -}); \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Http/front-routes.php b/packages/Webkul/PreOrder/src/Http/front-routes.php deleted file mode 100644 index 2e45e35b3..000000000 --- a/packages/Webkul/PreOrder/src/Http/front-routes.php +++ /dev/null @@ -1,5 +0,0 @@ - ['web', 'theme', 'locale', 'currency']], function () { - Route::get('/complete-preorder/{token}', 'Webkul\PreOrder\Http\Controllers\Shop\PreOrderController@complete')->name('preorder.shop.preorder.complete'); -}); \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Listeners/Cart.php b/packages/Webkul/PreOrder/src/Listeners/Cart.php deleted file mode 100644 index 30f685596..000000000 --- a/packages/Webkul/PreOrder/src/Listeners/Cart.php +++ /dev/null @@ -1,205 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class Cart -{ - /** - * PriceHelper object - * - * @var Object - */ - protected $priceHelper; - - /** - * ProductRepository object - * - * @var Product - */ - protected $productRepository; - - /** - * PreOrderItemRepository object - * - * @var Product - */ - protected $preOrderItemRepository; - - /** - * Create a new customer event listener instance. - * - * @param Webkul\Product\Helpers\Price $priceHelper - * @param Webkul\Product\Repositories\ProductRepository $productRepository - * @param Webkul\PreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository - * @return void - */ - public function __construct( - PriceHelper $priceHelper, - ProductRepository $productRepository, - PreOrderItemRepository $preOrderItemRepository - ) - { - $this->priceHelper = $priceHelper; - - $this->productRepository = $productRepository; - - $this->preOrderItemRepository = $preOrderItemRepository; - } - - /** - * Before product added to the cart - * - * @param mixed $cartItem - */ - public function cartItemAddBefore($productId) - { - $data = request()->all(); - - if (! isset($data['pre_order_payment'])) { - if ($this->haveCompletePreorderProduct($productId)) - throw new \Exception('Product can not be added with preorder payment.'); - - $product = $this->productRepository->find($productId); - - if ($product->type == 'configurable') { - if (isset($data['selected_configurable_option'])) { - $product = $this->productRepository->find($data['selected_configurable_option']); - } else { - return; - } - } - - if ($product->totalQuantity() > 0 || ! $product->allow_preorder) - return; - - if (! isset($data['quantity'])) - $data['quantity'] = 1; - - if ($cart = CartFacade::getCart()) { - $cartItem = $cart->items()->where('product_id', $productId)->first(); - - if ($cartItem) { - $quantity = $cartItem->quantity + $data['quantity']; - } else { - $quantity = $data['quantity']; - } - } else { - $quantity = $data['quantity']; - } - - if ($product->preorder_qty && $product->preorder_qty < $quantity) - throw new \Exception('Requested quantity not available for preorder.'); - } else { - if ($cart = CartFacade::getCart()) { - $cartItem = $cart->items()->where('product_id', $productId)->first(); - - if ($cartItem) { - throw new \Exception('Invalid quantity for complete preorder payment.'); - } else { - throw new \Exception('Preorder payment can not be added with other product.'); - } - } - } - } - - /** - * @param integer $productId - */ - public function haveCompletePreorderProduct($productId) - { - if (! $cart = CartFacade::getCart()) - return false; - - foreach ($cart->items()->get() as $item) { - if (isset($item->additional['pre_order_payment'])) - return true; - } - - return false; - } - - /** - * Before product update to the cart - * - * @param CartItem $item - */ - public function cartItemUpdateBefore($item) - { - if (isset($item->additional['pre_order_payment'])) - throw new \Exception('Preoder payment qunatity can not be updated.'); - - $quantities = request()->get('qty'); - - $product = $item->type == 'configurable' ? $item->child->product_flat : $item->product_flat; - - if ($product->totalQuantity() > 0 || ! $product->allow_preorder) - return; - - if ($product->preorder_qty && $product->preorder_qty < $quantities[$item->id]) - throw new \Exception('Requested quantity not available for preorder.'); - } - - /** - * After product added to the cart - * - * @param mixed $cartItem - */ - public function cartItemAddAfter($cartItem) - { - if (! request()->input('pre_order_payment')) { - $product = $this->productRepository->find($cartItem->product_id); - - if ($product->type == 'configurable') { - if (isset($cartItem['additional']['selected_configurable_option'])) { - $product = $this->productRepository->find($cartItem['additional']['selected_configurable_option']); - } else { - return; - } - } - - if ($product->totalQuantity() > 0 || ! $product->allow_preorder) - return; - - if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') { - if (is_null(core()->getConfigData('preorder.settings.general.percent'))) { - $preOrderPercentage = 0; - } else { - $preOrderPercentage = core()->getConfigData('preorder.settings.general.percent'); - } - } else { - $preOrderPercentage = 100; - } - - $productPrice = $cartItem->type == 'configurable' - ? ($this->priceHelper->getMinimalPrice($cartItem->child->product_flat) * $preOrderPercentage) / 100 - : ($this->priceHelper->getMinimalPrice($cartItem->product_flat) * $preOrderPercentage) / 100; - - $cartItem->price = core()->convertPrice($productPrice); - $cartItem->base_price = $productPrice; - $cartItem->custom_price = $productPrice; - - $cartItem->save(); - } else { - $preOrderItem = $this->preOrderItemRepository->findOneByField('order_item_id', request()->input('order_item_id')); - - $productPrice = $preOrderItem->base_remaining_amount / $preOrderItem->order_item->qty_ordered; - - $cartItem->price = core()->convertPrice($productPrice); - $cartItem->base_price = $productPrice; - $cartItem->custom_price = $productPrice; - - $cartItem->save(); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Listeners/Invoice.php b/packages/Webkul/PreOrder/src/Listeners/Invoice.php deleted file mode 100644 index ea542fc7c..000000000 --- a/packages/Webkul/PreOrder/src/Listeners/Invoice.php +++ /dev/null @@ -1,76 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class Invoice -{ - /** - * PreOrderItemRepository object - * - * @var Object - */ - protected $preOrderItemRepository; - - /** - * OrderRepository object - * - * @var Object - */ - protected $orderRepository; - - /** - * Create a new Order event listener instance. - * - * @param Webkul\PreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository - * @param Webkul\Sales\Repositories\OrderRepository $orderRepository - * @return void - */ - public function __construct(PreOrderItemRepository $preOrderItemRepository, OrderRepository $orderRepository) - { - $this->preOrderItemRepository = $preOrderItemRepository; - - $this->orderRepository = $orderRepository; - } - - /** - * After sales invoice creation, creater marketplace invoice - * - * @param mixed $invoice - */ - public function afterInvoice($invoice) - { - foreach ($invoice->items()->get() as $item) { - if (isset($item->additional['pre_order_payment'])) { - $preOrderItem = $this->preOrderItemRepository->findOneByField('order_item_id', $item->additional['order_item_id']); - - $this->preOrderItemRepository->update([ - 'status' => 'completed', - ], $preOrderItem->id); - - if (! $item->order_item->qty_to_invoice) { - $this->orderRepository->update([ - 'status' => 'completed', - ], $item->order_item->order_id); - } - } else { - $preOrderItem = $this->preOrderItemRepository->findOneByField('order_item_id', $item->order_item_id); - - if (! $preOrderItem || $preOrderItem->base_remaining_amount) - return; - - $this->preOrderItemRepository->update([ - 'status' => 'completed', - ], $preOrderItem->id); - } - } - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Listeners/Order.php b/packages/Webkul/PreOrder/src/Listeners/Order.php deleted file mode 100644 index 58b7f5fa2..000000000 --- a/packages/Webkul/PreOrder/src/Listeners/Order.php +++ /dev/null @@ -1,106 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class Order -{ - /** - * PriceHelper object - * - * @var Object - */ - protected $priceHelper; - - /** - * PreOrderItemRepository object - * - * @var Object - */ - protected $preOrderItemRepository; - - /** - * Create a new Order event listener instance. - * - * @param Webkul\Product\Helpers\Price $priceHelper - * @param Webkul\PreOrder\Repositories\PreOrderItemRepository $preOrderItemRepository - * @return void - */ - public function __construct( - PriceHelper $priceHelper, - PreOrderItemRepository $preOrderItemRepository - ) - { - $this->priceHelper = $priceHelper; - - $this->preOrderItemRepository = $preOrderItemRepository; - } - - /** - * After sales order creation, add entry to pre_order_items order table - * - * @param mixed $order - */ - public function afterPlaceOrder($order) - { - foreach ($order->items()->get() as $item) { - if (isset($item->additional['pre_order_payment'])) { - $preOrderItem = $this->preOrderItemRepository->findOneByField('order_item_id', $item->additional['order_item_id']); - - $this->preOrderItemRepository->update([ - 'status' => 'processing', - 'payment_order_item_id' => $item->id - ], $preOrderItem->id); - } else { - if ($item->type == 'configurable') { - if ($item->child->product->totalQuantity() > -1 || ! $item->child->product->allow_preorder) { - continue; - } - } else { - if ($item->product->totalQuantity() > -1 || ! $item->product->allow_preorder) { - continue; - } - } - - if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') { - $preOrderType = 'partial'; - - if (is_null(core()->getConfigData('preorder.settings.general.percent'))) { - $preOrderPercentage = 0; - } else { - $preOrderPercentage = core()->getConfigData('preorder.settings.general.percent'); - } - } else { - $preOrderType = 'complete'; - - $preOrderPercentage = 100; - } - - $productPrice = $item->type == 'configurable' - ? $this->priceHelper->getMinimalPrice($item->child->product) - : $this->priceHelper->getMinimalPrice($item->product); - - $this->preOrderItemRepository->create([ - 'preorder_type' => $preOrderType, - 'preorder_percent' => $preOrderPercentage, - 'status' => 'pending', - 'paid_amount' => $item->total, - 'base_paid_amount' => $item->base_total, - 'base_remaining_amount' => ($productPrice * $item->qty_ordered) - $item->base_total, - 'order_id' => $order->id, - 'order_item_id' => $item->id, - 'token' => str_random(32) - ]); - } - } - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Mail/ProductInStockNotification.php b/packages/Webkul/PreOrder/src/Mail/ProductInStockNotification.php deleted file mode 100644 index d9f9bc1f3..000000000 --- a/packages/Webkul/PreOrder/src/Mail/ProductInStockNotification.php +++ /dev/null @@ -1,48 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class ProductInStockNotification extends Mailable -{ - use Queueable, SerializesModels; - - /** - * The order item instance. - * - * @var Order - */ - public $item; - - /** - * Create a new message instance. - * - * @return void - */ - public function __construct($item) - { - $this->item = $item; - } - - /** - * Build the message. - * - * @return $this - */ - public function build() - { - return $this->to($this->item->order->customer_email, $this->item->order->customer_full_name) - ->subject(trans('preorder::app.mail.in-stock.subject')) - ->view('preorder::emails.in-stock'); - } -} diff --git a/packages/Webkul/PreOrder/src/Models/PreOrderItem.php b/packages/Webkul/PreOrder/src/Models/PreOrderItem.php deleted file mode 100644 index 6f5419e99..000000000 --- a/packages/Webkul/PreOrder/src/Models/PreOrderItem.php +++ /dev/null @@ -1,71 +0,0 @@ - 'Pending', - 'processing' => 'Processing', - 'completed' => 'Completed' - ]; - - protected $typeLabel = [ - 'partial' => 'Partial Payment', - 'complete' => 'Complete Payment' - ]; - - /** - * Get the order record associated with the pre order item. - */ - public function order() - { - return $this->belongsTo(OrderProxy::modelClass()); - } - - /** - * Get the order item record associated with the pre order item. - */ - public function order_item() - { - return $this->belongsTo(OrderItemProxy::modelClass()); - } - - /** - * Get the order item record associated with the pre order item. - */ - public function payment_order_item() - { - return $this->belongsTo(OrderItemProxy::modelClass(), 'payment_order_item_id'); - } - - /** - * Returns the status label from status code - */ - public function getStatusLabelAttribute() - { - return $this->statusLabel[$this->status]; - } - - /** - * Returns the type label from status code - */ - public function getTypeLabelAttribute() - { - return $this->typeLabel[$this->preorder_type]; - } -} diff --git a/packages/Webkul/PreOrder/src/Models/PreOrderItemProxy.php b/packages/Webkul/PreOrder/src/Models/PreOrderItemProxy.php deleted file mode 100644 index 60d08d8d0..000000000 --- a/packages/Webkul/PreOrder/src/Models/PreOrderItemProxy.php +++ /dev/null @@ -1,10 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Providers/EventServiceProvider.php b/packages/Webkul/PreOrder/src/Providers/EventServiceProvider.php deleted file mode 100644 index e9cadc202..000000000 --- a/packages/Webkul/PreOrder/src/Providers/EventServiceProvider.php +++ /dev/null @@ -1,35 +0,0 @@ -addTemplate('preorder::admin.layouts.style'); - }); - - Event::listen('bagisto.shop.products.view.short_description.before', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('preorder::shop.products.preorder-info'); - }); - - Event::listen('checkout.cart.add.before', 'Webkul\PreOrder\Listeners\Cart@cartItemAddBefore'); - - Event::listen('checkout.cart.update.before', 'Webkul\PreOrder\Listeners\Cart@cartItemUpdateBefore'); - - Event::listen('checkout.cart.add.after', 'Webkul\PreOrder\Listeners\Cart@cartItemAddAfter'); - - Event::listen('checkout.order.save.after', 'Webkul\PreOrder\Listeners\Order@afterPlaceOrder'); - - Event::listen('sales.invoice.save.after', 'Webkul\PreOrder\Listeners\Invoice@afterInvoice'); - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Providers/ModuleServiceProvider.php b/packages/Webkul/PreOrder/src/Providers/ModuleServiceProvider.php deleted file mode 100644 index f54ee3633..000000000 --- a/packages/Webkul/PreOrder/src/Providers/ModuleServiceProvider.php +++ /dev/null @@ -1,12 +0,0 @@ -app->register(EventServiceProvider::class); - - $this->loadRoutesFrom(__DIR__ . '/../Http/admin-routes.php'); - - $this->loadRoutesFrom(__DIR__ . '/../Http/front-routes.php'); - - $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); - - $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'preorder'); - - $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'preorder'); - - $this->publishes([ - __DIR__ . '/../../publishable/assets' => public_path('vendor/webkul/preorder/assets'), - ], 'public'); - - $this->publishes([ - __DIR__ . '/../Resources/views/shop/products/add-buttons.blade.php' => resource_path('views/vendor/shop/products/add-buttons.blade.php'), - __DIR__ . '/../Resources/views/shop/products/view/product-add.blade.php' => resource_path('views/vendor/shop/products/view/product-add.blade.php'), - - __DIR__ . '/../Resources/views/admin/sales/orders' => resource_path('views/vendor/admin/sales/orders'), - __DIR__ . '/../Resources/views/shop/customers/account/orders' => resource_path('views/vendor/shop/customers/account/orders'), - ]); - - //model observer for all the core models of Bagisto - $this->bootModelObservers(); - } - - /** - * Model observer for preorder model - */ - public function bootModelObservers() - { - \Webkul\PreOrder\Models\PreOrderItem::observe(\Webkul\PreOrder\Observers\PreOrderItemObserver::class); - } - - /** - * Register services. - * - * @return void - */ - public function register() - { - $this->registerConfig(); - - $this->registerFacades(); - - $this->commands($this->commands); - } - - /** - * Register Bouncer as a singleton. - * - * @return void - */ - protected function registerFacades() - { - $loader = AliasLoader::getInstance(); - $loader->alias('shipping', ShippingFacade::class); - - $this->app->singleton('shipping', function () { - return new Shipping(); - }); - } - - /** - * Register package config. - * - * @return void - */ - public function registerConfig() - { - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/system.php', 'core' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/admin-menu.php', 'menu.admin' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/purge-pool.php', 'purge-pool' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/acl.php', 'acl' - ); - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Repositories/PreOrderItemRepository.php b/packages/Webkul/PreOrder/src/Repositories/PreOrderItemRepository.php deleted file mode 100755 index 82366393e..000000000 --- a/packages/Webkul/PreOrder/src/Repositories/PreOrderItemRepository.php +++ /dev/null @@ -1,92 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class PreOrderItemRepository extends Repository -{ - /** - * Specify Model class name - * - * @return mixed - */ - - function model() - { - return 'Webkul\PreOrder\Contracts\PreOrderItem'; - } - - /** - * @param integer $orderId - * @return boolean - */ - public function isPreOrderPaymentOrder($orderId) - { - return $this->resetScope()->scopeQuery(function ($query) use ($orderId) { - return $query->leftJoin('order_items', 'pre_order_items.payment_order_item_id', '=', 'order_items.id') - ->leftJoin('orders', 'order_items.order_id', '=', 'orders.id') - ->where('orders.id', $orderId); - })->count(); - } - - /** - * @param integer $orderId - * @return boolean - */ - public function havePreOrderItems($orderId) - { - return $this->resetScope()->scopeQuery(function ($query) use ($orderId) { - return $query->where('pre_order_items.order_id', $orderId); - })->count(); - } - - /** - * @param OrderItem $orderItem - * @return boolean - */ - public function canBeComplete($orderItem) - { - $this->resetScope(); - - $preOrderItem = $this->findOneByField('order_item_id', $orderItem->id); - - if (! $preOrderItem || $preOrderItem->status == 'completed') - return false; - - if ($orderItem->type == 'configurable') { - $isInStock = $orderItem->child->product && $this->getProductTotalQuantity($orderItem->child->product) >= $orderItem->qty_ordered ? true : false; - } else { - $isInStock = $orderItem->product && $this->getProductTotalQuantity($orderItem->product) >= $orderItem->qty_ordered ? true : false; - } - - return $isInStock && $orderItem->qty_invoiced == $orderItem->qty_ordered ? true : false; - } - - /** - * @return integer - */ - public function getProductTotalQuantity($product) - { - $total = 0; - - $channelInventorySourceIds = core()->getCurrentChannel() - ->inventory_sources() - ->where('status', 1) - ->pluck('id'); - - foreach ($product->inventories as $inventory) { - if (is_numeric($index = $channelInventorySourceIds->search($inventory->inventory_source_id))) { - $total += $inventory->qty; - } - } - - return $total; - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/assets/images/Icon-Preorder-Active.svg b/packages/Webkul/PreOrder/src/Resources/assets/images/Icon-Preorder-Active.svg deleted file mode 100644 index b16e78546..000000000 --- a/packages/Webkul/PreOrder/src/Resources/assets/images/Icon-Preorder-Active.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - Icon-Preorder-Active - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/assets/images/Icon-Preorder.svg b/packages/Webkul/PreOrder/src/Resources/assets/images/Icon-Preorder.svg deleted file mode 100644 index f5666d659..000000000 --- a/packages/Webkul/PreOrder/src/Resources/assets/images/Icon-Preorder.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - Icon-Preorder - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/assets/sass/admin.scss b/packages/Webkul/PreOrder/src/Resources/assets/sass/admin.scss deleted file mode 100644 index a2dd9da32..000000000 --- a/packages/Webkul/PreOrder/src/Resources/assets/sass/admin.scss +++ /dev/null @@ -1,40 +0,0 @@ -@import "icons"; - -.navbar-left { - width: 100px; - - ul.menubar li.menu-item { - padding: 10px 7px; - } -} - -.content-container { - padding-left: 100px; -} - -.preorder-info { - padding: 15px; - width: auto; - border: 1px solid #d3d3d3; - border-left: 4px solid #0031f0; - margin: 15px 0; -} - -.pre-order-item-info { - .heading { - font-weight: 600; - margin-bottom: 10px; - margin-top: 10px; - display: block; - } - - .row { - margin-bottom: 5px; - padding-left: 10px; - display: block; - - &:last-child { - margin-bottom: 0; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/assets/sass/app.scss b/packages/Webkul/PreOrder/src/Resources/assets/sass/app.scss deleted file mode 100644 index 1dc63dd13..000000000 --- a/packages/Webkul/PreOrder/src/Resources/assets/sass/app.scss +++ /dev/null @@ -1,27 +0,0 @@ -.preorder-info { - padding: 15px; - width: auto; - border: 1px solid #d3d3d3; - border-left: 4px solid #0031f0; - margin: 15px 0; -} - -.pre-order-item-info { - .heading { - font-weight: 600; - margin-bottom: 10px; - margin-top: 10px; - display: block; - } - - .row { - margin-bottom: 5px; - display: block; - padding: 0 !important; - padding-left: 10px !important; - - &:last-child { - margin-bottom: 0; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/assets/sass/icons.scss b/packages/Webkul/PreOrder/src/Resources/assets/sass/icons.scss deleted file mode 100644 index 16b0ab5b0..000000000 --- a/packages/Webkul/PreOrder/src/Resources/assets/sass/icons.scss +++ /dev/null @@ -1,17 +0,0 @@ -.preorder-icon { - width: 48px; - height: 48px; - display: inline-block; - background-size: cover; - background-image: url("../images/Icon-Preorder.svg"); -} - -.active { - .preorder-icon { - background-image: url("../images/Icon-Preorder-Active.svg"); - } - - &.preorder-icon { - background-image: url("../images/Icon-Preorder-Active.svg"); - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/lang/en/app.php b/packages/Webkul/PreOrder/src/Resources/lang/en/app.php deleted file mode 100644 index fd2730703..000000000 --- a/packages/Webkul/PreOrder/src/Resources/lang/en/app.php +++ /dev/null @@ -1,93 +0,0 @@ - [ - 'products' => [ - 'percent-to-pay' => 'Pay :percent% as Preorder.', - 'nothing-to-pay' => 'Nothing to pay for Preorder.', - 'available-on' => 'Available On: :date', - 'preorder' => 'Preorder', - 'complete-preorder-error' => 'Preorder payment not be completed.' - ], - - 'sales' => [ - 'orders' => [ - 'preorder-summary' => 'This order contains preorder items', - 'preorder-information' => 'Preorder Information', - 'preorder-payment-information' => 'Preorder Payment Information', - 'type' => 'Type : ', - 'status' => 'Status : ', - 'payment-order' => 'Payment Order', - 'reference-order' => 'Reference Order' - ] - ], - ], - - 'admin' => [ - 'layouts' => [ - 'preorder' => 'Preorder' - ], - - 'preorders' => [ - 'title' => 'Preorders', - 'mass-notify-success' => 'Stock notification email sent succesfully.' - ], - - 'sales' => [ - 'orders' => [ - 'preorder-summary' => 'This order contains preorder items', - 'preorder-information' => 'Preorder Information', - 'preorder-payment-information' => 'Preorder Payment Information', - 'type' => 'Type : ', - 'status' => 'Status : ', - 'reference-order' => 'Reference Order : ', - 'payment-order' => 'Payment Order : ' - ] - ], - - 'system' => [ - 'preorder' => 'Preorder', - 'settings' => 'Settings', - 'general' => 'General', - 'preorder-type' => 'Preorder Type', - 'partial-payment' => 'Partial Payment', - 'complete-payment' => 'Complete Payment', - 'preorder-percent' => 'Preorder Percent', - 'preorder-percent-info' => 'This value will be used if "Preorder Type" is selected as "Partial Payment".', - 'message' => 'Message', - 'enable-automatic-mail' => 'Enable Automatic Mail' - ] - ], - - 'datagrid' => [ - 'id' => 'Id', - 'order-id' => 'Order Id', - 'payment-order-id' => 'Payment Order Id', - 'product-name' => 'Product Name', - 'customer-name' => 'Customer Name', - 'customer-email' => 'Customer Email', - 'paid-amount' => 'Paid Amount', - 'remaining-amount' => 'Remaining Amount', - 'preorder-type' => 'Preorder Type', - 'status' => 'Status', - 'partial-payment' => 'Partial Payment', - 'complete-payment' => 'Complete Payment', - 'pending' => 'Pending', - 'processing' => 'Processing', - 'completed' => 'Completed', - 'email-sent' => 'Email Sent', - 'yes' => 'Yes', - 'no' => 'No', - 'order-type' => 'Order Type', - 'preorder' => 'Preorder', - 'normal-order' => 'Normal Order' - ], - - 'mail' => [ - 'in-stock' => [ - 'subject' => 'Product in stock notification', - 'dear' => 'Dear :name', - 'info' => 'Product :name has been arrived in stock now. Click here to complete preorder.' - ] - ] -]; \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/views/admin/layouts/style.blade.php b/packages/Webkul/PreOrder/src/Resources/views/admin/layouts/style.blade.php deleted file mode 100644 index 0d93717f6..000000000 --- a/packages/Webkul/PreOrder/src/Resources/views/admin/layouts/style.blade.php +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/views/admin/preorders/index.blade.php b/packages/Webkul/PreOrder/src/Resources/views/admin/preorders/index.blade.php deleted file mode 100644 index 9133bb40d..000000000 --- a/packages/Webkul/PreOrder/src/Resources/views/admin/preorders/index.blade.php +++ /dev/null @@ -1,26 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('preorder::app.admin.preorders.title') }} -@stop - -@section('content-wrapper') - -
- - -
- - {!! app('Webkul\PreOrder\DataGrids\Admin\PreOrder')->render() !!} - -
-
- -@stop diff --git a/packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/index.blade.php b/packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/index.blade.php deleted file mode 100644 index fde3254d3..000000000 --- a/packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/index.blade.php +++ /dev/null @@ -1,42 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('admin::app.sales.orders.title') }} -@stop - -@section('content') -
- - -
- @inject('orderGrid', 'Webkul\PreOrder\DataGrids\Admin\Order') - - {!! $orderGrid->render() !!} -
-
- - -

{{ __('admin::app.export.download') }}

-
- -
-
- -@stop - -@push('scripts') - @include('admin::export.export', ['gridName' => $orderGrid]) -@endpush \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/view.blade.php b/packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/view.blade.php deleted file mode 100644 index 065ec8bd8..000000000 --- a/packages/Webkul/PreOrder/src/Resources/views/admin/sales/orders/view.blade.php +++ /dev/null @@ -1,503 +0,0 @@ -@extends('admin::layouts.master') - -@section('page_title') - {{ __('admin::app.sales.orders.view-title', ['order_id' => $order->id]) }} -@stop - -@section('content-wrapper') - -
- - - -
- - - -
- - havePreOrderItems($order->id); - ?> - - @if ($havePreOrderItems) -
{{ __('preorder::app.admin.sales.orders.preorder-summary') }}
- @endif - - -
- -
-
- {{ __('admin::app.sales.orders.order-info') }} -
- -
-
- - {{ __('admin::app.sales.orders.order-date') }} - - - - {{ $order->created_at }} - -
- -
- - {{ __('admin::app.sales.orders.order-status') }} - - - - {{ $order->status_label }} - -
- -
- - {{ __('admin::app.sales.orders.channel') }} - - - - {{ $order->channel_name }} - -
-
-
- -
-
- {{ __('admin::app.sales.orders.account-info') }} -
- -
-
- - {{ __('admin::app.sales.orders.customer-name') }} - - - - {{ $order->customer_full_name }} - -
- -
- - {{ __('admin::app.sales.orders.email') }} - - - - {{ $order->customer_email }} - -
- - @if (! is_null($order->customer)) -
- - {{ __('admin::app.customers.customers.customer_group') }} - - - - {{ $order->customer->group['name'] }} - -
- @endif -
-
- -
-
- - -
- -
-
- {{ __('admin::app.sales.orders.billing-address') }} -
- -
- - @include ('admin::sales.address', ['address' => $order->billing_address]) - -
-
- - @if ($order->shipping_address) -
-
- {{ __('admin::app.sales.orders.shipping-address') }} -
- -
- - @include ('admin::sales.address', ['address' => $order->shipping_address]) - -
-
- @endif - -
-
- - -
- -
-
- {{ __('admin::app.sales.orders.payment-info') }} -
- -
-
- - {{ __('admin::app.sales.orders.payment-method') }} - - - - {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }} - -
- -
- - {{ __('admin::app.sales.orders.currency') }} - - - - {{ $order->order_currency_code }} - -
-
-
- -
-
- {{ __('admin::app.sales.orders.shipping-info') }} -
- -
-
- - {{ __('admin::app.sales.orders.shipping-method') }} - - - - {{ $order->shipping_title }} - -
- -
- - {{ __('admin::app.sales.orders.shipping-price') }} - - - - {{ core()->formatBasePrice($order->base_shipping_amount) }} - -
-
-
-
-
- - -
- -
- - - - - - - - - - - @if ($order->base_discount_amount > 0) - - @endif - - - - - - - @foreach ($order->items as $item) - - - - - - - - - - - - - - - - @if ($order->base_discount_amount > 0) - - @endif - - - - @endforeach -
{{ __('admin::app.sales.orders.SKU') }}{{ __('admin::app.sales.orders.product-name') }}{{ __('admin::app.sales.orders.price') }}{{ __('admin::app.sales.orders.item-status') }}{{ __('admin::app.sales.orders.subtotal') }}{{ __('admin::app.sales.orders.tax-percent') }}{{ __('admin::app.sales.orders.tax-amount') }}{{ __('admin::app.sales.orders.discount-amount') }}{{ __('admin::app.sales.orders.grand-total') }}
- {{ $item->type == 'configurable' ? $item->child->sku : $item->sku }} - - {{ $item->name }} - - @if ($html = $item->getOptionDetailHtml()) -

{{ $html }}

- @endif - - @if ($preOrderItem = $preOrderItemRepository->findOneByField('order_item_id', $item->id)) -
- type == 'configurable')style="margin-top: 0"@endif> - {{ __('preorder::app.admin.sales.orders.preorder-information') }} - - - - {{ __('preorder::app.admin.sales.orders.type') }} - - {{ $preOrderItem->type_label }} - - - - {{ __('preorder::app.admin.sales.orders.status') }} - - {{ $preOrderItem->status_label }} - - - @if ($preOrderItem->payment_order_item) - - {{ __('preorder::app.admin.sales.orders.payment-order') }} - - - #{{ $preOrderItem->payment_order_item->order_id }} - - - @endif -
- @elseif ($preOrderItem = app('Webkul\PreOrder\Repositories\PreOrderItemRepository')->findOneByField('payment_order_item_id', $item->id)) -
- type == 'configurable')style="margin-top: 0"@endif> - {{ __('preorder::app.admin.sales.orders.preorder-payment-information') }} - - - - {{ __('preorder::app.admin.sales.orders.reference-order') }} - - - #{{ $preOrderItem->order_id }} - - -
- @endif -
{{ core()->formatBasePrice($item->base_price) }} - - {{ $item->qty_ordered ? __('admin::app.sales.orders.item-ordered', ['qty_ordered' => $item->qty_ordered]) : '' }} - - - - {{ $item->qty_invoiced ? __('admin::app.sales.orders.item-invoice', ['qty_invoiced' => $item->qty_invoiced]) : '' }} - - - - {{ $item->qty_shipped ? __('admin::app.sales.orders.item-shipped', ['qty_shipped' => $item->qty_shipped]) : '' }} - - - - {{ $item->qty_canceled ? __('admin::app.sales.orders.item-canceled', ['qty_canceled' => $item->qty_canceled]) : '' }} - - {{ core()->formatBasePrice($item->base_total) }}{{ $item->tax_percent }}%{{ core()->formatBasePrice($item->base_tax_amount) }}{{ core()->formatBasePrice($item->base_discount_amount) }} - {{ core()->formatBasePrice($item->base_total + $item->base_tax_amount) }} -
-
- - - - - - - - - - - - - - - @if ($order->base_discount_amount > 0) - - - - - - @endif - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{{ __('admin::app.sales.orders.subtotal') }}-{{ core()->formatBasePrice($order->base_sub_total) }}
{{ __('admin::app.sales.orders.shipping-handling') }}-{{ core()->formatBasePrice($order->base_shipping_amount) }}
{{ __('admin::app.sales.orders.discount') }}--{{ core()->formatBasePrice($order->base_discount_amount) }}
{{ __('admin::app.sales.orders.tax') }}-{{ core()->formatBasePrice($order->base_tax_amount) }}
{{ __('admin::app.sales.orders.grand-total') }}-{{ core()->formatBasePrice($order->base_grand_total) }}
{{ __('admin::app.sales.orders.total-paid') }}-{{ core()->formatBasePrice($order->base_grand_total_invoiced) }}
{{ __('admin::app.sales.orders.total-refunded') }}-{{ core()->formatBasePrice($order->base_grand_total_refunded) }}
{{ __('admin::app.sales.orders.total-due') }}-{{ core()->formatBasePrice($order->base_total_due) }}
- -
-
- -
-
- - - -
- - - - - - - - - - - - - - - - @foreach ($order->invoices as $invoice) - - - - - - - - - - @endforeach - - @if (! $order->invoices->count()) - - - - @endif -
{{ __('admin::app.sales.invoices.id') }}{{ __('admin::app.sales.invoices.date') }}{{ __('admin::app.sales.invoices.order-id') }}{{ __('admin::app.sales.invoices.customer-name') }}{{ __('admin::app.sales.invoices.status') }}{{ __('admin::app.sales.invoices.amount') }}{{ __('admin::app.sales.invoices.action') }}
#{{ $invoice->id }}{{ $invoice->created_at }}#{{ $invoice->order->id }}{{ $invoice->address->name }}{{ $invoice->status_label }}{{ core()->formatBasePrice($invoice->base_grand_total) }} - - - -
{{ __('admin::app.common.no-result-found') }}
-
- -
- - - -
- - - - - - - - - - - - - - - - @foreach ($order->shipments as $shipment) - - - - - - - - - - @endforeach - - @if (! $order->shipments->count()) - - - - @endif -
{{ __('admin::app.sales.shipments.id') }}{{ __('admin::app.sales.shipments.date') }}{{ __('admin::app.sales.shipments.order-id') }}{{ __('admin::app.sales.shipments.order-date') }}{{ __('admin::app.sales.shipments.customer-name') }}{{ __('admin::app.sales.shipments.total-qty') }}{{ __('admin::app.sales.shipments.action') }}
#{{ $shipment->id }}{{ $shipment->created_at }}#{{ $shipment->order->id }}{{ $shipment->order->created_at }}{{ $shipment->address->name }}{{ $shipment->total_qty }} - - - -
{{ __('admin::app.common.no-result-found') }}
-
- -
-
-
- -
-@stop \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/views/emails/in-stock.blade.php b/packages/Webkul/PreOrder/src/Resources/views/emails/in-stock.blade.php deleted file mode 100644 index 68c66fc92..000000000 --- a/packages/Webkul/PreOrder/src/Resources/views/emails/in-stock.blade.php +++ /dev/null @@ -1,44 +0,0 @@ -@component('shop::emails.layouts.master') - -
- - - -
- -
- -
-

- {{ __('preorder::app.mail.in-stock.dear', ['name' => $item->order->customer_full_name]) }}, -

- -

- - {!! - __('preorder::app.mail.in-stock.info', [ - 'name' => '' . $item->order_item->product->name . '', - 'link' => $item->order->is_guest ? route('preorder.shop.preorder.complete', ['token' => $item->token]) : route('customer.orders.view', ['id' => $item->order_id]) - ]) - !!} - -

-
- -
-

- {!! - __('shop::app.mail.order.help', [ - 'support_email' => '' . config('mail.from.address'). '' - ]) - !!} -

- -

- {{ __('shop::app.mail.order.thanks') }} -

-
- -
- -@endcomponent \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php b/packages/Webkul/PreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php deleted file mode 100644 index 9e3483e70..000000000 --- a/packages/Webkul/PreOrder/src/Resources/views/shop/customers/account/orders/view.blade.php +++ /dev/null @@ -1,414 +0,0 @@ -@extends('shop::layouts.master') - -@section('page_title') - {{ __('shop::app.customer.account.order.view.page-tile', ['order_id' => $order->id]) }} -@endsection - -@push('css') - -@endpush - -@section('content-wrapper') - - - -@endsection \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/views/shop/products/add-buttons.blade.php b/packages/Webkul/PreOrder/src/Resources/views/shop/products/add-buttons.blade.php deleted file mode 100644 index af665b735..000000000 --- a/packages/Webkul/PreOrder/src/Resources/views/shop/products/add-buttons.blade.php +++ /dev/null @@ -1,34 +0,0 @@ -@if ($product->type != "configurable" && $product->totalQuantity() < 1 && $product->allow_preorder) - @if (core()->getConfigData('preorder.settings.general.percent')) - @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') -

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

- @endif - @endif -@endif - -@if ($product->type == "configurable") -
- - {{ __('shop::app.products.add-to-cart') }} - - - @include('shop::products.wishlist') -
-@else -
-
- @csrf - - - - - @if ($product->totalQuantity() < 1 && $product->product->allow_preorder) - - @else - - @endif -
- - @include('shop::products.wishlist') -
-@endif \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/views/shop/products/preorder-info.blade.php b/packages/Webkul/PreOrder/src/Resources/views/shop/products/preorder-info.blade.php deleted file mode 100644 index 10345a30d..000000000 --- a/packages/Webkul/PreOrder/src/Resources/views/shop/products/preorder-info.blade.php +++ /dev/null @@ -1,89 +0,0 @@ -@if ($product->type != 'configurable' && $product->totalQuantity() < 1 && $product->allow_preorder) -
- - @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') - @if (core()->getConfigData('preorder.settings.general.percent')) -

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

- @endif - @endif - - @if (core()->getConfigData('preorder.settings.general.message') != '') -

{{ core()->getConfigData('preorder.settings.general.message') }}

- @endif - - @if ($product->preorder_availability && \Carbon\Carbon::parse($product->preorder_availability) > \Carbon\Carbon::now()) -

- {!! - __('preorder::app.shop.products.available-on', [ - 'date' => core()->formatDate(\Carbon\Carbon::parse($product->preorder_availability), 'F d, Y') - ]) - !!} -

- @endif -
-@elseif ($product->type == 'configurable') - - - @push('scripts') - - - - @endpush -@endif - -@push('css') - -@endpush \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Resources/views/shop/products/view/product-add.blade.php b/packages/Webkul/PreOrder/src/Resources/views/shop/products/view/product-add.blade.php deleted file mode 100644 index 584d15fa1..000000000 --- a/packages/Webkul/PreOrder/src/Resources/views/shop/products/view/product-add.blade.php +++ /dev/null @@ -1,25 +0,0 @@ -{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} - -
- @if ($product->type != 'configurable') - @if ($product->totalQuantity() < 1 && $product->product->allow_preorder) - - @else - @include ('shop::products.add-to-cart', ['product' => $product]) - - @include ('shop::products.buy-now') - @endif - @else - @include ('shop::products.add-to-cart', ['product' => $product]) - - @include ('shop::products.buy-now') - - - @endif -
- -{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/src/Shipping.php b/packages/Webkul/PreOrder/src/Shipping.php deleted file mode 100644 index 34dbec218..000000000 --- a/packages/Webkul/PreOrder/src/Shipping.php +++ /dev/null @@ -1,62 +0,0 @@ -items()->get() as $item) { - if (isset($item->additional['pre_order_payment'])) - $havePreOrderPaymentItem = true; - } - - if (! $havePreOrderPaymentItem) - return parent::collectRates(); - - $object = new CartShippingRate; - - $object->carrier = 'free'; - $object->carrier_title = core()->getConfigData('sales.carriers.free.title'); - $object->method = 'free_free'; - $object->method_title = core()->getConfigData('sales.carriers.free.title'); - $object->method_description = core()->getConfigData('sales.carriers.free.description'); - $object->price = 0; - $object->base_price = 0; - - $this->rates[] = $object; - - $this->saveAllShippingRates(); - - return [ - 'jump_to_section' => 'shipping', - 'html' => view('shop::checkout.onepage.shipping', ['shippingRateGroups' => $this->getGroupedAllShippingRates()])->render() - ]; - } -} \ No newline at end of file diff --git a/packages/Webkul/PreOrder/webpack.mix.js b/packages/Webkul/PreOrder/webpack.mix.js deleted file mode 100644 index bc2d92bb3..000000000 --- a/packages/Webkul/PreOrder/webpack.mix.js +++ /dev/null @@ -1,22 +0,0 @@ -const { mix } = require("laravel-mix"); -require("laravel-mix-merge-manifest"); - -if (mix.inProduction()) { - var publicPath = 'publishable/assets'; -} else { - var publicPath = "../../../public/vendor/webkul/preorder/assets"; -} - -mix.setPublicPath(publicPath).mergeManifest(); -mix.disableNotifications(); - -mix.copyDirectory(__dirname + "/src/Resources/assets/images", publicPath + "/images") - .sass(__dirname + "/src/Resources/assets/sass/app.scss", "css/preorder.css") - .sass(__dirname + "/src/Resources/assets/sass/admin.scss", "css/preorder-admin.css") - .options({ - processCssUrls: false - }); - -if (mix.inProduction()) { - mix.version(); -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/.gitignore b/packages/Webkul/SAASCustomizer/.gitignore deleted file mode 100755 index 30bc16279..000000000 --- a/packages/Webkul/SAASCustomizer/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/node_modules \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/changelog-0.1.x.md b/packages/Webkul/SAASCustomizer/changelog-0.1.x.md deleted file mode 100644 index 0b76f45a0..000000000 --- a/packages/Webkul/SAASCustomizer/changelog-0.1.x.md +++ /dev/null @@ -1,22 +0,0 @@ -# CHANGELOG for v0.1.x - -#### This changelog consists the bug & security fixes and new features being included in the releases listed below. - -## **v0.1.1(26th of july, 2019)** - _Release_ - -* [enhancement] Improved exception handling. -* [bug] Fixed issues in registration form. -* [bug] Fixed cross seller authentication bugs. -* [feature] Super admin panel. -* [feature] Super admin can block sellers. -* [feature] Improved security for customer and admin authentication. - -## **v0.1.2(26th of july, 2019)** - _Release_ - -* [enhancement] New exception screens for - * Domain not found. - * Seller blocked. - * Performing illegal actions (ex. creating more than one channel or locale other than english). - * Not allowed to visit sections (ex. visiting super admin panel). -* [bug] Various bug fixes in observers. -* [enhancement] Removed phone number validation from phone number field. \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/composer.json b/packages/Webkul/SAASCustomizer/composer.json deleted file mode 100755 index 52beeea54..000000000 --- a/packages/Webkul/SAASCustomizer/composer.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "bagisto/laravel-Saas", - "license": "MIT", - "authors": [ - { - "name": "Prashant Singh", - "email": "prashant.singh852@webkul.com" - } - ], - "require": { - "konekt/concord": "^1.2" - }, - "autoload": { - "psr-4": { - "Webkul\\SAASCustomizer\\": "src/" - } - }, - "extra": { - "laravel": { - "providers": [ - "Webkul\\SAASCustomizer\\Providers\\SAASCustomizerServiceProvider" - ], - "aliases": {} - } - }, - "minimum-stability": "dev" -} diff --git a/packages/Webkul/SAASCustomizer/customization-readme.md b/packages/Webkul/SAASCustomizer/customization-readme.md deleted file mode 100644 index d79035f54..000000000 --- a/packages/Webkul/SAASCustomizer/customization-readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Requirements: - -1. SaaS-based system on Bagisto with all the core features . -2. Seller Creation with their own store and domain -3. Stripe Connect as payment, where the connect is under our Stripe account. -4. Seller functionality : Own Admin dashboard, Create/Edit Products, Checked Order status and Completion, Edit/Create Customers, Add Notes on Customer -5. Create discount rules -6. The seller should approve customers who sign up -7. Platform locale in English -8. The seller should control which categories or products a specific customer can see. -9. Upload CSV/Excel file with SKU,Quantity for bulk add to cart -10. Customers should be logged in to see prices and buy. -11. The seller should make custom prices for customers. So this customer gets 10% of all products. -12. The seller can upload PDF and images documents to a page, where the customer can download them. -13. The seller can upload documents to a customer, where the customer can see their documents on their account. -14. It should be possible to add credit max on the customer, so if the customer has unpaid invoices of xxx dollars, they cannot buy any more, before the invoices are paid. -15. Pre Order and Backorder products - -# Installation Steps: - -* Inside the project root '.env' have 'app_url' parameter which must be set as your main domain. -* Then run the command 'php artisan saas:install' -* Open the main domain you would be only be able to see the registration page. - -* There should only be a commission/fee on every transaction, made with Stripe. Not on products. - -There is the Stripe fee 2.9% + 30cent, and there is our platform fee, which we can set in Stripe(it is going to be 2%). We would like them to be shown as a total service fee in the totals on the cart. So if the customer is buying a product to 100$ -The will see subtotal of 100$, shipping: 3$, service fee 5,347 $. ((103*2,9%+2%)+0,30)-103 = 5,347$ -We would like that the Seller can choose from their backend settings, who should pay the service fee. Is it the customer, so the amount will be 108,347 $ for the customer, and the Seller will get 103$ after fees. - -If the Seller should pay the fees, the amount will be 103$ for the customer and the payout for the Seller will be 103-5,347$ = 97,653$ \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/package.json b/packages/Webkul/SAASCustomizer/package.json deleted file mode 100755 index 2d948db6a..000000000 --- a/packages/Webkul/SAASCustomizer/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "npm run development", - "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch-poll": "cross-env npm run watch -- --watch-poll --progress", - "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", - "prod": "npm run production", - "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" - }, - "devDependencies": { - "axios": "^0.18", - "cross-env": "^5.1.4", - "laravel-mix": "^2.1", - "laravel-mix-merge-manifest": "^0.1.1", - "jquery": "^3.2", - "vue": "^2.1.10" - }, - "dependencies": { - "vee-validate": "2.0.0-rc.26", - "vue-flatpickr": "^2.3.0", - "vue-slider-component": "^2.7.5" - } -} diff --git a/packages/Webkul/SAASCustomizer/publishable/assets/css/saas.css b/packages/Webkul/SAASCustomizer/publishable/assets/css/saas.css deleted file mode 100644 index 083c724c8..000000000 --- a/packages/Webkul/SAASCustomizer/publishable/assets/css/saas.css +++ /dev/null @@ -1 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Montserrat:400,500);html{font-family:montserrat,sans-serif}::-webkit-input-placeholder{font-family:montserrat,sans-serif}::-ms-input-placeholder{font-family:montserrat,sans-serif}::placeholder{font-family:montserrat,sans-serif}.mt-30{margin-top:30px}.mt-60{margin-top:60px}.mt-90{margin-top:90px}.form-container{width:420px;margin-left:auto;margin-right:auto;padding:10px}.form-container .brand-logo{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%}.form-container .step-one button,.form-container .step-three button,.form-container .step-two button{width:150px;margin-left:calc(50% - 75px)}.registration .control-group .control{width:100%}.step-navigator{margin-top:30px;margin-bottom:15px;width:100%}.step-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.step-list .step-item{cursor:pointer;height:64px;width:64px;border:1px solid #c7c7c7;border-radius:50%;text-align:center;padding-top:24px}.step-list .step-item.active{border:1px solid blue}.content{padding:25px}.content-container{padding-left:45px;padding-right:45px} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/publishable/assets/images/block.svg b/packages/Webkul/SAASCustomizer/publishable/assets/images/block.svg deleted file mode 100644 index 0312ffb16..000000000 --- a/packages/Webkul/SAASCustomizer/publishable/assets/images/block.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - block - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/publishable/assets/images/compass.svg b/packages/Webkul/SAASCustomizer/publishable/assets/images/compass.svg deleted file mode 100644 index 8554e43ab..000000000 --- a/packages/Webkul/SAASCustomizer/publishable/assets/images/compass.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - compass - Created with Sketch. - - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/publishable/assets/images/razzo-logo.png b/packages/Webkul/SAASCustomizer/publishable/assets/images/razzo-logo.png deleted file mode 100644 index 62a1281b0d1bc940a97321ff17ee04542584f2b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3341 zcmeH~>0cAq9>!@^tf;j>Q9vYBD!rBhiYT%LMIf@T$_@$@gb^GWK%+rKw^mO5DX9k#3XlkasP+D=!8u%#S{di?#1aL@Db}G0TOj$fX=yHLG362%jCGq- zWUhy;J$6iQuufV_OkJHPinNc zh$PuXGDmwqTo)vvI#|dOS1o22gp}=JB{Xm)Frn5O z3iR1T4Xm!a2imtCa`bdzr)v5E2tEE_3% z4x4#9Z;mDq9FKY&^bE5z3SQ3D<88k_{4On!{Zp0{6oYfeL|<_!GdZ)lYV9SG8L*9r zQBTTRkOI&Vcu#U@syHJq@V@sr#NvKTjY7(k&m)M*cB@(zNyr+x!5$IISSC)xX(Wgv z+XFCzRsep>ixz&OlCfQOA89z(x!G>_g&Wvszb#U8<3Iki#4_nd3A_HJ@Qpc@Fwe+t zn7wzi9vL$%#K<`pT&-hcqO+=#$;54B@9-JE9&3E`8>u1+%Fo;=aJ6)9O|IioqW`?d zZ9>Pf)+d2M_n6>d@o`^6>Ae6d!Ok_hb8dcMwY**vV5VRQi~rOq^HrWU2%Yd+&*Y?Y z`$w8<&bQ^2)hvj`yJB};)4_=RqRiIEEXRHyvht%U3`^i+iDkwcA-D^MLq66$d8EHD z^rlISJ@IwU$E49JUKiGdrNLC$2bx}GvCgND8FRZBjOgBQ9g7PI*@9KPS-K|1vDzZ8 zEQm;OTs6R7ZeV{Yzh}Vlan0i2$rz75Oa%Ab=bxS1}$Zg8K=^p&IWr92#xP za{{b_7xc2yduY<_xIzs5WTsjC(r zwZu~ph3G>~w7d3vG$K4c{!LkbnC+Iyq^Et+M*3X`uPYykRG0hni`At>z57<9`daw0hB(og0CAigc zB!qKD(CQ{IKl<|zP9Cq>$)C5WK@ja#%6FEYVL?xp$sGY(PfZBwg-I2ijYRY$S?^)D zpS^d>Qm|v^yiU0#3NsG#FaR#~kuKCeSYX`6C|~@K(vVzW%dD56*rzI zYX58hMqm5P5a#2op3{R8JiUrof7xRIz;P+0rioH}QddEQWKM<5HkDFzpwvh|d%H<9 zx;dbrL&s3oqS?&RhX_|0KI zyYV-T$#GgN4CjUhy@4csPi@Us6U?qCwmkWpKx9FZV6_t#2~G3M(Z;Dkf7Rw!JNrjR zSuv5f`uo$(T5+>hzLv89RxZq^-|7axrXqmzl*Rt~^e+%_2xM74K2A~tKk2R?NN2-= zH_edXXaQp74;6zQXnqDuoe3p{^Q=Qsc<+F~ny!r+Vr~4L9dJXZq4`vgG1$T!^CB#k z(Z$OxvN#>~p-?rhEVmXFl3Ux5x6+p0K~G8CcO4Y$xvB>u`}Xe-VvJk4*S=Li4D+%y z>njY1c@jV4(&aiN2Cz#Onn(KV&9B2{3i1jJ>vmqzcdfs$4L#U^Eq$*@&*JLauJnjcACi|G_{BKM(UDwUR$Buyx)|)`}RaBl)2H{=)M|crvIpDo?--e?7kG| zBinOxLAy>O3I8oZLE*eFaOT`3t8lDDH;@~d6i;5dj{Rk5(Lt-5dR>fN{o zgcW$pE;}Ll=A3ALg4VJj)1CB{hH`QPOQ6W06fNdmQiZOpi_KgnjNOeK>M1UWtfR-T z#c9NqZ}5NlI_t<@&oJ8<4z*$QY!ZxTiSKqe_EWL%;?S@DOzlP6)tNhSh>qDfm!?H9 z^3+72Zo^8qwZgljQ&KGkeFM_OGt%BSCxpfXwKS2dnVX?nS>zQ|I8gGg7n-#B2hVrv zINQisk zYNhkpTlu&1g4+qVG*-d@1#pl8Ql7B#2ZvM{?5sn186D1$c(|fFji-sZ2Z&{Nv{3&4 zZwcO6VnRGqaJ)gx*ap$njbjk4!gE;BNUtcrp#2nKQccyDe&tV [ - 'driver' => 'session', - 'provider' => 'superadmins' -] -``` -> insert the above code in 'guards' array. - -``` -'superadmins' => [ - 'driver' => 'eloquent', - 'model' => Webkul\SAASCustomizer\Models\SuperAdmin::class -] -``` -> insert the above code in 'providers' array. - -* Run the command from root in terminal 'composer dump-autoload'. -* In your terminal now type command 'php artisan SAAS:install', to generate the super admin credentials -* Access super admin panel using: -www.domain.com/super/login -* Run your SAAS based store. \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Commands/Console/GenerateSU.php b/packages/Webkul/SAASCustomizer/src/Commands/Console/GenerateSU.php deleted file mode 100644 index 73bdd8367..000000000 --- a/packages/Webkul/SAASCustomizer/src/Commands/Console/GenerateSU.php +++ /dev/null @@ -1,117 +0,0 @@ -company = $company; - $this->details = $details; - $this->admin = $admin; - $this->role = $role; - } - - /** - * Does the all sought of lifting required to be performed for - * generating a super user - */ - public function handle() - { - $this->comment('Generating super user for the system....'); - - $email = $this->ask('Please enter email?'); - - $data = [ - 'email' => $email - ]; - - $validator = Validator::make($data, [ - 'email' => 'required|email', - ]); - - if($validator->fails()) { - $this->comment('Email invalid, please enter try again.'); - - return false; - } - - unset($data); - - $this->comment('You entered = '. $email); - - $password = $this->ask('Please enter password?'); - $data = [ - 'password' => $password - ]; - - $validator = Validator::make($data, [ - 'password' => 'required|string|min:6' - ]); - - if ($validator->fails()) { - $this->comment('Password invalid, make sure password is atleast 6 characters of length.'); - - return false; - } - - $this->comment('You entered = '. $password); - - unset($data); - - if ($this->confirm('Do you wish to continue?')) { - $result = $this->generateSuperUserCompany($email, $password); - - if ($result) { - $this->comment('Super user for the system is created'); - } else { - $this->comment('Super user for the system already exists, please contact support@bagisto.com for troubleshooting.'); - } - - } else { - $this->comment('Please try creating the super user again'); - } - } - - public function generateSuperUserCompany($email, $password) - { - $super_admin = \DB::select('select * from super_admins'); - - if(count($super_admin)) { - return false; - } - - $data = [ - 'email' => $email, - 'password' => bcrypt($password), - ]; - - \DB::insert('insert into super_admins (id, email, password, created_at, updated_at) values (?, ?, ?, ?, ?)', [1, $data['email'], $data['password'], now(), now()]); - - return true; - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Company.php b/packages/Webkul/SAASCustomizer/src/Company.php deleted file mode 100644 index 8c3d2d480..000000000 --- a/packages/Webkul/SAASCustomizer/src/Company.php +++ /dev/null @@ -1,135 +0,0 @@ -company = $company; - } - - public function isAllowed() - { - $primaryServerName = config('app.url'); - - if (isset($_SERVER['SERVER_NAME'])) - $currentURL = $_SERVER['SERVER_NAME']; - else - $currentURL = $primaryServerName; - - $primaryServerNameWithoutProtocol = null; - - if (str_contains($primaryServerName, 'http://')) { - $primaryServerNameWithoutProtocol = explode('http://', $primaryServerName)[1]; - } else if (str_contains($primaryServerName, 'https://')) { - $primaryServerNameWithoutProtocol = explode('https://', $primaryServerName)[1]; - } - - if (str_contains($primaryServerNameWithoutProtocol, '/')) { - $primaryServerNameWithoutProtocol = explode('/', $primaryServerNameWithoutProtocol)[0]; - } - - if ($currentURL == $primaryServerNameWithoutProtocol) { - return true; - } else { - return false; - } - } - - protected function getAllRegisteredDomains() - { - $domains = $this->company->all(); - - return $domains; - } - - public function getCurrent() - { - $superAdmin = new SuperAdmin; - - $primaryServerName = config('app.url'); - - if (isset($_SERVER['SERVER_NAME'])) - $currentURL = $_SERVER['SERVER_NAME']; - else - $currentURL = $primaryServerName; - - if (str_contains($primaryServerName, 'http://')) { - $primaryServerNameWithoutProtocol = explode('http://', $primaryServerName)[1]; - } else if (str_contains($primaryServerName, 'https://')) { - $primaryServerNameWithoutProtocol = explode('https://', $primaryServerName)[1]; - } - - if (str_contains($currentURL, 'http://')) { - $currentURL = explode('http://', $currentURL)[1]; - } else if (str_contains($currentURL, 'http://')) { - $currentURL = explode('http://', $currentURL)[1]; - } - - if (str_contains($primaryServerNameWithoutProtocol, '/')) { - $primaryServerNameWithoutProtocol = explode('/', $primaryServerNameWithoutProtocol)[0]; - } - - if ($currentURL == $primaryServerNameWithoutProtocol) { - $company = 'super-company'; - - return $company; - } else { - $company = $this->company->findWhere(['domain' => $currentURL]); - - if ($company->isEmpty()) { - throw new \Exception('domain_not_found', 400); - } else { - $company = $company->first(); - - if ($company->is_active == 0) { - throw new \Exception('company_blocked_by_administrator', 400); - } - } - - return $company; - } - } - - /** - * Returns if there are companies - * already created - */ - public function count() - { - return $this->company->findWhere([['id', '>', '0']])->count(); - } - - public function getPrimaryUrl() - { - if (str_contains(env('APP_URL'), 'http://')) { - $primaryServerNameWithoutProtocol = explode('http://', env('APP_URL'))[1]; - } else if (str_contains($primaryServerName, 'https://')) { - $primaryServerNameWithoutProtocol = explode('https://', env('APP_URL'))[1]; - } - - return $primaryServerNameWithoutProtocol; - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Config/excluded-sites.php b/packages/Webkul/SAASCustomizer/src/Config/excluded-sites.php deleted file mode 100644 index b15c670d8..000000000 --- a/packages/Webkul/SAASCustomizer/src/Config/excluded-sites.php +++ /dev/null @@ -1,5 +0,0 @@ - 'company', - 'name' => 'saas::app.menu.companies', - 'route' => 'super.companies.index', - 'sort' => 1, - 'icon-class' => 'settings-icon', - ] -]; \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/DataGrids/CompaniesDataGrid.php b/packages/Webkul/SAASCustomizer/src/DataGrids/CompaniesDataGrid.php deleted file mode 100644 index 56805f74f..000000000 --- a/packages/Webkul/SAASCustomizer/src/DataGrids/CompaniesDataGrid.php +++ /dev/null @@ -1,92 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CompaniesDataGrid extends DataGrid -{ - protected $index = 'id'; //the column that needs to be treated as index column - - protected $sortOrder = 'desc'; //asc or desc - - public function prepareQueryBuilder() - { - $queryBuilder = DB::table('companies') - ->select('id') - ->addSelect('id', 'name', 'domain', 'is_active'); - - $this->setQueryBuilder($queryBuilder); - } - - public function addColumns() - { - $this->addColumn([ - 'index' => 'id', - 'label' => trans('admin::app.datagrid.id'), - 'type' => 'number', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'name', - 'label' => trans('admin::app.datagrid.name'), - 'type' => 'string', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'domain', - 'label' => trans('saas::app.datagrid.domain'), - 'type' => 'string', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'is_active', - 'label' => trans('admin::app.datagrid.status'), - 'type' => 'boolean', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true, - 'closure' => true, - 'wrapper' => function ($row) { - if ($row->is_active ==1) { - return ''; - } else { - return ''; - } - } - ]); - } - - public function prepareActions() - { - $this->addAction([ - 'type' => 'View', - 'method' => 'GET', //use post only for redirects only - 'route' => 'super.companies.show-stats', - 'icon' => 'icon eye-icon' - ]); - - $this->addAction([ - 'type' => 'View', - 'method' => 'GET', //use post only for redirects only - 'route' => 'super.companies.edit', - 'icon' => 'icon pencil-lg-icon' - ]); - } -} diff --git a/packages/Webkul/SAASCustomizer/src/Database/DatabaseManager.php b/packages/Webkul/SAASCustomizer/src/Database/DatabaseManager.php deleted file mode 100644 index c030fd762..000000000 --- a/packages/Webkul/SAASCustomizer/src/Database/DatabaseManager.php +++ /dev/null @@ -1,48 +0,0 @@ -guard('super-admin')->check()) { - if (count(explode('as', $table)) == 1) { - if ($table == 'companies' || $table == 'country_states' || $table == 'countries') { - - return $this->query()->from($table); - } else { - return $this->query()->from($table)->where($table . '.company_id', $company->id); - } - } else if (count(explode('as', $table)) == 2) { - $name = explode('as', $table); - $tempName = trim($name[0]); - - if ($tempName == 'companies' || $tempName == 'country_states' || $tempName == 'countries' || $table == 'customer_documents') { - return $this->query()->from($table); - } else { - return $this->query()->from($table)->where(trim($name[1]) . '.company_id', $company->id); - } - } else { - throw \Exception('Unusual Entities'); - } - } else { - return $this->query()->from($table); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Database/Eloquent/Builder.php b/packages/Webkul/SAASCustomizer/src/Database/Eloquent/Builder.php deleted file mode 100644 index e4a6a9b9d..000000000 --- a/packages/Webkul/SAASCustomizer/src/Database/Eloquent/Builder.php +++ /dev/null @@ -1,14 +0,0 @@ -increments('id'); - $table->string('name')->unique(); - $table->string('email')->nullable(); - $table->string('username')->unique(); - $table->string('logo')->nullable(); - $table->string('domain')->unique(); - $table->string('city')->nullable(); - $table->string('state')->nullable(); - $table->string('zip_code')->nullable(); - $table->string('country')->nullable(); - $table->text('address1')->nullable(); - $table->text('address2')->nullable(); - $table->text('description')->nullable(); - $table->json('more_info')->nullable(); - $table->boolean('is_active')->default(1); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('companies'); - } -} diff --git a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_03_26_152524_alter_all_unique_contraints.php b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_03_26_152524_alter_all_unique_contraints.php deleted file mode 100644 index 79aab3101..000000000 --- a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_03_26_152524_alter_all_unique_contraints.php +++ /dev/null @@ -1,248 +0,0 @@ -dropUnique('attributes_code_unique'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->unique(['code', 'company_id'], 'attribute_company_code_unique_index'); - }); - - Schema::table('attribute_families', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('attribute_groups', function (Blueprint $table) { - $table->dropForeign(['attribute_family_id']); - $table->dropUnique('attribute_groups_attribute_family_id_name_unique'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->foreign('attribute_family_id')->references('id')->on('attribute_families')->onDelete('cascade'); - $table->unique(['attribute_family_id', 'name', 'company_id'], 'attribute_family_id_name_company_id_unique_index'); - }); - - // Category package migration alterations - Schema::table('categories', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('category_translations', function (Blueprint $table) { - $table->dropForeign(['category_id']); - $table->dropUnique('category_translations_category_id_slug_locale_unique'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade'); - $table->unique(['category_id', 'slug', 'locale', 'company_id'], 'id_slug_locale_company_id_unique_index'); - }); - - // Checkout package migration alterations - Schema::table('cart', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - // Core package migration alterations - Schema::table('channels', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('core_config', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('currencies', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('currency_exchange_rates', function(Blueprint $table) { - $table->dropForeign(['target_currency']); - $table->dropUnique('currency_exchange_rates_target_currency_unique'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->foreign('target_currency')->references('id')->on('currencies')->onDelete('cascade'); - $table->unique(['target_currency', 'company_id'], 'target_currency_company_id_unique_id'); - }); - - Schema::table('locales', function(Blueprint $table) { - $table->dropUnique('locales_code_unique'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->unique(['code', 'company_id'], 'code_company_id_unqiue_index'); - }); - - Schema::table('sliders', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('subscribers_list', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - // customer package table alterations - Schema::table('customers', function (Blueprint $table) { - $table->dropUnique('customers_email_unique'); - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->unique(['email', 'company_id']); - }); - - // Schema::table('customer_password_resets', function (Blueprint $table) { - // $table->integer('company_id')->unsigned()->after('email'); - // $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - // }); - - Schema::table('customer_addresses', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('customer_groups', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('wishlist', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - // Inventory package table alterations - Schema::table('inventory_sources', function (Blueprint $table) { - $table->dropUnique('inventory_sources_code_unique'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->unique(['code', 'company_id'], 'code_company_id_unique'); - }); - - // product package table alterations - Schema::table('products', function (Blueprint $table) { - $table->dropUnique('products_sku_unique'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->unique(['sku', 'company_id'], 'sku_company_id_unique'); - }); - - Schema::table('product_flat', function (Blueprint $table) { - $table->dropForeign(['product_id']); - $table->dropUnique('product_flat_unique_index'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->foreign('product_id')->references('id')->on('products')->onDelete('cascade'); - $table->unique(['product_id', 'channel', 'locale', 'company_id'], 'product_flat_unique_index'); - }); - - Schema::table('product_attribute_values', function (Blueprint $table) { - $table->dropUnique('chanel_locale_attribute_value_index_unique'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->unique(['channel', 'locale', 'attribute_id', 'product_id', 'company_id'], 'channel_locale_attr_id_product_id_company_unique'); - }); - - Schema::table('product_inventories', function (Blueprint $table) { - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('product_reviews', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - // sales package table alterations - Schema::table('invoices', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('invoice_items', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('orders', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('order_items', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('order_address', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('order_payment', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('shipments', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - // Schema::table('shipment_items', function (Blueprint $table) { - // $table->integer('company_id')->unsigned()->after('id'); - // $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - // }); - - // tax package table alterations - Schema::table('tax_categories', function (Blueprint $table) { - $table->dropUnique('tax_categories_code_unique'); - $table->dropUnique('tax_categories_name_unique'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->unique(['name', 'company_id']); - $table->unique(['code', 'company_id']); - }); - - Schema::table('tax_rates', function (Blueprint $table) { - $table->dropUnique('tax_rates_identifier_unique'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->unique(['identifier', 'company_id']); - }); - - Schema::table('roles', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('admins', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_04_05_105951_create_company_personal_details_table.php b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_04_05_105951_create_company_personal_details_table.php deleted file mode 100644 index fe2ad3b39..000000000 --- a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_04_05_105951_create_company_personal_details_table.php +++ /dev/null @@ -1,38 +0,0 @@ -increments('id'); - $table->string('first_name')->nullable(); - $table->string('last_name')->nullable(); - $table->string('email')->nullable()->unique(); - $table->string('skype')->nullable(); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->json('more_info')->nullable(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('company_personal_details'); - } -} diff --git a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_05_20_102233_create_super_admins_table.php b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_05_20_102233_create_super_admins_table.php deleted file mode 100644 index 465963f60..000000000 --- a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_05_20_102233_create_super_admins_table.php +++ /dev/null @@ -1,35 +0,0 @@ -enum('id', [1])->unique(); - $table->string('email'); - $table->string('password'); - $table->boolean('status')->default(1); - $table->string('remember_token')->nullable(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('super_admins'); - } -} diff --git a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_06_11_164314_alter_catalog_rules_tables.php b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_06_11_164314_alter_catalog_rules_tables.php deleted file mode 100644 index ffbdb9c8e..000000000 --- a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_06_11_164314_alter_catalog_rules_tables.php +++ /dev/null @@ -1,35 +0,0 @@ -integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('cart_rules', function (Blueprint $table) { - $table->dropForeign(['company_id']); - $table->dropColumn('company_id'); - }); - } -} diff --git a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_08_16_121748_alter_cms_catalog_rule_table.php b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_08_16_121748_alter_cms_catalog_rule_table.php deleted file mode 100644 index b5920beac..000000000 --- a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_08_16_121748_alter_cms_catalog_rule_table.php +++ /dev/null @@ -1,64 +0,0 @@ -integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('catalog_rules', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('catalog_rule_products', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - - Schema::table('catalog_rule_products_price', function (Blueprint $table) { - $table->integer('company_id')->unsigned()->after('id'); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('cms_pages', function (Blueprint $table) { - $table->dropForeign(['company_id']); - $table->dropColumn('company_id'); - }); - - Schema::table('catalog_rules', function (Blueprint $table) { - $table->dropForeign(['company_id']); - $table->dropColumn('company_id'); - }); - - Schema::table('catalog_rules_products', function (Blueprint $table) { - $table->dropForeign(['company_id']); - $table->dropColumn('company_id'); - }); - - Schema::table('catalog_rules_products_price', function (Blueprint $table) { - $table->dropForeign(['company_id']); - $table->dropColumn('company_id'); - }); - } -} diff --git a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_08_19_222319_alter_customer_groups_table.php b/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_08_19_222319_alter_customer_groups_table.php deleted file mode 100644 index 7c9675d62..000000000 --- a/packages/Webkul/SAASCustomizer/src/Database/Migrations/2019_08_19_222319_alter_customer_groups_table.php +++ /dev/null @@ -1,35 +0,0 @@ -dropUnique('customer_groups_code_unique'); - $table->unique(['code', 'company_id']); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('customer_groups', function (Blueprint $table) { - $table->dropUnique('customer_groups_code_company_id_unique'); - $table->unique('code'); - }); - - } -} diff --git a/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php b/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php deleted file mode 100644 index 01cab317b..000000000 --- a/packages/Webkul/SAASCustomizer/src/Exceptions/Handler.php +++ /dev/null @@ -1,102 +0,0 @@ - 'Resource not found', - 403 => '403 forbidden Error', - 401 => 'Unauthenticated', - 500 => '500 Internal Server Error', - ]; - - /** - * Render an exception into an HTTP response. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $exception - * @return \Illuminate\Http\Response - */ - public function render($request, Exception $exception) - { - $path = 'saas'; - - if ($exception->getMessage() == 'domain_not_found') { - return $this->response($path, 400, trans('saas::app.exceptions.domain-not-found'), 'domain_not_found'); - } - - if ($exception->getMessage() == 'company_blocked_by_administrator') { - return $this->response($path, 404, trans('saas::app.exceptions.company-blocked-by-administrator'), 'company_blocked_by_administrator'); - } - - if ($exception->getMessage() == 'not_allowed_to_visit_this_section') { - return $this->response($path, 400, trans('saas::app.exceptions.not-allowed-to-visit-this-section'), 'not_allowed_to_visit_this_section'); - } - - if ($exception->getMessage() == 'illegal_action') { - return $this->response($path, 400, trans('saas::app.exceptions.illegal-action'), 'illegal_action'); - } - - if ($exception->getMessage() == 'invalid_admin_login' || $exception->getMessage() == 'invalid_customer_login') { - return $this->response($path, 404, trans('saas::app.exceptions.auth')); - } - - if ($exception instanceof HttpException) { - $statusCode = in_array($exception->getStatusCode(), [401, 403, 404, 503]) ? $exception->getStatusCode() : 500; - - return $this->response($path, $statusCode); - } else if ($exception instanceof ModelNotFoundException) { - return $this->response($path, 404); - } else if ($exception instanceof PDOException) { - return $this->response($path, 500); - } - - return parent::render($request, $exception); - } - - /** - * Convert an authentication exception into a response. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Auth\AuthenticationException $exception - * @return \Illuminate\Http\Response - */ - protected function unauthenticated($request, AuthenticationException $exception) - { - if ($request->expectsJson()) { - return response()->json(['error' => $this->jsonErrorMessages[401]], 401); - } - - return redirect()->guest(route('super.session.index')); - } - - private function isAdminUri() - { - return strpos($_SERVER['REQUEST_URI'], 'super') !== false ? true : false; - } - - private function response($path, $statusCode, $message = null, $type = null) - { - if (request()->expectsJson()) { - return response()->json([ - 'error' => isset($this->jsonErrorMessages[$statusCode]) - ? $this->jsonErrorMessages[$statusCode] - : trans('saas::app.status.something-wrong-1') - ], $statusCode); - } - - if ($type == null) { - return response()->view("{$path}::errors.{$statusCode}", ['message' => $message, 'status' => $statusCode], $statusCode); - } else { - return response()->view("{$path}::errors.{$type}", ['message' => $message, 'status' => $statusCode], $statusCode); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Facades/Company.php b/packages/Webkul/SAASCustomizer/src/Facades/Company.php deleted file mode 100644 index b8a4fdfb0..000000000 --- a/packages/Webkul/SAASCustomizer/src/Facades/Company.php +++ /dev/null @@ -1,18 +0,0 @@ -company = Company::getCurrent(); - $this->category = $category; - $this->inventory = $inventory; - $this->locale = $locale; - $this->currency = $currency; - $this->channel = $channel; - $this->attribute = $attribute; - $this->attributeFamily = $attributeFamily; - $this->attributeGroup = $attributeGroup; - $this->customerGroup = $customerGroup; - $this->cms = $cms; - } - - /** - * Prepare data for the customer groups - */ - public function prepareCustomerGroupData() - { - $this->company = Company::getCurrent(); - - $data = [ - 'code' => 'guest', - 'name' => 'Guest', - 'is_user_defined' => 0, - 'company_id' => $this->company->id - ]; - - $customerGroup0 = $this->customerGroup->create($data); - - // default customer group 1 - $data = [ - 'id' => 1, - 'code' => 'general', - 'name' => 'General', - 'is_user_defined' => 0, - 'company_id' => $this->company->id - ]; - - $customerGroup1 = $this->customerGroup->create($data); - - // default customer group 2 - $data = [ - 'id' => 2, - 'code' => 'wholesale', - 'name' => 'Wholesale', - 'is_user_defined' => 0, - 'company_id' => $this->company->id - ]; - - $customerGroup2 = $this->customerGroup->create($data); - - return ['default' => $customerGroup1, 'wholesale' => $customerGroup2]; - } - - /** - * Prepares category data - */ - public function prepareCategoryData() - { - $this->company = Company::getCurrent(); - - $data = [ - 'position' => '1', - 'image' => NULL, - 'status' => '1', - 'parent_id' => NULL, - 'name' => 'Root', - 'slug' => 'root', - 'description' => 'Root', - 'meta_title' => '', - 'meta_description' => '', - 'meta_keywords' => '', - 'locale' => 'all', - 'company_id' => $this->company->id - ]; - - $category = $this->category->create($data); - - return $category; - } - - /** - * Prepares data for a default inventory - */ - public function prepareInventoryData() - { - $this->company = Company::getCurrent(); - - $data = [ - 'code' => 'default', - 'name' => 'Default', - 'contact_name' => 'Detroit Warehouse', - 'contact_email' => 'warehouse@example.com', - 'contact_number' => '9876543210', - 'status' => 1, - 'country' => 'US', - 'state' => 'MI', - 'street' => '12th Street', - 'city' => 'Detroit', - 'postcode' => '48127', - 'company_id' => $this->company->id - ]; - - return $this->inventory->create($data); - } - - /** - * Creates a default locale - */ - public function prepareLocaleData() - { - $this->company = Company::getCurrent(); - - $data = [ - 'code' => 'en', - 'name' => 'English', - 'company_id' => $this->company->id - ]; - - return $this->locale->create($data); - } - - /** - * Prepares a default currency - */ - public function prepareCurrencyData() - { - $this->company = Company::getCurrent(); - - $data = [ - 'code' => 'USD', - 'name' => 'US Dollar', - 'company_id' => $this->company->id - ]; - - return $this->currency->create($data); - } - - /** - * Prepares a default channel - */ - public function prepareChannelData() - { - $this->company = Company::getCurrent(); - - $inventorySource = $this->inventory->findOneWhere(['company_id' => $this->company->id]); - $locale = $this->locale->findOneWhere(['company_id' => $this->company->id]); - $currency = $this->currency->findOneWhere(['company_id' => $this->company->id]); - $category = $this->category->findOneWhere(['company_id' => $this->company->id]); - - $data = [ - 'code' => 'default', - 'name' => 'Default Channel', - 'description' => 'Default Channel', - "inventory_sources" => [ - 0 => $inventorySource->id - ], - "root_category_id" => $category->id, - 'hostname' => $this->company->domain, - 'locales' => [ - 0 => $locale->id - ], - "default_locale_id" => $locale->id, - - 'currencies' => [ - 0 => $currency->id - ], - - 'base_currency_id' => $currency->id, - 'theme' => 'default', - - 'home_page_content' => '

@include("shop::home.slider") @include("shop::home.featured-products") @include("shop::home.new-products")

', - - 'footer_content' => '', - - 'company_id' => $this->company->id - ]; - - return $this->channel->create($data); - - // $newChannel->locales()->sync($data['locales']); - - // $newChannel->currencies()->sync($data['currencies']); - - // $newChannel->inventory_sources()->sync($data['inventory_sources']); - - // $this->uploadImages($data, $channel); - - // $this->uploadImages($data, $channel, 'favicon'); - } - - /** - * Prepare Attribute Data - */ - public function prepareAttributeData() - { - $this->company = Company::getCurrent(); - - $sku = ['code' => 'sku','admin_name' => 'SKU','type' => 'text','validation' => NULL,'position' => '1','is_required' => '1','is_unique' => '1','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'SKU']]; - - $this->attribute->create($sku); - - $name = ['code' => 'name', 'admin_name' => 'Name', 'type' => 'text', 'validation' => NULL, 'position' => '2', 'is_required' => '1', 'is_unique' => '0', 'value_per_locale' => '1', 'value_per_channel' => '1', 'is_filterable' => '0', 'is_configurable' => '0', 'is_user_defined' => '0', 'is_visible_on_front' => '0', 'company_id' => $this->company->id,'en' => ['name' => 'Name']]; - - $this->attribute->create($name); - - $url_key = ['code' => 'url_key', 'admin_name' => 'URL Key', 'type' => 'text', 'validation' => NULL, 'position' => '3', 'is_required' => '1', 'is_unique' => '1', 'value_per_locale' => '0', 'value_per_channel' => '0', 'is_filterable' => '0', 'is_configurable' => '0', 'is_user_defined' => '0', 'is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'URL Key']]; - - $this->attribute->create($url_key); - - $taxCategoryId = ['code' => 'tax_category_id', 'admin_name' => 'Tax Category', 'type' => 'select', 'validation' => NULL, 'position' => '4', 'is_required' => '0', 'is_unique' => '0', 'value_per_locale' => '0', 'value_per_channel' => '1', 'is_filterable' => '0', 'is_configurable' => '0', 'is_user_defined' => '0', 'is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Tax Category']]; - - $this->attribute->create($taxCategoryId); - - $new = ['code' => 'new', 'admin_name' => 'New', 'type' => 'boolean', 'validation' => NULL, 'position' => '5', 'is_required' => '0', 'is_unique' => '0', 'value_per_locale' => '0', 'value_per_channel' => '0', 'is_filterable' => '0','is_configurable' => '0', 'is_user_defined' => '0', 'is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'New']]; - - $this->attribute->create($new); - - $featured = ['id' => '6', 'code' => 'featured', 'admin_name' => 'Featured', 'type' => 'boolean', 'validation' => NULL, 'position' => '6', 'is_required' => '0', 'is_unique' => '0', 'value_per_locale' => '0', 'value_per_channel' => '0', 'is_filterable' => '0', 'is_configurable' => '0', 'is_user_defined' => '0', 'is_visible_on_front' => '0', 'company_id' => 1, 'en' => ['name' => 'Featured']]; - - $this->attribute->create($featured); - - $visibleIndividually = ['code' => 'visible_individually','admin_name' => 'Visible Individually','type' => 'boolean','validation' => NULL,'position' => '7','is_required' => '1','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Visible Individually']]; - - $this->attribute->create($visibleIndividually); - - $status = ['code' => 'status','admin_name' => 'Status','type' => 'boolean','validation' => NULL,'position' => '8','is_required' => '1','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Status']]; - - $this->attribute->create($status); - - $shortDesc = ['code' => 'short_description','admin_name' => 'Short Description','type' => 'textarea','validation' => NULL,'position' => '9','is_required' => '1','is_unique' => '0','value_per_locale' => '1','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Short Description']]; - - $this->attribute->create($shortDesc); - - $desc = ['code' => 'description','admin_name' => 'Description','type' => 'textarea','validation' => NULL,'position' => '10','is_required' => '1','is_unique' => '0','value_per_locale' => '1','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Description']]; - - $this->attribute->create($desc); - - $price = ['code' => 'price','admin_name' => 'Price','type' => 'price','validation' => 'decimal','position' => '11','is_required' => '1','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Price']]; - - $this->attribute->create($price); - - $cost = ['code' => 'cost','admin_name' => 'Cost','type' => 'price','validation' => 'decimal','position' => '12','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => 1, 'en' => ['name' => 'Cost']]; - - $this->attribute->create($cost); - - $specialPrice = ['code' => 'special_price','admin_name' => 'Special Price','type' => 'price','validation' => 'decimal','position' => '13','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Special Price']]; - - $this->attribute->create($specialPrice); - - $specialFrom = ['code' => 'special_price_from','admin_name' => 'Special Price From','type' => 'date','validation' => NULL,'position' => '14','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Special Price From']]; - - $this->attribute->create($specialFrom); - - $specialTo = ['code' => 'special_price_to','admin_name' => 'Special Price To','type' => 'date','validation' => NULL,'position' => '15','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Special Price To']]; - - $this->attribute->create($specialTo); - - $metaTitle = ['code' => 'meta_title','admin_name' => 'Meta Title','type' => 'textarea','validation' => NULL,'position' => '16','is_required' => '0','is_unique' => '0','value_per_locale' => '1','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Meta Title']]; - - $this->attribute->create($metaTitle); - - $metaKeywords = ['code' => 'meta_keywords','admin_name' => 'Meta Keywords','type' => 'textarea','validation' => NULL,'position' => '17','is_required' => '0','is_unique' => '0','value_per_locale' => '1','value_per_channel' => '1','is_filterable' => '0', 'is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0','company_id' => $this->company->id, 'en' => ['name' => 'Meta Keywords']]; - - $this->attribute->create($metaKeywords); - - $metaDesc = ['code' => 'meta_description','admin_name' => 'Meta Description','type' => 'textarea','validation' => NULL,'position' => '18','is_required' => '0','is_unique' => '0','value_per_locale' => '1','value_per_channel' => '1','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Meta Description']]; - - $this->attribute->create($metaDesc); - - $width = ['code' => 'width','admin_name' => 'Width','type' => 'text','validation' => 'decimal','position' => '19','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Width']]; - - $this->attribute->create($width); - - $height = ['code' => 'height','admin_name' => 'Height','type' => 'text','validation' => 'decimal','position' => '20','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Height']]; - - $this->attribute->create($height); - - $depth = ['code' => 'depth','admin_name' => 'Depth','type' => 'text','validation' => 'decimal','position' => '21','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Depth']]; - - $this->attribute->create($depth); - - $weight = ['code' => 'weight','admin_name' => 'Weight','type' => 'text','validation' => 'decimal','position' => '22','is_required' => '1','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0','company_id' => $this->company->id, 'en' => ['name' => 'Weight']]; - - $this->attribute->create($weight); - - $color = ['code' => 'color','admin_name' => 'Color','type' => 'select','validation' => NULL,'position' => '23','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '1','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Color'], 'options' => [ - 'option_0' => ['admin_name' => 'Red', 'en' => ['label' => 'Red'], 'sort_order' => '1'], - 'option_1' => ['admin_name' => 'Green', 'en' => ['label' => 'Green'],'sort_order' => '2'], - 'option_2' => ['admin_name' => 'Yellow', 'en' => ['label' => 'Yellow'], 'sort_order' => '3'], - 'option_3' => ['admin_name' => 'Black', 'en' => ['label' => 'Black'], 'sort_order' => '4'], - 'option_4' => ['admin_name' => 'White', 'en' => ['label' => 'White'], 'sort_order' => '5'] - ]]; - - $this->attribute->create($color); - - $size = ['code' => 'size','admin_name' => 'Size','type' => 'select','validation' => NULL,'position' => '24','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '1','is_user_defined' => '1','is_visible_on_front' => '0', 'company_id' => $this->company->id, 'en' => ['name' => 'Size'], 'options' => [ - 'option_0' => ['id' => '6','admin_name' => 'S', 'en' => ['label' => 'S'], 'sort_order' => '1'], - 'option_1' => ['id' => '7','admin_name' => 'M', 'en' => ['label' => 'M'], 'sort_order' => '2'], - 'option_2' => ['id' => '8','admin_name' => 'L', 'en' => ['label' => 'L'], 'sort_order' => '3'], - 'option_3' => ['id' => '9','admin_name' => 'XL', 'en' => ['label' => 'XL'], 'sort_order' => '4'] - ]]; - - $this->attribute->create($size); - - return true; - } - - /** - * To prepare the attribute family - */ - public function prepareAttributeFamilyData() - { - $this->company = Company::getCurrent(); - - $data = ['code' => 'default', 'name' => 'Default', 'status' => '0', 'is_user_defined' => '1', 'company_id' => $this->company->id]; - - $attributeFamily = $this->attributeFamily->create($data); - - return $attributeFamily; - } - - /** - * To prepare the attribute group mappings - */ - public function prepareAttributeGroupData() - { - $this->company = Company::getCurrent(); - - $attributeFamily = $this->attributeFamily->findOneWhere(['company_id' => $this->company->id]); - $attributes = $this->attribute->all(); - - $group1 = ['sku', 'name', 'url_key', 'tax_category_id', 'new', 'featured', 'visible_individually', 'status', 'color', 'size']; - $group2 = ['short_description', 'description']; - $group3 = ['meta_title', 'meta_keywords', 'meta_description']; - $group4 = ['price', 'cost', 'special_price', 'special_price_from', 'special_price_to']; - $group5 = ['width', 'height', 'depth', 'weight']; - - // creating group 1 - $this->attributeGroup->create(['name' => 'General', 'position' => '1', 'is_user_defined' => '0', 'attribute_family_id' => $attributeFamily->id, 'company_id' => $this->company->id]); - - $attributeGroup = $this->attributeGroup->findOneWhere(['name' => 'General']); - - $i = 1; - foreach($group1 as $code) { - $i++; - - foreach ($attributes as $value) { - if($value->code == $code) { - DB::table('attribute_group_mappings')->insert([ - ['attribute_id' => $value->id, 'attribute_group_id' => $attributeGroup->id, 'position' => $i] - ]); - } - } - } - - // creating group 2 - $g2 = $this->attributeGroup->create(['name' => 'Description', 'position' => '2', 'is_user_defined' => '0', 'attribute_family_id' => $attributeFamily->id, 'company_id' => $this->company->id]); - - $attributeGroup = $this->attributeGroup->findOneWhere(['name' => 'Description']); - - $i = 1; - foreach($group2 as $code) { - $i++; - - foreach ($attributes as $value) { - if($value->code == $code) { - DB::table('attribute_group_mappings')->insert([ - ['attribute_id' => $value->id, 'attribute_group_id' => $attributeGroup->id, 'position' => $i] - ]); - } - } - } - - // creating group 3 - $g3 = $this->attributeGroup->create(['name' => 'Meta Description', 'position' => '3', 'is_user_defined' => '0', 'attribute_family_id' => $attributeFamily->id, 'company_id' => $this->company->id]); - - $attributeGroup = $this->attributeGroup->findOneWhere(['name' => 'Meta Description']); - - $i = 1; - foreach($group3 as $code) { - $i++; - - foreach ($attributes as $value) { - if($value->code == $code) { - DB::table('attribute_group_mappings')->insert([ - ['attribute_id' => $value->id, 'attribute_group_id' => $attributeGroup->id, 'position' => $i] - ]); - } - } - } - - // creating group 4 - $g4 = $this->attributeGroup->create(['name' => 'Price', 'position' => '4', 'is_user_defined' => '0', 'attribute_family_id' => $attributeFamily->id, 'company_id' => $this->company->id]); - - $attributeGroup = $this->attributeGroup->findOneWhere(['name' => 'Price']); - - $i = 1; - foreach($group4 as $code) { - $i++; - - foreach ($attributes as $value) { - if($value->code == $code) { - DB::table('attribute_group_mappings')->insert([ - ['attribute_id' => $value->id, 'attribute_group_id' => $attributeGroup->id, 'position' => $i] - ]); - } - } - } - - // creating group 5 - $g5 = $this->attributeGroup->create(['name' => 'Shipping', 'position' => '5', 'is_user_defined' => '0', 'attribute_family_id' => $attributeFamily->id, 'company_id' => $this->company->id]); - - $attributeGroup = $this->attributeGroup->findOneWhere(['name' => 'Shipping']); - - $i = 1; - foreach($group5 as $code) { - $i++; - - foreach ($attributes as $value) { - if($value->code == $code) { - DB::table('attribute_group_mappings')->insert([ - ['attribute_id' => $value->id, 'attribute_group_id' => $attributeGroup->id, 'position' => $i] - ]); - } - } - } - - return true; - } - - /** - * To prepare the country state data for - * admin and customers country & state fields - * auto population - */ - public function prepareCountryStateData() - { - $countries = json_decode(file_get_contents(base_path().'/packages/Webkul/Core/src/Data/countries.json'), true); - - DB::table('countries')->insert($countries); - - $states = json_decode(file_get_contents(base_path().'/packages/Webkul/Core/src/Data/states.json'), true); - - DB::table('country_states')->insert($states); - - return true; - } - - /** - * To prepare the cms pages data for the seller's shop - */ - public function prepareCMSPagesData($channel, $locale) - { - $aboutus = [ - 'url_key' => 'about-us', - 'html_content' => '
-
About us page content
-
', - 'page_title' => 'About Us', - 'meta_title' => 'about us', - 'meta_description' => '', - 'meta_keywords' => 'aboutus', - 'content' => '{"html": "
\r\n
About us page content
\r\n
", - "meta_title": "about us", - "page_title": "About Us", - "meta_keywords": "aboutus ", "meta_description": ""}', - 'channel_id' => $channel->id, - 'locale_id' => $locale->id, - 'company_id' => $this->company->id - ]; - - $this->cms->create($aboutus); - - $returnpolicy = [ - 'url_key' => 'return-policy', - 'html_content' => '
-
Return policy page content
-
', - 'page_title' => 'Return Policy', - 'meta_title' => 'return policy', - 'meta_description' => '', - 'meta_keywords' => 'return, policy', - 'content' => '{"html": "
\r\n
Return policy page content
\r\n
", - "meta_title": "return policy", - "page_title": "Return Policy", - "meta_keywords": "return, policy ", "meta_description": ""}', - 'channel_id' => $channel->id, - 'locale_id' => $locale->id, - 'company_id' => $this->company->id - ]; - - $this->cms->create($returnpolicy); - - $refundpolicy = [ - 'url_key' => 'refund-policy', - 'html_content' => '
-
Refund policy page content
-
', - 'page_title' => 'Refund Policy', - 'meta_title' => 'Refund policy', - 'meta_description' => '', - 'meta_keywords' => 'refund, policy', - 'content' => '{"html": "
\r\n
Refund policy page content
\r\n
", - "meta_title": "Refund policy", - "page_title": "Refund Policy", - "meta_keywords": "refund,policy ", "meta_description": ""}', - 'channel_id' => $channel->id, - 'locale_id' => $locale->id, - 'company_id' => $this->company->id - ]; - - $this->cms->create($refundpolicy); - - $termsconditions = [ - 'url_key' => 'terms-conditions', - 'html_content' => '
-
Terms & conditions page content
-
', - 'page_title' => 'Terms & Conditions', - 'meta_title' => 'Terms & Conditions', - 'meta_description' => '', - 'meta_keywords' => 'term, conditions', - 'content' => '{"html": "
\r\n
Terms & conditions page content
\r\n
", - "meta_title": "Terms & Conditions", - "page_title": "Terms & Conditions", - "meta_keywords": "terms, conditions ", "meta_description": ""}', - 'channel_id' => $channel->id, - 'locale_id' => $locale->id, - 'company_id' => $this->company->id - ]; - - $this->cms->create($termsconditions); - - $termsofuse = [ - 'url_key' => 'terms-of-use', - 'html_content' => '
-
Terms of use page content
-
', - 'page_title' => 'Terms of use', - 'meta_title' => 'Terms of use', - 'meta_description' => '', - 'meta_keywords' => 'term, use', - 'content' => '{"html": "
\r\n
Terms of use page content
\r\n
", - "meta_title": "Terms of use", - "page_title": "Terms of use", - "meta_keywords": "terms, use ", "meta_description": ""}', - 'channel_id' => $channel->id, - 'locale_id' => $locale->id, - 'company_id' => $this->company->id - ]; - - $this->cms->create($termsofuse); - - $contactus = [ - 'url_key' => 'contact-us', - 'html_content' => '
-
Contact us page content
-
', - 'page_title' => 'Contact Us', - 'meta_title' => 'Contact Us', - 'meta_description' => '', - 'meta_keywords' => 'contact, us', - 'content' => '{"html": "
\r\n
Contact us page content
\r\n
", - "meta_title": "Contact Us", - "page_title": "Contact Us", - "meta_keywords": "contact, us ", "meta_description": ""}', - 'channel_id' => $channel->id, - 'locale_id' => $locale->id, - 'company_id' => $this->company->id - ]; - - $this->cms->create($contactus); - } - - /** - * It will store a check in the companies - * that all the necessary data had been - * inserted successfully or not - * - * @param boolean seedCompleted - */ - public function setInstallationCompleteParam() - { - $this->seedCompleted = true; - - $info = [ - 'company_created' => true, - 'seeded' => true - ]; - - $info = json_encode($info); - - $this->company->update([ - 'more_info' => $info - ]); - - return true; - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Helpers/StatsPurger.php b/packages/Webkul/SAASCustomizer/src/Helpers/StatsPurger.php deleted file mode 100644 index aba932432..000000000 --- a/packages/Webkul/SAASCustomizer/src/Helpers/StatsPurger.php +++ /dev/null @@ -1,77 +0,0 @@ -category = $category; - $this->inventory = $inventory; - $this->locale = $locale; - $this->currency = $currency; - $this->channel = $channel; - $this->attribute = $attribute; - $this->attributeFamily = $attributeFamily; - $this->attributeGroup = $attributeGroup; - $this->customerGroup = $customerGroup; - $this->product = $product; - } - - public function getAggregates($companyId) - { - $products = DB::table('products')->where('company_id', '=', $companyId)->count(); - $attributes = DB::table('attributes')->where('company_id', '=', $companyId)->count(); - $customers = DB::table('customers')->where('company_id', '=', $companyId)->count(); - $customerGroups = DB::table('customer_groups')->where('company_id', '=', $companyId)->count(); - $categories = DB::table('categories')->where('company_id', '=', $companyId)->count(); - - return [ - 'products' => $products, - 'attributes' => $attributes, - 'customers' => $customers, - 'customer-groups' => $customerGroups, - 'categories' => $categories - ]; - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php b/packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php deleted file mode 100644 index 7e53118c3..000000000 --- a/packages/Webkul/SAASCustomizer/src/Http/Controllers/CompanyController.php +++ /dev/null @@ -1,302 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CompanyController extends Controller -{ - protected $attribute; - protected $_config; - protected $details; - protected $admin; - protected $role; - protected $dataSeed; - protected $companyStats; - - public function __construct(CompanyRepository $company, CompanyDetailsRepository $details, Admin $admin, Role $role, DataPurger $dataSeed, StatsPurger $companyStats) - { - $this->company = $company; - $this->details = $details; - $this->admin = $admin; - $this->role = $role; - $this->dataSeed = $dataSeed; - $this->companyStats = $companyStats; - $this->_config = request('_config'); - $this->middleware('auth:super-admin', ['only' => ['showCompanyStats', 'edit', 'update']]); - - if (! Company::isAllowed()) { - throw new \Exception('not_allowed_to_visit_this_section', 400); - } - } - - public function showCompanyStats($id) - { - $aggregates = $this->companyStats->getAggregates($id); - - $company = $this->company->find($id); - - return view('saas::companies.company.index')->with('company', [$company, $aggregates]); - } - - public function create() - { - return view($this->_config['view']); - } - - protected function store() - { - $validator = Validator::make(Request::all(), [ - 'email' => 'required|email|max:191|unique:admins,email', - 'password' => 'required|string|confirmed|min:6', - 'username' => 'required|alpha_num|min:3|max:64', - 'first_name' => 'required|string|max:191', - 'last_name' => 'nullable|string|max:191', - 'phone_no' => 'required', - 'org_name' => 'required|string|max:191' - ]); - - $data = Request::all(); - - $authEmail = $data['email']; - unset($data['email']); - - if ($validator->fails()) { - return response()->json(['success' => false, 'errors' => $validator->errors()], 403); - } - - $validator = Validator::make(Request::all(), [ - 'username' => 'not_in:'.implode(',', config('excluded-sites')) - ]); - - if ($validator->fails()) { - return response()->json([ - 'success' => false, - 'errors' => $validator->errors() - ], 403); - } - - if (strtolower($data['username']) == 'www' || strtolower($data['username']) == 'http' || strtolower($data['username']) == 'https') { - session()->flash('warning', 'Illegal subdomain name'); - } - - $data['name'] = $data['org_name']; - unset($data['org_name']); - - $primaryServerName = config('app.url'); - - if (str_contains($primaryServerName, 'http://')) { - $primaryServerNameWithoutProtocol = explode('http://', $primaryServerName)[1]; - } else if (str_contains($primaryServerName, 'https://')) { - $primaryServerNameWithoutProtocol = explode('https://', $primaryServerName)[1]; - } - - $currentURL = $_SERVER['SERVER_NAME']; - - if (substr_count($currentURL, '.') > 1) { - $primaryServerNameWithoutProtocol = explode('.', $primaryServerNameWithoutProtocol); - - if ($data['username'] != $primaryServerNameWithoutProtocol[0]) { - $primaryServerNameWithoutProtocol[0] = $data['username']; - - $primaryServeNameWithoutProtocol = implode('.', $primaryServerNameWithoutProtocol); - - $temp = explode('/', $primaryServeNameWithoutProtocol); - - $data['domain'] = current($temp); - - $data['url'] = $primaryServeNameWithoutProtocol; - } else { - return response()->json([ - 'success' => false, - 'errors' => [trans('saas::app.custom-errors.same-domain')] - ], 403); - } - } else { - $data['domain'] = strtolower($data['username']). '.' . $primaryServerNameWithoutProtocol; - } - - $validator = Validator::make($data, [ - 'domain' => 'required|unique:companies,domain' - ]); - - if ($validator->fails()) { - return response()->json(['success' => false, 'errors' => $validator->errors()], 403); - } - - $company = $this->company->create($data); - - if ($company) { - $info = [ - 'created' => true, - 'seeded' => false - ]; - - $info = json_encode($info); - - $company->update([ - 'extra_info' => $info - ]); - - $data['password'] = bcrypt($data['password']); - $data['name'] = $data['first_name'].' '.$data['last_name']; - $data['status'] = 1; - - //creates a new full privilege role when new company is registered - $role = $this->role->create([ - 'name' => 'Administrator', - 'description' => 'Administrator role', - 'permission_type' => 'all', - 'company_id' => $company->id - ]); - - $data['role_id'] = $role->id; - $data['email'] = $authEmail; - $data['company_id'] = $company->id; - - //creates a new full privilege admin with newly created role above - $this->admin->create($data); - - //creates the personal details record for the company - $this->details->create($data); - - return response()->json([ - 'success' => true, 'redirect' => isset($data['url']) ? $data['url'] : $data['domain'] - ], 200); - } else { - return response()->json([ - 'success' => false - ], 403); - } - } - - public function validateStepOne() - { - $niceNames = array( - 'email' => 'Email' - ); - - $validator = Validator::make(request()->all(), [ - 'email' => 'required|email|unique:admins,email' - ]); - - $validator->setAttributeNames($niceNames); - - if ($validator->fails()) { - return response()->json([ - 'success' => false, - 'errors' => $validator->errors() - ], 403); - } else { - return response()->json([ - 'success' => true, - 'errors' => null - ], 200); - } - } - - public function validateStepThree() - { - $niceNames = array( - 'username' => 'Username', - 'org_name' => 'Organization Name' - ); - - $validator = Validator::make(request()->all(), [ - 'username' => 'required|alpha_num|min:3|max:64|unique:companies,username', - 'org_name' => 'required|string|max:191|unique:companies,name' - ]); - - $validator->setAttributeNames($niceNames); - - if ($validator->fails()) { - return response()->json([ - 'success' => false, - 'errors' => $validator->errors() - ], 403); - } else { - return response()->json([ - 'success' => true, - 'errors' => null - ], 200); - } - - // $this->validate(request(), [ - // 'username' => 'required|alpha_num|min:3|max:64|unique:companies,username', - // 'org_name' => 'required|string|max:191|unique:companies,name' - // ]); - } - - public function edit($id) - { - $company = $this->company->findOrFail($id); - - return view('saas::companies.company.edit')->with('company', $company); - } - - public function update($id) - { - $this->validate(request(), [ - 'email' => 'email|max:191|unique:companies,email,'.$id, - 'name' => 'required|string|max:191|unique:companies,name,'.$id, - 'domain' => 'required|string|max:191|unique:companies,domain,'.$id, - 'is_active' => 'required|boolean' - ]); - - $data = request()->all(); - - $company = $this->company->findOrFail($id); - - if ($company) { - $result = $company->update($data); - - if ($result) { - session()->flash('success', trans('saas::app.status.something-wrong')); - } else { - session()->flash('warning', trans('saas::app.status.something-wrong')); - } - } else { - session()->flash('warning', trans('saas::app.status.something-wrong')); - } - - return redirect()->back(); - } - - protected function changeStatus($id) - { - $company = $this->company->find($id); - - if ($company->is_active == 0) { - $company->update([ - 'is_active' => 1 - ]); - - session()->flash('success', trans('saas::app.status.company-activated')); - } else { - $company->update([ - 'is_active' => 0 - ]); - - session()->flash('warning', trans('saas::app.status.company-deactivated')); - } - - return redirect()->back(); - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Http/Controllers/Controller.php b/packages/Webkul/SAASCustomizer/src/Http/Controllers/Controller.php deleted file mode 100755 index b991f412d..000000000 --- a/packages/Webkul/SAASCustomizer/src/Http/Controllers/Controller.php +++ /dev/null @@ -1,13 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class PurgeController extends Controller -{ - protected $dataSeed; - - public function __construct(DataPurger $dataSeed) - { - $this->dataSeed = $dataSeed; - $this->_config = request('_config'); - } - - public function seedDatabase() - { - $locale = $this->dataSeed->prepareLocaleData(); - - $this->dataSeed->prepareCategoryData(); // translation table not getting populated - - $this->dataSeed->prepareInventoryData(); - - $this->dataSeed->prepareCurrencyData(); - - $channel = $this->dataSeed->prepareChannelData(); - - // need to get executed only first time - if (Company::count() == 1) { - try { - $this->dataSeed->prepareCountryStateData(); - } catch (\Exception $e) { - - } - } - - $this->dataSeed->prepareCustomerGroupData(); - - $this->dataSeed->prepareAttributeData(); - - $this->dataSeed->prepareAttributeFamilyData(); - - $this->dataSeed->prepareAttributeGroupData(); - - $this->dataSeed->prepareCMSPagesData($channel, $locale); - - Event::fire('new.company.registered'); - - $this->dataSeed->setInstallationCompleteParam(); - - session()->flash('success', trans('saas::app.status.store-created')); - - return redirect()->route('shop.home.index'); - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Http/Controllers/SuperUserController.php b/packages/Webkul/SAASCustomizer/src/Http/Controllers/SuperUserController.php deleted file mode 100644 index 7ff5fd08d..000000000 --- a/packages/Webkul/SAASCustomizer/src/Http/Controllers/SuperUserController.php +++ /dev/null @@ -1,69 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class SuperUserController extends Controller -{ - public function __construct() - { - $this->middleware('auth:super-admin', ['only' => ['list']]); - } - - /** - * To show the login screen - */ - public function index() - { - if (! auth()->guard('super-admin')->check()) { - return view('saas::companies.auth.login'); - } else { - return redirect()->route('super.session.index'); - } - } - - public function store() - { - $this->validate(request(), [ - 'email' => 'required|email', - 'password' => 'required' - ]); - - if (! auth()->guard('super-admin')->attempt(request(['email', 'password']))) { - session()->flash('error', trans('admin::app.users.users.login-error')); - - return redirect()->route('super.session.index'); - } - - session()->flash('success', 'Logged in successfully'); - - return redirect()->route('super.companies.index'); - } - - public function list() - { - return view('saas::companies.index'); - } - - /** - * Remove the specified resource from storage. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function destroy() - { - auth()->guard('super-admin')->logout(); - - return redirect()->route('super.session.index'); - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Http/Middleware/RedirectIfNotSuperAdmin.php b/packages/Webkul/SAASCustomizer/src/Http/Middleware/RedirectIfNotSuperAdmin.php deleted file mode 100755 index 7df06c001..000000000 --- a/packages/Webkul/SAASCustomizer/src/Http/Middleware/RedirectIfNotSuperAdmin.php +++ /dev/null @@ -1,26 +0,0 @@ -check()) { - return redirect()->route('super.session.index'); - } - - return $next($request); - } -} diff --git a/packages/Webkul/SAASCustomizer/src/Http/Middleware/ValidatesDomain.php b/packages/Webkul/SAASCustomizer/src/Http/Middleware/ValidatesDomain.php deleted file mode 100644 index ff25d7513..000000000 --- a/packages/Webkul/SAASCustomizer/src/Http/Middleware/ValidatesDomain.php +++ /dev/null @@ -1,87 +0,0 @@ -company = $company; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - $primaryServerName = config('app.url'); - - $currentURL = $_SERVER['SERVER_NAME']; - - $params['domain'] = $currentURL; - - $validator = Validator::make($params, [ - 'domain' => 'required|ip' - ]); - - if (str_contains($primaryServerName, 'http://')) { - $primaryServerNameWithoutProtocol = explode('http://', $primaryServerName)[1]; - } else if (str_contains($primaryServerName, 'https://')) { - $primaryServerNameWithoutProtocol = explode('https://', $primaryServerName)[1]; - } - - //restricts the IP address usage to access the system - if ($validator->fails()) { - //case where IP validation fails - if (str_contains($currentURL, 'http://')) { - $currentURL = explode('http://', $currentURL)[1]; - } else if (str_contains($currentURL, 'http://')) { - $currentURL = explode('http://', $currentURL)[1]; - } - } else { - //case where IP validation passes then it should redirect to the main domain - return redirect()->route('company.create.index'); - } - - if (str_contains($primaryServerNameWithoutProtocol, '/')) { - $primaryServerNameWithoutProtocol = explode('/', $primaryServerNameWithoutProtocol)[0]; - } - - if ($currentURL == $primaryServerNameWithoutProtocol) { - if (request()->is('company/*') || request()->is('super/*')) { - return $next($request); - } else { - return redirect()->route('company.create.index'); - } - } else { - if ((request()->is('company/*') || request()->is('super/*')) && ! request()->is('company/seed-data')) { - throw new \Exception('not_allowed_to_visit_this_section', 400); - } else { - $company = $this->company->findWhere(['domain' => $currentURL]); - - if (count($company) == 1) { - return $next($request); - } else if (count($company) == 0) { - throw new \Exception('domain_not_found', 400); - } else { - return $next($request); - } - } - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php b/packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php deleted file mode 100644 index 54c0e56e3..000000000 --- a/packages/Webkul/SAASCustomizer/src/Listeners/CompanyRegistered.php +++ /dev/null @@ -1,33 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CompanyRegistered -{ - public function handle() - { - $company = Company::getCurrent(); - - foreach(config('purge-pool') as $key => $pool) { - $poolInstance = app($pool); - - $poolInstance->createPreOrderData($company->id); - } - - try { - Mail::queue(new NewCompanyNotification($company)); - } catch (\Exception $e) { - - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Attribute/Attribute.php b/packages/Webkul/SAASCustomizer/src/Models/Attribute/Attribute.php deleted file mode 100644 index 8e83a4dcd..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Attribute/Attribute.php +++ /dev/null @@ -1,29 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('attributes' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeFamily.php b/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeFamily.php deleted file mode 100755 index ea11afed6..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeFamily.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('attribute_families' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeGroup.php b/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeGroup.php deleted file mode 100755 index c093338f9..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeGroup.php +++ /dev/null @@ -1,29 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('attribute_groups' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeOption.php b/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeOption.php deleted file mode 100755 index 83b435090..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Attribute/AttributeOption.php +++ /dev/null @@ -1,20 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('cms_pages' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php b/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php deleted file mode 100755 index 208a38f8e..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php +++ /dev/null @@ -1,28 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new QueryBuilder($query); - } else { - return new QueryBuilder($query->where('categories.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Category/CategoryTranslation.php b/packages/Webkul/SAASCustomizer/src/Models/Category/CategoryTranslation.php deleted file mode 100755 index aabdf4cb3..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Category/CategoryTranslation.php +++ /dev/null @@ -1,29 +0,0 @@ -where('category_translations' . '.company_id', $company->id)); - // } else { - // return new \Illuminate\Database\Eloquent\Builder($query->where('category_translations' . '.company_id', null)); - // } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Checkout/Cart.php b/packages/Webkul/SAASCustomizer/src/Models/Checkout/Cart.php deleted file mode 100755 index 02fc71c19..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Checkout/Cart.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('cart' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Checkout/CartAddress.php b/packages/Webkul/SAASCustomizer/src/Models/Checkout/CartAddress.php deleted file mode 100755 index d99a015ee..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Checkout/CartAddress.php +++ /dev/null @@ -1,22 +0,0 @@ -hasOne(CompanyDetails::class); - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/CompanyDetails.php b/packages/Webkul/SAASCustomizer/src/Models/CompanyDetails.php deleted file mode 100644 index 6776b912f..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/CompanyDetails.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('channels' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/CoreConfig.php b/packages/Webkul/SAASCustomizer/src/Models/Core/CoreConfig.php deleted file mode 100755 index 29a185898..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Core/CoreConfig.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('core_config' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/Currency.php b/packages/Webkul/SAASCustomizer/src/Models/Core/Currency.php deleted file mode 100755 index bd411bcc7..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Core/Currency.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('currencies' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/CurrencyExchangeRate.php b/packages/Webkul/SAASCustomizer/src/Models/Core/CurrencyExchangeRate.php deleted file mode 100755 index 96664a82d..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Core/CurrencyExchangeRate.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('currency_exchange_rates' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/Locale.php b/packages/Webkul/SAASCustomizer/src/Models/Core/Locale.php deleted file mode 100755 index 742b74f2a..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Core/Locale.php +++ /dev/null @@ -1,28 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('locales' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/Slider.php b/packages/Webkul/SAASCustomizer/src/Models/Core/Slider.php deleted file mode 100755 index 845e18e99..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Core/Slider.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('sliders' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Core/SubscribersList.php b/packages/Webkul/SAASCustomizer/src/Models/Core/SubscribersList.php deleted file mode 100755 index 24a059c29..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Core/SubscribersList.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('subscribers_list' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Customer/Customer.php b/packages/Webkul/SAASCustomizer/src/Models/Customer/Customer.php deleted file mode 100755 index eeba8ebb9..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Customer/Customer.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('customers' . '.company_id', $company->id)); - } - } -} diff --git a/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerAddress.php b/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerAddress.php deleted file mode 100755 index 5a264fd2d..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerAddress.php +++ /dev/null @@ -1,28 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('customer_addresses' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerGroup.php b/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerGroup.php deleted file mode 100755 index e7e20599c..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Customer/CustomerGroup.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('customer_groups' . '.company_id', $company->id)); - } - - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Customer/Wishlist.php b/packages/Webkul/SAASCustomizer/src/Models/Customer/Wishlist.php deleted file mode 100755 index ccb4d0ca7..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Customer/Wishlist.php +++ /dev/null @@ -1,29 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('wishlist' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Discount/CartRule.php b/packages/Webkul/SAASCustomizer/src/Models/Discount/CartRule.php deleted file mode 100644 index c923e1b66..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Discount/CartRule.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('cart_rules' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRule.php b/packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRule.php deleted file mode 100644 index a2f49d784..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRule.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('cart_rules' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRuleProducts.php b/packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRuleProducts.php deleted file mode 100644 index ba7a31c71..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRuleProducts.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('cart_rules' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRuleProductsPrice.php b/packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRuleProductsPrice.php deleted file mode 100644 index 69b4fde2f..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Discount/CatalogRuleProductsPrice.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('cart_rules' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Inventory/InventorySource.php b/packages/Webkul/SAASCustomizer/src/Models/Inventory/InventorySource.php deleted file mode 100755 index 00cc86c7a..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Inventory/InventorySource.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('inventory_sources' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Product/Product.php b/packages/Webkul/SAASCustomizer/src/Models/Product/Product.php deleted file mode 100755 index 3400c3333..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Product/Product.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('products' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Product/ProductAttributeValue.php b/packages/Webkul/SAASCustomizer/src/Models/Product/ProductAttributeValue.php deleted file mode 100755 index aed510c1c..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Product/ProductAttributeValue.php +++ /dev/null @@ -1,21 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('product_flat' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Product/ProductImage.php b/packages/Webkul/SAASCustomizer/src/Models/Product/ProductImage.php deleted file mode 100755 index ca4a18ae6..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Product/ProductImage.php +++ /dev/null @@ -1,21 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('product_inventories' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Product/ProductOrderedInventory.php b/packages/Webkul/SAASCustomizer/src/Models/Product/ProductOrderedInventory.php deleted file mode 100644 index a72e4f284..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Product/ProductOrderedInventory.php +++ /dev/null @@ -1,21 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('product_reviews' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/Invoice.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/Invoice.php deleted file mode 100755 index 004f8eb9c..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Sales/Invoice.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('invoices' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/InvoiceItem.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/InvoiceItem.php deleted file mode 100755 index fc92be1e8..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Sales/InvoiceItem.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('invoice_items' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/Order.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/Order.php deleted file mode 100755 index e456167f7..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Sales/Order.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('orders' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderAddress.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderAddress.php deleted file mode 100755 index d5d7cb4be..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderAddress.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('order_address' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderItem.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderItem.php deleted file mode 100755 index 265c083b4..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderItem.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('order_items' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderPayment.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderPayment.php deleted file mode 100755 index 25f6fcb39..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Sales/OrderPayment.php +++ /dev/null @@ -1,27 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('order_payment' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/Shipment.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/Shipment.php deleted file mode 100755 index 6de5aba03..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Sales/Shipment.php +++ /dev/null @@ -1,26 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('shipments' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Sales/ShipmentItem.php b/packages/Webkul/SAASCustomizer/src/Models/Sales/ShipmentItem.php deleted file mode 100755 index 40616890c..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Sales/ShipmentItem.php +++ /dev/null @@ -1,28 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('shipment_items' . '.company_id', $company->id)); - - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/SuperAdmin.php b/packages/Webkul/SAASCustomizer/src/Models/SuperAdmin.php deleted file mode 100644 index ccbe0b506..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/SuperAdmin.php +++ /dev/null @@ -1,24 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('tax_categories' . '.company_id', $company->id)); - - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/Tax/TaxMap.php b/packages/Webkul/SAASCustomizer/src/Models/Tax/TaxMap.php deleted file mode 100755 index edfc19709..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/Tax/TaxMap.php +++ /dev/null @@ -1,19 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('tax_rates' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/User/Admin.php b/packages/Webkul/SAASCustomizer/src/Models/User/Admin.php deleted file mode 100755 index 7bb89f68d..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/User/Admin.php +++ /dev/null @@ -1,36 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('admins' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Models/User/Role.php b/packages/Webkul/SAASCustomizer/src/Models/User/Role.php deleted file mode 100755 index df08164cd..000000000 --- a/packages/Webkul/SAASCustomizer/src/Models/User/Role.php +++ /dev/null @@ -1,30 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('roles' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Notifications/NewCompanyNotification.php b/packages/Webkul/SAASCustomizer/src/Notifications/NewCompanyNotification.php deleted file mode 100644 index bc0c8a1ae..000000000 --- a/packages/Webkul/SAASCustomizer/src/Notifications/NewCompanyNotification.php +++ /dev/null @@ -1,50 +0,0 @@ - @prashant-webkul - * @copyright 2019 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class NewCompanyNotification extends Mailable -{ - use Queueable, SerializesModels; - - /** - * @var Company - */ - public $company; - - /** - * Create a new message instance. - * - * @return void - */ - public function __construct($company) - { - $this->company = $company; - } - - /** - * Build the message. - * - * @return $this - */ - public function build() - { - $superAdmin = new SuperAdmin; - $superAdmin = $superAdmin->all()->first(); - - return $this->to($superAdmin->email) - ->subject('New Company Registered') - ->view('saas::emails.new-company')->with('company', $this->company); - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Notifications/SuperAdminGenerated.php b/packages/Webkul/SAASCustomizer/src/Notifications/SuperAdminGenerated.php deleted file mode 100644 index e1fb31146..000000000 --- a/packages/Webkul/SAASCustomizer/src/Notifications/SuperAdminGenerated.php +++ /dev/null @@ -1,48 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class SuperAdminGeneratedNotification extends Mailable -{ - use Queueable, SerializesModels; - - /** - * The order instance. - * - * @var Order - */ - // public $order; - - /** - * Create a new message instance. - * - * @return void - */ - public function __construct() - { - // $this->order = $order; - } - - /** - * Build the message. - * - * @return $this - */ - public function build() - { - // return $this->to(env('ADMIN_MAIL_TO')) - // ->subject(trans('shop::app.mail.order.subject')) - // ->view('shop::emails.sales.new-admin-order'); - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeFamilyObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeFamilyObserver.php deleted file mode 100755 index 585f3f1a6..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeFamilyObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeGroupObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeGroupObserver.php deleted file mode 100755 index 4ad9953bb..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeGroupObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeObserver.php deleted file mode 100644 index 18cfecc3d..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeObserver.php +++ /dev/null @@ -1,25 +0,0 @@ -guard('super-admin')->check()) { - $model->use_in_flat = 0; - $model->company_id = Company::getCurrent()->id; - } - } - - public function updating(Attribute $model) - { - if (! auth()->guard('super-admin')->check()) { - $model->use_in_flat = 0; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeOptionObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeOptionObserver.php deleted file mode 100755 index 772af5a1a..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Attribute/AttributeOptionObserver.php +++ /dev/null @@ -1,15 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryObserver.php deleted file mode 100755 index f367d839e..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryTranslationObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryTranslationObserver.php deleted file mode 100755 index 48401125f..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Category/CategoryTranslationObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartAddressObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartAddressObserver.php deleted file mode 100755 index 9fa15b4d8..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartAddressObserver.php +++ /dev/null @@ -1,14 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartPaymentObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartPaymentObserver.php deleted file mode 100755 index b5cabeb88..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Checkout/CartPaymentObserver.php +++ /dev/null @@ -1,14 +0,0 @@ -guard('super-admin')->check()) { - if ($model->count() == 0) { - $model->company_id = Company::getCurrent()->id; - } else { - session()->flash('error', trans('saas::app.custom-errors.channel-creating')); - - throw new \Exception('illegal_action'); - } - } - } - - public function updating(Channel $channel) - { - if (! auth()->guard('super-admin')->check()) { - if ($channel->hostname != Company::getCurrent()->domain) { - session()->flash('warning', trans('saas::app.custom-errors.channel-hostname')); - - throw new \Exception('illegal_action'); - } - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/CoreConfigObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/CoreConfigObserver.php deleted file mode 100755 index 18d7f693f..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Core/CoreConfigObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyExchangeRate.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyExchangeRate.php deleted file mode 100755 index 1a4602a90..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyExchangeRate.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyObserver.php deleted file mode 100755 index 29093a218..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Core/CurrencyObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/LocaleObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/LocaleObserver.php deleted file mode 100755 index edf55f642..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Core/LocaleObserver.php +++ /dev/null @@ -1,32 +0,0 @@ -guard('super-admin')->check()) { - if ($model->count() == 0) { - $model->company_id = Company::getCurrent()->id; - } else { - session()->flash('error', trans('saas::app.custom-errors.locale-creation')); - - abort(404); - } - } - } - - public function deleting(Locale $model) - { - if ($model->count() == 1) { - session()->flash('error', trans('saas::app.custom-errors.locale-delete')); - } - - return false; - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/SliderObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/SliderObserver.php deleted file mode 100755 index 626804026..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Core/SliderObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Core/SubscribersListObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Core/SubscribersListObserver.php deleted file mode 100755 index 3927f0c28..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Core/SubscribersListObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerAddressObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerAddressObserver.php deleted file mode 100755 index 8688abc8a..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerAddressObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerGroupObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerGroupObserver.php deleted file mode 100755 index 88502367f..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerGroupObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php deleted file mode 100755 index da4047acd..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Customer/CustomerObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Customer/WishlistObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Customer/WishlistObserver.php deleted file mode 100755 index 8231249b4..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Customer/WishlistObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Discount/CartRuleObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Discount/CartRuleObserver.php deleted file mode 100644 index d0e24586c..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Discount/CartRuleObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleObserver.php deleted file mode 100644 index 78aee2b74..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleProductsObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleProductsObserver.php deleted file mode 100644 index 31a42daa3..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleProductsObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleProductsPriceObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleProductsPriceObserver.php deleted file mode 100644 index 5698a68b4..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Discount/CatalogRuleProductsPriceObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Inventory/InventorySourceObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Inventory/InventorySourceObserver.php deleted file mode 100755 index c097a23c4..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Inventory/InventorySourceObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductAttributeValueObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductAttributeValueObserver.php deleted file mode 100755 index 987cf6a27..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductAttributeValueObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductFlatObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductFlatObserver.php deleted file mode 100644 index b1cf611e1..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductFlatObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductImageObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductImageObserver.php deleted file mode 100755 index dcf8f2efb..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductImageObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - // $model->company_id = Company::getCurrent()->id; - // } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductInventoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductInventoryObserver.php deleted file mode 100755 index 6eb7221a7..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductInventoryObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductObserver.php deleted file mode 100755 index eeb66731d..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductOrderedInventoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductOrderedInventoryObserver.php deleted file mode 100644 index 568a56dd9..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductOrderedInventoryObserver.php +++ /dev/null @@ -1,14 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductSalableInventoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductSalableInventoryObserver.php deleted file mode 100644 index d43283012..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Product/ProductSalableInventoryObserver.php +++ /dev/null @@ -1,14 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/InvoiceObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/InvoiceObserver.php deleted file mode 100755 index 304b1fa42..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Sales/InvoiceObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderAddressObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderAddressObserver.php deleted file mode 100755 index 737153040..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderAddressObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemInventoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemInventoryObserver.php deleted file mode 100755 index c41fb3d40..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemInventoryObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemObserver.php deleted file mode 100755 index f8ad1ca50..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderItemObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderObserver.php deleted file mode 100755 index 253f278ae..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderPaymentObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderPaymentObserver.php deleted file mode 100755 index f29aa2906..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Sales/OrderPaymentObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentItemObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentItemObserver.php deleted file mode 100755 index be48d8846..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentItemObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - // $model->company_id = Company::getCurrent()->id; - // } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentObserver.php deleted file mode 100755 index 673166373..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Sales/ShipmentObserver.php +++ /dev/null @@ -1,16 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxCategoryObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxCategoryObserver.php deleted file mode 100755 index 20bd17286..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxCategoryObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxRateObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxRateObserver.php deleted file mode 100755 index 9697c449b..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/Tax/TaxRateObserver.php +++ /dev/null @@ -1,17 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/User/AdminObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/User/AdminObserver.php deleted file mode 100755 index 00d4e3de9..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/User/AdminObserver.php +++ /dev/null @@ -1,19 +0,0 @@ -company_id)) { - $model->company_id = Company::getCurrent()->id; - } - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Observers/User/RoleObserver.php b/packages/Webkul/SAASCustomizer/src/Observers/User/RoleObserver.php deleted file mode 100755 index 2214fd267..000000000 --- a/packages/Webkul/SAASCustomizer/src/Observers/User/RoleObserver.php +++ /dev/null @@ -1,19 +0,0 @@ -company_id)) { - $model->company_id = Company::getCurrent()->id; - } - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Providers/EventServiceProvider.php b/packages/Webkul/SAASCustomizer/src/Providers/EventServiceProvider.php deleted file mode 100644 index ee16a2bb2..000000000 --- a/packages/Webkul/SAASCustomizer/src/Providers/EventServiceProvider.php +++ /dev/null @@ -1,19 +0,0 @@ -loadRoutesFrom(__DIR__.'/../Routes/web.php'); - - $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'saas'); - - $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); - - $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'saas'); - - $this->publishes([ - __DIR__ . '/../../publishable/assets' => public_path('vendor/webkul/saas/assets'), - ], 'public'); - - $router->aliasMiddleware('super-admin', RedirectIfNotSuperAdmin::class); - - //over ride system's default validation - $this->registerPresenceVerifier(); - - //over ride system's default validation DB presence verifier - $this->registerValidationFactory(); - - //model observer for all the core models of Bagisto - $this->bootModelObservers(); - - //over ride all existing core models of Bagisto - $this->overrideModels(); - - $this->app->bind( - ExceptionHandler::class, - Handler::class - ); - - $this->composeView(); - - $this->app->register(EventServiceProvider::class); - - $this->app->register(ModuleServiceProvider::class); - } - - /** - * Compose View - */ - public function composeView() - { - view()->composer(['saas::companies.layouts.nav-left', 'saas::companies.layouts.nav-aside'], function ($view) { - $tree = Tree::create(); - - foreach (config('menu.super-admin') as $index => $item) { - $tree->add($item, 'menu'); - } - - $tree->items = core()->sortItems($tree->items); - - $view->with('menu', $tree); - }); - } - - /** - * Register services. - * - * @return void - */ - public function register() - { - $this->registerConfig(); - - $this->registerFacades(); - - //override DB facade - $this->app->singleton('db', function ($app) { - return new \Webkul\SAASCustomizer\Database\DatabaseManager($app, $app['db.factory']); - }); - - $this->commands($this->commands); - } - - public function registerConfig() - { - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/purge-pool.php', 'purge-pool' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/super-menu.php', 'menu.super-admin' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/excluded-sites.php', 'excluded-sites' - ); - } - - /** - * Register the validation factory. - * - * @return void - */ - protected function registerValidationFactory() - { - $this->app->singleton('validator', function ($app) { - $validator = new \Illuminate\Validation\Factory($app['translator'], $app); - - // The validation presence verifier is responsible for determining the existence of - // values in a given data collection which is typically a relational database or - // other persistent data stores. It is used to check for "uniqueness" as well. - if (isset($app['db'], $app['validation.presence'])) { - $validator->setPresenceVerifier($app['validation.presence']); - } - - return $validator; - }); - } - - /** - * Register the database presence verifier. - * - * @return void - */ - protected function registerPresenceVerifier() - { - $this->app->singleton('validation.presence', function ($app) { - return new \Webkul\SAASCustomizer\Validation\DatabasePresenceVerifier($app['db']); - }); - } - - - /** - * Register Bouncer as a singleton. - * - * @return void - */ - protected function registerFacades() - { - $loader = AliasLoader::getInstance(); - $loader->alias('company', CompanyFacade::class); - - $this->app->singleton('company', function () { - return app()->make(Company::class); - }); - } - - /** - * Override the existing models - */ - public function overrideModels() - { - // Attribute Models Starts - $this->app->concord->registerModel(\Webkul\Attribute\Contracts\Attribute::class, \Webkul\SAASCustomizer\Models\Attribute\Attribute::class); - $this->app->concord->registerModel(\Webkul\Attribute\Contracts\AttributeFamily::class, \Webkul\SAASCustomizer\Models\Attribute\AttributeFamily::class); - $this->app->concord->registerModel(\Webkul\Attribute\Contracts\AttributeGroup::class, \Webkul\SAASCustomizer\Models\Attribute\AttributeGroup::class); - $this->app->concord->registerModel(\Webkul\Attribute\Contracts\AttributeOption::class, \Webkul\SAASCustomizer\Models\Attribute\AttributeOption::class); - $this->app->concord->registerModel(\Webkul\Attribute\Contracts\AttributeOptionTranslation::class, \Webkul\SAASCustomizer\Models\Attribute\AttributeOptionTranslation::class); - $this->app->concord->registerModel(\Webkul\Attribute\Contracts\AttributeTranslation::class, \Webkul\SAASCustomizer\Models\Attribute\AttributeTranslation::class); - - // Category Models Starts - $this->app->concord->registerModel(\Webkul\Category\Contracts\Category::class, \Webkul\SAASCustomizer\Models\Category\Category::class); - $this->app->concord->registerModel(\Webkul\Category\Contracts\CategoryTranslation::class, \Webkul\SAASCustomizer\Models\Category\CategoryTranslation::class); - - // Checkout Models Starts - $this->app->concord->registerModel(\Webkul\Checkout\Contracts\Cart::class, \Webkul\SAASCustomizer\Models\Checkout\Cart::class); - $this->app->concord->registerModel(\Webkul\Checkout\Contracts\CartAddress::class, \Webkul\SAASCustomizer\Models\Checkout\CartAddress::class); - $this->app->concord->registerModel(\Webkul\Checkout\Contracts\CartItem::class, \Webkul\SAASCustomizer\Models\Checkout\CartItem::class); - $this->app->concord->registerModel(\Webkul\Checkout\Contracts\CartPayment::class, \Webkul\SAASCustomizer\Models\Checkout\CartPayment::class); - $this->app->concord->registerModel(\Webkul\Checkout\Contracts\CartShippingRate::class, \Webkul\SAASCustomizer\Models\Checkout\CartShippingRate::class); - - // Core Models Starts - $this->app->concord->registerModel(\Webkul\Core\Contracts\Channel::class, \Webkul\SAASCustomizer\Models\Core\Channel::class); - $this->app->concord->registerModel(\Webkul\Core\Contracts\CoreConfig::class, \Webkul\SAASCustomizer\Models\Core\CoreConfig::class); - $this->app->concord->registerModel(\Webkul\Core\Contracts\Currency::class, \Webkul\SAASCustomizer\Models\Core\Currency::class); - $this->app->concord->registerModel(\Webkul\Core\Contracts\CurrencyExchangeRate::class, \Webkul\SAASCustomizer\Models\Core\CurrencyExchangeRate::class); - $this->app->concord->registerModel(\Webkul\Core\Contracts\Locale::class, \Webkul\SAASCustomizer\Models\Core\Locale::class); - $this->app->concord->registerModel(\Webkul\Core\Contracts\Slider::class, \Webkul\SAASCustomizer\Models\Core\Slider::class); - $this->app->concord->registerModel(\Webkul\Core\Contracts\SubscribersList::class, \Webkul\SAASCustomizer\Models\Core\SubscribersList::class); - - // Customer Models Starts - $this->app->concord->registerModel(\Webkul\Customer\Contracts\Customer::class, \Webkul\SAASCustomizer\Models\Customer\Customer::class); - $this->app->concord->registerModel(\Webkul\Customer\Contracts\CustomerAddress::class, \Webkul\SAASCustomizer\Models\Customer\CustomerAddress::class); - $this->app->concord->registerModel(\Webkul\Customer\Contracts\CustomerGroup::class, \Webkul\SAASCustomizer\Models\Customer\CustomerGroup::class); - $this->app->concord->registerModel(\Webkul\Customer\Contracts\Wishlist::class, \Webkul\SAASCustomizer\Models\Customer\Wishlist::class); - - // Inventory Models Starts - $this->app->concord->registerModel(\Webkul\Inventory\Contracts\InventorySource::class, \Webkul\SAASCustomizer\Models\Inventory\InventorySource::class); - - // Product Models Starts - $this->app->concord->registerModel(\Webkul\Product\Contracts\Product::class, \Webkul\SAASCustomizer\Models\Product\Product::class); - $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductAttributeValue::class, \Webkul\SAASCustomizer\Models\Product\ProductAttributeValue::class); - $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductFlat::class, \Webkul\SAASCustomizer\Models\Product\ProductFlat::class); - $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductImage::class, \Webkul\SAASCustomizer\Models\Product\ProductImage::class); - $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductInventory::class, \Webkul\SAASCustomizer\Models\Product\ProductInventory::class); - - $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductOrderedInventory::class, \Webkul\SAASCustomizer\Models\Product\ProductOrderedInventory::class); - $this->app->concord->registerModel(\Webkul\Product\Contracts\ProductReview::class, \Webkul\SAASCustomizer\Models\Product\ProductReview::class); - - // Sales Models Starts - $this->app->concord->registerModel(\Webkul\Sales\Contracts\Invoice::class, \Webkul\SAASCustomizer\Models\Sales\Invoice::class); - $this->app->concord->registerModel(\Webkul\Sales\Contracts\InvoiceItem::class, \Webkul\SAASCustomizer\Models\Sales\InvoiceItem::class); - $this->app->concord->registerModel(\Webkul\Sales\Contracts\Order::class, \Webkul\SAASCustomizer\Models\Sales\Order::class); - $this->app->concord->registerModel(\Webkul\Sales\Contracts\OrderAddress::class, \Webkul\SAASCustomizer\Models\Sales\OrderAddress::class); - $this->app->concord->registerModel(\Webkul\Sales\Contracts\OrderItem::class, \Webkul\SAASCustomizer\Models\Sales\OrderItem::class); - $this->app->concord->registerModel(\Webkul\Sales\Contracts\OrderPayment::class, \Webkul\SAASCustomizer\Models\Sales\OrderPayment::class); - $this->app->concord->registerModel(\Webkul\Sales\Contracts\Shipment::class, \Webkul\SAASCustomizer\Models\Sales\Shipment::class); - // $this->app->concord->registerModel(\Webkul\Sales\Contracts\ShipmentItem::class, \Webkul\SAASCustomizer\Models\Sales\ShipmentItem::class); - - // Tax Models Starts - $this->app->concord->registerModel(\Webkul\Tax\Contracts\TaxCategory::class, \Webkul\SAASCustomizer\Models\Tax\TaxCategory::class); - $this->app->concord->registerModel(\Webkul\Tax\Contracts\TaxMap::class, \Webkul\SAASCustomizer\Models\Tax\TaxMap::class); - $this->app->concord->registerModel(\Webkul\Tax\Contracts\TaxRate::class, \Webkul\SAASCustomizer\Models\Tax\TaxRate::class); - - // User Models Starts - $this->app->concord->registerModel(\Webkul\User\Contracts\Admin::class, \Webkul\SAASCustomizer\Models\User\Admin::class); - $this->app->concord->registerModel(\Webkul\User\Contracts\Role::class, \Webkul\SAASCustomizer\Models\User\Role::class); - - //Discount Model - $this->app->concord->registerModel(\Webkul\Discount\Contracts\CartRule::class, \Webkul\SAASCustomizer\Models\Discount\CartRule::class); - $this->app->concord->registerModel(\Webkul\Discount\Contracts\CatalogRule::class, \Webkul\SAASCustomizer\Models\Discount\CatalogRule::class); - $this->app->concord->registerModel(\Webkul\Discount\Contracts\CatalogRuleProducts::class, \Webkul\SAASCustomizer\Models\Discount\CatalogRuleProducts::class); - $this->app->concord->registerModel(\Webkul\Discount\Contracts\CatalogRuleProductsPrice::class, \Webkul\SAASCustomizer\Models\Discount\CatalogRuleProductsPrice::class); - - $this->app->concord->registerModel(\Webkul\CMS\Contracts\CMS::class, \Webkul\SAASCustomizer\Models\CMS\CMS::class); - } - - /** - * Boot all the model observers - */ - public function bootModelObservers() - { - \Webkul\SAASCustomizer\Models\Attribute\Attribute::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeObserver::class); - - \Webkul\SAASCustomizer\Models\Attribute\AttributeFamily::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeFamilyObserver::class); - - \Webkul\SAASCustomizer\Models\Attribute\AttributeGroup::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeGroupObserver::class); - - \Webkul\SAASCustomizer\Models\Attribute\AttributeOption::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeOptionObserver::class); - - \Webkul\SAASCustomizer\Models\Attribute\AttributeOptionTranslation::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeOptionTranslationObserver::class); - - \Webkul\SAASCustomizer\Models\Attribute\AttributeTranslation::observe(\Webkul\SAASCustomizer\Observers\Attribute\AttributeTranslationObserver::class); - - \Webkul\SAASCustomizer\Models\Category\Category::observe(\Webkul\SAASCustomizer\Observers\Category\CategoryObserver::class); - - \Webkul\SAASCustomizer\Models\Category\CategoryTranslation::observe(\Webkul\SAASCustomizer\Observers\Category\CategoryTranslationObserver::class); - - \Webkul\SAASCustomizer\Models\Checkout\Cart::observe(\Webkul\SAASCustomizer\Observers\Checkout\CartObserver::class); - - \Webkul\SAASCustomizer\Models\Checkout\CartAddress::observe(\Webkul\SAASCustomizer\Observers\Checkout\CartAddressObserver::class); - - \Webkul\SAASCustomizer\Models\Checkout\CartItem::observe(\Webkul\SAASCustomizer\Observers\Checkout\CartItemObserver::class); - - \Webkul\SAASCustomizer\Models\Checkout\CartPayment::observe(\Webkul\SAASCustomizer\Observers\Checkout\CartPaymentObserver::class); - - \Webkul\SAASCustomizer\Models\Checkout\CartShippingRate::observe(\Webkul\SAASCustomizer\Observers\Checkout\CartShippingRateObserver::class); - - \Webkul\SAASCustomizer\Models\Core\Channel::observe(\Webkul\SAASCustomizer\Observers\Core\ChannelObserver::class); - - \Webkul\SAASCustomizer\Models\Core\CoreConfig::observe(\Webkul\SAASCustomizer\Observers\Core\CoreConfigObserver::class); - - \Webkul\SAASCustomizer\Models\Core\Currency::observe(\Webkul\SAASCustomizer\Observers\Core\CurrencyObserver::class); - - \Webkul\SAASCustomizer\Models\Core\CurrencyExchangeRate::observe(\Webkul\SAASCustomizer\Observers\Core\CurrencyExchangeRateObserver::class); - - \Webkul\SAASCustomizer\Models\Core\Locale::observe(\Webkul\SAASCustomizer\Observers\Core\LocaleObserver::class); - - \Webkul\SAASCustomizer\Models\Core\Slider::observe(\Webkul\SAASCustomizer\Observers\Core\SliderObserver::class); - - \Webkul\SAASCustomizer\Models\Core\SubscribersList::observe(\Webkul\SAASCustomizer\Observers\Core\SubscribersListObserver::class); - - \Webkul\SAASCustomizer\Models\Customer\Customer::observe(\Webkul\SAASCustomizer\Observers\Customer\CustomerObserver::class); - - \Webkul\SAASCustomizer\Models\Customer\CustomerAddress::observe(\Webkul\SAASCustomizer\Observers\Customer\CustomerAddressObserver::class); - - \Webkul\SAASCustomizer\Models\Customer\CustomerGroup::observe(\Webkul\SAASCustomizer\Observers\Customer\CustomerGroupObserver::class); - - \Webkul\SAASCustomizer\Models\Customer\Wishlist::observe(\Webkul\SAASCustomizer\Observers\Customer\WishlistObserver::class); - - \Webkul\SAASCustomizer\Models\Inventory\InventorySource::observe(\Webkul\SAASCustomizer\Observers\Inventory\InventorySourceObserver::class); - - \Webkul\SAASCustomizer\Models\Product\Product::observe(\Webkul\SAASCustomizer\Observers\Product\ProductObserver::class); - - \Webkul\SAASCustomizer\Models\Product\ProductAttributeValue::observe(\Webkul\SAASCustomizer\Observers\Product\ProductAttributeValueObserver::class); - - \Webkul\SAASCustomizer\Models\Product\ProductFlat::observe(\Webkul\SAASCustomizer\Observers\Product\ProductFlatObserver::class); - - \Webkul\SAASCustomizer\Models\Product\ProductImage::observe(\Webkul\SAASCustomizer\Observers\Product\ProductImageObserver::class); - - \Webkul\SAASCustomizer\Models\Product\ProductInventory::observe(\Webkul\SAASCustomizer\Observers\Product\ProductInventoryObserver::class); - - \Webkul\SAASCustomizer\Models\Product\ProductOrderedInventory::observe(\Webkul\SAASCustomizer\Observers\Product\ProductOrderedInventoryObserver::class); - - \Webkul\SAASCustomizer\Models\Product\ProductReview::observe(\Webkul\SAASCustomizer\Observers\Product\ProductReviewObserver::class); - - \Webkul\SAASCustomizer\Models\Sales\Invoice::observe(\Webkul\SAASCustomizer\Observers\Sales\InvoiceObserver::class); - - \Webkul\SAASCustomizer\Models\Sales\InvoiceItem::observe(\Webkul\SAASCustomizer\Observers\Sales\InvoiceItemObserver::class); - - \Webkul\SAASCustomizer\Models\Sales\Order::observe(\Webkul\SAASCustomizer\Observers\Sales\OrderObserver::class); - - \Webkul\SAASCustomizer\Models\Sales\OrderAddress::observe(\Webkul\SAASCustomizer\Observers\Sales\OrderAddressObserver::class); - - \Webkul\SAASCustomizer\Models\Sales\OrderItem::observe(\Webkul\SAASCustomizer\Observers\Sales\OrderItemObserver::class); - - \Webkul\SAASCustomizer\Models\Sales\OrderPayment::observe(\Webkul\SAASCustomizer\Observers\Sales\OrderPaymentObserver::class); - - \Webkul\SAASCustomizer\Models\Sales\Shipment::observe(\Webkul\SAASCustomizer\Observers\Sales\ShipmentObserver::class); - - \Webkul\SAASCustomizer\Models\Sales\ShipmentItem::observe(\Webkul\SAASCustomizer\Observers\Sales\ShipmentObserver::class); - - \Webkul\SAASCustomizer\Models\Tax\TaxCategory::observe(\Webkul\SAASCustomizer\Observers\Tax\TaxCategoryObserver::class); - - \Webkul\SAASCustomizer\Models\Tax\TaxRate::observe(\Webkul\SAASCustomizer\Observers\Tax\TaxRateObserver::class); - - \Webkul\SAASCustomizer\Models\User\Admin::observe(\Webkul\SAASCustomizer\Observers\User\AdminObserver::class); - - \Webkul\SAASCustomizer\Models\User\Role::observe(\Webkul\SAASCustomizer\Observers\User\RoleObserver::class); - - \Webkul\SAASCustomizer\Models\Discount\CartRule::observe(\Webkul\SAASCustomizer\Observers\Discount\CartRuleObserver::class); - - \Webkul\SAASCustomizer\Models\CMS\CMS::observe(\Webkul\SAASCustomizer\Observers\CMS\CMSObserver::class); - - \Webkul\SAASCustomizer\Models\Discount\CatalogRule::observe(\Webkul\SAASCustomizer\Observers\Discount\CatalogRuleObserver::class); - - \Webkul\SAASCustomizer\Models\Discount\CatalogRuleProducts::observe(\Webkul\SAASCustomizer\Observers\Discount\CatalogRuleProductsObserver::class); - - \Webkul\SAASCustomizer\Models\Discount\CatalogRuleProductsPrice::observe(\Webkul\SAASCustomizer\Observers\Discount\CatalogRuleProductsPriceObserver::class); - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Repositories/CompanyDetailsRepository.php b/packages/Webkul/SAASCustomizer/src/Repositories/CompanyDetailsRepository.php deleted file mode 100644 index b1eb49503..000000000 --- a/packages/Webkul/SAASCustomizer/src/Repositories/CompanyDetailsRepository.php +++ /dev/null @@ -1,24 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CompanyDetailsRepository extends Repository -{ - /** - * Specify Model class name - * - * @return mixed - */ - function model() - { - return 'Webkul\SAASCustomizer\Models\CompanyDetails'; - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Repositories/CompanyRepository.php b/packages/Webkul/SAASCustomizer/src/Repositories/CompanyRepository.php deleted file mode 100644 index 84e8c8cdc..000000000 --- a/packages/Webkul/SAASCustomizer/src/Repositories/CompanyRepository.php +++ /dev/null @@ -1,24 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class CompanyRepository extends Repository -{ - /** - * Specify Model class name - * - * @return mixed - */ - function model() - { - return 'Webkul\SAASCustomizer\Models\Company'; - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Repositories/StripeSuperAdminRepository.php b/packages/Webkul/SAASCustomizer/src/Repositories/StripeSuperAdminRepository.php deleted file mode 100644 index 03bb45515..000000000 --- a/packages/Webkul/SAASCustomizer/src/Repositories/StripeSuperAdminRepository.php +++ /dev/null @@ -1,24 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class StripeSuperAdminRepository extends Repository -{ - /** - * Specify Model class name - * - * @return mixed - */ - function model() - { - return 'Webkul\SAASCustomizer\Models\StripeSuperAdmin'; - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Repositories/SuperAdminRepository.php b/packages/Webkul/SAASCustomizer/src/Repositories/SuperAdminRepository.php deleted file mode 100644 index 2082f9d2f..000000000 --- a/packages/Webkul/SAASCustomizer/src/Repositories/SuperAdminRepository.php +++ /dev/null @@ -1,24 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class SuperAdminRepository extends Repository -{ - /** - * Specify Model class name - * - * @return mixed - */ - function model() - { - return 'Webkul\SAASCustomizer\Models\SuperAdmin'; - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/assets/images/block.svg b/packages/Webkul/SAASCustomizer/src/Resources/assets/images/block.svg deleted file mode 100644 index 0312ffb16..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/assets/images/block.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - block - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/assets/images/compass.svg b/packages/Webkul/SAASCustomizer/src/Resources/assets/images/compass.svg deleted file mode 100644 index 8554e43ab..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/assets/images/compass.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - compass - Created with Sketch. - - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/assets/images/razzo-logo.png b/packages/Webkul/SAASCustomizer/src/Resources/assets/images/razzo-logo.png deleted file mode 100644 index 62a1281b0d1bc940a97321ff17ee04542584f2b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3341 zcmeH~>0cAq9>!@^tf;j>Q9vYBD!rBhiYT%LMIf@T$_@$@gb^GWK%+rKw^mO5DX9k#3XlkasP+D=!8u%#S{di?#1aL@Db}G0TOj$fX=yHLG362%jCGq- zWUhy;J$6iQuufV_OkJHPinNc zh$PuXGDmwqTo)vvI#|dOS1o22gp}=JB{Xm)Frn5O z3iR1T4Xm!a2imtCa`bdzr)v5E2tEE_3% z4x4#9Z;mDq9FKY&^bE5z3SQ3D<88k_{4On!{Zp0{6oYfeL|<_!GdZ)lYV9SG8L*9r zQBTTRkOI&Vcu#U@syHJq@V@sr#NvKTjY7(k&m)M*cB@(zNyr+x!5$IISSC)xX(Wgv z+XFCzRsep>ixz&OlCfQOA89z(x!G>_g&Wvszb#U8<3Iki#4_nd3A_HJ@Qpc@Fwe+t zn7wzi9vL$%#K<`pT&-hcqO+=#$;54B@9-JE9&3E`8>u1+%Fo;=aJ6)9O|IioqW`?d zZ9>Pf)+d2M_n6>d@o`^6>Ae6d!Ok_hb8dcMwY**vV5VRQi~rOq^HrWU2%Yd+&*Y?Y z`$w8<&bQ^2)hvj`yJB};)4_=RqRiIEEXRHyvht%U3`^i+iDkwcA-D^MLq66$d8EHD z^rlISJ@IwU$E49JUKiGdrNLC$2bx}GvCgND8FRZBjOgBQ9g7PI*@9KPS-K|1vDzZ8 zEQm;OTs6R7ZeV{Yzh}Vlan0i2$rz75Oa%Ab=bxS1}$Zg8K=^p&IWr92#xP za{{b_7xc2yduY<_xIzs5WTsjC(r zwZu~ph3G>~w7d3vG$K4c{!LkbnC+Iyq^Et+M*3X`uPYykRG0hni`At>z57<9`daw0hB(og0CAigc zB!qKD(CQ{IKl<|zP9Cq>$)C5WK@ja#%6FEYVL?xp$sGY(PfZBwg-I2ijYRY$S?^)D zpS^d>Qm|v^yiU0#3NsG#FaR#~kuKCeSYX`6C|~@K(vVzW%dD56*rzI zYX58hMqm5P5a#2op3{R8JiUrof7xRIz;P+0rioH}QddEQWKM<5HkDFzpwvh|d%H<9 zx;dbrL&s3oqS?&RhX_|0KI zyYV-T$#GgN4CjUhy@4csPi@Us6U?qCwmkWpKx9FZV6_t#2~G3M(Z;Dkf7Rw!JNrjR zSuv5f`uo$(T5+>hzLv89RxZq^-|7axrXqmzl*Rt~^e+%_2xM74K2A~tKk2R?NN2-= zH_edXXaQp74;6zQXnqDuoe3p{^Q=Qsc<+F~ny!r+Vr~4L9dJXZq4`vgG1$T!^CB#k z(Z$OxvN#>~p-?rhEVmXFl3Ux5x6+p0K~G8CcO4Y$xvB>u`}Xe-VvJk4*S=Li4D+%y z>njY1c@jV4(&aiN2Cz#Onn(KV&9B2{3i1jJ>vmqzcdfs$4L#U^Eq$*@&*JLauJnjcACi|G_{BKM(UDwUR$Buyx)|)`}RaBl)2H{=)M|crvIpDo?--e?7kG| zBinOxLAy>O3I8oZLE*eFaOT`3t8lDDH;@~d6i;5dj{Rk5(Lt-5dR>fN{o zgcW$pE;}Ll=A3ALg4VJj)1CB{hH`QPOQ6W06fNdmQiZOpi_KgnjNOeK>M1UWtfR-T z#c9NqZ}5NlI_t<@&oJ8<4z*$QY!ZxTiSKqe_EWL%;?S@DOzlP6)tNhSh>qDfm!?H9 z^3+72Zo^8qwZgljQ&KGkeFM_OGt%BSCxpfXwKS2dnVX?nS>zQ|I8gGg7n-#B2hVrv zINQisk zYNhkpTlu&1g4+qVG*-d@1#pl8Ql7B#2ZvM{?5sn186D1$c(|fFji-sZ2Z&{Nv{3&4 zZwcO6VnRGqaJ)gx*ap$njbjk4!gE;BNUtcrp#2nKQccyDe&tV [ - 'step-1' => 'Step 1', - 'auth-cred' => 'Authentication Credentials', - 'email' => 'Email', - 'phone' => 'Phone', - 'username' => 'Username', - 'password' => 'Password', - 'cpassword' => 'Confirm Password', - 'continue' => 'Continue', - 'step-2' => 'Step 2', - 'personal' => 'Personal Details', - 'first-name' => 'First Name', - 'last-name' => 'Last Name', - 'step-3' => 'Step 3', - 'org-details' => 'Organization Details', - 'org-name' => 'Organization Name' - ], - - 'customers' => [ - 'approve' => 'Approve New' - ], - - 'company' => [ - 'companies' => 'Companies' - ], - - 'datagrid' => [ - 'domain' => 'Domain' - ], - - 'channel-warning' => 'Creating more than one channel is prohibited', - - 'menu' => [ - 'companies' => 'Companies' - ], - - 'connect-stripe' => [ - 'stripe-settings' => 'Stripe Settings' - ], - - 'status' => [ - 'company-activated' => 'Company successfully activated', - 'company-deactivated' => 'Company successfully deactivated', - 'company-updated' => 'Company Updated Successfully', - 'something-wrong' => 'Something went wrong', - 'store-created' => 'Store Created Successfully', - 'something-wrong-1' => 'Something went wrong, please try again later.', - ], - - 'exceptions' => [ - 'domain-not-found' => 'Domain Not Found', - 'company-blocked-by-administrator' => 'This seller is blocked', - 'not-allowed-to-visit-this-section' => 'You are not allowed to use this section', - 'auth' => 'Authentication Error', - 'illegal-action' => 'You are not allowed to perform this action' - ], - - 'custom-errors' => [ - 'channel-creating' => 'Creating more than one channel is not allowed', - 'channel-hostname' => 'Kindly contact admin to change your hostname', - 'same-domain' => 'Cannot keep same sub-domain as main domain', - 'block-message' => 'If you want to unblock this seller, free feel to contact us we are available 24x7 to solve your issue.', - 'blocked' => 'has been blocked', - 'illegal-action' => 'You have performed an illegal action', - 'not-allowed-to-visit' => 'You are not allowed to visit this section, this section is only meant for usage by admins only', - 'domain-message' => 'Oops! We could not help at :domain', - 'domain-desc' => 'If you wish to create an account with :domain - as an organization, feel free to create an account and get started.', - 'illegal-message' => 'The action you performed is disabled by site admin, kindly mail your site administrator for more details on this.', - 'locale-creation' => 'Creating locale other than English is not allowed', - 'locale-delete' => 'Cannot delete the Locale' - ] -]; \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/login.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/login.blade.php deleted file mode 100644 index e16a031e4..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/login.blade.php +++ /dev/null @@ -1,36 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - {{ __('admin::app.users.sessions.title') }} -@stop - -@section('content-wrapper') -
-

{{ __('admin::app.users.sessions.title') }}

- -
- @csrf -
-
- - - @{{ errors.first('email') }} -
- -
- - - @{{ errors.first('password') }} -
- - - -
- -
-
-
-
-@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php deleted file mode 100644 index eff21de1c..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/register.blade.php +++ /dev/null @@ -1,287 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - Seller Registration -@endsection - -@section('content-wrapper') - - - @push('scripts') - - - - @endpush -@endsection \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/step-one.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/step-one.blade.php deleted file mode 100644 index 7531011eb..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/auth/step-one.blade.php +++ /dev/null @@ -1,34 +0,0 @@ -
- @csrf -
-

Step 1:

- -

Authentication Credentials

- -
- - - - - {{-- data-vv-as=""{{ __('shop::app.customer.login-form.email') }}"" --}} - - @{{ errors.first('email') }} -
- -
- - - - - @{{ errors.first('password') }} -
- -
- - - - - @{{ errors.first('password_confirmation') }} -
-
-
\ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/edit.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/edit.blade.php deleted file mode 100644 index 752fac171..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/edit.blade.php +++ /dev/null @@ -1,92 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - {{ __('Edit Company') }} -@endsection - -@section('content-wrapper') - - - @push('scripts') - - - - @endpush -@endsection \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/index.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/index.blade.php deleted file mode 100644 index 8ef9b5557..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/company/index.blade.php +++ /dev/null @@ -1,43 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - Company Insights -@stop - -@section('content-wrapper') -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
No. of ProductsNo. of AttributesNo. of CustomersNo. of Customer GroupsNo. of CategoriesDomain
{{ $company[1]['products'] }}{{ $company[1]['attributes'] }}{{ $company[1]['customers'] }}{{ $company[1]['customer-groups'] }}{{ $company[1]['categories'] }}{{ $company[0]->domain }}
-
-
-
-@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/index.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/index.blade.php deleted file mode 100644 index d5fb5fe6e..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/index.blade.php +++ /dev/null @@ -1,20 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - Companies -@stop - -@section('content-wrapper') -
- - -
- @inject('companies', 'Webkul\SAASCustomizer\DataGrids\CompaniesDataGrid') - {!! $companies->render() !!} -
-
-@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/master.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/master.blade.php deleted file mode 100755 index 825347488..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/master.blade.php +++ /dev/null @@ -1,65 +0,0 @@ - - - - @yield('page_title') - - - - - - - - - - - - @yield('head') - - @yield('css') - - - getLocale() == 'ar') class="rtl" @endif style="scroll-behavior: smooth;"> -
- - - @include ('saas::companies.layouts.nav-top') - - @auth('super-admin') - @include ('saas::companies.layouts.nav-left') - @endauth - -
- @yield('content-wrapper') -
-
- - - - - - - @stack('scripts') - - - - \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-aside.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-aside.blade.php deleted file mode 100644 index 0d6438b2f..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-aside.blade.php +++ /dev/null @@ -1,37 +0,0 @@ -
- - - {{--
- -
--}} -
diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-left.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-left.blade.php deleted file mode 100644 index e5a14e54a..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-left.blade.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-top.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-top.blade.php deleted file mode 100644 index e2d312256..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/nav-top.blade.php +++ /dev/null @@ -1,37 +0,0 @@ - \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/tabs.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/companies/layouts/tabs.blade.php deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/emails/new-company.php b/packages/Webkul/SAASCustomizer/src/Resources/views/emails/new-company.php deleted file mode 100644 index 9784a7830..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/emails/new-company.php +++ /dev/null @@ -1 +0,0 @@ -New company is registered. \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/400.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/400.blade.php deleted file mode 100644 index a5c8134d6..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/400.blade.php +++ /dev/null @@ -1,34 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - 400 Bad Request -@stop - -@section('content-wrapper') - -
- -
- -
-
- {{$status}} -
- -
- {{ $message }} -
- -
- Bad Request -
-
- -
- -
- -
- -@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/401.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/401.blade.php deleted file mode 100755 index aab5672fa..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/401.blade.php +++ /dev/null @@ -1,38 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - {{ __('admin::app.error.401.page-title') }} -@stop - -@section('content-wrapper') -
- -
- -
- -
- {{ __('admin::app.error.401.name') }} -
- -
- {{ __('admin::app.error.401.title') }} -
- -
- {{ __('admin::app.error.401.message') }} -
- - - {{ __('admin::app.error.go-to-home') }} - - -
- -
- -
- -
-@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/403.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/403.blade.php deleted file mode 100755 index 10b8f578e..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/403.blade.php +++ /dev/null @@ -1,38 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - {{ __('admin::app.error.403.page-title') }} -@stop - -@section('content-wrapper') -
- -
- -
- -
- {{ __('admin::app.error.403.name') }} -
- -
- {{ __('admin::app.error.403.title') }} -
- -
- {{ __('admin::app.error.403.message') }} -
- - - {{ __('admin::app.error.go-to-home') }} - - -
- -
- -
- -
-@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/404.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/404.blade.php deleted file mode 100755 index 0df66a256..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/404.blade.php +++ /dev/null @@ -1,38 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - {{ __('admin::app.error.404.page-title') }} -@stop - -@section('content-wrapper') -
- -
- -
- -
- {{ __('admin::app.error.404.name') }} -
- -
- {{ __('admin::app.error.404.title') }} -
- -
- {{ __('admin::app.error.404.message') }} -
- - - {{ __('admin::app.error.go-to-home') }} - - -
- -
- -
- -
-@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/500.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/500.blade.php deleted file mode 100755 index 7b6933eab..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/500.blade.php +++ /dev/null @@ -1,34 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - {{ __('admin::app.error.500.page-title') }} -@stop - -@section('content-wrapper') - -
- -
- -
-
- {{$status}} -
- -
- {{ $message }} -
- -
- {{ __('admin::app.error.500.title') }} -
-
- -
- -
- -
- -@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/503.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/503.blade.php deleted file mode 100644 index 8161f623a..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/503.blade.php +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - Document - - - -
- -
- -
- -
- {{ __('admin::app.error.in-maitainace') }} -
- -
- {{ __('admin::app.error.right-back') }} -
-
- -
- -
-
- - \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/auth.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/auth.blade.php deleted file mode 100644 index 0dd4e2aae..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/auth.blade.php +++ /dev/null @@ -1,34 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - 400 Bad Request -@stop - -@section('content-wrapper') - -
- -
- -
-
- {{$status}} -
- -
- {{ $message }} -
- -
- Please try again by clicking here -
-
- -
- -
- -
- -@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/company_blocked_by_administrator.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/company_blocked_by_administrator.blade.php deleted file mode 100644 index f1381a04d..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/company_blocked_by_administrator.blade.php +++ /dev/null @@ -1,35 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - {{ $status }} {{ __('saas::app.exceptions.not-allowed-to-visit-this-section') }} -@stop - -@section('content-wrapper') - -
- -
- -
-
- Seller Blocked -
- -
- {{ \Company::getCurrent()->name }} {{ __('saas::app.custom-errors.blocked') }}. -
- -
- {{ __('saas::app.custom-errors.block-message') }} - - {{-- Contact Us --}} -
-
- -
-
- -
- -@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/domain_not_found.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/domain_not_found.blade.php deleted file mode 100644 index c1d702298..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/domain_not_found.blade.php +++ /dev/null @@ -1,45 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - {{ $status }} {{ $message }} -@stop - -@section('content-wrapper') - -
- -
- -
-
- - -
- - {{ $message }} -
- -
- {!! __('saas::app.custom-errors.domain-message', [ - 'domain' => $_SERVER['SERVER_NAME'] - ]) !!}. -
- -
- {!! __('saas::app.custom-errors.domain-desc', [ - 'domain' => $_SERVER['SERVER_NAME'] - ]) !!} - -
- - Contact Us -
-
- -
-
- -
- -@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/illegal_action.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/illegal_action.blade.php deleted file mode 100644 index 2554ffc95..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/illegal_action.blade.php +++ /dev/null @@ -1,35 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - {{ $status }} {{ __('saas::app.exceptions.not-allowed-to-visit-this-section') }} -@stop - -@section('content-wrapper') - -
- -
- -
-
- Illegal Action -
- -
- {{ __('saas::app.custom-errors.illegal-action') }}. -
- -
- {{ __('saas::app.custom-errors.illegal-message') }} - - {{-- Contact Us --}} -
-
- -
-
- -
- -@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/not_allowed_to_visit_this_section.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/errors/not_allowed_to_visit_this_section.blade.php deleted file mode 100644 index 05080aca1..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/errors/not_allowed_to_visit_this_section.blade.php +++ /dev/null @@ -1,25 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - {{ $status }} {{ $message }} -@stop - -@section('content-wrapper') - -
- -
- -
-
- {{ __('saas::app.exceptions.not-allowed-to-visit-this-section') }} -
-
- -
-
- -
- -@stop \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Resources/views/installation/holdscreen.blade.php b/packages/Webkul/SAASCustomizer/src/Resources/views/installation/holdscreen.blade.php deleted file mode 100644 index 8721af315..000000000 --- a/packages/Webkul/SAASCustomizer/src/Resources/views/installation/holdscreen.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - Seller Registration -@endsection - -@section('content-wrapper') - -@endsection \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Routes/web.php b/packages/Webkul/SAASCustomizer/src/Routes/web.php deleted file mode 100644 index 0026eb621..000000000 --- a/packages/Webkul/SAASCustomizer/src/Routes/web.php +++ /dev/null @@ -1,41 +0,0 @@ - 'web'], function () { - Route::prefix('company')->group(function() { - //create company - Route::get('register', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@create')->defaults('_config', [ - 'view' => 'saas::companies.auth.register' - ])->name('company.create.index'); - - Route::post('validate/step-one', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@validateStepOne')->name('company.validate.step-one'); - - Route::post('validate/step-three', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@validateStepThree')->name('company.validate.step-three'); - - Route::post('register', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@store')->name('company.create.store'); - - Route::get('/seed-data', 'Webkul\SAASCustomizer\Http\Controllers\PurgeController@seedDatabase')->name('company.create.data'); - }); - - Route::prefix('super')->group(function() { - Route::get('login', 'Webkul\SAASCustomizer\Http\Controllers\SuperUserController@index')->name('super.session.index'); - - Route::post('login', 'Webkul\SAASCustomizer\Http\Controllers\SuperUserController@store')->defaults('_config', [ - 'redirect' => 'super.companies.index' - ])->name('super.session.create'); - - Route::get('logout', 'Webkul\SAASCustomizer\Http\Controllers\SuperUserController@destroy')->name('super.session.destroy'); - - // GET Route leading to the listing of the companies grid - Route::get('companies', 'Webkul\SAASCustomizer\Http\Controllers\SuperUserController@list')->name('super.companies.index'); - - Route::get('companies/edit/{id}', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@edit')->name('super.companies.edit'); - - Route::post('companies/edit/{id}', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@update')->name('super.companies.update'); - - // To show the stats of the registered companies - Route::get('companies/view/{id}', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@showCompanyStats')->name('super.companies.show-stats'); - - // To show the stats of the registered companies - Route::get('companies/status/{id}', 'Webkul\SAASCustomizer\Http\Controllers\CompanyController@changeStatus')->name('super.companies.change-status'); - }); -}); \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/src/Validation/DatabasePresenceVerifier.php b/packages/Webkul/SAASCustomizer/src/Validation/DatabasePresenceVerifier.php deleted file mode 100644 index 574166662..000000000 --- a/packages/Webkul/SAASCustomizer/src/Validation/DatabasePresenceVerifier.php +++ /dev/null @@ -1,32 +0,0 @@ -id) && $table != 'admins') { - return $this->db->connection($this->connection)->table($table)->useWritePdo()->where ('company_id', '=', $company->id); - } else { - // apply the company id check dynamically here to eliminate unique validation woes - return $this->db->connection($this->connection)->table($table)->useWritePdo(); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/SAASCustomizer/webpack.mix.js b/packages/Webkul/SAASCustomizer/webpack.mix.js deleted file mode 100644 index 3dcd3bcbd..000000000 --- a/packages/Webkul/SAASCustomizer/webpack.mix.js +++ /dev/null @@ -1,22 +0,0 @@ -const { mix } = require("laravel-mix"); -require("laravel-mix-merge-manifest"); - -if (mix.inProduction()) { - var publicPath = 'publishable/assets'; -} else { - var publicPath = "../../../public/vendor/webkul/saas/assets"; -} - -mix.setPublicPath(publicPath).mergeManifest(); -mix.disableNotifications(); - -mix.js(__dirname + "/src/Resources/assets/js/app.js", "js/saas.js") - .copyDirectory( __dirname + '/src/Resources/assets/images', publicPath + '/images') - .sass(__dirname + "/src/Resources/assets/sass/app.scss", "css/saas.css") - .options({ - processCssUrls: false - }); - -if (mix.inProduction()) { - mix.version(); -} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/Config/system.php b/packages/Webkul/ShowPriceAfterLogin/Config/system.php deleted file mode 100644 index cd71e32d2..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/Config/system.php +++ /dev/null @@ -1,47 +0,0 @@ - 'showpriceafterlogin', - 'name' => 'showpriceafterlogin::app.showpriceafterlogin.name', - 'sort' => 5 - ], [ - 'key' => 'showpriceafterlogin.settings', - 'name' => 'showpriceafterlogin::app.showpriceafterlogin.settings', - 'sort' => 1, - ], [ - 'key' => 'showpriceafterlogin.settings.settings', - 'name' => 'showpriceafterlogin::app.showpriceafterlogin.settings', - 'sort' => 1, - 'fields' => [ - [ - 'name' => 'enableordisable', - 'title' => 'showpriceafterlogin::app.showpriceafterlogin.toggle', - 'type' => 'boolean', - 'channel_based' => true, - 'locale_based' => false - ], [ - 'name' => 'hide-shop-before-login', - 'title' => 'showpriceafterlogin::app.showpriceafterlogin.hide-shop-before-login', - 'type' => 'boolean', - 'channel_based' => false, - 'locale_based' => false - ], [ - 'name' => 'selectfunction', - 'title' => 'showpriceafterlogin::app.showpriceafterlogin.select-function', - 'type' => 'select', - 'options' => [ - [ - 'name' => 'hide-buy-cart-guest', - 'title' => 'showpriceafterlogin::app.showpriceafterlogin.hide-buy-cart-guest', - 'value' => "hide-buy-cart-guest" - ], [ - 'name' => 'hide-price-buy-cart', - 'title' => 'showpriceafterlogin::app.showpriceafterlogin.hide-price-buy-cart-guest', - 'value' => "hide-price-buy-cart-guest" - ] - ], - ] - ] - ] -]; \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/composer.json b/packages/Webkul/ShowPriceAfterLogin/composer.json deleted file mode 100644 index baf5adf0b..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/composer.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "bagisto/showPriceAfterLogin", - "description": "show price and add to cart button after login ", - "license": "MIT", - "authors": [ - { - "name": "Prateek Srivastava", - "email": "prateek.srivastava781@webkul.com" - } - ], - "require": {}, - "autoload": { - "psr-4": { - "Webkul\\ShowPriceAfterLogin\\": "src/" - } - }, - "extra": { - "laravel": { - "providers": [ - "Webkul\\ShowPriceAfterLogin\\Providers\\ShowPriceAfterLoginServiceProvider" - ], - "aliases": {} - } - }, - "minimum-stability": "dev" -} diff --git a/packages/Webkul/ShowPriceAfterLogin/package.json b/packages/Webkul/ShowPriceAfterLogin/package.json deleted file mode 100644 index 8c4598302..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "scripts": { - "dev": "npm run development", - "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch-poll": "npm run watch -- --watch-poll", - "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", - "prod": "npm run production", - "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" - }, - "devDependencies": { - "cross-env": "^5.1.4", - "laravel-mix": "^2.1", - "laravel-mix-merge-manifest": "^0.1.1" - } -} diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Http/Middleware/ShowShopAfterLogin.php b/packages/Webkul/ShowPriceAfterLogin/src/Http/Middleware/ShowShopAfterLogin.php deleted file mode 100644 index e90840c2e..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/src/Http/Middleware/ShowShopAfterLogin.php +++ /dev/null @@ -1,56 +0,0 @@ -getConfigData('ShowPriceAfterLogin.settings.settings.hide-shop-before-login'); - $moduleEnabled = core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable'); - - if ($status && $moduleEnabled) { - if (! auth()->guard('customer')->check() && ! request()->is('customer/*') && ! request()->is('admin/*')) { - return redirect()->route('customer.session.index'); - } - } - - - return $next($request); - } -} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Providers/ShowPriceAfterLoginServiceProvider.php b/packages/Webkul/ShowPriceAfterLogin/src/Providers/ShowPriceAfterLoginServiceProvider.php deleted file mode 100644 index 1fe3b1f1e..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/src/Providers/ShowPriceAfterLoginServiceProvider.php +++ /dev/null @@ -1,58 +0,0 @@ -loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'showpriceafterlogin'); - - $this->publishes([ - dirname(__DIR__) . '/Resources/views/card.blade.php' => base_path('resources/views/vendor/shop/products/list/card.blade.php') - ]); - - $this->publishes([ - dirname(__DIR__) . '/Resources/views/price.blade.php' => base_path('resources/views/vendor/shop/products/price.blade.php') - ]); - - $this->publishes([ - dirname(__DIR__) . '/Resources/views/add-to-cart.blade.php' => base_path('resources/views/vendor/shop/products/add-to-cart.blade.php') - ]); - - // $this->publishes([ - // dirname(__DIR__) . '/Resources/views/Shop/add-buttons.blade.php' => base_path('views/vendor/shop/products/add-buttons.blade.php') - // ]); - - $this->publishes([ - dirname(__DIR__) . '/Resources/views/buy-now.blade.php' => base_path('resources/views/vendor/shop/products/buy-now.blade.php') - ]); - - // $this->publishes([ - // dirname(__DIR__) . '/Resources/views/Shop/view/product-add.blade.php' => base_path('views/vendor/shop/products/view/product-add.blade.php') - // ]); - - $this->publishes([ - dirname(__DIR__) . '/Resources/views/review-price.blade.php' => base_path('resources/views/vendor/shop/products/review-price.blade.php') - ]); - } - - /** - * Register services. - * - * @return void - */ - public function register() - { - $this->mergeConfigFrom( - dirname(__DIR__) . '/../Config/system.php', 'core' - ); - } -} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/lang/en/app.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/lang/en/app.php deleted file mode 100644 index 7590896d7..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/src/Resources/lang/en/app.php +++ /dev/null @@ -1,20 +0,0 @@ - [ - 'name' => 'Show Price After Login', - 'settings' => 'Settings', - 'toggle' => 'Enable Module', - 'hide-shop-before-login' => 'Hide Shop Before Login', - 'hide-price-buy-cart-guest' => 'Hide Price & Buy/Add-to-Cart For Guest', - 'hide-buy-cart-guest' => 'Hide Buy/Add-to-Cart For Guest', - 'select-function' => 'Select Function', - 'configure' => 'Configure', - 'configurations' => 'Configuration', - ], - - 'products' => [ - 'login-to-view-price' => 'Login To View Price', - 'login-to-buy' => 'Login To Buy' - ] -]; \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/add-to-cart.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/add-to-cart.blade.php deleted file mode 100644 index a3d6e82ce..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/add-to-cart.blade.php +++ /dev/null @@ -1,19 +0,0 @@ -{!! view_render_event('bagisto.shop.products.add_to_cart.before', ['product' => $product]) !!} -@php - $status = core()->getConfigData('showpriceafterlogin.settings.settings.enableordisable'); - - $function = core()->getConfigData('showpriceafterlogin.settings.settings.selectfunction'); -@endphp - -@if (($status && ! auth()->guard('customer')->check()) && ($function == 'hide-buy-cart-guest' || $function == 'hide-price-buy-cart-guest')) - -@else - -@endif -{!! view_render_event('bagisto.shop.products.add_to_cart.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/buy-now.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/buy-now.blade.php deleted file mode 100644 index c7fdb4225..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/buy-now.blade.php +++ /dev/null @@ -1,15 +0,0 @@ -{!! view_render_event('bagisto.shop.products.buy_now.before', ['product' => $product]) !!} - -@php - $status = core()->getConfigData('showpriceafterlogin.settings.settings.enableordisable'); - - $function = core()->getConfigData('showpriceafterlogin.settings.settings.selectfunction'); -@endphp - -@if (($status && ! auth()->guard('customer')->check()) && ($function == 'hide-buy-cart-guest' || $function == 'hide-price-buy-cart-guest')) -@else - -@endif -{!! view_render_event('bagisto.shop.products.buy_now.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/card.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/card.blade.php deleted file mode 100644 index 893b79ce2..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/card.blade.php +++ /dev/null @@ -1,55 +0,0 @@ -{!! view_render_event('bagisto.shop.products.list.card.before', ['product' => $product]) !!} - -@php - $status = core()->getConfigData('showpriceafterlogin.settings.settings.enableordisable'); - - $function = core()->getConfigData('showpriceafterlogin.settings.settings.selectfunction'); -@endphp - -
- @inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage') - - getProductBaseImage($product); ?> - - @if ($product->new) -
- {{ __('shop::app.products.new') }} -
- @endif - -
- - - -
- -
- - - - @include ('shop::products.price', ['product' => $product]) - - @if (($status && ! auth()->guard('customer')->check()) && ($function == 'hide-buy-cart-guest' || $function == 'hide-price-buy-cart-guest')) - - @else - @include('shop::products.add-buttons', ['product' => $product]) - @endif -
- -
- -{!! view_render_event('bagisto.shop.products.list.card.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/price.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/price.blade.php deleted file mode 100644 index b1e9f830f..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/price.blade.php +++ /dev/null @@ -1,33 +0,0 @@ -{!! view_render_event('bagisto.shop.products.price.before', ['product' => $product]) !!} - -@php - $status = core()->getConfigData('showpriceafterlogin.settings.settings.enableordisable'); - - $function = core()->getConfigData('showpriceafterlogin.settings.settings.selectfunction'); -@endphp - -
- @inject ('priceHelper', 'Webkul\Product\Helpers\Price') - @if (($status && ! auth()->guard('customer')->check()) && $function == "hide-price-buy-cart-guest") - @else - @if ($product->type == 'configurable') - {{ __('shop::app.products.price-label') }} - - {{ core()->currency($priceHelper->getMinimalPrice($product)) }} - @else - @if ($priceHelper->haveSpecialPrice($product)) -
- {{ __('shop::app.products.sale') }} -
- - {{ core()->currency($product->price) }} - - {{ core()->currency($priceHelper->getSpecialPrice($product)) }} - @else - {{ core()->currency($product->price) }} - @endif - @endif - @endif -
- -{!! view_render_event('bagisto.shop.products.price.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/review-price.blade.php b/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/review-price.blade.php deleted file mode 100644 index 37ba19952..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/src/Resources/views/review-price.blade.php +++ /dev/null @@ -1,20 +0,0 @@ -@php - $status = core()->getConfigData('showpriceafterlogin.settings.settings.enableordisable'); - $function = core()->getConfigData('showpriceafterlogin.settings.settings.selectfunction'); -@endphp - -@if(($status && ! auth()->guard('customer')->check()) && $function == 'hide-price-buy-cart-guest') -
- @inject ('priceHelper', 'Webkul\Product\Helpers\Price') - - @if ($product->type == 'configurable') - {{ core()->currency($priceHelper->getMinimalPrice($product)) }} - @else - @if ($priceHelper->haveSpecialPrice($product)) - {{ core()->currency($priceHelper->getSpecialPrice($product)) }} - @else - {{ core()->currency($product->price) }} - @endif - @endif -
-@endif \ No newline at end of file diff --git a/packages/Webkul/ShowPriceAfterLogin/webpack.mix.js b/packages/Webkul/ShowPriceAfterLogin/webpack.mix.js deleted file mode 100644 index b57811642..000000000 --- a/packages/Webkul/ShowPriceAfterLogin/webpack.mix.js +++ /dev/null @@ -1,22 +0,0 @@ -const { mix } = require("laravel-mix"); -require("laravel-mix-merge-manifest"); - -if (mix.inProduction()) { - var publicPath = 'publishable/assets'; -} else { - var publicPath = "../../../public/vendor/module/assets"; -} - -mix.setPublicPath(publicPath).mergeManifest(); -mix.disableNotifications(); - -mix.js(__dirname + "/src/Resources/assets/js/app.js", 'js/custom_app.js') - .copyDirectory( __dirname + '/src/Resources/assets/images', publicPath + '/images') - .sass(__dirname + "/src/Resources/assets/sass/app.scss", 'css/custom_app.css') - .options({ - processCssUrls: false - }); - -if (mix.inProduction()) { - mix.version(); -} diff --git a/packages/Webkul/StripeConnect/.gitignore b/packages/Webkul/StripeConnect/.gitignore deleted file mode 100644 index 6376db975..000000000 --- a/packages/Webkul/StripeConnect/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/node_modules -/package-lock.json -npm-debug.log \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/composer.json b/packages/Webkul/StripeConnect/composer.json deleted file mode 100644 index ccce67bde..000000000 --- a/packages/Webkul/StripeConnect/composer.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "bagisto/laravel-stripe-connect", - "license": "MIT", - "authors": [ - { - "name": "Prashant Singh", - "email": "prashant.singh852@webkul.com" - } - ], - "require": {}, - "autoload": { - "psr-4": { - "Webkul\\StripeConnect\\": "src/" - } - }, - "extra": { - "laravel": { - "providers": [ - "Webkul\\StripeConnect\\Providers\\StripeConnectServiceProdiver" - ], - "aliases": {} - } - }, - "minimum-stability": "dev" -} diff --git a/packages/Webkul/StripeConnect/package.json b/packages/Webkul/StripeConnect/package.json deleted file mode 100644 index 2d948db6a..000000000 --- a/packages/Webkul/StripeConnect/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "npm run development", - "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch-poll": "cross-env npm run watch -- --watch-poll --progress", - "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", - "prod": "npm run production", - "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" - }, - "devDependencies": { - "axios": "^0.18", - "cross-env": "^5.1.4", - "laravel-mix": "^2.1", - "laravel-mix-merge-manifest": "^0.1.1", - "jquery": "^3.2", - "vue": "^2.1.10" - }, - "dependencies": { - "vee-validate": "2.0.0-rc.26", - "vue-flatpickr": "^2.3.0", - "vue-slider-component": "^2.7.5" - } -} diff --git a/packages/Webkul/StripeConnect/publishable/assets/css/stripe.css b/packages/Webkul/StripeConnect/publishable/assets/css/stripe.css deleted file mode 100644 index b6a00e6cf..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/css/stripe.css +++ /dev/null @@ -1 +0,0 @@ -.stripe-close-icon{width:24px;height:24px;background-image:url("../images/icons/close-icon.svg");position:absolute;top:5px;right:5px}.active .stripe-icon,.icon,.stripe-icon{display:inline-block;background-size:cover}.active .stripe-icon,.stripe-icon{width:48px;height:48px}.stripe-icon{background-image:url("../images/icons/Icon-Stripe.svg")}.active .stripe-icon{background-image:url("../images/icons/Icon-Stripe-Active.svg")}#stripe-pay-button label{display:inline;color:#fff}.more-payment-icons{text-align:center;margin-top:15px}.more-payment-icons .visa-icon{width:45px;height:28px;background-image:url("../images/icons/visa.svg");padding-left:32px}.more-payment-icons .master-icon{width:45px;height:28px;background-image:url("../images/icons/master.svg");padding-left:32px}.more-payment-icons .mastro-icon{width:45px;height:28px;background-image:url("../images/icons/mastro.svg");padding-left:32px}.more-payment-icons .pci-icon{width:45px;height:28px;background-image:url("../images/icons/pci.svg");padding-left:32px}.add-card{display:none}.stripe-block-modal{top:120px;left:calc(50% - 222px)!important;display:block;position:fixed;z-index:11;width:450px;background:#fff;border:1px solid #979797;-webkit-box-shadow:0 11px 23px 6px rgba(0,0,0,.28);box-shadow:0 11px 23px 6px rgba(0,0,0,.28);border-radius:5px;margin-left:0!important}.stripe-block-modal .stripe-title{padding-bottom:20px;padding-top:20px;text-align:center}.stripe-form-content{padding-top:30px;padding-bottom:10px}.stripe-form-content .stripe-fields .control-group{margin-bottom:10px}.stripe-form-content .btn.btn-primary.btn-lg{width:100%}.stripe-errors{margin-bottom:10px;color:#ff5252}.stripe-block-modal.close{display:none}.stripe-card-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;font-size:16px}.stripe-card-info .radio-container{padding-left:28px}.stripe-card-info span.icon{width:35px;height:32px}.stripe-card-info a#delete-card,.stripe-card-info a#edit-card,.stripe-card-info span.card-last-four{font-style:normal}.stripe-card-info a#edit-card,.stripe-card-info span.card-last-four{margin-right:14px}.stripe-cards-block{display:none}.payment-icon{width:25px} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/fonts/montserrat-v12-latin-regular.eot b/packages/Webkul/StripeConnect/publishable/assets/fonts/montserrat-v12-latin-regular.eot deleted file mode 100644 index 58433f2501c74b37431ed477d1f1b3a0e31e2dec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21800 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 diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/Icon-Stripe-Active.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/Icon-Stripe-Active.svg deleted file mode 100644 index b85762bac..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/Icon-Stripe-Active.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - Icon-Stripe-Active - Created with Sketch. - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/Icon-Stripe.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/Icon-Stripe.svg deleted file mode 100644 index 721b1549e..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/Icon-Stripe.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - Icon-Stripe - Created with Sketch. - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy 2.png b/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy 2.png deleted file mode 100644 index cfa74190103f77ba048b0c9ceec46b196afc2399..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmV-L0=oT)P)P zh)JMTROB+FDpH~ZB+Rl6%t{*Q5LbGlqp)|F24_1@c=-MuKvtrC8-*<9>) zyH}P^lH@4|D7q>)EGL4Ii-0W7kXZ&tdtG=!h^r_~)7KdcIsP->P;~E|=eo$K&6|68#H~fcL?sSeA1A7)OJQuu}RQnivv?)iv90 zxA&}FPs`F=F_$a2&%rqr4=`fip3nnC@q@*&#t_ z+NRVHJC4LaVw~cz0(+rt-Vt+V*jVTXoUn$9d#)G`HHy?vgK-^|w`#@iD^@@A?RNXM z2xJ(p1yXi*C~B*r`r4NrsIN0u%|M>O1_A?hA(0EcUn(B3JGuPIggEr|di{f99LFCf zlgY0<(0y8G1ma4ia^x?`ghB^*+BNx?fD5@rP~FY+y{E$p1?HAX^CALv1p2O84~+Z5 z+!BM;NvDC^@Ta@a8v@`90wM?$MH~Z1H9JES5@EnYbO2Vn*-xXJ;c?bQ;Qd+7ad6;z zY*wHP?i|9i!V5tVy@uoEXQc4E^i@33PUj+wd}N-da>vTi`8PeXGrutx`!Dtn4D - - - calender copy 2 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy.png b/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy.png deleted file mode 100644 index d7583aaf614e3faad893d2ef6f319557e7692e2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 334 zcmV-U0kQsxP)BSGcxc6R(6ouzM+Lz zR1J>QREgsjiXc){`_AXsPE^K5t|*GqehIMWewJjyFx>YMr9jLS`HXQJfm{LS{07)H z&-1m-kv0evNnp?fb_GGFD;xxVMPM}K6yDBlp_G~zMe*oPDODXFPo-00`9+ZS6vAqwpo^4T)6e#-JdPOvF6(Bn6K=gC6e~>(02+Y>o@$# gj0S#GcGi*h3rCSXU_D_Ly#N3J07*qoM6N<$g7i_7vH$=8 diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy.svg deleted file mode 100644 index 1cc4e9f56..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender copy.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - calender copy - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender.png b/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender.png deleted file mode 100644 index 0cd04df06e759a81ff6e4ce427194f7839079b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmV+y0qFjTP)5ztDy0qyhxsR9BZ+&uen~@bqW@252ixJc`!g3`0&22o dLQjTmPv0UbGJ@GWUM~Ou002ovPDHLkV1f+aa;5+P diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender.svg deleted file mode 100644 index fefe7a424..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/calender.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - calender - Created with Sketch. - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/card.png b/packages/Webkul/StripeConnect/publishable/assets/images/icons/card.png deleted file mode 100644 index db4e51a0f13baec226eb45abb3b0f332f45b528d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmV+u0qp*XP)G})s=b&slJAin)3b3kp{t4x$Y6jcq6 z7|!SO#h}!l%NR4DzqPhk1S9|)wLEO!AGma?E#*Q8nNuZk!I3{&>uy19B&9QRez<5d z-JBezmp!GF?gY&7+8BOj)wpxJsU~@RGDbFXDw942Paq@7^8@z3_`YE3=bXF57;m)w zT5H%C$@0~E|0sAETLCr>vZk1%Of)o>(_2Jj&8i20_PBFI;6)_$fe3v8Ru0VNnhIs- Z)C({xI7{aNS9JgY002ovPDHLkV1hJ(Zwvqc diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/card.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/card.svg deleted file mode 100644 index 2a5f8eb6a..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/card.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - card - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/check-1.png b/packages/Webkul/StripeConnect/publishable/assets/images/icons/check-1.png deleted file mode 100644 index 2629266e8995924849578622653eb309ed650c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)JLZ z!9T%2!IOtx%%Msz9<_*iD0(spNoc5uhFYs)B($3`W}R;~v+Qm+iAhSygJs^E_ujYP z%)EJ{RIAlR%d&FU*5ho;`WvB+D1}17&SWyuCMEY#=)wW*d_G3U^@&cFVv-$@_20~< zCmZ%2C>OJ%Na(w%7(M;6LuxRfn~h+I%L#_A>*m>aY7V+1oEzD$t$?O<6^lg*Tcz~( zrSj{}4DBq;h@4`VtpX>#8ZSNG)dIp(V=BzOgfWt+3!DOW#`gOq<$xN^pDs&wQ- z)Kx`P0zlh*b*ZQW-1iblHr>W^ag9FQND24#)lGV}Z3%s3;C%fL&A_LmelR$%tVXzCZRd8jS|kYBhGH6s5-(rz1B{ zMtg<(e9t#`>E7BldOhaD?tm{o#9$hBVi3XrK|J#C<3R``_ZDAZSf_yRKZRGymp_7j`U2gV5T~CLQ)Xqh69hUBzpMZZL=-9(j0X(G3O>#3PUA;2TER YKh%5#z4|8UG5`Po07*qoM6N<$f@hjQx&QzG diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/check-1.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/check-1.svg deleted file mode 100644 index 922694293..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/check-1.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - check-1 - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/close-icon.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/close-icon.svg deleted file mode 100644 index e8b45b1e6..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/close-icon.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - calender copy 2 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/close.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/close.svg deleted file mode 100644 index 73345683f..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/close.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - close - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/cross-icon.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/cross-icon.svg deleted file mode 100755 index cf00c5a56..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/cross-icon.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - Icon-Cross - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/logo.png b/packages/Webkul/StripeConnect/publishable/assets/images/icons/logo.png deleted file mode 100644 index 1b9be03cbc4b3902fdeb9cbdeaac1aa389af7adf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2316 zcmV+n3G?=eP)?eeu$+Rg=uv0 za)T-S_CP&1%5g%g6(zOw$mpx4uxpnj3IwbP64Kq04Yj5Mz`e7zj~*) zAWR_yfiQZGq9mrlutl9sHIx}&#S?YIdc=${gO7IS{el%jHVJw@yfK?HS|*r^%o7-0 zUX;Ok->=T1wrzrb*uWOOU`ANio8HZ!uAQyEbBB~uy`M>lxS<6T(r8eh6jL&3Q5Ajt zqo5VkH%qF{xFJcm$<^Q>o7^vj>v}|_XGxZF10*> z0K*bVY$zIp4mXlu#HG$1EG#N(8qHyeMo{is7{uq3+38%&jU4?lm=kmx7F6b%M&azm zU|REVUNRSPOgJZk0{0|>w!F#BV>ImR)7Qq~}daLzbwrcucM`s>-##+O{1Ue7{H+Y-()S2%s z)ttgh0ZHegb+x8W*&o-?L`$}yhYmscuT{{I69Kb4c|;3RB@KB`ms4GE{bcIyUY1E6 z+XY|qCe!#4on^VX$b+8EnK6S?Y0b7eX2V2-SFRW8{f(46ME&}MN|z2k+OafCZbq|L zR@27alJ|m^%^4=cQiQD{7!TLEYpUtfU3!C}E<;)5p)4c9P(cFrLyGCT#Aj?maapmb(OB2D`(gu42v>VlCCl??yjliDxRY=I9S3W z40L3(eV*U|O56fvonW!Ywn^o^MW!QP!#aZ%;42HN%{EvWs#Xj*=)zViR+cic?N)5P zVrA+?T4&B(YM_EC)?O{PJ=nR3XprsYf;a7h8gq|Vl%tHG2&yu`#h!3DQaXdZmOf*x zqdhcM1+(xJHfPw`C8Wa!q$u}b22Kp3CR@c>DAwXKi9r&Z=L?H#WR>8? zxGX{7nmH~_X49{~U!!Axt6zvrS#`T06N9C=xxm`lkYNH{;2QFVHL01N>WZfa8w4^T zScW^>R63&zSmKd^+>ujviz~s=D|fh;mi% zgxux~3shoblwX*qegb4YxsLN%nGie?L}l`pw=yEEZo5rP5Ra?pj1F}VnOg#xn<~!e z5Q_)@rkcO;06^EL2aE<84;T*^4FVdrH)A|tGze(e-i*-zW7`>*^>n-1vL35Pa^^j- zcQP%UXnk2XWoZ@d*r)$Em-QoGW9?^LXH25e`)1>_W(Eodi!ykS#gpRJeXraka|1W; z`nTR92;gCV0y^=cxB&Cv)O0GIlR-Y8{qqwB1Z2>GZak=2f$7xVN2On6Q@U(b z1`PXjQFOR4Kb7{c&8Aja&fV`&esG}FPh;Pz zBEN9dlx`d+ZC{dUd>d^4j8f%X;oM5vci1w}yIT^inr8iplS)_QojxC+L6a)XgEYoZ zHeO__r>84-^_dQ?PWhJetrV>ZWTxuM_4V_v^fl#;TzIHy^FfW5zOOLbDjByPN4jJ*t94r%_ znd_b*5&L*ndf2>#4FadH7(l7?c`K94*F58}3xFpoKDm{38yXtv`B{1&@rb1)TY)L7>(_PR zQ|^;BST8c-(v1QI_F)@+xFMbt8e?!vjxz?y+BReAwr}e$@Zs(}KB0mxmD|6)aO+f4 z^xEWL9p!!&pE?(y!N#MFudBk5BQW6_-_A1EkJ9Z7f@*9YFe+3Go(GHvj0OP>+nX^S mFd76jY;VSRz-SQAu>S|bITyZ9+q=2|0000 - - - logo - Created with Sketch. - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/master.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/master.svg deleted file mode 100644 index 5930b2dce..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/master.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - master - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/mastro.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/mastro.svg deleted file mode 100644 index 593985c89..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/mastro.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - mastro - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/pci.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/pci.svg deleted file mode 100644 index bbe13319e..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/pci.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - pci - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/stripe-logo.png b/packages/Webkul/StripeConnect/publishable/assets/images/icons/stripe-logo.png deleted file mode 100644 index c86ee507bfeeb733b742105b4138732c163bcc60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34204 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 diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/successful.png b/packages/Webkul/StripeConnect/publishable/assets/images/icons/successful.png deleted file mode 100644 index 538b665432daab0b57adbb5f385cc136e2be645d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3206 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 - - - successful - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/images/icons/visa.svg b/packages/Webkul/StripeConnect/publishable/assets/images/icons/visa.svg deleted file mode 100644 index 9286d752e..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/images/icons/visa.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - visa - Created with Sketch. - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/publishable/assets/mix-manifest.json b/packages/Webkul/StripeConnect/publishable/assets/mix-manifest.json deleted file mode 100644 index b385cfedd..000000000 --- a/packages/Webkul/StripeConnect/publishable/assets/mix-manifest.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "/css/stripe.css": "/css/stripe.css?id=c080e9000376f04850a8" -} diff --git a/packages/Webkul/StripeConnect/readme.md b/packages/Webkul/StripeConnect/readme.md deleted file mode 100644 index 1037165ef..000000000 --- a/packages/Webkul/StripeConnect/readme.md +++ /dev/null @@ -1 +0,0 @@ -http://%%%%%.domain.com/admin/stripe/connect/retrieve/token \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Config/acl.php b/packages/Webkul/StripeConnect/src/Config/acl.php deleted file mode 100644 index 481436a58..000000000 --- a/packages/Webkul/StripeConnect/src/Config/acl.php +++ /dev/null @@ -1,15 +0,0 @@ - 'stripe', - 'name' => 'STRIPE', - 'route' => 'admin.stripe.seller', - 'sort' => 1 - ], [ - 'key' => 'stripe.connect', - 'name' => 'Connect Account', - 'route' => 'admin.stripe.seller', - 'sort' => 2 - ] -]; \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Config/admin-menu.php b/packages/Webkul/StripeConnect/src/Config/admin-menu.php deleted file mode 100644 index bc87a73a0..000000000 --- a/packages/Webkul/StripeConnect/src/Config/admin-menu.php +++ /dev/null @@ -1,17 +0,0 @@ - 'stripe', - 'name' => 'STRIPE', - 'route' => 'admin.stripe.seller', - 'sort' => 7, - 'icon-class' => 'stripe-icon', - ], [ - 'key' => 'stripe.connect', - 'name' => 'Connect Account', - 'route' => 'admin.stripe.seller', - 'sort' => 1, - 'icon-class' => '', - ] -]; \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Config/paymentmethods.php b/packages/Webkul/StripeConnect/src/Config/paymentmethods.php deleted file mode 100644 index 475e4a396..000000000 --- a/packages/Webkul/StripeConnect/src/Config/paymentmethods.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'code' => 'stripe', - 'title' => 'RazzoPay', - 'description' => 'RazzoPay Payments', - 'class' => 'Webkul\StripeConnect\Payment\StripePayment', - 'sandbox' => true, - 'active' => true - ] -]; \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Config/system.php b/packages/Webkul/StripeConnect/src/Config/system.php deleted file mode 100644 index a71b9d471..000000000 --- a/packages/Webkul/StripeConnect/src/Config/system.php +++ /dev/null @@ -1,38 +0,0 @@ - 'stripe', - 'name' => 'Stripe Connect', - 'sort' => 5 - ], [ - 'key' => 'stripe.connect', - 'name' => 'Connect Account', - 'sort' => 1, - ], [ - 'key' => 'stripe.connect.details', - 'name' => 'Account Details', - 'sort' => 1, - 'fields' => [ - [ - 'name' => 'stripefees', - 'title' => 'Stripe fee to be paid by customer or seller', - 'type' => 'select', - 'options' => [ - [ - 'title' => 'Seller', - 'value' => 'seller' - ], [ - 'title' => 'Customer', - 'value' => 'customer' - ] - ], - 'validation' => 'required' - ], [ - 'name' => 'statementdescriptor', - 'title' => 'Statement Descriptor', - 'type' => 'text' - ] - ] - ] -]; \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Contracts/StripeCart.php b/packages/Webkul/StripeConnect/src/Contracts/StripeCart.php deleted file mode 100644 index 4175718e4..000000000 --- a/packages/Webkul/StripeConnect/src/Contracts/StripeCart.php +++ /dev/null @@ -1,7 +0,0 @@ -increments('id'); - $table->integer('customer_id')->nullable()->unsigned(); - $table->foreign('customer_id')->references('id')->on('customers')->onDelete('cascade'); - $table->string('token'); - $table->boolean('need_new_token')->default(0); - $table->string('last_four')->length(4)->nullable(); - $table->json('misc')->nullable(); - - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('stripe_cards'); - } -} diff --git a/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_09_152250_create_stripe_companies_table.php b/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_09_152250_create_stripe_companies_table.php deleted file mode 100644 index ea6343626..000000000 --- a/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_09_152250_create_stripe_companies_table.php +++ /dev/null @@ -1,37 +0,0 @@ -increments('id'); - $table->string('access_token'); - $table->string('refresh_token'); - $table->string('stripe_publishable_key'); - $table->string('stripe_user_id'); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('stripe_companies'); - } -} diff --git a/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_11_174319_create_stripe_cart_table.php b/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_11_174319_create_stripe_cart_table.php deleted file mode 100644 index f5850aca0..000000000 --- a/packages/Webkul/StripeConnect/src/Database/Migrations/2019_06_11_174319_create_stripe_cart_table.php +++ /dev/null @@ -1,34 +0,0 @@ -increments('id'); - $table->integer('cart_id')->unsigned(); - $table->foreign('cart_id')->references('id')->on('cart')->onDelete('cascade'); - $table->json('stripe_token'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('stripe_cart'); - } -} diff --git a/packages/Webkul/StripeConnect/src/Http/Controllers/Controller.php b/packages/Webkul/StripeConnect/src/Http/Controllers/Controller.php deleted file mode 100755 index d75c0d17a..000000000 --- a/packages/Webkul/StripeConnect/src/Http/Controllers/Controller.php +++ /dev/null @@ -1,12 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class SellerRegistrationController extends Controller -{ - /** - * To hold the StripeConnect Repository Instance - */ - protected $stripeConnect; - - public function __construct(StripeConnect $stripeConnect) - { - $this->stripeConnect = $stripeConnect; - - Stripe::setApiKey(env('STRIPE_TEST_SECRET_KEY')); - } - - public function index() - { - return view('stripe::connect'); - } - - /** - * To process the retrieved token after the seller's onboarding - * on platform account - */ - public function retrieveToken() - { - if (! request()->has('error')) { - $scope = request()->input('scope'); - $code = request()->input('code'); - - $client = new Client(); //GuzzleHttp\Client - $result = $client->post('https://connect.stripe.com/oauth/token', [ - 'auth' => [env('STRIPE_TEST_SECRET_KEY'), ''], - 'form_params' => [ - 'code' => $code, - 'grant_type' => 'authorization_code' - ] - ]); - - $decoded = json_decode($result->getBody()->getContents()); - $access_token = $decoded->access_token; - $refresh_token = $decoded->refresh_token; - $publishable_key = $decoded->stripe_publishable_key; - $stripe_user_id = $decoded->stripe_user_id; - - $result = $this->stripeConnect->create([ - 'access_token' => $access_token, - 'refresh_token' => $refresh_token, - 'stripe_publishable_key' => $publishable_key, - 'stripe_user_id' => $stripe_user_id - ]); - - if ($result) { - session()->flash('success', trans('stripe::app.account-connected')); - } else { - session()->flash('error', trans('stripe::app.problem-connecting')); - } - } else { - session()->flash('error', request()->input('error_description')); - } - - return redirect()->route('admin.stripe.seller'); - } - - public function revokeAccess() - { - $stripeConnectDetails = $this->stripeConnect->findWhere([ - 'company_id' => \Company::getCurrent()->id - ])->first(); - - $client = new Client(); //GuzzleHttp\Client - $result = $client->post('https://connect.stripe.com/oauth/deauthorize', [ - 'auth' => [env('STRIPE_TEST_SECRET_KEY'), ''], - 'form_params' => [ - 'client_id' => env('STRIPE_CLIENT_ID'), - 'stripe_user_id' => $stripeConnectDetails->stripe_user_id - ] - ]); - - if ($result->getStatusCode() == 200) { - $stripeConnectDetails->delete(); - - session()->flash('info', 'Your stripe account has been successfully revoked from the platform'); - } else { - session()->flash('error', $result->getBody()); - } - - return redirect()->route('admin.stripe.seller'); - } -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php b/packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php deleted file mode 100644 index 46c70d2c6..000000000 --- a/packages/Webkul/StripeConnect/src/Http/Controllers/StripeConnectController.php +++ /dev/null @@ -1,354 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class StripeConnectController extends Controller -{ - /** - * OrderRepository object - * - * @var array - */ - protected $orderRepository; - - /** - * StripeRepository object - * - * @var array - */ - protected $stripeRepository; - - /** - * To hold the live stripe publishable key - */ - protected $stripeLivePublishableKey = null; - - /** - * To hold the live stripe secret key - */ - protected $stripeLiveSecretKey = null; - - /** - * To hold the Test stripe publishable key - */ - protected $stripeTestPublishableKey = null; - - /** - * To hold the Test stripe secret key - */ - protected $stripeTestSecretKey = null; - - /** - * Determine test mode - */ - protected $testMode; - - /** - * Determine if Stripe is active or Not - */ - protected $active; - - /** - * Statement descriptor string - */ - protected $statementDescriptor; - - /** - * Stripe Cart Repository Instance holder - */ - protected $stripeCart; - - /** - * Stripe Connect Repository Instance holder - */ - protected $stripeConnect; - - /** - * Create a new controller instance. - * - * @param Webkul\Attribute\Repositories\OrderRepository $orderRepository - * @return void - */ - public function __construct( - OrderRepository $orderRepository, - StripeCart $stripeCart, - StripeConnect $stripeConnect - ) - { - // $this->middleware('auth:super-admin', ['only' => ['storeDetails', 'createDetails', 'editDetails', 'updateDetails']]); - - $this->orderRepository = $orderRepository; - - $this->stripeCart = $stripeCart; - - $this->stripeConnect = $stripeConnect; - - $this->testMode = env('STRIPE_ENABLE_TESTING', true); - - $this->stripeTestPublishableKey = env('STRIPE_TEST_PUBLISHABLE_KEY') ?? 'NULL'; - - $this->stripeTestSecretKey = env('STRIPE_TEST_SECRET_KEY') ?? 'NULL'; - - $this->stripeLivePublishableKey = env('STRIPE_LIVE_PUBLISHABLE_KEY') ?? 'NULL'; - - $this->stripeLiveSecretKey = env('STRIPE_LIVE_SECRET_KEY') ?? 'NULL'; - - $this->stripeAdminFees = env('STRIPE_ADMIN_COMMISSION', 0.0) ?? 'NULL'; - - if (config('stripe.connect.details.statementdescriptor')) { - $this->statementDescriptor = config('stripe.connect.details.statementdescriptor') ?? 'NULL'; - } else { - $this->statementDescriptor = env('STRIPE_STATEMENT_DESCRIPTOR', 'NULL'); - } - } - - public function collectToken() - { - $data = request()->all(); - - if (auth()->guard('customer')->check()) { - //customer authenticated but using saved card - if(isset($data['useSavedCard'])) { - // session()->put('stripe_card', $data); - $this->stripeCart->create([ - 'cart_id' => \Cart::getCart()->id, - 'stripe_token' => json_encode($data) - ]); - - return response()->json(['success' => 'true']); - //customer authenticated but not using saved card - } else { - $misc = request()->input('stripeReturn'); - - //customer authenticated but opt to remember card - $last4 = null; - if (isset($data['last4'])) { - $stripeToken = $data['stripeToken']; - $last4 = $data['last4']; - - $result = $this->stripeRepository->create([ - 'customer_id' => auth()->guard('customer')->user()->id, - 'token' => $stripeToken, - 'last_four' => $last4, - 'misc' => json_encode($misc) - ]); - - // session()->put(['stripe_card' => $result]); - $this->stripeCart->create([ - 'cart_id' => \Cart::getCart()->id, - 'stripe_token' => json_encode($data) - ]); - - if ($result) { - return response()->json(['success' => 'true']); - } else { - return response()->json(['success' => 'false'], 400); - } - - //customer authenticated but not opting for remembering card - } else { - $stripeCart = $this->stripeCart->findWhere([ - 'cart_id' => Cart::getCart()->id - ]); - - if ($stripeCart->count() == 0) { - $this->stripeCart->create([ - 'cart_id' => \Cart::getCart()->id, - 'stripe_token' => json_encode($data) - ]); - } else { - $stripeCart->first()->update([ - 'stripe_token' => json_encode($data) - ]); - } - } - - return response()->json(['success' => 'true']); - } - } else { - //customer not authenticated - $stripeCart = $this->stripeCart->findWhere([ - 'cart_id' => Cart::getCart()->id - ]); - - if ($stripeCart->count() == 0) { - $this->stripeCart->create([ - 'cart_id' => \Cart::getCart()->id, - 'stripe_token' => json_encode($data) - ]); - } else { - $stripeCart->first()->update([ - 'stripe_token' => json_encode($data) - ]); - } - - - return response()->json(['success' => 'true']); - } - } - - public function createCharge() - { - $stripeConnect = $this->stripeConnect->findWhere([ - 'company_id' => \Company::getCurrent()->id - ]); - - if ($stripeConnect->count()) { - $sellerUserId = $stripeConnect->first()->stripe_user_id; - } else { - session()->flash('warning', 'Stripe unavailable for this seller'); - - return redirect()->route('shop.checkout.success'); - } - - if ($this->testMode) { - Stripe::setApiKey($this->stripeTestSecretKey); - } else { - Stripe::setApiKey($this->stripeLiveSecretKey); - } - - $stripeCard = $this->stripeCart->findWhere([ - 'cart_id' => Cart::getCart()->id - ])->first()->stripe_token; - - $stripeCard = json_decode($stripeCard); - - if (isset($stripeCard->stripeToken)) { - $stripeToken = $stripeCard->stripeToken; - } else if (isset($stripeCard->useSavedCard)) { - $cardId = $stripeCard->savedCardId; - - $card = $this->stripeRepository->findOneByField('id', $cardId); - - if ($card->need_new_token) { - $result = false; - } else { - $stripeToken = $card->token; - - $this->stripeRepository->update(['need_new_token' => 1], $cardId); - } - } else { - $stripeToken = $stripeCard->stripeToken; - } - - try { - $cart = Cart::getCart(); - - $applicationFee = ($this->stripeAdminFees * $cart->base_grand_total) / 100; - - if (core()->getConfigData('stripe.connect.details.stripefees') == "customer") { - $result = StripeCharge::create([ - "amount" => round(Cart::getCart()->base_grand_total + $applicationFee, 2) * 100, - "currency" => Cart::getCart()->base_currency_code, - "source" => $stripeToken, - "description" => "Purchased ".Cart::getCart()->items_count." items", - 'application_fee_amount' => round($applicationFee, 2) * 100, - 'statement_descriptor' => $this->statementDescriptor, - ], [ - 'stripe_account' => $sellerUserId - ]); - - $cart->update([ - 'base_grand_total' => $cart->grand_total + $applicationFee, - 'grand_total' => $cart->grand_total + core()->convertPrice($cart->grand_total + $applicationFee, $cart->cart_currency_code) - ]); - } else { - $result = StripeCharge::create([ - "amount" => round(Cart::getCart()->base_grand_total, 2) * 100, - "currency" => Cart::getCart()->base_currency_code, - "source" => $stripeToken, - "description" => "Purchased ".Cart::getCart()->items_count." items", - 'application_fee_amount' => round($applicationFee, 2) * 100, - 'statement_descriptor' => $this->statementDescriptor, - ], [ - 'stripe_account' => $sellerUserId - ]); - } - } catch(\Exception $e) { - if (core()->getConfigData('stripe.connect.details.stripefees') == "customer") { - $cart->update([ - 'base_grand_total' => $cart->grand_total - $applicationFee, - 'grand_total' => $cart->grand_total - core()->convertPrice($applicationFee, $cart->cart_currency_code) - ]); - } - - $result = false; - } - - // catch(\Stripe\Error\Card $e) { - // // Since it's a decline, \Stripe\Error\Card will be caught - // $body = $e->getJsonBody(); - // $err = $body['error']; - - // print('Status is:' . $e->getHttpStatus() . "\n"); - // print('Type is:' . $err['type'] . "\n"); - // print('Code is:' . $err['code'] . "\n"); - // // param is '' in this case - // print('Param is:' . $err['param'] . "\n"); - // print('Message is:' . $err['message'] . "\n"); - // } catch (\Stripe\Error\RateLimit $e) { - // // Too many requests made to the API too quickly - // } catch (\Stripe\Error\InvalidRequest $e) { - // // Invalid parameters were supplied to Stripe's API - // } catch (\Stripe\Error\Authentication $e) { - // // Authentication with Stripe's API failed - // // (maybe you changed API keys recently) - // } catch (\Stripe\Error\ApiConnection $e) { - // // Network communication with Stripe failed - // } catch (\Stripe\Error\Base $e) { - // // Display a very generic error to the user, and maybe send - // // yourself an email - // } catch (Exception $e) { - // // Something else happened, completely unrelated to Stripe - // } - - $this->stripeCart->deleteWhere([ - 'cart_id' => \Cart::getCart()->id - ]); - - if ($result) { - $order = $this->orderRepository->create(Cart::prepareDataForOrder()); - - Cart::deActivateCart(); - - session()->flash('order', $order); - - return redirect()->route('shop.checkout.success'); - } else { - session()->flash('error', trans('stripe::app.payment-failed')); - - return redirect()->route('shop.home.index'); - } - - return redirect()->route('shop.home.index'); - } - - public function deleteCard() - { - $deleteIfFound = $this->stripeRepository->findWhere(['id' => request()->input('id'), 'customer_id' => auth()->guard('customer')->user()->id]); - - $result = $deleteIfFound->first()->delete(); - - return (string)$result; - } -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Http/routes.php b/packages/Webkul/StripeConnect/src/Http/routes.php deleted file mode 100644 index f994f47c1..000000000 --- a/packages/Webkul/StripeConnect/src/Http/routes.php +++ /dev/null @@ -1,38 +0,0 @@ -group(function () { - Route::group(['middleware' => ['admin']], function () { - Route::get('stripe/connect', 'Webkul\StripeConnect\Http\Controllers\SellerRegistrationController@index')->name('admin.stripe.seller'); - - Route::get('stripe/connect/retrieve/token', 'Webkul\StripeConnect\Http\Controllers\SellerRegistrationController@retrieveToken')->name('admin.stripe.retrieve-grant'); - - Route::get('stripe/connect/revoke', 'Webkul\StripeConnect\Http\Controllers\SellerRegistrationController@revokeAccess')->name('admin.stripe.revoke-access'); - }); -}); - -Route::prefix('super')->group(function () { - Route::get('stripe/create', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@createDetails')->name('admin.stripe.create-details'); - - Route::post('stripe/store', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@storeDetails')->name('admin.stripe.store-details'); - - Route::get('stripe/edit', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@editDetails')->name('admin.stripe.edit-details'); - - Route::post('stripe/update', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@updateDetails')->name('admin.stripe.update-details'); -}); - -Route::group(['middleware' => ['web']], function () { -// Route::middleware('web')->group(function () { - Route::prefix('checkout')->group(function () { - Route::get('/stripe', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@collectCard')->defaults('_config', [ - 'view' => 'stripe::checkout.card' - ])->name('stripe.cardcollect'); - - Route::get('/stripe/card/check', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@checkCard')->name('stripe.check.card.unique'); - - Route::get('/stripe/card/delete', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@deleteCard')->name('stripe.delete.saved.cart'); - - Route::post('/sendtoken', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@collectToken')->name('stripe.get.token'); - - Route::get('/create/charge', 'Webkul\StripeConnect\Http\Controllers\StripeConnectController@createCharge')->name('stripe.make.payment'); - }); -}); \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Models/StripeCart.php b/packages/Webkul/StripeConnect/src/Models/StripeCart.php deleted file mode 100644 index 688fe53ca..000000000 --- a/packages/Webkul/StripeConnect/src/Models/StripeCart.php +++ /dev/null @@ -1,15 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('stripe_companies' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Models/StripeConnectProxy.php b/packages/Webkul/StripeConnect/src/Models/StripeConnectProxy.php deleted file mode 100644 index d7a5eb291..000000000 --- a/packages/Webkul/StripeConnect/src/Models/StripeConnectProxy.php +++ /dev/null @@ -1,10 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Payment/Stripe.php b/packages/Webkul/StripeConnect/src/Payment/Stripe.php deleted file mode 100755 index b5a0a9bd8..000000000 --- a/packages/Webkul/StripeConnect/src/Payment/Stripe.php +++ /dev/null @@ -1,61 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -abstract class Stripe extends Payment -{ - /** - * To hold the stripe live API key - */ - protected $apiKey; - - /** - * To hold the instance of the sku intance of the stripe API - */ - protected $sku; - - /** - * Bank statement descriptor, to hold the statement descriptor value - */ - protected $statementDescriptor; - - /** - * Checkout.js link for payment processing - */ - protected $checkoutLink; - - /** - * To redirect to the stripe payment page - */ - public function getStripeUrl() - { - return route('stripe.make.payment'); - } -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Payment/StripePayment.php b/packages/Webkul/StripeConnect/src/Payment/StripePayment.php deleted file mode 100644 index 7f614cfe2..000000000 --- a/packages/Webkul/StripeConnect/src/Payment/StripePayment.php +++ /dev/null @@ -1,33 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class StripePayment extends Stripe -{ - protected $code = 'stripe'; - - /** - * Get the redirect url for redirecting to - */ - public function getRedirectUrl() - { - return route('stripe.make.payment'); - } - - /** - * Stripe web URL generic getter - * - * @param array $params - * @return string - */ - public function getStripeUrl($params = []) - { - $this->getRedirectUrl(); - } -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Providers/EventServiceProvider.php b/packages/Webkul/StripeConnect/src/Providers/EventServiceProvider.php deleted file mode 100644 index e017db345..000000000 --- a/packages/Webkul/StripeConnect/src/Providers/EventServiceProvider.php +++ /dev/null @@ -1,34 +0,0 @@ -addTemplate('stripe::checkout.style'); - }); - - Event::listen('bagisto.shop.layout.head', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('stripe::checkout.style'); - }); - - Event::listen('bagisto.shop.checkout.payment-method.after', function($viewRenderEventManager){ - $viewRenderEventManager->addTemplate('stripe::checkout.card'); - }); - - Event::listen('bagisto.shop.layout.body.after', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('stripe::checkout.card-script'); - }); - } -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Providers/ModuleServiceProvider.php b/packages/Webkul/StripeConnect/src/Providers/ModuleServiceProvider.php deleted file mode 100644 index a7edee222..000000000 --- a/packages/Webkul/StripeConnect/src/Providers/ModuleServiceProvider.php +++ /dev/null @@ -1,13 +0,0 @@ -publishes([ - dirname(__DIR__) . '/Resources/assets/sass/stripe.scss' => base_path('public/vendor/webkul/stripe/assets/css/stripe.css') - ]); - - $this->publishes([ - dirname(__DIR__) . '/Resources/assets/images/' => base_path('public/vendor/webkul/stripe/assets/images/') - ]); - - $this->publishes([ - dirname(__DIR__) . '/Resources/views/checkout/total' => resource_path('views/vendor/shop/checkout/total') - ]); - - \Webkul\StripeConnect\Models\StripeConnect::observe(\Webkul\StripeConnect\Observers\StripeConnectObserver::class); - - $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'stripe'); - $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); - $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'stripe'); - - $this->app->register(EventServiceProvider::class); - } - - /** - * Register services. - * - * @return void - */ - public function register() - { - $this->registerConfig(); - } - - /** - * Merge the stripe connect's configuration with the admin panel - */ - public function registerConfig() - { - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/admin-menu.php', 'menu.admin' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/system.php', 'core' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/paymentmethods.php', 'paymentmethods' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/acl.php', 'acl' - ); - } -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Repositories/StripeCartRepository.php b/packages/Webkul/StripeConnect/src/Repositories/StripeCartRepository.php deleted file mode 100644 index 602c9fa7e..000000000 --- a/packages/Webkul/StripeConnect/src/Repositories/StripeCartRepository.php +++ /dev/null @@ -1,24 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class StripeCartRepository extends Repository -{ - /** - * Specify Model class name - * - * @return mixed - */ - function model() - { - return 'Webkul\StripeConnect\Contracts\StripeCart'; - } -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Repositories/StripeConnectRepository.php b/packages/Webkul/StripeConnect/src/Repositories/StripeConnectRepository.php deleted file mode 100644 index 8b5aa05c6..000000000 --- a/packages/Webkul/StripeConnect/src/Repositories/StripeConnectRepository.php +++ /dev/null @@ -1,24 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class StripeConnectRepository extends Repository -{ - /** - * Specify Model class name - * - * @return mixed - */ - function model() - { - return 'Webkul\StripeConnect\Contracts\StripeConnect'; - } -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/fonts/montserrat-v12-latin-regular.eot b/packages/Webkul/StripeConnect/src/Resources/assets/fonts/montserrat-v12-latin-regular.eot deleted file mode 100644 index 58433f2501c74b37431ed477d1f1b3a0e31e2dec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21800 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 diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe-Active.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe-Active.svg deleted file mode 100644 index b85762bac..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe-Active.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - Icon-Stripe-Active - Created with Sketch. - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe.svg deleted file mode 100644 index 721b1549e..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/Icon-Stripe.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - Icon-Stripe - Created with Sketch. - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy 2.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy 2.png deleted file mode 100644 index cfa74190103f77ba048b0c9ceec46b196afc2399..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmV-L0=oT)P)P zh)JMTROB+FDpH~ZB+Rl6%t{*Q5LbGlqp)|F24_1@c=-MuKvtrC8-*<9>) zyH}P^lH@4|D7q>)EGL4Ii-0W7kXZ&tdtG=!h^r_~)7KdcIsP->P;~E|=eo$K&6|68#H~fcL?sSeA1A7)OJQuu}RQnivv?)iv90 zxA&}FPs`F=F_$a2&%rqr4=`fip3nnC@q@*&#t_ z+NRVHJC4LaVw~cz0(+rt-Vt+V*jVTXoUn$9d#)G`HHy?vgK-^|w`#@iD^@@A?RNXM z2xJ(p1yXi*C~B*r`r4NrsIN0u%|M>O1_A?hA(0EcUn(B3JGuPIggEr|di{f99LFCf zlgY0<(0y8G1ma4ia^x?`ghB^*+BNx?fD5@rP~FY+y{E$p1?HAX^CALv1p2O84~+Z5 z+!BM;NvDC^@Ta@a8v@`90wM?$MH~Z1H9JES5@EnYbO2Vn*-xXJ;c?bQ;Qd+7ad6;z zY*wHP?i|9i!V5tVy@uoEXQc4E^i@33PUj+wd}N-da>vTi`8PeXGrutx`!Dtn4D - - - calender copy 2 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.png deleted file mode 100644 index d7583aaf614e3faad893d2ef6f319557e7692e2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 334 zcmV-U0kQsxP)BSGcxc6R(6ouzM+Lz zR1J>QREgsjiXc){`_AXsPE^K5t|*GqehIMWewJjyFx>YMr9jLS`HXQJfm{LS{07)H z&-1m-kv0evNnp?fb_GGFD;xxVMPM}K6yDBlp_G~zMe*oPDODXFPo-00`9+ZS6vAqwpo^4T)6e#-JdPOvF6(Bn6K=gC6e~>(02+Y>o@$# gj0S#GcGi*h3rCSXU_D_Ly#N3J07*qoM6N<$g7i_7vH$=8 diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.svg deleted file mode 100644 index 1cc4e9f56..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender copy.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - calender copy - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.png deleted file mode 100644 index 0cd04df06e759a81ff6e4ce427194f7839079b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmV+y0qFjTP)5ztDy0qyhxsR9BZ+&uen~@bqW@252ixJc`!g3`0&22o dLQjTmPv0UbGJ@GWUM~Ou002ovPDHLkV1f+aa;5+P diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.svg deleted file mode 100644 index fefe7a424..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/calender.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - calender - Created with Sketch. - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.png deleted file mode 100644 index db4e51a0f13baec226eb45abb3b0f332f45b528d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmV+u0qp*XP)G})s=b&slJAin)3b3kp{t4x$Y6jcq6 z7|!SO#h}!l%NR4DzqPhk1S9|)wLEO!AGma?E#*Q8nNuZk!I3{&>uy19B&9QRez<5d z-JBezmp!GF?gY&7+8BOj)wpxJsU~@RGDbFXDw942Paq@7^8@z3_`YE3=bXF57;m)w zT5H%C$@0~E|0sAETLCr>vZk1%Of)o>(_2Jj&8i20_PBFI;6)_$fe3v8Ru0VNnhIs- Z)C({xI7{aNS9JgY002ovPDHLkV1hJ(Zwvqc diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.svg deleted file mode 100644 index 2a5f8eb6a..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/card.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - card - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.png deleted file mode 100644 index 2629266e8995924849578622653eb309ed650c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)JLZ z!9T%2!IOtx%%Msz9<_*iD0(spNoc5uhFYs)B($3`W}R;~v+Qm+iAhSygJs^E_ujYP z%)EJ{RIAlR%d&FU*5ho;`WvB+D1}17&SWyuCMEY#=)wW*d_G3U^@&cFVv-$@_20~< zCmZ%2C>OJ%Na(w%7(M;6LuxRfn~h+I%L#_A>*m>aY7V+1oEzD$t$?O<6^lg*Tcz~( zrSj{}4DBq;h@4`VtpX>#8ZSNG)dIp(V=BzOgfWt+3!DOW#`gOq<$xN^pDs&wQ- z)Kx`P0zlh*b*ZQW-1iblHr>W^ag9FQND24#)lGV}Z3%s3;C%fL&A_LmelR$%tVXzCZRd8jS|kYBhGH6s5-(rz1B{ zMtg<(e9t#`>E7BldOhaD?tm{o#9$hBVi3XrK|J#C<3R``_ZDAZSf_yRKZRGymp_7j`U2gV5T~CLQ)Xqh69hUBzpMZZL=-9(j0X(G3O>#3PUA;2TER YKh%5#z4|8UG5`Po07*qoM6N<$f@hjQx&QzG diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.svg deleted file mode 100644 index 922694293..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/check-1.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - check-1 - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close-icon.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close-icon.svg deleted file mode 100644 index e8b45b1e6..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close-icon.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - calender copy 2 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close.svg deleted file mode 100644 index 73345683f..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/close.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - close - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/cross-icon.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/cross-icon.svg deleted file mode 100755 index cf00c5a56..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/cross-icon.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - Icon-Cross - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/logo.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/logo.png deleted file mode 100644 index 1b9be03cbc4b3902fdeb9cbdeaac1aa389af7adf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2316 zcmV+n3G?=eP)?eeu$+Rg=uv0 za)T-S_CP&1%5g%g6(zOw$mpx4uxpnj3IwbP64Kq04Yj5Mz`e7zj~*) zAWR_yfiQZGq9mrlutl9sHIx}&#S?YIdc=${gO7IS{el%jHVJw@yfK?HS|*r^%o7-0 zUX;Ok->=T1wrzrb*uWOOU`ANio8HZ!uAQyEbBB~uy`M>lxS<6T(r8eh6jL&3Q5Ajt zqo5VkH%qF{xFJcm$<^Q>o7^vj>v}|_XGxZF10*> z0K*bVY$zIp4mXlu#HG$1EG#N(8qHyeMo{is7{uq3+38%&jU4?lm=kmx7F6b%M&azm zU|REVUNRSPOgJZk0{0|>w!F#BV>ImR)7Qq~}daLzbwrcucM`s>-##+O{1Ue7{H+Y-()S2%s z)ttgh0ZHegb+x8W*&o-?L`$}yhYmscuT{{I69Kb4c|;3RB@KB`ms4GE{bcIyUY1E6 z+XY|qCe!#4on^VX$b+8EnK6S?Y0b7eX2V2-SFRW8{f(46ME&}MN|z2k+OafCZbq|L zR@27alJ|m^%^4=cQiQD{7!TLEYpUtfU3!C}E<;)5p)4c9P(cFrLyGCT#Aj?maapmb(OB2D`(gu42v>VlCCl??yjliDxRY=I9S3W z40L3(eV*U|O56fvonW!Ywn^o^MW!QP!#aZ%;42HN%{EvWs#Xj*=)zViR+cic?N)5P zVrA+?T4&B(YM_EC)?O{PJ=nR3XprsYf;a7h8gq|Vl%tHG2&yu`#h!3DQaXdZmOf*x zqdhcM1+(xJHfPw`C8Wa!q$u}b22Kp3CR@c>DAwXKi9r&Z=L?H#WR>8? zxGX{7nmH~_X49{~U!!Axt6zvrS#`T06N9C=xxm`lkYNH{;2QFVHL01N>WZfa8w4^T zScW^>R63&zSmKd^+>ujviz~s=D|fh;mi% zgxux~3shoblwX*qegb4YxsLN%nGie?L}l`pw=yEEZo5rP5Ra?pj1F}VnOg#xn<~!e z5Q_)@rkcO;06^EL2aE<84;T*^4FVdrH)A|tGze(e-i*-zW7`>*^>n-1vL35Pa^^j- zcQP%UXnk2XWoZ@d*r)$Em-QoGW9?^LXH25e`)1>_W(Eodi!ykS#gpRJeXraka|1W; z`nTR92;gCV0y^=cxB&Cv)O0GIlR-Y8{qqwB1Z2>GZak=2f$7xVN2On6Q@U(b z1`PXjQFOR4Kb7{c&8Aja&fV`&esG}FPh;Pz zBEN9dlx`d+ZC{dUd>d^4j8f%X;oM5vci1w}yIT^inr8iplS)_QojxC+L6a)XgEYoZ zHeO__r>84-^_dQ?PWhJetrV>ZWTxuM_4V_v^fl#;TzIHy^FfW5zOOLbDjByPN4jJ*t94r%_ znd_b*5&L*ndf2>#4FadH7(l7?c`K94*F58}3xFpoKDm{38yXtv`B{1&@rb1)TY)L7>(_PR zQ|^;BST8c-(v1QI_F)@+xFMbt8e?!vjxz?y+BReAwr}e$@Zs(}KB0mxmD|6)aO+f4 z^xEWL9p!!&pE?(y!N#MFudBk5BQW6_-_A1EkJ9Z7f@*9YFe+3Go(GHvj0OP>+nX^S mFd76jY;VSRz-SQAu>S|bITyZ9+q=2|0000 - - - logo - Created with Sketch. - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/master.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/master.svg deleted file mode 100644 index 5930b2dce..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/master.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - master - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/mastro.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/mastro.svg deleted file mode 100644 index 593985c89..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/mastro.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - mastro - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/pci.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/pci.svg deleted file mode 100644 index bbe13319e..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/pci.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - pci - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/stripe-logo.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/stripe-logo.png deleted file mode 100644 index c86ee507bfeeb733b742105b4138732c163bcc60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34204 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 diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/successful.png b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/successful.png deleted file mode 100644 index 538b665432daab0b57adbb5f385cc136e2be645d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3206 zcmV;140-d3P)8HA>qwq+#9y z{RlR;YHVp5gNfoF2LGwnNK8{&V{1({LV+DDA&s_v)wF8n0fokbTB+6wLTw7zEQa0f z%shX;`{vHPH}7NKn~!DjCd+&G>)hWx@7{CIJ?9J}&8bv)L-tw^HWx?dO9dyo(pyt1 z6usG)cVcLfGLlhGw`h}~djIDya9g!Ki#mno(d@!!#4fzkT&5Vju9TLnQ<_ex z@Y!&BrU7exGq+c-aC_D$nC`lfUHGTTi)mOdNb=$(pxfKScl-MJu=r|fnYad|9t*1- zrUwQL6okQyD6_45+#0TpG|BtDOg{k0;C-{n$36{#q2lb=c7aO6P(vWlz*A5vYN;<4Iq=Qafd^xW-pj%S01$93}Q}QIy;w;`~`MxjSXq zjzeKYf@QY#7qP9c1S?Qdx?_QVdxo{L3u9r$fwEHJJ~?>Tg@JO6emGbdQ*wBCwj8-X z-)NEM>oj@^q~kMgmJIA9m8?HzFpX+z8qOweAvY;`8yvUN9V)i`_87>Wi_D+0Fl1(AK$O{QPqX&1Hz%9;zz zVE96#&2@?LuMEH6-;SFrZQ5&X@psvO=RDcJ<|=<-Ob#nGy0$*Yh$bcLh!zQ+>gat_ zD*PMm=6c$SQ4lx_5ZHIL>OfN^OT8wp%X9+R|4!E@!6qOLqJc zDOYb1RsEbe0v@X|$;v8OR{VK0x%Bycs|#8p?zJ|g@9gQ}Y|81CWLy97lm=eIIb&OY zN6WJ~C>95LbXuTS<=9clO`k7Ie{v$4966Cx^hZ-kR>Kt@xj1=%b^1Ay!SJ^tAg}z! z0k9+TB=vXgO|H%%?vi?@H)CP(p2B294xie12X9{p3=jb&YZta`s7BK5lVp%>cIZ z(MCbc8$pGwuQZ<{iahALGc8$XMe++}XzQ`4w!U)1DN(0upJSD;K5fRfDw0*6Ps$ln zY)^LLsk_fw8yuEr2bJo{N@RdXX$dY!YWL%#r=>qLM;4E`CV*~(D_J&3PM4wL$C8oe zO@YYk%6_tLk*%o5kzPO*YxD?mrcu{;FfKVT)FK?qd~}yV2n&r zauhhONi2&vVcw}7=UV{t8jgm`8$4*|O>cEvJUW#>)RVY)sl265+}>ISbXn$5i;OXi z1wRunJ>|1ljMFYo^+}S>*fmH@$7lOsa~D4t%9fMI$9gL8h`oc~C2VL#pk;RpxXXAesU_FMLs73XHT$cnnuO=_;%3O9 zMfmfq-E+YeGgk^mUX^sB4b--NW$JqJ)VD|LWF+kxGpN~p6Q}UCkqtYoAdqtTWy#Iy zizS6m#Wgdxr8*ExC8p8~Wa;DYMYn``Wv{iaVWW(0*3#bzyq_2&V>SxKo!~yCQ2x-$gsI?K2M+63}dhB?NG8?@|pE=#mK)x zflqcJkBjl@7BC9NXrzpKRA$ZFAPXNEPXi@6W3&Zy40;EB2QW@&bGORU9no&YG$?x2 zmWOhsj61wstWSa5v=#9Y1`Qys8KYfKXI^yWhT1Fr>ZYE#pc=Tk`$qL?)IpGnvs^PM zKjV67p}oX2hT06bOgrw2?oO>c)U-^*rHCttTZ}qwL<(n&D^w3bsLn*c_0Rzxjp%=V z7Q5cyEfCW0LP!sU3F#nXjFU^$8JVUopE5$V+n<0!ddz`U-kG5rC6a2FJz^DJqLZw3B3XBJMG zXK)=^)An_Q;bye_W^+q&I@pA~V4TPKlng`4t(Mn~Ww-RE8d6PRGZ6CBrw>SJO+UAt*$M@f57>6@WjmuByzzUJmJ$q*j943=PMH3KFF zi>ul`X`1QB<0{;9BR@RLL9E!54G zeE!27+hxrleCi8nbvM>#^cFK)rW<;QckHz9v?q^`{}tWd#tOX%D@F&!Zq#(>^XO)Z zTR~G{g?Q)MnEOWZq+xbo=ofu7N_`a^d&t|TYwz9_M53K)s@($ChzSn)l`ppxf1alW zXVdS}y9L0|@%?Ve6rQ6ef0WKSbME9pEj7#z+)~mIqa-!%6W-nk)eyy>Hm{lTu9Cn6 zA_^$bmpJbz){s7s?suCCmlZ zN%fM;d*1!0RhvSG@)R@|s9gv4XZaE0{ESlPvZ=QU+D4Pl8GCJ;BwIkxjB} z;Nf#-L}yUnzC#b-4!8-LHe4d`8D%neN68THRKnidXN;E`6*s9q3??no#q=}?Jbg}n zYtOcvyG8B*6Yj&Ra80s2b|v#bbZnm&bo_gF7~>s-O49z}8}a4t0^pVUo@DCvPvz9_ zz%=|fF!CC{=n?!-@RUsSjn?f!jL`0z=!ZLFHdf?9&;hfZkKnR - - - successful - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/visa.svg b/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/visa.svg deleted file mode 100644 index 9286d752e..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/images/icons/visa.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - visa - Created with Sketch. - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/assets/sass/stripe.scss b/packages/Webkul/StripeConnect/src/Resources/assets/sass/stripe.scss deleted file mode 100644 index 3c4bbbe38..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/assets/sass/stripe.scss +++ /dev/null @@ -1,156 +0,0 @@ -.stripe-close-icon { - width: 24px; - height: 24px; - background-image: url("../images/icons/close-icon.svg"); - position: absolute; - top: 5px; - right: 5px; -} - -.icon { - display: inline-block; - background-size: cover; -} - -%menu-properties { - width: 48px; - height: 48px; - display: inline-block; - background-size: cover; -} - -.stripe-icon { - @extend %menu-properties; - background-image: url("../images/icons/Icon-Stripe.svg"); -} - -.active { - .stripe-icon { - @extend %menu-properties; - background-image: url("../images/icons/Icon-Stripe-Active.svg"); - } -} - -#stripe-pay-button label { - display: inline; - color: #ffffff; -} - -.more-payment-icons { - text-align: center; - margin-top: 15px; - - .visa-icon { - width: 45px; - height: 28px; - background-image: url("../images/icons/visa.svg"); - padding-left: 32px; - } - - .master-icon { - width: 45px; - height: 28px; - background-image: url("../images/icons/master.svg"); - padding-left: 32px; - } - - .mastro-icon { - width: 45px; - height: 28px; - background-image: url("../images/icons/mastro.svg"); - padding-left: 32px; - } - - .pci-icon { - width: 45px; - height: 28px; - background-image: url("../images/icons/pci.svg"); - padding-left: 32px; - } -} -.add-card { - display: none; -} - -.stripe-cards { - // position: relative; -} - -.stripe-block-modal { - top: 120px; - left: calc(50% - 222px) !important; - display: block; - position: fixed; - z-index: 11; - width: 450px; - background: #FFFFFF; - border: 1px solid #979797; - box-shadow: 0 11px 23px 6px rgba(0,0,0,0.28); - border-radius: 5px; - margin-left: 0px !important; - - - - .stripe-title { - padding-bottom: 20px; - padding-top: 20px; - text-align: center; - } -} - -.stripe-form-content { - padding-top: 30px; - padding-bottom: 10px; - - .stripe-fields { - .control-group { - margin-bottom: 10px; - } - } - - .btn.btn-primary.btn-lg { - width: 100%; - } -} - -.stripe-errors { - margin-bottom: 10px; - color: #FF5252 -} - -.stripe-block-modal.close { - display: none; -} - -.stripe-card-info { - display: flex; - flex-direction: row; - align-items: center; - justify-content: flex-start; - font-size: 16px; - - .radio-container { - padding-left: 28px; - } - - span.icon { - width: 35px; - height:32px; - } - - span.card-last-four, a#edit-card, a#delete-card { - font-style: normal; - } - - span.card-last-four, a#edit-card { - margin-right: 14px; - } -} - -.stripe-cards-block { - display: none; -} - -.payment-icon { - width: 25px; -} \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/lang/en/app.php b/packages/Webkul/StripeConnect/src/Resources/lang/en/app.php deleted file mode 100644 index 65c8e45de..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/lang/en/app.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Connect Stripe', - 'revoke-access' => 'Revoke Your Stripe Account Access', - 'client-id-missing' => 'The client id has not been set up by admin for the platform.', - 'nameoncard' => 'Name on Card', - 'click-here' => 'Click Here', - 'not-ready' => 'This seller ain\'t Stripe ready', - 'pay-now' => 'Pay Now', - 'account-connected' => 'Your Stripe account is successfully integrated with the platform', - 'problem-connecting' => 'There was some problem in onboarding your account', - 'stripe-unavailable' => 'Stripe unavailable for this seller', - 'expirymonth' => 'Expiration Month', - 'expiryyear' => 'Expiration Year', - 'cvc' => 'CVC', - 'cardno' => 'Card Number', - 'paynow' => 'Pay Now', - 'errors-in-fields' => 'Please correct the errors and try - again', - 'add-card' => 'Pay With New Card', - 'remember-card' => 'Remember Card', - 'pay' => 'Pay', - 'payment-failed' => 'Error! Payment Cannot Be Done', - 'payment-success' => 'Success! Payment Done', - 'click-continue' => 'Click continue to proceed further', - 'some-error' => 'Some error occurred', - 'transaction-fee' => 'Transaction Fees', - 'more-info' => '(after successful order)', - 'continue' => 'Please click on continue to complete your transaction' -]; \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php deleted file mode 100644 index 4e5e17f8d..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/views/checkout/card-script.blade.php +++ /dev/null @@ -1,320 +0,0 @@ -@if(request()->is('checkout/onepage')) - - - - - - -@endif \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/checkout/card.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/checkout/card.blade.php deleted file mode 100644 index 9a8595108..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/views/checkout/card.blade.php +++ /dev/null @@ -1,19 +0,0 @@ -@if($payment['method'] == "stripe") - @include('stripe::components.add-card') -
-
- - - - - -
- -
- - @include('stripe::components.stripe-form') - -
-
-
-@endif \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/checkout/style.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/checkout/style.blade.php deleted file mode 100644 index 758c26a06..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/views/checkout/style.blade.php +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/checkout/total/summary.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/checkout/total/summary.blade.php deleted file mode 100644 index c8f441948..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/views/checkout/total/summary.blade.php +++ /dev/null @@ -1,96 +0,0 @@ -
-

{{ __('shop::app.checkout.total.order-summary') }}

- -
- - -
- - @if ($cart->selected_shipping_rate) -
- - -
- @endif - - @if ($cart->base_tax_total) -
- - -
- @endif - -
discount_amount && $cart->discount_amount > 0) style="display: block;" @else style="display: none;" @endif> - - -
- - @if(core()->getConfigData('stripe.connect.details.stripefees') == 'customer' && isset($cart->payment) && $cart->payment->method == 'stripe') -
- @php - $applicationFee = env('STRIPE_ADMIN_COMMISSION', 0.0000) / 100 * $cart->base_grand_total; - @endphp - - - - -
- @endif - - -
- - -
- -
is('checkout/cart')) v-if="parseInt(discount)" @endif> - @if (! request()->is('checkout/cart')) - @if (! $cart->coupon_code) -
-
-
-
- -
- -
* @{{ error_message }}
- - -
-
-
- @else -
-
- - - -
-
- @endif - @endif -
-
\ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/components/add-card.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/components/add-card.blade.php deleted file mode 100644 index 0959aafc7..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/views/components/add-card.blade.php +++ /dev/null @@ -1,7 +0,0 @@ -
\ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/components/saved-cards.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/components/saved-cards.blade.php deleted file mode 100644 index 10b397457..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/views/components/saved-cards.blade.php +++ /dev/null @@ -1,31 +0,0 @@ -@php - $cards = collect(); - - if(auth()->guard('customer')->check()) { - $customer_id = auth()->guard('customer')->user()->id; - - $cards = app('Webkul\Stripe\Repositories\StripeRepository')->findWhere(['customer_id' => $customer_id]); - } -@endphp - -@if(auth()->guard('customer')->check()) -
-
- @foreach($cards as $card) - @if(!$card->need_new_token) -
- - - - *** *** {{ $card->last_four }} - {{-- Edit --}} - Delete -
- @endif - @endforeach -
-
-@endif \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/components/stripe-form.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/components/stripe-form.blade.php deleted file mode 100644 index 83c4953db..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/views/components/stripe-form.blade.php +++ /dev/null @@ -1,69 +0,0 @@ -
-
-
-
- - - -
-
- -
-
- - - - - - - {{-- @if(auth()->guard('customer')->check()) -
- - - - {{ __('stripe::app.remember-card') }} - -
- @endif --}} - - @php - $enableStripe = 0; - - $stripeConnect = app('Webkul\StripeConnect\Repositories\StripeConnectRepository')->findWhere([ - 'company_id' => \Company::getCurrent()->id - ]); - - if ($stripeConnect->count() == 1) { - $enableStripe = 1; - } - @endphp - - @if (! env('STRIPE_CLIENT_ID') || ! $enableStripe) - {{ __('stripe::app.not-ready') }} - @else - - @endif -
-
-
- -
- - - - - - - - - - - - - - - -
-
\ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/connect.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/connect.blade.php deleted file mode 100644 index d62d433b5..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/views/connect.blade.php +++ /dev/null @@ -1,35 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - Connect Stripe Account -@stop - -@section('content') -
- - -
- @if (env('STRIPE_CLIENT_ID')) - @inject('stripeConnect', 'Webkul\StripeConnect\Repositories\StripeConnectRepository') - - @if($stripeConnect->findWhere(['company_id' => \Company::getCurrent()->id])->count() == 0) - {{ __('stripe::app.connect-stripe') }} - @else - {{ __('stripe::app.revoke-access') }} - @endif - @else - - {{ __('stripe::app.client-id-missing') }} -

- {{ __('stripe::app.click-here') }} -
- @endif -
-
-@stop \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/super-admin/create.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/super-admin/create.blade.php deleted file mode 100644 index 6d749705d..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/views/super-admin/create.blade.php +++ /dev/null @@ -1,91 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - Add Stripe Details -@stop - -@section('content-wrapper') -
-
- - -
- -
- @csrf() -
- - - @{{ errors.first('title') }} -
- -
- - - @{{ errors.first('description') }} -
- -
- - - @{{ errors.first('enable_on_checkout') }} -
- -
- - - @{{ errors.first('enable_testing') }} -
- -
- - - @{{ errors.first('test_publishable_key') }} -
-
- - - @{{ errors.first('test_secret_key') }} -
- -
- - - @{{ errors.first('live_publishable_key') }} -
-
- - - @{{ errors.first('live_secret_key') }} -
-
-
-
-
-@stop \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/src/Resources/views/super-admin/edit.blade.php b/packages/Webkul/StripeConnect/src/Resources/views/super-admin/edit.blade.php deleted file mode 100644 index b81e34211..000000000 --- a/packages/Webkul/StripeConnect/src/Resources/views/super-admin/edit.blade.php +++ /dev/null @@ -1,85 +0,0 @@ -@extends('saas::companies.layouts.master') - -@section('page_title') - Update Stripe Details -@stop - -@section('content-wrapper') -
-
- - -
- -
- @csrf() -
- - - @{{ errors.first('title') }} -
- -
- - - @{{ errors.first('description') }} -
- -
- - - @{{ errors.first('enable_on_checkout') }} -
- -
- - - @{{ errors.first('enable_testing') }} -
- -
- - - @{{ errors.first('test_publishable_key') }} -
-
- - - @{{ errors.first('test_secret_key') }} -
- -
- - - @{{ errors.first('live_publishable_key') }} -
-
- - - @{{ errors.first('live_secret_key') }} -
-
-
-
-
-@stop \ No newline at end of file diff --git a/packages/Webkul/StripeConnect/webpack.mix.js b/packages/Webkul/StripeConnect/webpack.mix.js deleted file mode 100644 index cb0e630e3..000000000 --- a/packages/Webkul/StripeConnect/webpack.mix.js +++ /dev/null @@ -1,22 +0,0 @@ -const { mix } = require("laravel-mix"); -require("laravel-mix-merge-manifest"); - -if (mix.inProduction()) { - var publicPath = 'publishable/assets'; -} else { - var publicPath = "../../../public/vendor/webkul/stripe/assets"; -} - -mix.setPublicPath(publicPath).mergeManifest(); -mix.disableNotifications(); - - mix.copy(__dirname + "/src/Resources/assets/images", publicPath + "/images/") - .copy(__dirname + "/src/Resources/assets/fonts", publicPath + "/fonts/") - .sass(__dirname + "/src/Resources/assets/sass/stripe.scss", "css/stripe.css") - .options({ - processCssUrls: false - }); - -if (mix.inProduction()) { - mix.version(); -} \ No newline at end of file diff --git a/packages/Webkul/Webfont/composer.json b/packages/Webkul/Webfont/composer.json deleted file mode 100644 index 94a724827..000000000 --- a/packages/Webkul/Webfont/composer.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "bagisto/laravel-webfont", - "license": "MIT", - "authors": [ - { - "name": "Prashant Singh", - "email": "prashant.singh852@webkul.com" - } - ], - "require": {}, - "autoload": { - "psr-4": { - "Webkul\\Webfont\\": "src/" - } - }, - "extra": { - "laravel": { - "providers": [ - "Webkul\\User\\Providers\\WebfontServiceProvider" - ], - "aliases": { - } - } - }, - "minimum-stability": "dev" -} \ No newline at end of file diff --git a/packages/Webkul/Webfont/readme.md b/packages/Webkul/Webfont/readme.md deleted file mode 100644 index 6dc12b4c2..000000000 --- a/packages/Webkul/Webfont/readme.md +++ /dev/null @@ -1,54 +0,0 @@ -# Laravel Webfont v0.1 - -# Introduction: -Bagisto webfont is dynamic implementation of google web fonts. It allows you to choose fonts from google fonts directly from your own Bagisto instance. Choose as many google fonts at once and customize your font for storefront or backend or both within few steps. - -# Feature of Bagisto webfont module - -* Allows you to activate and deactivate module. -* Allow a default font in case you have chosen none. -* Separate control for using font in admin panel or storefront. - -# Requirements -* Bagisto v0.1.7 or higher. - -# Note: -Before proceeding you need google fonts API key. You can get your own key by following instructions after opening the link below: - -> https://developers.google.com/fonts/docs/developer_api - -# Installation -* Extract contents of the zip file in the root of your Bagisto instance. -* Do entry in composer.json in psr-4 object: - -``` -"Webkul\\Webfont\\": "packages/Webkul/Webfont/src" -``` - -* Do entry in config/app.php, inside providers array preferably at the end of it: - -``` -Webkul\Webfont\Providers\WebfontServiceProvider::class -``` - -* Do entry in config\concord.php file: - -``` -\Webkul\Webfont\Providers\ModuleServiceProvider::class -``` - -* Run command below: -1. composer dump-autoload -> Proceed if there are no errors encountered - -2. php artisan migrate - -3. php artisan route:cache - -* You can now find the module configuration in admin panel under Configuration > General > Design. - -* In the configuration page, there is a field for API key which will require to enter your own Google Fonts Developer API key. - -* Find the module under CMS > Webfont. - -> Congrats, you are all set to use Google fonts from your Bagisto instance. diff --git a/packages/Webkul/Webfont/src/Config/menu.php b/packages/Webkul/Webfont/src/Config/menu.php deleted file mode 100644 index 46d9b717a..000000000 --- a/packages/Webkul/Webfont/src/Config/menu.php +++ /dev/null @@ -1,11 +0,0 @@ - 'cms.webfont', - 'name' => 'webfont::app.webfont', - 'route' => 'admin.cms.webfont', - 'sort' => 2, - 'icon-class' => '', - ] -]; \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Config/system.php b/packages/Webkul/Webfont/src/Config/system.php deleted file mode 100644 index 17efa27d8..000000000 --- a/packages/Webkul/Webfont/src/Config/system.php +++ /dev/null @@ -1,77 +0,0 @@ - 'general.design.webfont', - 'name' => 'webfont::app.webfont', - 'sort' => 1, - 'fields' => [ - [ - 'name' => 'status', - 'title' => 'webfont::app.webfont-status', - 'type' => 'select', - 'options' => [ - [ - 'title' => 'Active', - 'value' => true - ], [ - 'title' => 'Inactive', - 'value' => false - ] - ], - - 'channel_based' => false, - 'locale_based' => false - ], [ - 'name' => 'webfont', - 'title' => 'webfont::app.webfont-api', - 'type' => 'text', - 'validation' => 'required', - 'channel_based' => false, - 'locale_based' => false - ], [ - 'name' => 'enable_backend', - 'title' => 'webfont::app.webfont-backend', - 'type' => 'select', - 'channel_based' => false, - 'locale_based' => false, - 'options' => [ - [ - 'title' => 'Active', - 'value' => true - ], [ - 'title' => 'Inactive', - 'value' => false - ] - ] - ], [ - 'name' => 'enable_frontend', - 'title' => 'webfont::app.webfont-frontend', - 'type' => 'select', - 'channel_based' => false, - 'locale_based' => false, - 'options' => [ - [ - 'title' => 'Active', - 'value' => true - ], [ - 'title' => 'Inactive', - 'value' => false - ] - ] - ], [ - 'name' => 'primary_color', - 'title' => 'webfont::app.webfont-primary', - 'type' => 'text', - 'channel_based' => false, - 'locale_based' => false - ], [ - 'name' => 'secondary_color', - 'title' => 'webfont::app.webfont-secondary', - 'type' => 'text', - 'channel_based' => false, - 'locale_based' => false - ] - ] - ] -]; \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Contracts/Webfont.php b/packages/Webkul/Webfont/src/Contracts/Webfont.php deleted file mode 100644 index 0d7038033..000000000 --- a/packages/Webkul/Webfont/src/Contracts/Webfont.php +++ /dev/null @@ -1,7 +0,0 @@ - @prashant-webkul - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class WebfontDataGrid extends DataGrid -{ - protected $index = 'id'; //the column that needs to be treated as index column - - protected $sortOrder = 'desc'; //asc or desc - - public function prepareQueryBuilder() - { - $queryBuilder = DB::table('google_web_fonts') - ->select('id', 'font', 'activated'); - - $this->setQueryBuilder($queryBuilder); - } - - public function addColumns() - { - $this->addColumn([ - 'index' => 'id', - 'label' => trans('webfont::app.id'), - 'type' => 'number', - 'searchable' => false, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'font', - 'label' => trans('webfont::app.font'), - 'type' => 'string', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true - ]); - - $this->addColumn([ - 'index' => 'activated', - 'label' => trans('webfont::app.activated'), - 'type' => 'boolean', - 'searchable' => true, - 'sortable' => true, - 'filterable' => true, - 'wrapper' => function($row) { - if ($row->activated) { - return trans('webfont::app.activated'); - } else { - return trans('webfont::app.de-activated'); - } - } - ]); - } - - public function prepareActions() - { - $this->addAction([ - 'type' => 'Edit', - 'method' => 'GET', //use post only for redirects only - 'route' => 'admin.cms.webfont.activate', - 'icon' => 'icon pencil-lg-icon' - ]); - - $this->addAction([ - 'type' => 'Delete', - 'method' => 'POST', //use post only for requests other than redirects - 'route' => 'admin.cms.webfont.remove', - 'icon' => 'icon trash-icon' - ]); - } -} \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Database/Migrations/2019_08_13_141430_create_google_web_fonts_table.php b/packages/Webkul/Webfont/src/Database/Migrations/2019_08_13_141430_create_google_web_fonts_table.php deleted file mode 100644 index 9752dff61..000000000 --- a/packages/Webkul/Webfont/src/Database/Migrations/2019_08_13_141430_create_google_web_fonts_table.php +++ /dev/null @@ -1,35 +0,0 @@ -increments('id'); - $table->text('font'); - $table->boolean('activated')->default(0); - $table->integer('company_id')->unsigned(); - $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('google_web_fonts'); - } -} diff --git a/packages/Webkul/Webfont/src/Http/Controllers/Controller.php b/packages/Webkul/Webfont/src/Http/Controllers/Controller.php deleted file mode 100644 index 89433c3d4..000000000 --- a/packages/Webkul/Webfont/src/Http/Controllers/Controller.php +++ /dev/null @@ -1,13 +0,0 @@ - @prashant-webkul - * @copyright 2019 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class WebfontController extends Controller -{ - /** - * Hold webfont repository instance - */ - protected $webfont; - - public function __construct(Webfont $webfont) - { - $this->middleware('auth:admin'); - - $this->webfont = $webfont; - } - - public function index() - { - return view('webfont::admin-index'); - } - - public function add() - { - $client = new GuzzleHttp\Client(); - - if (core()->getConfigData('general.design.webfont.webfont')) { - $res = $client->request('GET', 'https://www.googleapis.com/webfonts/v1/webfonts?key='.env('WEBFONT_API_ID')); - - if ($res->getStatusCode() == 200) { - $result = (string) $res->getBody()->getContents(); - - return view('webfont::add-font')->with('fonts', json_decode($result)->items); - } else { - session()->flash('error', trans('webfont::app.cannot-fetch')); - - return redirect()->route('admin.cms.webfont'); - } - } else { - session()->flash('error', trans('webfont::app.set-api-key')); - - return redirect()->route('admin.cms.webfont'); - } - } - - public function store() - { - $fonts = request()->input('fonts'); - - $fonts = json_decode($fonts); - - foreach($fonts as $font) { - $this->webfont->create(['font' => $font]); - } - - session()->flash('success', trans('webfont::app.create-success')); - - return redirect()->route('admin.cms.webfont'); - } - - public function activate($id) - { - $font = $this->webfont->findWhere([ - 'activated' => 1 - ]); - - if (count($font)) { - $font = $font->first(); - - $font->update([ - 'activated' => 0 - ]); - - $font = $this->webfont->findOrFail($id); - - $font->update([ - 'activated' => 1 - ]); - } else { - $font = $this->webfont->findOrFail($id); - - $font->update([ - 'activated' => 1 - ]); - } - - session()->flash('success', trans('webfont::app.active-success')); - - return redirect()->route('admin.cms.webfont'); - } - - public function remove($id) - { - $font = $this->webfont->findOrFail($id); - - if($font->delete()) { - session()->flash('success', trans('webfont::app.delete-success')); - - return response()->json(['message' => true], 200); - } else { - session()->flash('error', trans('webfont::app.delete-fail')); - } - } - - public function fetchAndSync() - { - $client = new GuzzleHttp\Client(); - - return view('webfont::add-font'); - } - - public function homeSeo() - { - return redirect()->route('admin.cms.index'); - } -} \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Http/routes.php b/packages/Webkul/Webfont/src/Http/routes.php deleted file mode 100644 index 4e7f7261d..000000000 --- a/packages/Webkul/Webfont/src/Http/routes.php +++ /dev/null @@ -1,13 +0,0 @@ - ['admin']], function () { - Route::get('admin/webfont', 'Webkul\Webfont\Http\Controllers\WebfontController@index')->name('admin.cms.webfont'); - - Route::get('admin/webfont/add', 'Webkul\Webfont\Http\Controllers\WebfontController@add')->name('admin.cms.webfont.add'); - - Route::post('admin/webfont/add', 'Webkul\Webfont\Http\Controllers\WebfontController@store')->name('admin.cms.webfont.store'); - - Route::get('admin/webfont/activate/{id}', 'Webkul\Webfont\Http\Controllers\WebfontController@activate')->name('admin.cms.webfont.activate'); - - Route::post('admin/webfont/remove/{id}', 'Webkul\Webfont\Http\Controllers\WebfontController@remove')->name('admin.cms.webfont.remove'); -}); diff --git a/packages/Webkul/Webfont/src/Listeners/Webfont.php b/packages/Webkul/Webfont/src/Listeners/Webfont.php deleted file mode 100644 index 297c686ba..000000000 --- a/packages/Webkul/Webfont/src/Listeners/Webfont.php +++ /dev/null @@ -1,24 +0,0 @@ -getConfigData('general.design.webfont.status') && core()->getConfigData('general.design.webfont.enable_frontend')) { - Event::listen('bagisto.shop.layout.head', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('webfont::webfont'); - }); - } - } - - public function handleBackFont() - { - if (core()->getConfigData('general.design.webfont.status') && core()->getConfigData('general.design.webfont.enable_backend')) { - Event::listen('bagisto.admin.layout.head', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('webfont::webfont'); - }); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Models/Webfont.php b/packages/Webkul/Webfont/src/Models/Webfont.php deleted file mode 100644 index 9ff8e0281..000000000 --- a/packages/Webkul/Webfont/src/Models/Webfont.php +++ /dev/null @@ -1,31 +0,0 @@ -guard('super-admin')->check() || ! isset($company->id)) { - return new \Illuminate\Database\Eloquent\Builder($query); - } else { - return new \Illuminate\Database\Eloquent\Builder($query->where('google_web_fonts' . '.company_id', $company->id)); - } - } -} \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Models/WebfontProxy.php b/packages/Webkul/Webfont/src/Models/WebfontProxy.php deleted file mode 100644 index 85309513b..000000000 --- a/packages/Webkul/Webfont/src/Models/WebfontProxy.php +++ /dev/null @@ -1,10 +0,0 @@ -guard('super-admin')->check()) { - $model->company_id = Company::getCurrent()->id; - } - } -} \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Providers/EventServiceProvider.php b/packages/Webkul/Webfont/src/Providers/EventServiceProvider.php deleted file mode 100644 index 66ef37a1a..000000000 --- a/packages/Webkul/Webfont/src/Providers/EventServiceProvider.php +++ /dev/null @@ -1,26 +0,0 @@ -addTemplate('webfont::webfont'); - }); - - Event::listen('bagisto.shop.layout.head', function($viewRenderEventManager) { - $viewRenderEventManager->addTemplate('webfont::webfont'); - }); - } -} \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Providers/ModuleServiceProvider.php b/packages/Webkul/Webfont/src/Providers/ModuleServiceProvider.php deleted file mode 100644 index 17aaffd42..000000000 --- a/packages/Webkul/Webfont/src/Providers/ModuleServiceProvider.php +++ /dev/null @@ -1,12 +0,0 @@ -loadViewsFrom(__DIR__ . '/../Resources/views', 'webfont'); - - $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); - - $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'webfont'); - - $this->loadRoutesFrom(__DIR__ . '/../Http/routes.php'); - - \Webkul\Webfont\Models\Webfont::observe(\Webkul\Webfont\Observers\WebfontObserver::class); - - $this->app->register(EventServiceProvider::class); - } - - /** - * Register services. - * - * @return void - */ - public function register() - { - $this->registerConfig(); - } - - /** - * Registers config - */ - protected function registerConfig() - { - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/system.php', 'core' - ); - - $this->mergeConfigFrom( - dirname(__DIR__) . '/Config/menu.php', 'menu.admin' - ); - } -} diff --git a/packages/Webkul/Webfont/src/Repositories/WebfontRepository.php b/packages/Webkul/Webfont/src/Repositories/WebfontRepository.php deleted file mode 100644 index cfaf3eb1b..000000000 --- a/packages/Webkul/Webfont/src/Repositories/WebfontRepository.php +++ /dev/null @@ -1,26 +0,0 @@ - @prashant-webkul - * @copyright 2019 Webkul Software Pvt Ltd (http://www.webkul.com) - */ - -class WebfontRepository extends Repository -{ - /** - * Specify Model class name - * - * @return mixed - */ - - function model() - { - return 'Webkul\Webfont\Contracts\Webfont'; - } -} \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Resources/lang/en/app.php b/packages/Webkul/Webfont/src/Resources/lang/en/app.php deleted file mode 100644 index 06e161d4f..000000000 --- a/packages/Webkul/Webfont/src/Resources/lang/en/app.php +++ /dev/null @@ -1,30 +0,0 @@ - 'ID', - 'homeseo' => 'Home Page SEO', - 'webfont-primary' => 'Primary accent color', - 'webfont-secondary' => 'Secondary accent color', - 'font' => 'Font', - 'title' => 'Webfonts', - 'save-btn-title' => 'Save Web Font', - 'cannot-fetch' => 'Cannot fetch the list of fonts, make sure that you are connected to internet', - 'set-api-key' => 'Set API key first', - 'select-fonts' => 'Select Fonts', - 'select-font-label' => 'Multiple selection and search are possible', - 'select-values' => 'Please select values', - 'create-success' => 'Fonts added to storage successfully', - 'activated' => 'Activated', - 'de-activated' => 'Deactived', - 'active-success' => 'Font activated successfully', - 'delete-success' => 'Font deleted successfully', - 'delete-fail' => 'Cannot delete font', - 'add' => 'Add Web Font', - 'remove' => 'Remove', - 'webfont' => 'Webfont', - 'webfont-api' => 'API Key', - 'webfont-default' => 'Default Font', - 'webfont-status' => 'Status', - 'webfont-frontend' => 'Enable for storefront', - 'webfont-backend' => 'Enable for backend' -]; \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Resources/views/add-font.blade.php b/packages/Webkul/Webfont/src/Resources/views/add-font.blade.php deleted file mode 100644 index 33ceaf693..000000000 --- a/packages/Webkul/Webfont/src/Resources/views/add-font.blade.php +++ /dev/null @@ -1,104 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('webfont::app.title') }} -@stop - -@section('content') -
- -
-@stop - -@push('scripts') - - - -@endpush \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Resources/views/admin-index.blade.php b/packages/Webkul/Webfont/src/Resources/views/admin-index.blade.php deleted file mode 100644 index 20cd142d7..000000000 --- a/packages/Webkul/Webfont/src/Resources/views/admin-index.blade.php +++ /dev/null @@ -1,27 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('webfont::app.title') }} -@stop - -@section('content') - -
- - -
- @inject('webfontGrid', 'Webkul\Webfont\DataGrids\WebfontDataGrid') - - {!! $webfontGrid->render() !!} -
-
-@stop \ No newline at end of file diff --git a/packages/Webkul/Webfont/src/Resources/views/webfont.blade.php b/packages/Webkul/Webfont/src/Resources/views/webfont.blade.php deleted file mode 100644 index cb3d6ab7e..000000000 --- a/packages/Webkul/Webfont/src/Resources/views/webfont.blade.php +++ /dev/null @@ -1,117 +0,0 @@ -@if(core()->getConfigData('general.design.webfont.status') && core()->getConfigData('general.design.webfont.enable_backend') || (core()->getConfigData('general.design.webfont.status') && core()->getConfigData('general.design.webfont.enable_frontend'))) - - - @php - $activatedFont = app('Webkul\Webfont\Repositories\WebfontRepository'); - - $primaryColor = core()->getConfigData('general.design.webfont.primary_color') ?? '#02bb89'; - - $secondaryColor = core()->getConfigData('general.design.webfont.secondary_color') ?? '#436be0'; - - $font = $activatedFont->findOneWhere([ - 'activated' => 1 - ]); - - if (isset($font)) { - $activeFont = $font->font; - - $font = explode(',', $activeFont)[0]; - - $family = explode(',', $activeFont)[1]; - } else { - $font = 'Montserrat'; - - $family = 'sans-serif'; - } - @endphp - - - - -@endif \ No newline at end of file From 5b563ca0d146ea1243252e4fac86b3ebc5168297 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 3 Sep 2019 12:36:57 +0530 Subject: [PATCH 166/172] Reverting to original settings --- packages/Webkul/Payment/src/Config/paymentmethods.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/Webkul/Payment/src/Config/paymentmethods.php b/packages/Webkul/Payment/src/Config/paymentmethods.php index a4380b36a..864751d7a 100755 --- a/packages/Webkul/Payment/src/Config/paymentmethods.php +++ b/packages/Webkul/Payment/src/Config/paymentmethods.php @@ -5,13 +5,13 @@ return [ 'title' => 'Cash On Delivery', 'description' => 'shop::app.checkout.onepage.cash-desc', 'class' => 'Webkul\Payment\Payment\CashOnDelivery', - 'active' => false, + 'active' => true, 'sort' => 1 ], 'moneytransfer' => [ 'code' => 'moneytransfer', - 'title' => 'Invoice', + 'title' => 'Money Transfer', 'description' => 'shop::app.checkout.onepage.money-desc', 'class' => 'Webkul\Payment\Payment\MoneyTransfer', 'active' => true, @@ -24,7 +24,7 @@ return [ 'description' => 'shop::app.checkout.onepage.paypal-desc', 'class' => 'Webkul\Paypal\Payment\Standard', 'sandbox' => true, - 'active' => false, + 'active' => true, 'business_account' => 'test@webkul.com', 'sort' => 3 ] From 0abb36b7676d742991167c1af7c26d15da3f2902 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 3 Sep 2019 12:53:28 +0530 Subject: [PATCH 167/172] Removed dead code --- .../admin/customers/groups/create.blade.php | 217 -------- .../admin/customers/groups/edit.blade.php | 234 -------- .../vendor/admin/sales/orders/index.blade.php | 42 -- .../vendor/admin/sales/orders/view.blade.php | 503 ------------------ .../shop/checkout/total/summary.blade.php | 97 ---- .../customers/account/orders/view.blade.php | 414 -------------- .../views/vendor/shop/home/slider.blade.php | 96 ---- .../shop/layouts/footer/footer.blade.php | 94 ---- .../layouts/header/nav-menu/navmenu.blade.php | 177 ------ .../shop/products/add-buttons.blade.php | 34 -- .../shop/products/add-to-cart.blade.php | 19 - .../vendor/shop/products/buy-now.blade.php | 15 - .../vendor/shop/products/list/card.blade.php | 55 -- .../vendor/shop/products/price.blade.php | 33 -- .../shop/products/review-price.blade.php | 20 - .../shop/products/view/product-add.blade.php | 25 - 16 files changed, 2075 deletions(-) delete mode 100644 resources/views/vendor/admin/customers/groups/create.blade.php delete mode 100644 resources/views/vendor/admin/customers/groups/edit.blade.php delete mode 100644 resources/views/vendor/admin/sales/orders/index.blade.php delete mode 100644 resources/views/vendor/admin/sales/orders/view.blade.php delete mode 100644 resources/views/vendor/shop/checkout/total/summary.blade.php delete mode 100755 resources/views/vendor/shop/customers/account/orders/view.blade.php delete mode 100644 resources/views/vendor/shop/home/slider.blade.php delete mode 100644 resources/views/vendor/shop/layouts/footer/footer.blade.php delete mode 100644 resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php delete mode 100644 resources/views/vendor/shop/products/add-buttons.blade.php delete mode 100644 resources/views/vendor/shop/products/add-to-cart.blade.php delete mode 100644 resources/views/vendor/shop/products/buy-now.blade.php delete mode 100644 resources/views/vendor/shop/products/list/card.blade.php delete mode 100644 resources/views/vendor/shop/products/price.blade.php delete mode 100644 resources/views/vendor/shop/products/review-price.blade.php delete mode 100644 resources/views/vendor/shop/products/view/product-add.blade.php diff --git a/resources/views/vendor/admin/customers/groups/create.blade.php b/resources/views/vendor/admin/customers/groups/create.blade.php deleted file mode 100644 index d8fde03ef..000000000 --- a/resources/views/vendor/admin/customers/groups/create.blade.php +++ /dev/null @@ -1,217 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('admin::app.customers.groups.add-title') }} -@stop - -@section('content') -
-
- - - -
-
- @csrf() - - -
- -
- - - @{{ errors.first('code') }} -
- -
- - - @{{ errors.first('name') }} -
- -
-
- - -
- - - -
-
- -
-
- -
-
-@stop - -@push('scripts') - - - - -@endpush \ No newline at end of file diff --git a/resources/views/vendor/admin/customers/groups/edit.blade.php b/resources/views/vendor/admin/customers/groups/edit.blade.php deleted file mode 100644 index d82c390ae..000000000 --- a/resources/views/vendor/admin/customers/groups/edit.blade.php +++ /dev/null @@ -1,234 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('admin::app.customers.groups.edit-title') }} -@stop - -@section('content') -
-
- - - -
- -
- @csrf() - - - - -
- -
- - - - @{{ errors.first('code') }} -
- -
- - - @{{ errors.first('name') }} -
- -
- -
- - -
- - - -
-
-
-
-
-
-@stop - -@push('scripts') - - - - -@endpush \ No newline at end of file diff --git a/resources/views/vendor/admin/sales/orders/index.blade.php b/resources/views/vendor/admin/sales/orders/index.blade.php deleted file mode 100644 index fde3254d3..000000000 --- a/resources/views/vendor/admin/sales/orders/index.blade.php +++ /dev/null @@ -1,42 +0,0 @@ -@extends('admin::layouts.content') - -@section('page_title') - {{ __('admin::app.sales.orders.title') }} -@stop - -@section('content') -
- - -
- @inject('orderGrid', 'Webkul\PreOrder\DataGrids\Admin\Order') - - {!! $orderGrid->render() !!} -
-
- - -

{{ __('admin::app.export.download') }}

-
- -
-
- -@stop - -@push('scripts') - @include('admin::export.export', ['gridName' => $orderGrid]) -@endpush \ No newline at end of file diff --git a/resources/views/vendor/admin/sales/orders/view.blade.php b/resources/views/vendor/admin/sales/orders/view.blade.php deleted file mode 100644 index 065ec8bd8..000000000 --- a/resources/views/vendor/admin/sales/orders/view.blade.php +++ /dev/null @@ -1,503 +0,0 @@ -@extends('admin::layouts.master') - -@section('page_title') - {{ __('admin::app.sales.orders.view-title', ['order_id' => $order->id]) }} -@stop - -@section('content-wrapper') - -
- - - -
- - - -
- - havePreOrderItems($order->id); - ?> - - @if ($havePreOrderItems) -
{{ __('preorder::app.admin.sales.orders.preorder-summary') }}
- @endif - - -
- -
-
- {{ __('admin::app.sales.orders.order-info') }} -
- -
-
- - {{ __('admin::app.sales.orders.order-date') }} - - - - {{ $order->created_at }} - -
- -
- - {{ __('admin::app.sales.orders.order-status') }} - - - - {{ $order->status_label }} - -
- -
- - {{ __('admin::app.sales.orders.channel') }} - - - - {{ $order->channel_name }} - -
-
-
- -
-
- {{ __('admin::app.sales.orders.account-info') }} -
- -
-
- - {{ __('admin::app.sales.orders.customer-name') }} - - - - {{ $order->customer_full_name }} - -
- -
- - {{ __('admin::app.sales.orders.email') }} - - - - {{ $order->customer_email }} - -
- - @if (! is_null($order->customer)) -
- - {{ __('admin::app.customers.customers.customer_group') }} - - - - {{ $order->customer->group['name'] }} - -
- @endif -
-
- -
-
- - -
- -
-
- {{ __('admin::app.sales.orders.billing-address') }} -
- -
- - @include ('admin::sales.address', ['address' => $order->billing_address]) - -
-
- - @if ($order->shipping_address) -
-
- {{ __('admin::app.sales.orders.shipping-address') }} -
- -
- - @include ('admin::sales.address', ['address' => $order->shipping_address]) - -
-
- @endif - -
-
- - -
- -
-
- {{ __('admin::app.sales.orders.payment-info') }} -
- -
-
- - {{ __('admin::app.sales.orders.payment-method') }} - - - - {{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }} - -
- -
- - {{ __('admin::app.sales.orders.currency') }} - - - - {{ $order->order_currency_code }} - -
-
-
- -
-
- {{ __('admin::app.sales.orders.shipping-info') }} -
- -
-
- - {{ __('admin::app.sales.orders.shipping-method') }} - - - - {{ $order->shipping_title }} - -
- -
- - {{ __('admin::app.sales.orders.shipping-price') }} - - - - {{ core()->formatBasePrice($order->base_shipping_amount) }} - -
-
-
-
-
- - -
- -
- - - - - - - - - - - @if ($order->base_discount_amount > 0) - - @endif - - - - - - - @foreach ($order->items as $item) - - - - - - - - - - - - - - - - @if ($order->base_discount_amount > 0) - - @endif - - - - @endforeach -
{{ __('admin::app.sales.orders.SKU') }}{{ __('admin::app.sales.orders.product-name') }}{{ __('admin::app.sales.orders.price') }}{{ __('admin::app.sales.orders.item-status') }}{{ __('admin::app.sales.orders.subtotal') }}{{ __('admin::app.sales.orders.tax-percent') }}{{ __('admin::app.sales.orders.tax-amount') }}{{ __('admin::app.sales.orders.discount-amount') }}{{ __('admin::app.sales.orders.grand-total') }}
- {{ $item->type == 'configurable' ? $item->child->sku : $item->sku }} - - {{ $item->name }} - - @if ($html = $item->getOptionDetailHtml()) -

{{ $html }}

- @endif - - @if ($preOrderItem = $preOrderItemRepository->findOneByField('order_item_id', $item->id)) -
- type == 'configurable')style="margin-top: 0"@endif> - {{ __('preorder::app.admin.sales.orders.preorder-information') }} - - - - {{ __('preorder::app.admin.sales.orders.type') }} - - {{ $preOrderItem->type_label }} - - - - {{ __('preorder::app.admin.sales.orders.status') }} - - {{ $preOrderItem->status_label }} - - - @if ($preOrderItem->payment_order_item) - - {{ __('preorder::app.admin.sales.orders.payment-order') }} - - - #{{ $preOrderItem->payment_order_item->order_id }} - - - @endif -
- @elseif ($preOrderItem = app('Webkul\PreOrder\Repositories\PreOrderItemRepository')->findOneByField('payment_order_item_id', $item->id)) -
- type == 'configurable')style="margin-top: 0"@endif> - {{ __('preorder::app.admin.sales.orders.preorder-payment-information') }} - - - - {{ __('preorder::app.admin.sales.orders.reference-order') }} - - - #{{ $preOrderItem->order_id }} - - -
- @endif -
{{ core()->formatBasePrice($item->base_price) }} - - {{ $item->qty_ordered ? __('admin::app.sales.orders.item-ordered', ['qty_ordered' => $item->qty_ordered]) : '' }} - - - - {{ $item->qty_invoiced ? __('admin::app.sales.orders.item-invoice', ['qty_invoiced' => $item->qty_invoiced]) : '' }} - - - - {{ $item->qty_shipped ? __('admin::app.sales.orders.item-shipped', ['qty_shipped' => $item->qty_shipped]) : '' }} - - - - {{ $item->qty_canceled ? __('admin::app.sales.orders.item-canceled', ['qty_canceled' => $item->qty_canceled]) : '' }} - - {{ core()->formatBasePrice($item->base_total) }}{{ $item->tax_percent }}%{{ core()->formatBasePrice($item->base_tax_amount) }}{{ core()->formatBasePrice($item->base_discount_amount) }} - {{ core()->formatBasePrice($item->base_total + $item->base_tax_amount) }} -
-
- - - - - - - - - - - - - - - @if ($order->base_discount_amount > 0) - - - - - - @endif - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{{ __('admin::app.sales.orders.subtotal') }}-{{ core()->formatBasePrice($order->base_sub_total) }}
{{ __('admin::app.sales.orders.shipping-handling') }}-{{ core()->formatBasePrice($order->base_shipping_amount) }}
{{ __('admin::app.sales.orders.discount') }}--{{ core()->formatBasePrice($order->base_discount_amount) }}
{{ __('admin::app.sales.orders.tax') }}-{{ core()->formatBasePrice($order->base_tax_amount) }}
{{ __('admin::app.sales.orders.grand-total') }}-{{ core()->formatBasePrice($order->base_grand_total) }}
{{ __('admin::app.sales.orders.total-paid') }}-{{ core()->formatBasePrice($order->base_grand_total_invoiced) }}
{{ __('admin::app.sales.orders.total-refunded') }}-{{ core()->formatBasePrice($order->base_grand_total_refunded) }}
{{ __('admin::app.sales.orders.total-due') }}-{{ core()->formatBasePrice($order->base_total_due) }}
- -
-
- -
-
- - - -
- - - - - - - - - - - - - - - - @foreach ($order->invoices as $invoice) - - - - - - - - - - @endforeach - - @if (! $order->invoices->count()) - - - - @endif -
{{ __('admin::app.sales.invoices.id') }}{{ __('admin::app.sales.invoices.date') }}{{ __('admin::app.sales.invoices.order-id') }}{{ __('admin::app.sales.invoices.customer-name') }}{{ __('admin::app.sales.invoices.status') }}{{ __('admin::app.sales.invoices.amount') }}{{ __('admin::app.sales.invoices.action') }}
#{{ $invoice->id }}{{ $invoice->created_at }}#{{ $invoice->order->id }}{{ $invoice->address->name }}{{ $invoice->status_label }}{{ core()->formatBasePrice($invoice->base_grand_total) }} - - - -
{{ __('admin::app.common.no-result-found') }}
-
- -
- - - -
- - - - - - - - - - - - - - - - @foreach ($order->shipments as $shipment) - - - - - - - - - - @endforeach - - @if (! $order->shipments->count()) - - - - @endif -
{{ __('admin::app.sales.shipments.id') }}{{ __('admin::app.sales.shipments.date') }}{{ __('admin::app.sales.shipments.order-id') }}{{ __('admin::app.sales.shipments.order-date') }}{{ __('admin::app.sales.shipments.customer-name') }}{{ __('admin::app.sales.shipments.total-qty') }}{{ __('admin::app.sales.shipments.action') }}
#{{ $shipment->id }}{{ $shipment->created_at }}#{{ $shipment->order->id }}{{ $shipment->order->created_at }}{{ $shipment->address->name }}{{ $shipment->total_qty }} - - - -
{{ __('admin::app.common.no-result-found') }}
-
- -
-
-
- -
-@stop \ No newline at end of file diff --git a/resources/views/vendor/shop/checkout/total/summary.blade.php b/resources/views/vendor/shop/checkout/total/summary.blade.php deleted file mode 100644 index cfca3e386..000000000 --- a/resources/views/vendor/shop/checkout/total/summary.blade.php +++ /dev/null @@ -1,97 +0,0 @@ -
-

{{ __('shop::app.checkout.total.order-summary') }}

- -
- - -
- - @if ($cart->selected_shipping_rate) -
- - -
- @endif - - @if ($cart->base_tax_total) -
- - -
- @endif - -
discount_amount && $cart->discount_amount > 0) style="display: block;" @else style="display: none;" @endif> - - -
- - @if(core()->getConfigData('stripe.connect.details.stripefees') == 'customer' && isset($cart->payment) && $cart->payment->method == 'stripe') -
- @php - $applicationFee = $cart->base_grand_total; - $applicationFee = (0.029 * $applicationFee) + (0.02 * $applicationFee) + 0.3; - @endphp - - - - -
- @endif - - -
- - -
- -
is('checkout/cart')) v-if="parseInt(discount)" @endif> - @if (! request()->is('checkout/cart')) - @if (! $cart->coupon_code) -
-
-
-
- -
- -
* @{{ error_message }}
- - -
-
-
- @else -
-
- - - -
-
- @endif - @endif -
-
\ No newline at end of file diff --git a/resources/views/vendor/shop/customers/account/orders/view.blade.php b/resources/views/vendor/shop/customers/account/orders/view.blade.php deleted file mode 100755 index 9e3483e70..000000000 --- a/resources/views/vendor/shop/customers/account/orders/view.blade.php +++ /dev/null @@ -1,414 +0,0 @@ -@extends('shop::layouts.master') - -@section('page_title') - {{ __('shop::app.customer.account.order.view.page-tile', ['order_id' => $order->id]) }} -@endsection - -@push('css') - -@endpush - -@section('content-wrapper') - - - -@endsection \ No newline at end of file diff --git a/resources/views/vendor/shop/home/slider.blade.php b/resources/views/vendor/shop/home/slider.blade.php deleted file mode 100644 index 8a81808d1..000000000 --- a/resources/views/vendor/shop/home/slider.blade.php +++ /dev/null @@ -1,96 +0,0 @@ -
- {{-- --}} - - -
- -@push('scripts') - - - -@endpush \ No newline at end of file diff --git a/resources/views/vendor/shop/layouts/footer/footer.blade.php b/resources/views/vendor/shop/layouts/footer/footer.blade.php deleted file mode 100644 index 2f8532d59..000000000 --- a/resources/views/vendor/shop/layouts/footer/footer.blade.php +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php b/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php deleted file mode 100644 index 200a9b60d..000000000 --- a/resources/views/vendor/shop/layouts/header/nav-menu/navmenu.blade.php +++ /dev/null @@ -1,177 +0,0 @@ -{!! view_render_event('bagisto.shop.layout.header.category.before') !!} - -getVisibleCategoryTree(core()->getCurrentChannel()->root_category_id) as $category) { - if ($category->slug) - array_push($categories, $category); -} - -$cmsPages = app('Webkul\CMS\Repositories\CMSRepository')->findWhere([ - 'channel_id' => core()->getCurrentChannel()->id, - 'locale_id' => core()->getCurrentLocale()->id -]); - -?> - - - -{!! view_render_event('bagisto.shop.layout.header.category.after') !!} - - -@push('scripts') - - - - - - - - - - - - -@endpush \ No newline at end of file diff --git a/resources/views/vendor/shop/products/add-buttons.blade.php b/resources/views/vendor/shop/products/add-buttons.blade.php deleted file mode 100644 index af665b735..000000000 --- a/resources/views/vendor/shop/products/add-buttons.blade.php +++ /dev/null @@ -1,34 +0,0 @@ -@if ($product->type != "configurable" && $product->totalQuantity() < 1 && $product->allow_preorder) - @if (core()->getConfigData('preorder.settings.general.percent')) - @if (core()->getConfigData('preorder.settings.general.preorder_type') == 'partial') -

{{ __('preorder::app.shop.products.percent-to-pay', ['percent' => core()->getConfigData('preorder.settings.general.percent')]) }}

- @endif - @endif -@endif - -@if ($product->type == "configurable") -
- - {{ __('shop::app.products.add-to-cart') }} - - - @include('shop::products.wishlist') -
-@else -
-
- @csrf - - - - - @if ($product->totalQuantity() < 1 && $product->product->allow_preorder) - - @else - - @endif -
- - @include('shop::products.wishlist') -
-@endif \ No newline at end of file diff --git a/resources/views/vendor/shop/products/add-to-cart.blade.php b/resources/views/vendor/shop/products/add-to-cart.blade.php deleted file mode 100644 index b5b4b4e16..000000000 --- a/resources/views/vendor/shop/products/add-to-cart.blade.php +++ /dev/null @@ -1,19 +0,0 @@ -{!! view_render_event('bagisto.shop.products.add_to_cart.before', ['product' => $product]) !!} -@php - $status = core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable'); - - $function = core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction'); -@endphp - -@if (($status && ! auth()->guard('customer')->check()) && ($function == 'hide-buy-cart-guest' || $function == 'hide-price-buy-cart-guest')) - -@else - -@endif -{!! view_render_event('bagisto.shop.products.add_to_cart.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/resources/views/vendor/shop/products/buy-now.blade.php b/resources/views/vendor/shop/products/buy-now.blade.php deleted file mode 100644 index 0f7dcf1b8..000000000 --- a/resources/views/vendor/shop/products/buy-now.blade.php +++ /dev/null @@ -1,15 +0,0 @@ -{!! view_render_event('bagisto.shop.products.buy_now.before', ['product' => $product]) !!} - -@php - $status = core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable'); - - $function = core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction'); -@endphp - -@if (($status && ! auth()->guard('customer')->check()) && ($function == 'hide-buy-cart-guest' || $function == 'hide-price-buy-cart-guest')) -@else - -@endif -{!! view_render_event('bagisto.shop.products.buy_now.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/resources/views/vendor/shop/products/list/card.blade.php b/resources/views/vendor/shop/products/list/card.blade.php deleted file mode 100644 index dd754d56c..000000000 --- a/resources/views/vendor/shop/products/list/card.blade.php +++ /dev/null @@ -1,55 +0,0 @@ -{!! view_render_event('bagisto.shop.products.list.card.before', ['product' => $product]) !!} - -@php - $status = core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable'); - - $function = core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction'); -@endphp - -
- @inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage') - - getProductBaseImage($product); ?> - - @if ($product->new) -
- {{ __('shop::app.products.new') }} -
- @endif - -
- - - -
- -
- - - - @include ('shop::products.price', ['product' => $product]) - - @if (($status && ! auth()->guard('customer')->check()) && ($function == 'hide-buy-cart-guest' || $function == 'hide-price-buy-cart-guest')) - - @else - @include('shop::products.add-buttons', ['product' => $product]) - @endif -
- -
- -{!! view_render_event('bagisto.shop.products.list.card.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/resources/views/vendor/shop/products/price.blade.php b/resources/views/vendor/shop/products/price.blade.php deleted file mode 100644 index 380148499..000000000 --- a/resources/views/vendor/shop/products/price.blade.php +++ /dev/null @@ -1,33 +0,0 @@ -{!! view_render_event('bagisto.shop.products.price.before', ['product' => $product]) !!} - -@php - $status = core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable'); - - $function = core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction'); -@endphp - -
- @inject ('priceHelper', 'Webkul\Product\Helpers\Price') - @if (($status && ! auth()->guard('customer')->check()) && $function == "hide-price-buy-cart-guest") - @else - @if ($product->type == 'configurable') - {{ __('shop::app.products.price-label') }} - - {{ core()->currency($priceHelper->getMinimalPrice($product)) }} - @else - @if ($priceHelper->haveSpecialPrice($product)) -
- {{ __('shop::app.products.sale') }} -
- - {{ core()->currency($product->price) }} - - {{ core()->currency($priceHelper->getSpecialPrice($product)) }} - @else - {{ core()->currency($product->price) }} - @endif - @endif - @endif -
- -{!! view_render_event('bagisto.shop.products.price.after', ['product' => $product]) !!} \ No newline at end of file diff --git a/resources/views/vendor/shop/products/review-price.blade.php b/resources/views/vendor/shop/products/review-price.blade.php deleted file mode 100644 index 0fb8b6101..000000000 --- a/resources/views/vendor/shop/products/review-price.blade.php +++ /dev/null @@ -1,20 +0,0 @@ -@php - $status = core()->getConfigData('ShowPriceAfterLogin.settings.settings.enableordisable'); - $function = core()->getConfigData('ShowPriceAfterLogin.settings.settings.selectfunction'); -@endphp - -@if(($status && ! auth()->guard('customer')->check()) && $function == 'hide-price-buy-cart-guest') -
- @inject ('priceHelper', 'Webkul\Product\Helpers\Price') - - @if ($product->type == 'configurable') - {{ core()->currency($priceHelper->getMinimalPrice($product)) }} - @else - @if ($priceHelper->haveSpecialPrice($product)) - {{ core()->currency($priceHelper->getSpecialPrice($product)) }} - @else - {{ core()->currency($product->price) }} - @endif - @endif -
-@endif \ No newline at end of file diff --git a/resources/views/vendor/shop/products/view/product-add.blade.php b/resources/views/vendor/shop/products/view/product-add.blade.php deleted file mode 100644 index 584d15fa1..000000000 --- a/resources/views/vendor/shop/products/view/product-add.blade.php +++ /dev/null @@ -1,25 +0,0 @@ -{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} - -
- @if ($product->type != 'configurable') - @if ($product->totalQuantity() < 1 && $product->product->allow_preorder) - - @else - @include ('shop::products.add-to-cart', ['product' => $product]) - - @include ('shop::products.buy-now') - @endif - @else - @include ('shop::products.add-to-cart', ['product' => $product]) - - @include ('shop::products.buy-now') - - - @endif -
- -{!! view_render_event('bagisto.shop.products.view.product-add.after', ['product' => $product]) !!} \ No newline at end of file From ce79814408d5c6313d0fc427fe6ada46d375f35a Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Tue, 3 Sep 2019 16:38:50 +0530 Subject: [PATCH 168/172] Minor fix --- .../src/Resources/views/promotions/cart-rule/create.blade.php | 2 +- .../src/Resources/views/promotions/cart-rule/edit.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php index 967810402..d0f568c52 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/create.blade.php @@ -247,7 +247,7 @@
- + @{{ errors.first('disc_amount') }}
diff --git a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php index ba73aa59c..ff7a09bff 100644 --- a/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/promotions/cart-rule/edit.blade.php @@ -254,7 +254,7 @@
- + @{{ errors.first('disc_amount') }}
From 0e51a9eab28f8c0f2cb9d701d21008bb8cc41e8d Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 4 Sep 2019 11:39:20 +0530 Subject: [PATCH 169/172] Changed minimum php version to 7.2 --- composer.json | 2 +- packages/Webkul/Discount/src/Helpers/Cart/Discount.php | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index bfa1b36cc..b72fc97a8 100755 --- a/composer.json +++ b/composer.json @@ -8,7 +8,7 @@ "license": "MIT", "type": "project", "require": { - "php": "^7.1.3", + "php": "^7.2", "ext-curl": "*", "ext-intl": "*", "ext-mbstring": "*", diff --git a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php index 720d929e2..643854fcd 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php @@ -63,6 +63,16 @@ abstract class Discount 'use_coupon' => 1, 'status' => 1 ]); + + foreach($rules as $rule) { + if ($rule->coupons->code == $code) { + $rules = collect(); + + $rules->push($rule); + + break; + } + } } else { $rules = $this->cartRule->findWhere([ 'use_coupon' => 0, From c7f1e4996a9c2c84d59f9b216c20424339356db4 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 4 Sep 2019 11:41:52 +0530 Subject: [PATCH 170/172] Updated readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b2800f16..613b440cb 100755 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Bagisto is using power of both of these frameworks and making best out of it out * **OS**: Ubuntu 16.04 LTS or higher / Windows 7 or Higher (WAMP / XAMP). * **SERVER**: Apache 2 or NGINX. * **RAM**: 3 GB or higher. -* **PHP**: 7.1.17 or higher. +* **PHP**: 7.2 or higher. * **Processor**: Clock Cycle 1 Ghz or higher. * **For MySQL users**: 5.7.23 or higher. * **For MariaDB users**: 10.2.7 or Higher. From 0468a1fdd6b2dfc2d17812507f1011b840c9de22 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 4 Sep 2019 13:36:34 +0530 Subject: [PATCH 171/172] Changes in core repository made --- composer.json | 2 +- .../Webkul/Core/src/Eloquent/Repository.php | 26 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/composer.json b/composer.json index b72fc97a8..adbf7c3bf 100755 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "konekt/concord": "^1.2", "laravel/framework": "5.6.*", "laravel/tinker": "^1.0", - "maatwebsite/excel": "3.1.x-dev", + "maatwebsite/excel": "3.1.11", "nwidart/laravel-modules": "^3.2", "prettus/l5-repository": "^2.6", "tymon/jwt-auth": "dev-develop" diff --git a/packages/Webkul/Core/src/Eloquent/Repository.php b/packages/Webkul/Core/src/Eloquent/Repository.php index 30add72fa..f2964ba60 100755 --- a/packages/Webkul/Core/src/Eloquent/Repository.php +++ b/packages/Webkul/Core/src/Eloquent/Repository.php @@ -26,7 +26,7 @@ abstract class Repository extends BaseRepository { public function findOneByField($field, $value = null, $columns = ['*']) { $model = parent::findByField($field, $value, $columns = ['*']); - + return $model->first(); } @@ -42,7 +42,7 @@ abstract class Repository extends BaseRepository { public function findOneWhere(array $where, $columns = ['*']) { $model = parent::findWhere($where, $columns); - + return $model->first(); } @@ -82,19 +82,19 @@ abstract class Repository extends BaseRepository { return $this->parserResult($model); } - /** - * @return mixed - */ - public function count() - { - $this->applyCriteria(); - $this->applyScope(); + // /** + // * @return mixed + // */ + // public function count() + // { + // $this->applyCriteria(); + // $this->applyScope(); - $total = $this->model->count(); - $this->resetModel(); + // $total = $this->model->count(); + // $this->resetModel(); - return $total; - } + // return $total; + // } /** * @return mixed From 6693a443d35d3fae62776a2127aea59ef9ee87b5 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 4 Sep 2019 14:00:45 +0530 Subject: [PATCH 172/172] Removed latest flag check from prettus l5 repository --- composer.json | 204 +++++++++--------- .../Webkul/Core/src/Eloquent/Repository.php | 22 +- 2 files changed, 112 insertions(+), 114 deletions(-) diff --git a/composer.json b/composer.json index adbf7c3bf..1c37b661c 100755 --- a/composer.json +++ b/composer.json @@ -2,126 +2,124 @@ "name": "bagisto/bagisto", "description": "Bagisto Laravel ECommerce", "keywords": [ - "framework", - "laravel" + "framework", + "laravel" ], "license": "MIT", "type": "project", "require": { - "php": "^7.2", - "ext-curl": "*", - "ext-intl": "*", - "ext-mbstring": "*", - "ext-openssl": "*", - "ext-pdo": "*", - "ext-pdo_mysql": "*", - "ext-tokenizer": "*", - "barryvdh/laravel-dompdf": "^0.8.0@dev", - "dimsav/laravel-translatable": "^9.0", - "doctrine/dbal": "^2.9@dev", - "fideloper/proxy": "^4.0", - "flynsarmy/db-blade-compiler": "*", - "guzzlehttp/guzzle": "~6.0", - "intervention/image": "^2.4", - "intervention/imagecache": "^2.3", - "kalnoy/nestedset": "^4.3", - "konekt/concord": "^1.2", - "laravel/framework": "5.6.*", - "laravel/tinker": "^1.0", - "maatwebsite/excel": "3.1.11", - "nwidart/laravel-modules": "^3.2", - "prettus/l5-repository": "^2.6", - "tymon/jwt-auth": "dev-develop" + "php": "^7.1.3", + "ext-curl": "*", + "ext-intl": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-pdo": "*", + "ext-pdo_mysql": "*", + "ext-tokenizer": "*", + "barryvdh/laravel-dompdf": "^0.8.0@dev", + "dimsav/laravel-translatable": "^9.0", + "doctrine/dbal": "^2.9@dev", + "fideloper/proxy": "^4.0", + "flynsarmy/db-blade-compiler": "*", + "guzzlehttp/guzzle": "~6.0", + "intervention/image": "^2.4", + "intervention/imagecache": "^2.3", + "kalnoy/nestedset": "^4.3", + "konekt/concord": "^1.2", + "laravel/framework": "5.6.*", + "laravel/tinker": "^1.0", + "maatwebsite/excel": "3.1.11", + "nwidart/laravel-modules": "^3.2", + "prettus/l5-repository": "2.6.32", + "tymon/jwt-auth": "dev-develop" }, "require-dev": { - "barryvdh/laravel-debugbar": "^3.1", - "filp/whoops": "^2.0", - "fzaninotto/faker": "^1.4", - "laravel/dusk": "^4.0", - "mockery/mockery": "^1.0", - "nunomaduro/collision": "^2.0", - "phpunit/phpunit": "^7.0" + "barryvdh/laravel-debugbar": "^3.1", + "filp/whoops": "^2.0", + "fzaninotto/faker": "^1.4", + "laravel/dusk": "^4.0", + "mockery/mockery": "^1.0", + "nunomaduro/collision": "^2.0", + "phpunit/phpunit": "^7.0" }, "replace": { - "bagisto/laravel-user": "v0.1.0", - "bagisto/laravel-admin": "v0.1.0", - "bagisto/laravel-ui": "v0.1.0", - "bagisto/laravel-core": "v0.1.0", - "bagisto/laravel-attribute": "v0.1.0", - "bagisto/laravel-checkout": "v0.1.0", - "bagisto/laravel-customer": "v0.1.0", - "bagisto/laravel-inventory": "v0.1.0", - "bagisto/laravel-category": "v0.1.0", - "bagisto/laravel-product": "v0.1.0", - "bagisto/laravel-shop": "v0.1.0", - "bagisto/laravel-theme": "v0.1.0", - "bagisto/laravel-shipping": "v0.1.0", - "bagisto/laravel-payment": "v0.1.0", - "bagisto/laravel-sales": "v0.1.0", - "bagisto/laravel-tax": "v0.1.0", - "bagisto/laravel-api": "v0.1.0", - "bagisto/laravel-paypal": "v0.1.0", - "bagisto/laravel-discount": "v0.1.0" + "bagisto/laravel-user": "v0.1.0", + "bagisto/laravel-admin": "v0.1.0", + "bagisto/laravel-ui": "v0.1.0", + "bagisto/laravel-core": "v0.1.0", + "bagisto/laravel-attribute": "v0.1.0", + "bagisto/laravel-checkout": "v0.1.0", + "bagisto/laravel-customer": "v0.1.0", + "bagisto/laravel-inventory": "v0.1.0", + "bagisto/laravel-category": "v0.1.0", + "bagisto/laravel-product": "v0.1.0", + "bagisto/laravel-shop": "v0.1.0", + "bagisto/laravel-theme": "v0.1.0", + "bagisto/laravel-shipping": "v0.1.0", + "bagisto/laravel-payment": "v0.1.0", + "bagisto/laravel-sales": "v0.1.0", + "bagisto/laravel-tax": "v0.1.0", + "bagisto/laravel-api": "v0.1.0", + "bagisto/laravel-paypal": "v0.1.0", + "bagisto/laravel-discount": "v0.1.0" }, "autoload": { - "classmap": [ - "database/seeds", - "database/factories" - ], - - "psr-4": { - "App\\": "app/", - "Webkul\\User\\": "packages/Webkul/User/src", - "Webkul\\Admin\\": "packages/Webkul/Admin/src", - "Webkul\\Ui\\": "packages/Webkul/Ui/src", - "Webkul\\Category\\": "packages/Webkul/Category/src", - "Webkul\\Checkout\\": "packages/Webkul/Checkout/src", - "Webkul\\Attribute\\": "packages/Webkul/Attribute/src", - "Webkul\\Shop\\": "packages/Webkul/Shop/src", - "Webkul\\Core\\": "packages/Webkul/Core/src", - "Webkul\\Customer\\": "packages/Webkul/Customer/src", - "Webkul\\Inventory\\": "packages/Webkul/Inventory/src", - "Webkul\\Product\\": "packages/Webkul/Product/src", - "Webkul\\Theme\\": "packages/Webkul/Theme/src", - "Webkul\\Shipping\\": "packages/Webkul/Shipping/src", - "Webkul\\Payment\\": "packages/Webkul/Payment/src", - "Webkul\\Paypal\\": "packages/Webkul/Paypal/src", - "Webkul\\Sales\\": "packages/Webkul/Sales/src", - "Webkul\\Tax\\": "packages/Webkul/Tax/src", - "Webkul\\API\\": "packages/Webkul/API", - "Webkul\\Discount\\": "packages/Webkul/Discount/src", - "Webkul\\CMS\\": "packages/Webkul/CMS/src" - } + "classmap": [ + "database/seeds", + "database/factories" + ], + "psr-4": { + "App\\": "app/", + "Webkul\\User\\": "packages/Webkul/User/src", + "Webkul\\Admin\\": "packages/Webkul/Admin/src", + "Webkul\\Ui\\": "packages/Webkul/Ui/src", + "Webkul\\Category\\": "packages/Webkul/Category/src", + "Webkul\\Checkout\\": "packages/Webkul/Checkout/src", + "Webkul\\Attribute\\": "packages/Webkul/Attribute/src", + "Webkul\\Shop\\": "packages/Webkul/Shop/src", + "Webkul\\Core\\": "packages/Webkul/Core/src", + "Webkul\\Customer\\": "packages/Webkul/Customer/src", + "Webkul\\Inventory\\": "packages/Webkul/Inventory/src", + "Webkul\\Product\\": "packages/Webkul/Product/src", + "Webkul\\Theme\\": "packages/Webkul/Theme/src", + "Webkul\\Shipping\\": "packages/Webkul/Shipping/src", + "Webkul\\Payment\\": "packages/Webkul/Payment/src", + "Webkul\\Paypal\\": "packages/Webkul/Paypal/src", + "Webkul\\Sales\\": "packages/Webkul/Sales/src", + "Webkul\\Tax\\": "packages/Webkul/Tax/src", + "Webkul\\API\\": "packages/Webkul/API", + "Webkul\\Discount\\": "packages/Webkul/Discount/src", + "Webkul\\CMS\\": "packages/Webkul/CMS/src" + } }, "autoload-dev": { - "psr-4": { - "Tests\\": "tests/" - } + "psr-4": { + "Tests\\": "tests/" + } }, "extra": { - "laravel": { - "dont-discover": [ - "barryvdh/laravel-debugbar", - "laravel/dusk" - ] - } + "laravel": { + "dont-discover": [ + "barryvdh/laravel-debugbar" + ] + } }, "scripts": { - "post-root-package-install": [ - "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" - ], - "post-create-project-cmd": [ - "@php artisan key:generate" - ], - "post-autoload-dump": [ - "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan package:discover" - ] + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate" + ], + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover" + ] }, "config": { - "preferred-install": "stable", - "sort-packages": true, - "optimize-autoloader": true + "preferred-install": "stable", + "sort-packages": true, + "optimize-autoloader": true }, "minimum-stability": "dev" -} + } \ No newline at end of file diff --git a/packages/Webkul/Core/src/Eloquent/Repository.php b/packages/Webkul/Core/src/Eloquent/Repository.php index f2964ba60..b5ef37809 100755 --- a/packages/Webkul/Core/src/Eloquent/Repository.php +++ b/packages/Webkul/Core/src/Eloquent/Repository.php @@ -82,19 +82,19 @@ abstract class Repository extends BaseRepository { return $this->parserResult($model); } - // /** - // * @return mixed - // */ - // public function count() - // { - // $this->applyCriteria(); - // $this->applyScope(); + /** + * @return mixed + */ + public function count() + { + $this->applyCriteria(); + $this->applyScope(); - // $total = $this->model->count(); - // $this->resetModel(); + $total = $this->model->count(); + $this->resetModel(); - // return $total; - // } + return $total; + } /** * @return mixed