From c9b60b2c10fbc49304bb8e3038f90d4ac1b929a7 Mon Sep 17 00:00:00 2001 From: Devansh Date: Tue, 1 Feb 2022 16:44:16 +0530 Subject: [PATCH] Squashed All Commits --- packages/Webkul/Admin/src/Config/system.php | 131 ++- .../Admin/src/Resources/lang/ar/app.php | 2 + .../Admin/src/Resources/lang/de/app.php | 2 + .../Admin/src/Resources/lang/en/app.php | 5 +- .../Admin/src/Resources/lang/es/app.php | 2 + .../Admin/src/Resources/lang/fa/app.php | 2 + .../Admin/src/Resources/lang/fr/app.php | 2 + .../Admin/src/Resources/lang/it/app.php | 2 + .../Admin/src/Resources/lang/nl/app.php | 2 + .../Admin/src/Resources/lang/pl/app.php | 2 + .../Admin/src/Resources/lang/pt_BR/app.php | 2 + .../Admin/src/Resources/lang/tr/app.php | 2 + .../src/Http/Requests/CustomerAddressForm.php | 92 +- packages/Webkul/Core/src/Core.php | 57 +- packages/Webkul/Core/src/Models/Address.php | 30 +- .../Webkul/Customer/src/Config/system.php | 16 +- ..._state_and_zip_code_in_addresses_table.php | 36 + .../Http/Requests/CustomerAddressRequest.php | 6 +- packages/Webkul/Payment/src/Config/system.php | 85 +- packages/Webkul/Sales/src/Config/system.php | 45 +- .../Webkul/Shipping/src/Config/system.php | 216 ++-- .../Http/Controllers/OnepageController.php | 119 +-- .../views/checkout/onepage.blade.php | 135 ++- .../onepage/customer-checkout.blade.php | 2 +- .../checkout/onepage/customer-info.blade.php | 475 ++++++--- .../account/address/country-state.blade.php | 43 +- .../account/address/create.blade.php | 130 ++- .../customers/account/address/edit.blade.php | 133 ++- .../customers/account/address/index.blade.php | 3 +- packages/Webkul/Tax/src/Config/system.php | 23 +- .../publishable/assets/css/velocity.css | 2 +- .../publishable/assets/mix-manifest.json | 2 +- .../Resources/assets/sass/components/app.scss | 14 +- .../views/shop/checkout/onepage.blade.php | 23 +- .../checkout/onepage/customer-info.blade.php | 78 +- .../onepage/customer-new-form.blade.php | 988 ++++++++++-------- .../account/address/country-state.blade.php | 46 +- .../account/address/create.blade.php | 127 ++- .../customers/account/address/edit.blade.php | 127 ++- .../customers/account/address/index.blade.php | 10 +- tests/functional/Checkout/Order/OrderCest.php | 57 +- 41 files changed, 2073 insertions(+), 1203 deletions(-) create mode 100644 packages/Webkul/Customer/src/Database/Migrations/2022_01_25_160015_update_country_state_and_zip_code_in_addresses_table.php diff --git a/packages/Webkul/Admin/src/Config/system.php b/packages/Webkul/Admin/src/Config/system.php index 255062054..5c4635eb1 100644 --- a/packages/Webkul/Admin/src/Config/system.php +++ b/packages/Webkul/Admin/src/Config/system.php @@ -1,6 +1,9 @@ 'general', 'name' => 'admin::app.admin.system.general', @@ -27,7 +30,7 @@ return [ 'value' => 'kgs', ], ], - 'channel_based' => true + 'channel_based' => true, ], ], ], [ @@ -70,7 +73,7 @@ return [ 'type' => 'textarea', 'channel_based' => true, 'locale_based' => false, - ] + ], ], ], [ 'key' => 'general.design', @@ -95,7 +98,12 @@ return [ 'validation' => 'mimes:bmp,jpeg,jpg,png,webp', ], ], - ], [ + ], + + /** + * Catalog. + */ + [ 'key' => 'catalog', 'name' => 'admin::app.admin.system.catalog', 'sort' => 2, @@ -120,16 +128,16 @@ return [ 'sort' => 2, 'fields' => [ [ - 'name' => 'no_of_new_product_homepage', - 'title' => 'admin::app.admin.system.allow-no-of-new-product-homepage', - 'type' => 'number', - 'validation' => 'min:0', + 'name' => 'no_of_new_product_homepage', + 'title' => 'admin::app.admin.system.allow-no-of-new-product-homepage', + 'type' => 'number', + 'validation' => 'min:0', ], [ - 'name' => 'no_of_featured_product_homepage', - 'title' => 'admin::app.admin.system.allow-no-of-featured-product-homepage', - 'type' => 'number', - 'validation' => 'min:0', + 'name' => 'no_of_featured_product_homepage', + 'title' => 'admin::app.admin.system.allow-no-of-featured-product-homepage', + 'type' => 'number', + 'validation' => 'min:0', ], [ 'name' => 'out_of_stock_items', @@ -192,7 +200,7 @@ return [ 'name' => 'buy_now_button_display', 'title' => 'admin::app.admin.system.buy-now-button-display', 'type' => 'boolean', - ] + ], ], ], [ 'key' => 'catalog.products.cache-small-image', @@ -208,7 +216,7 @@ return [ 'name' => 'height', 'title' => 'admin::app.admin.system.height', 'type' => 'text', - ] + ], ], ], [ 'key' => 'catalog.products.cache-medium-image', @@ -224,7 +232,7 @@ return [ 'name' => 'height', 'title' => 'admin::app.admin.system.height', 'type' => 'text', - ] + ], ], ], [ 'key' => 'catalog.products.cache-large-image', @@ -240,7 +248,7 @@ return [ 'name' => 'height', 'title' => 'admin::app.admin.system.height', 'type' => 'text', - ] + ], ], ], [ 'key' => 'catalog.products.review', @@ -266,7 +274,7 @@ return [ 'name' => 'file_attribute_upload_size', 'title' => 'admin::app.admin.system.file-upload-size', 'type' => 'text', - ] + ], ], ], [ 'key' => 'catalog.inventory', @@ -340,16 +348,65 @@ return [ 'name' => 'show_search_input_field', 'title' => 'admin::app.admin.system.show-search-input-field', 'type' => 'boolean', - ] - ] - ], [ + ], + ], + ], + + /** + * Customer. + */ + [ 'key' => 'customer', 'name' => 'admin::app.admin.system.customer', - 'sort' => 4, + 'sort' => 3, + ], [ + 'key' => 'customer.address', + 'name' => 'admin::app.admin.system.address', + 'sort' => 1, + ], [ + 'key' => 'customer.address.requirements', + 'name' => 'admin::app.admin.system.requirements', + 'sort' => 1, + 'fields' => [ + [ + 'name' => 'country', + 'title' => 'admin::app.admin.system.country', + 'type' => 'boolean', + 'channel_based' => true, + 'default' => '1', + ], + [ + 'name' => 'state', + 'title' => 'admin::app.admin.system.state', + 'type' => 'boolean', + 'channel_based' => true, + 'default' => '1', + ], + [ + 'name' => 'postcode', + 'title' => 'admin::app.admin.system.zip', + 'type' => 'boolean', + 'channel_based' => true, + 'default' => '1', + ], + ], + ], [ + 'key' => 'customer.address.information', + 'name' => 'Information', + 'sort' => 2, + 'fields' => [ + [ + 'name' => 'street_lines', + 'title' => 'admin::app.admin.system.street-lines', + 'type' => 'text', + 'validation' => 'between:1,4', + 'channel_based' => true, + ], + ], ], [ 'key' => 'customer.settings', 'name' => 'admin::app.admin.system.settings', - 'sort' => 1, + 'sort' => 3, ], [ 'key' => 'customer.settings.wishlist', 'name' => 'admin::app.admin.system.wishlist', @@ -361,23 +418,10 @@ return [ 'type' => 'boolean', ], ], - ], [ - 'key' => 'customer.settings.address', - 'name' => 'admin::app.admin.system.address', - 'sort' => 2, - 'fields' => [ - [ - 'name' => 'street_lines', - 'title' => 'admin::app.admin.system.street-lines', - 'type' => 'text', - 'validation' => 'between:1,4', - 'channel_based' => true, - ], - ], ], [ 'key' => 'customer.settings.newsletter', 'name' => 'admin::app.admin.system.newsletter', - 'sort' => 3, + 'sort' => 2, 'fields' => [ [ 'name' => 'subscription', @@ -388,7 +432,7 @@ return [ ], [ 'key' => 'customer.settings.email', 'name' => 'admin::app.admin.system.email', - 'sort' => 4, + 'sort' => 3, 'fields' => [ [ 'name' => 'verification', @@ -396,10 +440,15 @@ return [ 'type' => 'boolean', ], ], - ], [ + ], + + /** + * Emails. + */ + [ 'key' => 'emails', 'name' => 'admin::app.admin.emails.email', - 'sort' => 5, + 'sort' => 4, ], [ 'key' => 'emails.configure', 'name' => 'admin::app.admin.system.email-settings', @@ -417,7 +466,7 @@ return [ 'validation' => 'required|max:50', 'channel_based' => true, 'default_value' => config('mail.from.name'), - ], [ + ], [ 'name' => 'shop_email_from', 'title' => 'admin::app.admin.system.shop-email-from', 'type' => 'text', @@ -425,7 +474,7 @@ return [ 'validation' => 'required|email', 'channel_based' => true, 'default_value' => config('mail.from.address'), - ], [ + ], [ 'name' => 'admin_name', 'title' => 'admin::app.admin.system.admin-name', 'type' => 'text', @@ -433,7 +482,7 @@ return [ 'validation' => 'required|max:50', 'channel_based' => true, 'default_value' => config('mail.admin.name'), - ], [ + ], [ 'name' => 'admin_email', 'title' => 'admin::app.admin.system.admin-email', 'type' => 'text', diff --git a/packages/Webkul/Admin/src/Resources/lang/ar/app.php b/packages/Webkul/Admin/src/Resources/lang/ar/app.php index 4c2fd8726..76340ceb7 100644 --- a/packages/Webkul/Admin/src/Resources/lang/ar/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ar/app.php @@ -1422,10 +1422,12 @@ return [ 'flate-rate-shipping' => 'تعريفة موحدة للشحن بغض النظر عن الكمية', 'shipping' => 'الشحن', 'origin' => 'الأصل', + 'requirements' => 'Requirements', 'country' => 'بلد', 'state' => 'حالة', 'zip' => 'الرمز البريدي', 'city' => 'مدينة', + 'information' => 'Information', 'street-address' => 'عنوان الشارع', 'title' => 'عنوان', 'description' => 'وصف', diff --git a/packages/Webkul/Admin/src/Resources/lang/de/app.php b/packages/Webkul/Admin/src/Resources/lang/de/app.php index b37ac6f05..680ac0dcc 100755 --- a/packages/Webkul/Admin/src/Resources/lang/de/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/de/app.php @@ -1430,10 +1430,12 @@ return [ 'flate-rate-shipping' => 'Pauschale Versandkosten', 'shipping' => 'Versand', 'origin' => 'Herkunft', + 'requirements' => 'Requirements', 'country' => 'Land', 'state' => 'Bundesland', 'zip' => 'Postleitzahl', 'city' => 'Stadt', + 'information' => 'Information', 'street-address' => 'Anschrift', 'title' => 'Titel', 'description' => 'Beschreibung', diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index e4af0949f..369e863ec 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -1421,7 +1421,8 @@ return [ ], ], - 'system' => [ + + 'system' => [ 'catalog' => 'Catalog', 'homepage' => 'Homepage configuration', 'allow-out-of-stock-items' => 'Allow out of stock items', @@ -1449,10 +1450,12 @@ return [ 'flate-rate-shipping' => 'Flat Rate Shipping', 'shipping' => 'Shipping', 'origin' => 'Origin', + 'requirements' => 'Requirements', 'country' => 'Country', 'state' => 'State', 'zip' => 'Zip', 'city' => 'City', + 'information' => 'Information', 'street-address' => 'Street Address', 'title' => 'Title', 'description' => 'Description', diff --git a/packages/Webkul/Admin/src/Resources/lang/es/app.php b/packages/Webkul/Admin/src/Resources/lang/es/app.php index 7cf504364..8ccefeb8c 100644 --- a/packages/Webkul/Admin/src/Resources/lang/es/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/es/app.php @@ -1434,10 +1434,12 @@ return [ 'flate-rate-shipping' => 'Envío con tarifa plana', 'shipping' => 'Envío', 'origin' => 'Origen', + 'requirements' => 'Requirements', 'country' => 'País', 'state' => 'Departamento', 'zip' => 'Código Postal', 'city' => 'Ciudad', + 'information' => 'Information', 'street-address' => 'Dirección', 'title' => 'Título', 'description' => 'Descripción', diff --git a/packages/Webkul/Admin/src/Resources/lang/fa/app.php b/packages/Webkul/Admin/src/Resources/lang/fa/app.php index d299ae91a..08818cba7 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fa/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fa/app.php @@ -1419,10 +1419,12 @@ return [ 'flate-rate-shipping' => 'نرخ ثابت حمل و نقل', 'shipping' => 'حمل و نقل دریایی', 'origin' => 'مبدا', + 'requirements' => 'Requirements', 'country' => 'کشور', 'state' => 'استان', 'zip' => 'کد پستی', 'city' => 'شهر', + 'information' => 'Information', 'street-address' => 'آدرس خیابان', 'title' => 'عنوان', 'description' => 'توضیحات', diff --git a/packages/Webkul/Admin/src/Resources/lang/fr/app.php b/packages/Webkul/Admin/src/Resources/lang/fr/app.php index edcaf1037..b5a9400cf 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fr/app.php @@ -1446,10 +1446,12 @@ return [ 'flate-rate-shipping' => 'Expédition forfaitaire', 'shipping' => 'Expédition', 'origin' => 'Origine', + 'requirements' => 'Requirements', 'country' => 'Pays', 'state' => 'État', 'zip' => 'Zipper', 'city' => 'Ville', + 'information' => 'Information', 'street-address' => 'Adresse de rue', 'title' => 'Titre', 'description' => 'La description', diff --git a/packages/Webkul/Admin/src/Resources/lang/it/app.php b/packages/Webkul/Admin/src/Resources/lang/it/app.php index cf705bce6..a6cca09a0 100644 --- a/packages/Webkul/Admin/src/Resources/lang/it/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/it/app.php @@ -1422,10 +1422,12 @@ return [ 'flate-rate-shipping' => 'Spedizione Prezzo Fisso', 'shipping' => 'Spedizione', 'origin' => 'Origine', + 'requirements' => 'Requirements', 'country' => 'Paese', 'state' => 'Provincia', 'zip' => 'CAP', 'city' => 'Città', + 'information' => 'Information', 'street-address' => 'Indirizzo', 'title' => 'Titolo', 'description' => 'Descrizione', diff --git a/packages/Webkul/Admin/src/Resources/lang/nl/app.php b/packages/Webkul/Admin/src/Resources/lang/nl/app.php index 2fc0efc6b..a5967baf3 100644 --- a/packages/Webkul/Admin/src/Resources/lang/nl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/nl/app.php @@ -1416,10 +1416,12 @@ return [ 'flate-rate-shipping' => 'Forfaitaire verzendkosten', 'shipping' => 'Verzending', 'origin' => 'Herkomst', + 'requirements' => 'Requirements', 'country' => 'Land', 'state' => 'Staat/Provincie', 'zip' => 'Zip', 'city' => 'Woonplaats', + 'information' => 'Information', 'street-address' => 'Adres', 'title' => 'Titel', 'description' => 'Omschrijving', diff --git a/packages/Webkul/Admin/src/Resources/lang/pl/app.php b/packages/Webkul/Admin/src/Resources/lang/pl/app.php index a144cd4e7..7c3f34bfa 100644 --- a/packages/Webkul/Admin/src/Resources/lang/pl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pl/app.php @@ -1419,10 +1419,12 @@ return [ 'flate-rate-shipping' => 'Stawka ryczałtowa', 'shipping' => 'Dostawa', 'origin' => 'Zamieszmanie', + 'requirements' => 'Requirements', 'country' => 'Kraj', 'state' => 'Stan/województwo', 'zip' => 'Kod', 'city' => 'Miasto', + 'information' => 'Information', 'street-address' => 'ulica', 'title' => 'Tytuł', 'description' => 'Opis', diff --git a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php index dc937db3e..e61fc9476 100755 --- a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php @@ -1418,10 +1418,12 @@ return [ 'flate-rate-shipping' => 'Envio de taxa fixa', 'shipping' => 'Remessa', 'origin' => 'Origem', + 'requirements' => 'Requirements', 'country' => 'País', 'state' => 'Estado', 'zip' => 'CEP', 'city' => 'Cidade', + 'information' => 'Information', 'street-address' => 'Endereço', 'title' => 'Titulo', 'description' => 'Descrição', diff --git a/packages/Webkul/Admin/src/Resources/lang/tr/app.php b/packages/Webkul/Admin/src/Resources/lang/tr/app.php index 2ade34860..77450bbe0 100644 --- a/packages/Webkul/Admin/src/Resources/lang/tr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/tr/app.php @@ -1406,10 +1406,12 @@ return [ 'flate-rate-shipping' => 'Sabit Fiyat Teslimat', 'shipping' => 'Teslimat', 'origin' => 'Menşei', + 'requirements' => 'Requirements', 'country' => 'Ülke', 'state' => 'Şehir', 'zip' => 'Posta Kodu', 'city' => 'İlçe', + 'information' => 'Information', 'street-address' => 'Sokak Adresi', 'title' => 'Başlık', 'description' => 'Açıklama', diff --git a/packages/Webkul/Checkout/src/Http/Requests/CustomerAddressForm.php b/packages/Webkul/Checkout/src/Http/Requests/CustomerAddressForm.php index 49c8f6076..174d9111c 100755 --- a/packages/Webkul/Checkout/src/Http/Requests/CustomerAddressForm.php +++ b/packages/Webkul/Checkout/src/Http/Requests/CustomerAddressForm.php @@ -3,6 +3,8 @@ namespace Webkul\Checkout\Http\Requests; use Illuminate\Foundation\Http\FormRequest; +use Webkul\Core\Contracts\Validations\AlphaNumericSpace; +use Webkul\Core\Contracts\Validations\PhoneNumber; class CustomerAddressForm extends FormRequest { @@ -30,65 +32,69 @@ class CustomerAddressForm extends FormRequest */ public function rules(): array { - $customerAddressIds = $this->getCustomerAddressIds(); - if (isset($this->get('billing')['address_id'])) { - $billingAddressRules = [ - 'billing.address_id' => ['required'], - ]; - - if (! empty($customerAddressIds)) { - $billingAddressRules['billing.address_id'][] = "in:{$customerAddressIds}"; - } - - $this->mergeWithRules($billingAddressRules); + $this->mergeExistingAddressRules('billing'); } else { - $this->mergeWithRules([ - 'billing.first_name' => ['required'], - 'billing.last_name' => ['required'], - 'billing.email' => ['required'], - 'billing.address1' => ['required'], - 'billing.city' => ['required'], - 'billing.state' => ['required'], - 'billing.postcode' => ['required'], - 'billing.phone' => ['required'], - 'billing.country' => ['required'], - ]); + $this->mergeNewAddressRules('billing'); } if (isset($this->get('billing')['use_for_shipping']) && ! $this->get('billing')['use_for_shipping']) { if (isset($this->get('shipping')['address_id'])) { - $shippingAddressRules = [ - 'shipping.address_id' => ['required'], - ]; - - if (! empty($customerAddressIds)) { - $shippingAddressRules['shipping.address_id'][] = "in:{$customerAddressIds}"; - } - - $this->mergeWithRules($shippingAddressRules); + $this->mergeExistingAddressRules('shipping'); } else { - $this->mergeWithRules([ - 'shipping.first_name' => ['required'], - 'shipping.last_name' => ['required'], - 'shipping.email' => ['required'], - 'shipping.address1' => ['required'], - 'shipping.city' => ['required'], - 'shipping.state' => ['required'], - 'shipping.postcode' => ['required'], - 'shipping.phone' => ['required'], - 'shipping.country' => ['required'], - ]); + $this->mergeNewAddressRules('shipping'); } } return $this->rules; } + /** + * Merge existing address rules. + * + * @param string $addressType + * @return void + */ + private function mergeExistingAddressRules(string $addressType) + { + $customerAddressIds = $this->getCustomerAddressIds(); + + $addressRules = [ + "{$addressType}.address_id" => ['required'], + ]; + + if (! empty($customerAddressIds)) { + $addressRules["{$addressType}.address_id"][] = "in:{$customerAddressIds}"; + } + + $this->mergeWithRules($addressRules); + } + + /** + * Merge new address rules. + * + * @param string $addressType + * @return void + */ + private function mergeNewAddressRules(string $addressType) + { + $this->mergeWithRules([ + "{$addressType}.first_name" => ['required', new AlphaNumericSpace], + "{$addressType}.last_name" => ['required', new AlphaNumericSpace], + "{$addressType}.email" => ['required'], + "{$addressType}.address1" => ['required'], + "{$addressType}.city" => ['required'], + "{$addressType}.country" => [new AlphaNumericSpace], + "{$addressType}.state" => [new AlphaNumericSpace], + "{$addressType}.postcode" => ['numeric'], + "{$addressType}.phone" => ['required', new PhoneNumber], + ]); + } + /** * Merge additional rules. * - * @return string + * @return void */ private function mergeWithRules($additionalRules): void { diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php index f276ea171..1dfca2845 100755 --- a/packages/Webkul/Core/src/Core.php +++ b/packages/Webkul/Core/src/Core.php @@ -860,13 +860,7 @@ class Core } if (! $coreConfigValue) { - $fields = explode('.', $field); - - array_shift($fields); - - $field = implode('.', $fields); - - return Config::get($field); + return $this->getDefaultConfig($field); } return $coreConfigValue->value; @@ -951,6 +945,36 @@ class Core } } + /** + * Is country required. + * + * @return bool + */ + public function isCountryRequired() + { + return $this->getConfigData('customer.address.requirements.country') == 1; + } + + /** + * Is state required. + * + * @return bool + */ + public function isStateRequired() + { + return $this->getConfigData('customer.address.requirements.state') == 1; + } + + /** + * Is postcode required. + * + * @return bool + */ + public function isPostCodeRequired() + { + return $this->getConfigData('customer.address.requirements.postcode') == 1; + } + /** * Returns time intervals. * @@ -1292,4 +1316,23 @@ class Core return $coreConfigValue; } + + /** + * Get default config. + * + * @param string $field + * @return mixed + */ + protected function getDefaultConfig($field) + { + $configFieldInfo = $this->getConfigField($field); + + $fields = explode('.', $field); + + array_shift($fields); + + $field = implode('.', $fields); + + return Config::get($field, $configFieldInfo['default'] ?? null); + } } diff --git a/packages/Webkul/Core/src/Models/Address.php b/packages/Webkul/Core/src/Models/Address.php index d0bb8e5e3..87a58493c 100644 --- a/packages/Webkul/Core/src/Models/Address.php +++ b/packages/Webkul/Core/src/Models/Address.php @@ -5,11 +5,12 @@ namespace Webkul\Core\Models; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; -use Webkul\Customer\Models\Customer; use Webkul\Core\Contracts\Address as AddressContract; +use Webkul\Customer\Models\Customer; /** - * Class Address + * Address class. + * * @package Webkul\Core\Models * * @property string $address_type @@ -34,18 +35,32 @@ use Webkul\Core\Contracts\Address as AddressContract; * @property-read string $name * @property-read Carbon $created_at * @property-read Carbon $updated_at - * */ abstract class Address extends Model implements AddressContract { + /** + * Table. + * + * @var string + */ protected $table = 'addresses'; + /** + * Guarded. + * + * @var array + */ protected $guarded = [ 'id', 'created_at', 'updated_at', ]; + /** + * Fillable. + * + * @var array + */ protected $fillable = [ 'address_type', 'customer_id', @@ -68,6 +83,11 @@ abstract class Address extends Model implements AddressContract 'additional', ]; + /** + * Castable. + * + * @var array + */ protected $casts = [ 'additional' => 'array', 'default_address' => 'boolean', @@ -75,6 +95,8 @@ abstract class Address extends Model implements AddressContract /** * Get all the attributes for the attribute groups. + * + * @return string */ public function getNameAttribute(): string { @@ -83,6 +105,8 @@ abstract class Address extends Model implements AddressContract /** * Get the customer record associated with the address. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function customer(): BelongsTo { diff --git a/packages/Webkul/Customer/src/Config/system.php b/packages/Webkul/Customer/src/Config/system.php index b656be83e..2baa48a0a 100644 --- a/packages/Webkul/Customer/src/Config/system.php +++ b/packages/Webkul/Customer/src/Config/system.php @@ -4,28 +4,28 @@ return [ [ 'key' => 'customer.captcha', 'name' => 'customer::app.admin.system.captcha.title', - 'sort' => 1, + 'sort' => 2, ], [ 'key' => 'customer.captcha.credentials', 'name' => 'customer::app.admin.system.captcha.credentials', 'sort' => 1, 'fields' => [ [ - 'name' => 'site_key', - 'title' => 'customer::app.admin.system.captcha.site-key', - 'type' => 'text', + 'name' => 'site_key', + 'title' => 'customer::app.admin.system.captcha.site-key', + 'type' => 'text', 'channel_based' => true, ], [ - 'name' => 'secret_key', - 'title' => 'customer::app.admin.system.captcha.secret-key', - 'type' => 'text', + 'name' => 'secret_key', + 'title' => 'customer::app.admin.system.captcha.secret-key', + 'type' => 'text', 'channel_based' => true, ], [ 'name' => 'status', 'title' => 'customer::app.admin.system.captcha.status', 'type' => 'boolean', 'channel_based' => true, - ] + ], ], ], ]; diff --git a/packages/Webkul/Customer/src/Database/Migrations/2022_01_25_160015_update_country_state_and_zip_code_in_addresses_table.php b/packages/Webkul/Customer/src/Database/Migrations/2022_01_25_160015_update_country_state_and_zip_code_in_addresses_table.php new file mode 100644 index 000000000..681ffacaa --- /dev/null +++ b/packages/Webkul/Customer/src/Database/Migrations/2022_01_25_160015_update_country_state_and_zip_code_in_addresses_table.php @@ -0,0 +1,36 @@ +string('country')->nullable()->change(); + $table->string('state')->nullable()->change(); + $table->string('postcode')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('addresses', function (Blueprint $table) { + $table->string('country')->nullable(false)->change(); + $table->string('state')->nullable(false)->change(); + $table->string('postcode')->nullable(false)->change(); + }); + } +} diff --git a/packages/Webkul/Customer/src/Http/Requests/CustomerAddressRequest.php b/packages/Webkul/Customer/src/Http/Requests/CustomerAddressRequest.php index 7aae561d4..e2fd4c02d 100644 --- a/packages/Webkul/Customer/src/Http/Requests/CustomerAddressRequest.php +++ b/packages/Webkul/Customer/src/Http/Requests/CustomerAddressRequest.php @@ -33,10 +33,10 @@ class CustomerAddressRequest extends FormRequest 'last_name' => ['required', new AlphaNumericSpace], 'address1' => ['required', 'array'], 'address1.*' => ['required', new Address], - 'country' => ['required', 'alpha'], - 'state' => ['required', new AlphaNumericSpace], + 'country' => [new AlphaNumericSpace], + 'state' => [new AlphaNumericSpace], 'city' => ['required'], - 'postcode' => ['required', 'numeric'], + 'postcode' => ['numeric'], 'phone' => ['required', new PhoneNumber], 'vat_id' => [new VatIdRule()], ]; diff --git a/packages/Webkul/Payment/src/Config/system.php b/packages/Webkul/Payment/src/Config/system.php index 40e29b2e7..16a550c79 100755 --- a/packages/Webkul/Payment/src/Config/system.php +++ b/packages/Webkul/Payment/src/Config/system.php @@ -1,14 +1,17 @@ 'sales', - 'name' => 'admin::app.admin.system.sales', - 'sort' => 1 - ], [ 'key' => 'sales.paymentmethods', 'name' => 'admin::app.admin.system.payment-methods', - 'sort' => 2, + 'sort' => 3, ], [ 'key' => 'sales.paymentmethods.cashondelivery', 'name' => 'admin::app.admin.system.cash-on-delivery', @@ -42,37 +45,37 @@ return [ 'channel_based' => true, 'locale_based' => false, ], [ - 'name' => 'invoice_status', - 'title' => 'admin::app.admin.system.set-invoice-status', + 'name' => 'invoice_status', + 'title' => 'admin::app.admin.system.set-invoice-status', 'validation' => 'required_if:generate_invoice,1', - 'type' => 'select', - 'options' => [ + 'type' => 'select', + 'options' => [ [ 'title' => 'admin::app.sales.invoices.status-pending', - 'value' => 'pending' + 'value' => 'pending', ], [ 'title' => 'admin::app.sales.invoices.status-paid', - 'value' => 'paid' - ] + 'value' => 'paid', + ], ], 'info' => 'admin::app.admin.system.generate-invoice-applicable', 'channel_based' => true, 'locale_based' => false, ], [ - 'name' => 'order_status', - 'title' => 'admin::app.admin.system.set-order-status', - 'type' => 'select', - 'options' => [ + 'name' => 'order_status', + 'title' => 'admin::app.admin.system.set-order-status', + 'type' => 'select', + 'options' => [ [ 'title' => 'admin::app.sales.orders.order-status-pending', - 'value' => 'pending' + 'value' => 'pending', ], [ 'title' => 'admin::app.sales.orders.order-status-pending-payment', - 'value' => 'pending_payment' + 'value' => 'pending_payment', ], [ 'title' => 'admin::app.sales.orders.order-status-processing', - 'value' => 'processing' - ] + 'value' => 'processing', + ], ], 'info' => 'admin::app.admin.system.generate-invoice-applicable', 'channel_based' => true, @@ -91,20 +94,20 @@ return [ 'options' => [ [ 'title' => '1', - 'value' => 1 + 'value' => 1, ], [ 'title' => '2', - 'value' => 2 + 'value' => 2, ], [ 'title' => '3', - 'value' => 3 + 'value' => 3, ], [ 'title' => '4', 'value' => 4, - ] + ], ], - ] - ] + ], + ], ], [ 'key' => 'sales.paymentmethods.moneytransfer', 'name' => 'admin::app.admin.system.money-transfer', @@ -138,13 +141,13 @@ return [ 'options' => [ [ 'title' => 'admin::app.sales.invoices.status-pending', - 'value' => 'pending' + 'value' => 'pending', ], [ 'title' => 'admin::app.sales.invoices.status-paid', - 'value' => 'paid' - ] + 'value' => 'paid', + ], ], - 'info' => 'admin::app.admin.system.generate-invoice-applicable', + 'info' => 'admin::app.admin.system.generate-invoice-applicable', ], [ 'name' => 'order_status', 'title' => 'Order status after creating the invoice', @@ -152,16 +155,16 @@ return [ 'options' => [ [ 'title' => 'admin::app.sales.orders.order-status-pending', - 'value' => 'pending' + 'value' => 'pending', ], [ 'title' => 'admin::app.sales.orders.order-status-pending-payment', - 'value' => 'pending_payment' + 'value' => 'pending_payment', ], [ 'title' => 'admin::app.sales.orders.order-status-processing', - 'value' => 'processing' - ] + 'value' => 'processing', + ], ], - 'info' => 'admin::app.admin.system.generate-invoice-applicable', + 'info' => 'admin::app.admin.system.generate-invoice-applicable', ], [ 'name' => 'mailing_address', 'title' => 'admin::app.admin.system.mailing-address', @@ -175,7 +178,7 @@ return [ 'validation' => 'required', 'channel_based' => true, 'locale_based' => true, - ],[ + ], [ 'name' => 'sort', 'title' => 'admin::app.admin.system.sort_order', 'type' => 'select', @@ -192,9 +195,9 @@ return [ ], [ 'title' => '4', 'value' => 4, - ] + ], ], - ] - ] - ] -]; \ No newline at end of file + ], + ], + ], +]; diff --git a/packages/Webkul/Sales/src/Config/system.php b/packages/Webkul/Sales/src/Config/system.php index 835f78baa..0134ac049 100644 --- a/packages/Webkul/Sales/src/Config/system.php +++ b/packages/Webkul/Sales/src/Config/system.php @@ -2,12 +2,29 @@ return [ /** - * Order Settings + * Sales. + * + * Child keys are in different package. + * + * Sort `1` | Shipping | Shipping Package + * Sort `2` | Shipping Method | Shipping Package + * Sort `3` | Payment Method | Payment Package + * Sort `4` | Order Settings | Self + * Sort `5` | Invoice Settings | Self + */ + [ + 'key' => 'sales', + 'name' => 'admin::app.admin.system.sales', + 'sort' => 5, + ], + + /** + * Order settings. */ [ 'key' => 'sales.orderSettings', 'name' => 'admin::app.admin.system.order-settings', - 'sort' => 3, + 'sort' => 4, ], [ 'key' => 'sales.orderSettings.order_number', 'name' => 'admin::app.admin.system.orderNumber', @@ -45,7 +62,7 @@ return [ 'channel_based' => true, 'locale_based' => true, ], - ] + ], ], [ 'key' => 'sales.orderSettings.minimum-order', 'name' => 'admin::app.admin.system.minimum-order', @@ -59,16 +76,16 @@ return [ 'channel_based' => true, 'locale_based' => true, ], - ] + ], ], /** - * Invoice Settings + * Invoice settings. */ [ 'key' => 'sales.invoice_setttings', 'name' => 'admin::app.admin.system.invoice-settings', - 'sort' => 4, + 'sort' => 5, ], [ 'key' => 'sales.invoice_setttings.invoice_number', 'name' => 'admin::app.admin.system.invoice-number', @@ -106,7 +123,7 @@ return [ 'channel_based' => true, 'locale_based' => true, ], - ] + ], ], [ 'key' => 'sales.invoice_setttings.payment_terms', 'name' => 'admin::app.admin.system.payment-terms', @@ -119,7 +136,7 @@ return [ 'validation' => 'numeric', 'channel_based' => true, ], - ] + ], ], [ 'key' => 'sales.invoice_setttings.invoice_slip_design', 'name' => 'admin::app.admin.system.invoice-slip-design', @@ -132,7 +149,7 @@ return [ 'validation' => 'mimes:bmp,jpeg,jpg,png,webp', 'channel_based' => true, ], - ] + ], ], [ 'key' => 'sales.invoice_setttings.invoice_reminders', 'name' => 'admin::app.admin.system.invoice-reminders', @@ -146,10 +163,10 @@ return [ 'channel_based' => true, ], [ - 'name' => 'interval_between_reminders', - 'title' => 'admin::app.admin.system.interval-between-reminders', - 'type' => 'select', - 'options' => [ + 'name' => 'interval_between_reminders', + 'title' => 'admin::app.admin.system.interval-between-reminders', + 'type' => 'select', + 'options' => [ [ 'title' => '1 day', 'value' => 'P1D', @@ -183,6 +200,6 @@ return [ ], ], ], - ] + ], ], ]; diff --git a/packages/Webkul/Shipping/src/Config/system.php b/packages/Webkul/Shipping/src/Config/system.php index 19cd0fe17..428c5c4b9 100755 --- a/packages/Webkul/Shipping/src/Config/system.php +++ b/packages/Webkul/Shipping/src/Config/system.php @@ -1,109 +1,17 @@ 'sales', - 'name' => 'admin::app.admin.system.sales', - 'sort' => 5, - ], [ - 'key' => 'sales.carriers', - 'name' => 'admin::app.admin.system.shipping-methods', - 'sort' => 1, - ], [ - 'key' => 'sales.carriers.free', - 'name' => 'admin::app.admin.system.free-shipping', - 'sort' => 1, - 'fields' => [ - [ - 'name' => 'title', - 'title' => 'admin::app.admin.system.title', - 'type' => 'depends', - 'depend' => 'active:1', - 'validation' => 'required_if:active,1', - 'channel_based' => false, - 'locale_based' => true, - ], [ - 'name' => 'description', - 'title' => 'admin::app.admin.system.description', - 'type' => 'textarea', - 'channel_based' => false, - 'locale_based' => true, - ], [ - 'name' => 'active', - 'title' => 'admin::app.admin.system.status', - 'type' => 'boolean', - 'validation' => 'required', - 'channel_based' => false, - 'locale_based' => true, - ], [ - 'name' => 'is_calculate_tax', - 'title' => 'admin::app.admin.system.calculate-tax', - 'type' => 'boolean', - 'validation' => 'required', - 'channel_based' => false, - 'locale_based' => false, - ] - ] - ], [ - 'key' => 'sales.carriers.flatrate', - 'name' => 'admin::app.admin.system.flate-rate-shipping', - 'sort' => 2, - 'fields' => [ - [ - 'name' => 'title', - 'title' => 'admin::app.admin.system.title', - 'type' => 'depends', - 'depend' => 'active:1', - 'validation' => 'required_if:active,1', - 'channel_based' => true, - 'locale_based' => true, - ], [ - 'name' => 'description', - 'title' => 'admin::app.admin.system.description', - 'type' => 'textarea', - 'channel_based' => true, - 'locale_based' => false, - ], [ - 'name' => 'default_rate', - 'title' => 'admin::app.admin.system.rate', - 'type' => 'depends', - 'depend' => 'active:1', - 'validation' => 'required_if:active,1', - 'channel_based' => true, - 'locale_based' => false, - ], [ - 'name' => 'type', - 'title' => 'admin::app.admin.system.type', - 'type' => 'select', - 'options' => [ - [ - 'title' => 'Per Unit', - 'value' => 'per_unit', - ], [ - 'title' => 'Per Order', - 'value' => 'per_order', - ] - ], - ], [ - 'name' => 'active', - 'title' => 'admin::app.admin.system.status', - 'type' => 'boolean', - 'validation' => 'required', - 'channel_based' => false, - 'locale_based' => true, - ], [ - 'name' => 'is_calculate_tax', - 'title' => 'admin::app.admin.system.calculate-tax', - 'type' => 'boolean', - 'validation' => 'required', - 'channel_based' => false, - 'locale_based' => false, - ] - ] - ], [ 'key' => 'sales.shipping', 'name' => 'admin::app.admin.system.shipping', - 'sort' => 0, + 'sort' => 1, ], [ 'key' => 'sales.shipping.origin', 'name' => 'admin::app.admin.system.origin', @@ -123,7 +31,7 @@ return [ 'validation' => 'required', 'channel_based' => true, 'locale_based' => true, - ], [ + ], [ 'name' => 'city', 'title' => 'admin::app.admin.system.city', 'type' => 'text', @@ -164,7 +72,107 @@ return [ 'title' => 'admin::app.admin.system.bank-details', 'type' => 'textarea', 'channel_based' => true, - ] - ] - ] + ], + ], + ], + + /** + * Shipping method. + */ + [ + 'key' => 'sales.carriers', + 'name' => 'admin::app.admin.system.shipping-methods', + 'sort' => 2, + ], [ + 'key' => 'sales.carriers.free', + 'name' => 'admin::app.admin.system.free-shipping', + 'sort' => 1, + 'fields' => [ + [ + 'name' => 'title', + 'title' => 'admin::app.admin.system.title', + 'type' => 'depends', + 'depend' => 'active:1', + 'validation' => 'required_if:active,1', + 'channel_based' => false, + 'locale_based' => true, + ], [ + 'name' => 'description', + 'title' => 'admin::app.admin.system.description', + 'type' => 'textarea', + 'channel_based' => false, + 'locale_based' => true, + ], [ + 'name' => 'active', + 'title' => 'admin::app.admin.system.status', + 'type' => 'boolean', + 'validation' => 'required', + 'channel_based' => false, + 'locale_based' => true, + ], [ + 'name' => 'is_calculate_tax', + 'title' => 'admin::app.admin.system.calculate-tax', + 'type' => 'boolean', + 'validation' => 'required', + 'channel_based' => false, + 'locale_based' => false, + ], + ], + ], [ + 'key' => 'sales.carriers.flatrate', + 'name' => 'admin::app.admin.system.flate-rate-shipping', + 'sort' => 2, + 'fields' => [ + [ + 'name' => 'title', + 'title' => 'admin::app.admin.system.title', + 'type' => 'depends', + 'depend' => 'active:1', + 'validation' => 'required_if:active,1', + 'channel_based' => true, + 'locale_based' => true, + ], [ + 'name' => 'description', + 'title' => 'admin::app.admin.system.description', + 'type' => 'textarea', + 'channel_based' => true, + 'locale_based' => false, + ], [ + 'name' => 'default_rate', + 'title' => 'admin::app.admin.system.rate', + 'type' => 'depends', + 'depend' => 'active:1', + 'validation' => 'required_if:active,1', + 'channel_based' => true, + 'locale_based' => false, + ], [ + 'name' => 'type', + 'title' => 'admin::app.admin.system.type', + 'type' => 'select', + 'options' => [ + [ + 'title' => 'Per Unit', + 'value' => 'per_unit', + ], [ + 'title' => 'Per Order', + 'value' => 'per_order', + ], + ], + ], [ + 'name' => 'active', + 'title' => 'admin::app.admin.system.status', + 'type' => 'boolean', + 'validation' => 'required', + 'channel_based' => false, + 'locale_based' => true, + ], [ + 'name' => 'is_calculate_tax', + 'title' => 'admin::app.admin.system.calculate-tax', + 'type' => 'boolean', + 'validation' => 'required', + 'channel_based' => false, + 'locale_based' => false, + ], + ], + ], ]; diff --git a/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php b/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php index 6fd60b4f5..6927d2c70 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php @@ -3,25 +3,25 @@ namespace Webkul\Shop\Http\Controllers; use Illuminate\Support\Facades\Event; -use Webkul\Shop\Http\Controllers\Controller; use Webkul\Checkout\Facades\Cart; -use Webkul\Shipping\Facades\Shipping; -use Webkul\Payment\Facades\Payment; use Webkul\Checkout\Http\Requests\CustomerAddressForm; -use Webkul\Sales\Repositories\OrderRepository; use Webkul\Customer\Repositories\CustomerRepository; +use Webkul\Payment\Facades\Payment; +use Webkul\Sales\Repositories\OrderRepository; +use Webkul\Shipping\Facades\Shipping; +use Webkul\Shop\Http\Controllers\Controller; class OnepageController extends Controller { /** - * OrderRepository object + * Order repository instance. * * @var \Webkul\Sales\Repositories\OrderRepository */ protected $orderRepository; - /** - * customerRepository instance object + /** + * Customer repository instance. * * @var \Webkul\Customer\Repositories\CustomerRepository */ @@ -37,8 +37,7 @@ class OnepageController extends Controller public function __construct( OrderRepository $orderRepository, CustomerRepository $customerRepository - ) - { + ) { $this->orderRepository = $orderRepository; $this->customerRepository = $customerRepository; @@ -50,7 +49,7 @@ class OnepageController extends Controller * Display a listing of the resource. * * @return \Illuminate\View\View - */ + */ public function index() { Event::dispatch('checkout.load.index'); @@ -88,10 +87,10 @@ class OnepageController extends Controller } /** - * Return order short summary + * Return order short summary. * * @return \Illuminate\Http\Response - */ + */ public function summary() { $cart = Cart::getCart(); @@ -106,10 +105,10 @@ class OnepageController extends Controller * * @param \Webkul\Checkout\Http\Requests\CustomerAddressForm $request * @return \Illuminate\Http\Response - */ + */ public function saveAddress(CustomerAddressForm $request) { - $data = request()->all(); + $data = $request->all(); if (! auth()->guard('customer')->check() && ! Cart::getCart()->hasGuestCheckoutItems()) { return response()->json(['redirect_url' => route('customer.session.index')], 403); @@ -120,33 +119,33 @@ class OnepageController extends Controller if (Cart::hasError() || ! Cart::saveCustomerAddress($data)) { return response()->json(['redirect_url' => route('shop.checkout.cart.index')], 403); - } else { - $cart = Cart::getCart(); - - Cart::collectTotals(); - - if ($cart->haveStockableItems()) { - if (! $rates = Shipping::collectRates()) { - return response()->json(['redirect_url' => route('shop.checkout.cart.index')], 403); - } else { - return response()->json($rates); - } - } else { - return response()->json(Payment::getSupportedPaymentMethods()); - } } + + $cart = Cart::getCart(); + + Cart::collectTotals(); + + if ($cart->haveStockableItems()) { + if (! $rates = Shipping::collectRates()) { + return response()->json(['redirect_url' => route('shop.checkout.cart.index')], 403); + } + + return response()->json($rates); + } + + return response()->json(Payment::getSupportedPaymentMethods()); } /** * Saves shipping method. * * @return \Illuminate\Http\Response - */ + */ public function saveShipping() { $shippingMethod = request()->get('shipping_method'); - if (Cart::hasError() || !$shippingMethod || !Cart::saveShippingMethod($shippingMethod)) { + if (Cart::hasError() || ! $shippingMethod || ! Cart::saveShippingMethod($shippingMethod)) { return response()->json(['redirect_url' => route('shop.checkout.cart.index')], 403); } @@ -159,7 +158,7 @@ class OnepageController extends Controller * Saves payment method. * * @return \Illuminate\Http\Response - */ + */ public function savePayment() { $payment = request()->get('payment'); @@ -182,7 +181,7 @@ class OnepageController extends Controller * Saves order. * * @return \Illuminate\Http\Response - */ + */ public function saveOrder() { if (Cart::hasError()) { @@ -216,10 +215,10 @@ class OnepageController extends Controller } /** - * Order success page + * Order success page. * * @return \Illuminate\Http\Response - */ + */ public function success() { if (! $order = session('order')) { @@ -230,7 +229,7 @@ class OnepageController extends Controller } /** - * Validate order before creation + * Validate order before creation. * * @return void|\Exception */ @@ -262,32 +261,32 @@ class OnepageController extends Controller } /** - * Check Customer is exist or not + * Check customer is exist or not. * * @return \Illuminate\Http\Response */ public function checkExistCustomer() { - $customer = $this->customerRepository->findOneWhere([ + $customer = $this->customerRepository->findOneWhere([ 'email' => request()->email, - ]); + ]); - if (! is_null($customer)) { - return 'true'; - } + if (! is_null($customer)) { + return 'true'; + } - return 'false'; + return 'false'; } /** - * Login for checkout + * Login for checkout. * * @return \Illuminate\Http\Response */ public function loginForCheckout() { $this->validate(request(), [ - 'email' => 'required|email' + 'email' => 'required|email', ]); if (! auth()->guard('customer')->attempt(request(['email', 'password']))) { @@ -300,7 +299,7 @@ class OnepageController extends Controller } /** - * To apply couponable rule requested + * To apply couponable rule requested. * * @return \Illuminate\Http\Response */ @@ -322,19 +321,17 @@ class OnepageController extends Controller 'message' => trans('shop::app.checkout.total.coupon-applied'), 'result' => $result, ], 200); - } else { - return response()->json([ - 'success' => false, - 'message' => trans('shop::app.checkout.total.cannot-apply-coupon'), - 'result' => null, - ], 422); } - return $result; + return response()->json([ + 'success' => false, + 'message' => trans('shop::app.checkout.total.cannot-apply-coupon'), + 'result' => null, + ], 422); } /** - * Initiates the removal of couponable cart rule + * Initiates the removal of couponable cart rule. * * @return array */ @@ -352,13 +349,13 @@ class OnepageController extends Controller 'grand_total' => core()->currency(Cart::getCart()->grand_total), ], ], 200); - } else { - return response()->json([ - 'success' => false, - 'message' => trans('admin::app.promotion.status.coupon-remove-failed'), - 'data' => null, - ], 422); } + + return response()->json([ + 'success' => false, + 'message' => trans('admin::app.promotion.status.coupon-remove-failed'), + 'data' => null, + ], 422); } /** @@ -373,8 +370,8 @@ class OnepageController extends Controller $status = Cart::checkMinimumOrder(); return response()->json([ - 'status' => ! $status ? false : true, + 'status' => ! $status ? false : true, 'message' => ! $status ? trans('shop::app.checkout.cart.minimum-order-message', ['amount' => core()->currency($minimumOrderAmount)]) : 'Success', ]); } -} \ No newline at end of file +} diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php index 117026353..309da3baf 100755 --- a/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php @@ -17,6 +17,7 @@