Merge branch 'master' of https://github.com/bagisto/bagisto into development

This commit is contained in:
rahul shukla 2019-03-13 09:38:36 +05:30
commit 3bb197c75a
83 changed files with 1811 additions and 200 deletions

View File

@ -28,6 +28,8 @@ to the ever demanding online world. Your business whether small or huge it suits
**We are also having a forum for any type of your concern, feature request discussions. Please visit: [Bagisto Forums](https://forums.bagisto.com/)**
# Visit our live [Demo](https://demo.bagisto.com)
It packs in lots of demanding features that allows your business to scale in no time:
* Multiple Channels, Locale, Currencies.

7
config/product_types.php Normal file
View File

@ -0,0 +1,7 @@
<?php
return [
];
?>

View File

@ -74,7 +74,6 @@ class AddressController extends Controller
$validator = Validator::make(request()->all(), [
'address1' => 'string|required',
'address2' => 'string',
'country' => 'string|required',
'state' => 'string|required',
'city' => 'string|required',

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/js/admin.js": "/js/admin.js?id=7683c8f127f6ad2ac3ce",
"/css/admin.css": "/css/admin.css?id=82132a512b7ef57114c3"
}
"/js/admin.js": "/js/admin.js?id=da5ebef9c25a064e7ed6",
"/css/admin.css": "/css/admin.css?id=54d5d3e2b0d00847e473"
}

View File

@ -3,31 +3,43 @@
return [
[
'key' => 'catalog',
'name' => 'Catalog',
'name' => 'admin::app.admin.system.catalog',
'sort' => 1
], [
'key' => 'catalog.products',
'name' => 'Products',
'name' => 'admin::app.admin.system.products',
'sort' => 1,
], [
'key' => 'catalog.products.review',
'name' => 'Review',
'name' => 'admin::app.admin.system.review',
'sort' => 1,
'fields' => [
[
'name' => 'guest_review',
'title' => 'Allow Guest Review',
'type' => 'select',
'options' => [
[
'title' => 'Yes',
'value' => true
], [
'title' => 'No',
'value' => false
]
],
'title' => 'admin::app.admin.system.allow-guest-review',
'type' => 'boolean'
]
]
],
], [
'key' => 'customer',
'name' => 'admin::app.admin.system.customer',
'sort' => 3,
], [
'key' => 'customer.settings',
'name' => 'admin::app.admin.system.settings',
'sort' => 1,
], [
'key' => 'customer.settings.address',
'name' => 'admin::app.admin.system.address',
'sort' => 1,
'fields' => [
[
'name' => 'street_lines',
'title' => 'admin::app.admin.system.street-lines',
'type' => 'text',
'validation' => 'between:1,4',
'channel_based' => true
]
]
]
];

View File

@ -34,6 +34,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -42,6 +43,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -50,6 +52,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -58,6 +61,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'string',
'sortable' => true,
'searchable' => true,
'filterable' => true
]);
$this->addColumn([
@ -80,6 +84,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'boolean',
'sortable' => true,
'searchable' => false,
'filterable' => true,
'wrapper' => function($value) {
if ($value->is_unique == 1)
return 'True';
@ -94,6 +99,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'boolean',
'sortable' => true,
'searchable' => false,
'filterable' => true,
'wrapper' => function($value) {
if ($value->value_per_locale == 1)
return 'True';
@ -108,6 +114,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'boolean',
'sortable' => true,
'searchable' => false,
'filterable' => true,
'wrapper' => function($value) {
if ($value->value_per_channel == 1)
return 'True';

View File

@ -32,6 +32,7 @@ class AttributeFamilyDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class AttributeFamilyDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class AttributeFamilyDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -43,6 +43,7 @@ class CategoryDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -51,6 +52,7 @@ class CategoryDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -59,6 +61,7 @@ class CategoryDataGrid extends DataGrid
'type' => 'string',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -67,6 +70,7 @@ class CategoryDataGrid extends DataGrid
'type' => 'boolean',
'sortable' => true,
'searchable' => true,
'filterable' => true,
'wrapper' => function($value) {
if ($value->status == 1)
return 'Active';
@ -81,6 +85,7 @@ class CategoryDataGrid extends DataGrid
'type' => 'number',
'sortable' => true,
'searchable' => false,
'filterable' => false
]);
}

View File

@ -32,6 +32,7 @@ class ChannelDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class ChannelDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class ChannelDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -56,6 +59,7 @@ class ChannelDataGrid extends DataGrid
'type' => 'string',
'sortable' => true,
'searchable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class CurrencyDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class CurrencyDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class CurrencyDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -37,6 +37,7 @@ class CustomerDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -45,6 +46,7 @@ class CustomerDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -53,6 +55,7 @@ class CustomerDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -61,6 +64,7 @@ class CustomerDataGrid extends DataGrid
'type' => 'string',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class CustomerGroupDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class CustomerGroupDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -38,7 +38,7 @@ class CustomerReviewDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => false
'filterable' => true
]);
$this->addColumn([
@ -47,6 +47,7 @@ class CustomerReviewDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -55,6 +56,7 @@ class CustomerReviewDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -63,6 +65,7 @@ class CustomerReviewDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => false
]);
$this->addColumn([
@ -72,6 +75,7 @@ class CustomerReviewDataGrid extends DataGrid
'searchable' => true,
'sortable' => true,
'width' => '100px',
'filterable' => true,
'closure' => true,
'wrapper' => function ($value) {
if ($value->product_review_status == 'approved')

View File

@ -34,6 +34,7 @@ class ExchangeRatesDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -42,6 +43,7 @@ class ExchangeRatesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -50,6 +52,7 @@ class ExchangeRatesDataGrid extends DataGrid
'type' => 'number',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class InventorySourcesDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class InventorySourcesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class InventorySourcesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -56,6 +59,7 @@ class InventorySourcesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -64,6 +68,7 @@ class InventorySourcesDataGrid extends DataGrid
'type' => 'boolean',
'searchable' => true,
'sortable' => true,
'filterable' => true,
'wrapper' => function($value) {
if ($value->status == 1)
return 'Active';

View File

@ -32,6 +32,7 @@ class LocalesDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class LocalesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class LocalesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class NewsLetterDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class NewsLetterDataGrid extends DataGrid
'type' => 'string',
'searchable' => false,
'sortable' => true,
'filterable' => true,
'wrapper' => function($value) {
if ($value->is_subscribed == 1)
return 'True';
@ -54,6 +56,7 @@ class NewsLetterDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -47,6 +47,7 @@ class OrderDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -55,6 +56,7 @@ class OrderDataGrid extends DataGrid
'type' => 'price',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -63,6 +65,7 @@ class OrderDataGrid extends DataGrid
'type' => 'price',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -71,6 +74,7 @@ class OrderDataGrid extends DataGrid
'type' => 'datetime',
'sortable' => true,
'searchable' => false,
'filterable' => true
]);
$this->addColumn([
@ -79,6 +83,7 @@ class OrderDataGrid extends DataGrid
'type' => 'string',
'sortable' => true,
'searchable' => true,
'filterable' => true
]);
$this->addColumn([
@ -88,6 +93,7 @@ class OrderDataGrid extends DataGrid
'sortable' => true,
'searchable' => true,
'closure' => true,
'filterable' => true,
'wrapper' => function ($value) {
if ($value->status == 'processing')
return '<span class="badge badge-md badge-success">Processing</span>';
@ -112,6 +118,7 @@ class OrderDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -120,6 +127,7 @@ class OrderDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class OrderInvoicesDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class OrderInvoicesDataGrid extends DataGrid
'type' => 'number',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class OrderInvoicesDataGrid extends DataGrid
'type' => 'price',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -56,6 +59,7 @@ class OrderInvoicesDataGrid extends DataGrid
'type' => 'datetime',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -48,6 +48,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -56,6 +57,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'number',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -64,6 +66,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -72,6 +75,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -80,6 +84,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'datetime',
'sortable' => true,
'searchable' => false,
'filterable' => true
]);
$this->addColumn([
@ -88,6 +93,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'datetime',
'sortable' => true,
'searchable' => false,
'filterable' => true
]);
$this->addColumn([
@ -96,6 +102,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'string',
'sortable' => true,
'searchable' => true,
'filterable' => true
]);
}

View File

@ -42,7 +42,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.id'),
'type' => 'number',
'searchable' => false,
'sortable' => true
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -51,6 +52,7 @@ class ProductDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
// 'width' => '100px'
]);
@ -59,7 +61,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.name'),
'type' => 'string',
'searchable' => true,
'sortable' => true
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -67,7 +70,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.attribute-family'),
'type' => 'string',
'searchable' => true,
'sortable' => true
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -75,7 +79,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.type'),
'type' => 'string',
'sortable' => true,
'searchable' => true
'searchable' => true,
'filterable' => true
]);
$this->addColumn([
@ -84,6 +89,7 @@ class ProductDataGrid extends DataGrid
'type' => 'boolean',
'sortable' => true,
'searchable' => false,
'filterable' => true,
'wrapper' => function($value) {
if ($value->status == 1)
return 'Active';
@ -97,7 +103,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.price'),
'type' => 'price',
'sortable' => true,
'searchable' => false
'searchable' => false,
'filterable' => true
]);
$this->addColumn([
@ -105,7 +112,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.qty'),
'type' => 'number',
'sortable' => true,
'searchable' => false
'searchable' => false,
'filterable' => false
]);
}

View File

@ -32,7 +32,8 @@ class RolesDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'width' => '40px'
'width' => '40px',
'filterable' => true
]);
$this->addColumn([
@ -41,6 +42,7 @@ class RolesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -49,6 +51,7 @@ class RolesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -36,6 +36,7 @@ class SliderDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -44,6 +45,7 @@ class SliderDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -52,6 +54,7 @@ class SliderDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class TaxCategoryDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class TaxCategoryDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class TaxCategoryDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class TaxRateDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class TaxRateDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class TaxRateDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -56,6 +59,7 @@ class TaxRateDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -64,6 +68,7 @@ class TaxRateDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -36,6 +36,7 @@ class UserDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -44,6 +45,7 @@ class UserDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -52,6 +54,7 @@ class UserDataGrid extends DataGrid
'type' => 'boolean',
'searchable' => true,
'sortable' => true,
'filterable' => true,
'wrapper' => function($value) {
if ($value->status == 1) {
return 'Active';
@ -67,6 +70,7 @@ class UserDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -75,6 +79,7 @@ class UserDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -522,32 +522,32 @@ Route::group(['middleware' => ['web']], function () {
])->name('admin.customers.subscribers.update');
//slider index
Route::get('/slider','Webkul\Shop\Http\Controllers\SliderController@index')->defaults('_config',[
Route::get('/slider','Webkul\Core\Http\Controllers\SliderController@index')->defaults('_config',[
'view' => 'admin::settings.sliders.index'
])->name('admin.sliders.index');
//slider create show
Route::get('slider/create','Webkul\Shop\Http\Controllers\SliderController@create')->defaults('_config',[
Route::get('slider/create','Webkul\Core\Http\Controllers\SliderController@create')->defaults('_config',[
'view' => 'admin::settings.sliders.create'
])->name('admin.sliders.create');
//slider create show
Route::post('slider/create','Webkul\Shop\Http\Controllers\SliderController@store')->defaults('_config',[
Route::post('slider/create','Webkul\Core\Http\Controllers\SliderController@store')->defaults('_config',[
'redirect' => 'admin.sliders.index'
])->name('admin.sliders.store');
//slider edit show
Route::get('slider/edit/{id}','Webkul\Shop\Http\Controllers\SliderController@edit')->defaults('_config',[
Route::get('slider/edit/{id}','Webkul\Core\Http\Controllers\SliderController@edit')->defaults('_config',[
'view' => 'admin::settings.sliders.edit'
])->name('admin.sliders.edit');
//slider edit update
Route::post('slider/edit/{id}','Webkul\Shop\Http\Controllers\SliderController@update')->defaults('_config',[
Route::post('slider/edit/{id}','Webkul\Core\Http\Controllers\SliderController@update')->defaults('_config',[
'redirect' => 'admin.sliders.index'
])->name('admin.sliders.update');
//destroy a slider item
Route::get('slider/delete/{id}', 'Webkul\Shop\Http\Controllers\SliderController@destroy')->name('admin.sliders.delete');
Route::get('slider/delete/{id}', 'Webkul\Core\Http\Controllers\SliderController@destroy')->name('admin.sliders.delete');
//tax routes
Route::get('/tax-categories', 'Webkul\Tax\Http\Controllers\TaxController@index')->defaults('_config', [

View File

@ -93,8 +93,42 @@ body {
}
}
.open-nav-aside {
display: none;
width: 100%;
height: 8%;
margin-top: 2%;
padding: 5px;
text-align: center;
border: 1px solid $border-color;
cursor: pointer;
}
.close-nav-aside {
display: block;
width: 100%;
height: 8%;
margin-top: 3%;
padding: 10px;
text-align: center;
border: 1px solid $border-color;
cursor: pointer;
}
.close-nav-aside:hover, .open-nav-aside:hover {
background: $brand-color;
}
.open-nav-aside, .close-nav-aside {
.icon {
height: 28px;
width: 28px;
}
}
.navbar-left {
position: absolute;
display: block;
position: fixed;
top: 60px;
bottom: 0;
width: 90px;

View File

@ -545,8 +545,8 @@ return [
],
'countries' => [
'title' => 'Countries',
'add-title' => 'Add Counrty',
'save-btn-title' => 'Save Counrty',
'add-title' => 'Add Country',
'save-btn-title' => 'Save Country',
'general' => 'General',
'code' => 'Code',
'name' => 'Name'
@ -743,7 +743,7 @@ return [
'update-success' => 'Subscriber was successfully updated',
'update-failed' => 'Error! You cannot unsubscribe the subscriber',
'delete' => 'Subscriber was successfully deleted',
'delete-failed' => 'Erorr! Subscriber cannot be deleted'
'delete-failed' => 'Error! Subscriber cannot be deleted'
]
],
@ -813,4 +813,18 @@ return [
'footer' => [
'copy-right' => '© Copyright 2018 Webkul Software, All rights reserved.'
],
'admin' => [
'system' => [
'catalog' => 'Catalog',
'products' => 'Products',
'review' => 'Review',
'allow-guest-review' => 'Allow Guest Review',
'customer' => 'Customer',
'settings' => 'Settings',
'address' => 'Address',
'address' => 'Address',
'street-lines' => 'Lines in a Street Address'
]
]
];

View File

@ -0,0 +1,763 @@
<?php
return [
'common' => [
'no-result-found' => 'Não conseguimos encontrar nenhum registro.',
'country' => 'Pais',
'state' => 'Estado/Província',
'true' => 'Verdadeiro',
'false' => 'Falso'
],
'layouts' => [
'my-account' => 'Minha Conta',
'logout' => 'Sair',
'visit-shop' => 'Visitar Loja',
'dashboard' => 'Dashboard',
'sales' => 'Vendas',
'orders' => 'Pedido',
'shipments' => 'Envíos',
'invoices' => 'Faturas',
'catalog' => 'Catálogo',
'products' => 'Produtos',
'categories' => 'Categorias',
'attributes' => 'Atributos',
'attribute-families' => 'Grupos de Atributos',
'customers' => 'Clientes',
'groups' => 'Grupos',
'reviews' => 'Avaliações',
'newsletter-subscriptions' => 'Inscrições de Newsletter',
'configure' => 'Configurar',
'settings' => 'Opções',
'locales' => 'Idiomas',
'currencies' => 'Moedas',
'exchange-rates' => 'Impostos de Câmbios',
'inventory-sources' => 'Fontes de Inventários',
'channels' => 'Canais (Lojas)',
'users' => 'Usuários',
'roles' => 'Funções',
'sliders' => 'Sliders',
'taxes' => 'Impostos',
'tax-categories' => 'Categorias de Impostos',
'tax-rates' => 'Impostos de Impostos'
],
'acl' => [
'dashboard' => 'Dashboard',
'sales' => 'Vendas',
'orders' => 'Pedidos',
'shipments' => 'Envios',
'invoices' => 'Faturas',
'catalog' => 'Catálogos',
'products' => 'Produtos',
'categories' => 'Categorias',
'attributes' => 'Atributos',
'attribute-families' => 'Famílias de Atributos',
'customers' => 'Clientes',
'groups' => 'Grupos',
'reviews' => 'Avaliações',
'newsletter-subscriptions' => 'Inscrições de Newsletter',
'configure' => 'Configure',
'settings' => 'Configurações',
'locales' => 'Idiomas',
'currencies' => 'Moedas',
'exchange-rates' => 'Impostos de Câmbios',
'inventory-sources' => 'Fontes de Inventários',
'channels' => 'Canais (Lojas)',
'users' => 'Usuários',
'roles' => 'Funções',
'sliders' => 'Sliders',
'taxes' => 'Impostos',
'tax-categories' => 'Categorias de Impostos',
'tax-rates' => 'Impostos de Impostos',
],
'dashboard' => [
'title' => 'Dashboard',
'from' => 'De',
'to' => 'Para',
'total-customers' => 'Total de Clientes',
'total-orders' => 'Total de Pedidos',
'total-sale' => 'Total de Vendas',
'average-sale' => 'Média por Pedido',
'increased' => ':progress% Aumento',
'decreased' => ':progress% Diminuido',
'sales' => 'Vendas',
'top-performing-categories' => 'Categorias Mais Performáticas',
'product-count' => ':count Produtos',
'top-selling-products' => 'Produtos Mais Vendidos',
'sale-count' => ':count Vendas',
'customer-with-most-sales' => 'Clientes Com Mais Vendas',
'order-count' => ':count Pedidos',
'revenue' => 'Receita :total',
'stock-threshold' => 'Limite de Estoque',
'qty-left' => ':qty Restante',
],
'datagrid' => [
'mass-ops' => [
'method-error' => 'Erro! Método errado detectado, por favor, verifique a configuração de ação em massa',
'delete-success' => 'O índice selecionado de :resource foi excluído com sucesso',
'partial-action' => 'Algumas ações não foram executadas devido a restrições restritas do sistema em :resource',
'update-success' => 'O índice selecionado :resource foram atualizados com sucesso',
],
'id' => 'ID',
'status' => 'Status',
'code' => 'Código',
'admin-name' => 'Nome',
'name' => 'Nome',
'fullname' => 'Nome Completo',
'type' => 'Tipo',
'required' => 'Obrigatório',
'unique' => 'Único',
'per-locale' => 'Por Idioma',
'per-channel' => 'Por Canal (Loja)',
'position' => 'Posição',
'locale' => 'Idioma',
'hostname' => 'Hostname',
'email' => 'Email',
'group' => 'Grupo',
'title' => 'Título',
'comment' => 'Comentário',
'product-name' => 'Produto',
'currency-name' => 'Nome da Moéda',
'exch-rate' => 'Imposto de Câmbio',
'priority' => 'Prioridade',
'subscribed' => 'Inscrito',
'base-total' => 'Total Base',
'grand-total' => 'Total Final',
'order-date' => 'Data do Pedido',
'channel-name' => 'Nome do Canal (Loja)',
'billed-to' => 'Cobrado de',
'shipped-to' => 'Enviado para',
'order-id' => 'Pedido Id',
'invoice-date' => 'Data da Fatura',
'total-qty' => 'Total Qtd',
'inventory-source' => 'Fonte do Estoque',
'shipment-date' => 'Data de Envio',
'shipment-to' => 'Enviado para',
'sku' => 'SKU',
'price' => 'Preço',
'qty' => 'Quantidade',
'permission-type' => 'Tipo de Permissão',
'identifier' => 'Identificador',
'state' => 'Estado',
'country' => 'Pais',
'tax-rate' => 'Imposto',
'role' => 'Função',
'sub-total' => 'Sub Total',
'no-of-products' => 'Número de Produtos',
],
'account' => [
'title' => 'Minha Conta',
'save-btn-title' => 'Salvar',
'general' => 'Geral',
'name' => 'Nome',
'email' => 'Email',
'password' => 'Senha',
'confirm-password' => 'Confirmar Senha',
'change-password' => 'Mudar Senha da Conta',
'current-password' => 'Senha Atual'
],
'users' => [
'forget-password' => [
'title' => 'Esqueci Minha Senha',
'header-title' => 'Recuperar Senha',
'email' => 'E-mail Registrado',
'password' => 'Senha',
'confirm-password' => 'Confirmar Senha',
'back-link-title' => 'Voltar para Login',
'submit-btn-title' => 'Link do E-mail para Recuperar Senha'
],
'reset-password' => [
'title' => 'Resetar Senha',
'email' => 'E-mail Registrado',
'password' => 'Senha',
'confirm-password' => 'Confirmar Senha',
'back-link-title' => 'Voltar para Login',
'submit-btn-title' => 'Resetar Senha'
],
'roles' => [
'title' => 'Funções',
'add-role-title' => 'Add Função',
'edit-role-title' => 'Editar Função',
'save-btn-title' => 'Salvar Função',
'general' => 'Geral',
'name' => 'Nome',
'description' => 'Descrição',
'access-control' => 'Controle de Acesso',
'permissions' => 'Permissões',
'custom' => 'Personalizado',
'all' => 'Tudo'
],
'users' => [
'title' => 'Usuário',
'add-user-title' => 'Add Usuário',
'edit-user-title' => 'Editar Usuário',
'save-btn-title' => 'Salvar Usuário',
'general' => 'Geral',
'email' => 'Email',
'name' => 'Nome',
'password' => 'Senha',
'confirm-password' => 'Confirmar Senha',
'status-and-role' => 'Status e Função',
'role' => 'Função',
'status' => 'Status',
'account-is-active' => 'Conta está Ativa',
'current-password' => 'Informe a Senha Atual',
'confirm-delete' => 'Confirma a Exclusão dessa Conta',
'confirm-delete-title' => 'Confirme a senha antes de deletar',
'delete-last' => 'Ao menos um admin é obrigatório.',
'delete-success' => 'Sucesso! Usuário Deletado',
'incorrect-password' => 'A Senha informada é incorreta!',
],
'sessions' => [
'title' => 'Entrar',
'email' => 'Email',
'password' => 'Senha',
'forget-password-link-title' => 'Esqueceu a Senha?',
'remember-me' => 'Lembrar de mim',
'submit-btn-title' => 'Entrar'
]
],
'sales' => [
'orders' => [
'title' => 'Pedidos',
'view-title' => 'Pedido #:order_id',
'cancel-btn-title' => 'Cancelas',
'shipment-btn-title' => 'Enviar',
'invoice-btn-title' => 'Faturar',
'info' => 'Informação',
'invoices' => 'Faturas',
'shipments' => 'Envios',
'order-and-account' => 'Pedido e Conta',
'order-info' => 'Informação do Pedido',
'order-date' => 'Data do Pedido',
'order-status' => 'Status do Pedido',
'channel' => 'Canal (Loja)',
'customer-name' => 'Nome do Cliente',
'email' => 'Email',
'contact-number' => 'Número de Contato',
'account-info' => 'Informação da Conta',
'address' => 'Endereço',
'shipping-address' => 'Endereço de Envio',
'billing-address' => 'Endereço de Cobrança',
'payment-and-shipping' => 'Pagamento e Entrega',
'payment-info' => 'Informação de Pagamento',
'payment-method' => 'Método de Pagamento',
'currency' => 'Moeda',
'shipping-info' => 'Informação de Entrgea',
'shipping-method' => 'Método de Entrega',
'shipping-price' => 'Preço de Entrega',
'products-ordered' => 'Produtos Pedidos',
'SKU' => 'SKU',
'product-name' => 'Nome do Produto',
'qty' => 'Qtd',
'item-status' => 'Item Status',
'item-ordered' => 'Pedido(s) (:qty_ordered)',
'item-invoice' => 'Faturado(s) (:qty_invoiced)',
'item-shipped' => 'Enviado(s) (:qty_shipped)',
'item-canceled' => 'Cancelado(s) (:qty_canceled)',
'price' => 'Preço',
'total' => 'Total',
'subtotal' => 'Subtotal',
'shipping-handling' => 'Entrega & Manuseio',
'tax' => 'Imposto',
'tax-percent' => 'Percentual Imposto',
'tax-amount' => 'Valor de Imposto',
'discount-amount' => 'Valor de Desconto',
'grand-total' => 'Total',
'total-paid' => 'Total Pago',
'total-refunded' => 'Total Estornado',
'total-due' => 'Total Devido',
'cancel-confirm-msg' => 'Tem certeza que deseja cancelar esse pedido ?'
],
'invoices' => [
'title' => 'Faturas',
'id' => 'Id',
'invoice-id' => 'Fatura Id',
'date' => 'Data da Fatura',
'order-id' => 'Pedido Id',
'customer-name' => 'Nome do Cliente',
'status' => 'Status',
'amount' => 'Valor',
'action' => 'Ação',
'add-title' => 'Criar Fatura',
'save-btn-title' => 'Salvar Fatura',
'qty' => 'Qtd',
'qty-ordered' => 'Qtd Pedido',
'qty-to-invoice' => 'Qtd Faturado',
'view-title' => 'Fatura #:invoice_id',
'bill-to' => 'Cobrar de',
'ship-to' => 'Enviar para',
'print' => 'Imprimir',
'order-date' => 'Data do Pedido'
],
'shipments' => [
'title' => 'Entregas',
'id' => 'Id',
'date' => 'Data de Envio',
'order-id' => 'Pedido Id',
'order-date' => 'Data do Pedido',
'customer-name' => 'Nome do Cliente',
'total-qty' => 'Total Qtd',
'action' => 'Ação',
'add-title' => 'Criar Entrega',
'save-btn-title' => 'Salvar Entrega',
'qty-ordered' => 'Qtd pedido',
'qty-to-ship' => 'Qty para enviar',
'available-sources' => 'Fontes Disponíveis',
'source' => 'Fonte',
'select-source' => 'Por favor Selecione a Fonte',
'qty-available' => 'Qtd Disponível',
'inventory-source' => 'Fonte do Estoque',
'carrier-title' => 'Título da Transportadora',
'tracking-number' => 'Código de Rastreio',
'view-title' => 'Entrega #:shipment_id'
]
],
'catalog' => [
'products' => [
'title' => 'Produtos',
'add-product-btn-title' => 'Add Produto',
'add-title' => 'Add Produto',
'edit-title' => 'Editar Produto',
'save-btn-title' => 'Salvar Produto',
'general' => 'Geral',
'product-type' => 'Tipo de Produto',
'simple' => 'Simples',
'configurable' => 'Configurável',
'familiy' => 'Grupo de Atributos',
'sku' => 'SKU',
'configurable-attributes' => 'Atributos Configuráveis',
'attribute-header' => 'Atributos(s)',
'attribute-option-header' => 'Opções do Atributo',
'no' => 'Não',
'yes' => 'Sim',
'disabled' => 'Desativado',
'enabled' => 'Ativado',
'add-variant-btn-title' => 'Add Variação',
'name' => 'Nome',
'qty' => 'Qtd',
'price' => 'Preço',
'weight' => 'Peso',
'status' => 'Status',
'add-variant-title' => 'Add Variação',
'variant-already-exist-message' => 'Variante com as mesmas opções de atributo já existe.',
'add-image-btn-title' => 'Add Imagem',
'mass-delete-success' => 'Todos os índices de produtos selecionados foram excluídos com sucesso',
'mass-update-success' => 'Todo o índice selecionado de produtos foi atualizado com sucesso'
],
'attributes' => [
'title' => 'Atributos',
'add-title' => 'Add Atributo',
'edit-title' => 'Editar Atributo',
'save-btn-title' => 'Salvar Atributo',
'general' => 'Geral',
'code' => 'Código do Atributo',
'type' => 'Tipo do Atributo',
'text' => 'Texto',
'textarea' => 'Área de Texto',
'price' => 'Preço',
'boolean' => 'Boleano',
'select' => 'Caixa de Seleção',
'multiselect' => 'Caixa de Seleção Múltipla',
'datetime' => 'Data e Hora',
'date' => 'Data',
'label' => 'Etiqueta',
'admin' => 'Admin',
'options' => 'Opções',
'position' => 'Posição',
'add-option-btn-title' => 'Add Opção',
'validations' => 'Validações',
'input_validation' => 'Validação de Campo',
'is_required' => 'É Obrigratório',
'is_unique' => 'É Único',
'number' => 'Número',
'decimal' => 'Decimal',
'email' => 'Email',
'url' => 'URL',
'configuration' => 'Configuração',
'status' => 'Status',
'yes' => 'Sim',
'no' => 'Não',
'value_per_locale' => 'Valor Por Idioma',
'value_per_channel' => 'Valor Por Canal (Loja)',
'is_filterable' => 'Usar na navegação em camadas',
'is_configurable' => 'Usar para Criar Produtos Configuráveis',
'admin_name' => 'Admin Nome',
'is_visible_on_front' => 'Visível na página de exibição do produto no front-end'
],
'families' => [
'title' => 'Famílias',
'add-family-btn-title' => 'Add Família',
'add-title' => 'Add Família',
'edit-title' => 'Editar Família',
'save-btn-title' => 'Salvar Família',
'general' => 'Geral',
'code' => 'Código da Família',
'name' => 'Nome',
'groups' => 'Grupos',
'add-group-title' => 'Add Grupo',
'position' => 'Posição',
'attribute-code' => 'Código',
'type' => 'Tipo',
'add-attribute-title' => 'Add Atributos',
'search' => 'Buscar',
'group-exist-error' => 'Grupo com o mesmo nome já existe.'
],
'categories' => [
'title' => 'Categorias',
'add-title' => 'Add Categoria',
'edit-title' => 'Editar Categoria',
'save-btn-title' => 'Salvar Categoria',
'general' => 'Geral',
'name' => 'Nome',
'visible-in-menu' => 'Visível no Menu',
'yes' => 'Sim',
'no' => 'Não',
'position' => 'Posição',
'description-and-images' => 'Descrição e Imagens',
'description' => 'Descrição',
'parent-category' => 'Categoria Pai',
'seo' => 'Search Engine Optimization',
'slug' => 'Slug',
'meta_title' => 'Meta Título',
'meta_description' => 'Meta Descrição',
'meta_keywords' => 'Meta Keywords',
'image' => 'Imagem',
]
],
'configuration' => [
'title' => 'Configuração',
'save-btn-title' => 'Salvar',
'save-message' => 'Configuração salvada com sucesso!',
'yes' => 'Sim',
'no' => 'Não',
'delete' => 'Deletar',
'tax-categories' => [
'title' => 'Categorias de Imposto',
'add-title' => 'Add Categorias de Imposto',
'edit-title' => 'Editar Categorias de Imposto',
'save-btn-title' => 'Salvar Categorias de Imposto',
'general' => 'Categorias de Imposto',
'select-channel' => 'Selecione o Canal (Loja)',
'name' => 'Nome',
'code' => 'Código',
'description' => 'Descrição',
'select-taxrates' => 'Selecionar Taxas de Imposto',
'edit' => [
'title' => 'Editar Categorias de Imposto',
'edit-button-title' => 'Editar Categorias de Imposto'
]
],
'tax-rates' => [
'title' => 'Taxas de Impostos',
'add-title' => 'Add Taxas de Imposto',
'edit-title' => 'Editar Taxas de Imposto',
'save-btn-title' => 'Salvar Taxas de Imposto',
'general' => 'Taxas de Imposto',
'identifier' => 'Identificador',
'is_zip' => 'Ativar Range de CEP',
'zip_from' => 'CEP de',
'zip_to' => 'CEP para',
'state' => 'Estado',
'select-state' => 'Selecione uma região, estado ou província.',
'country' => 'País',
'tax_rate' => 'Taxa',
'edit' => [
'title' => 'Editae Taxas de Impostos',
'edit-button-title' => 'Editar Taxa'
],
'zip_code' => 'CEP',
],
'sales' => [
'shipping-method' => [
'title' => 'Método de Entregas',
'save-btn-title' => 'Salvar',
'description' => 'Descrição',
'active' => 'Ativo',
'status' => 'Status'
]
]
],
'settings' => [
'locales' => [
'title' => 'Idiomas',
'add-title' => 'Add Idioma',
'edit-title' => 'Editar Idioma',
'add-title' => 'Add Idioma',
'save-btn-title' => 'Salvar Idioma',
'general' => 'Geral',
'code' => 'Código',
'name' => 'Nome'
],
'countries' => [
'title' => 'Países',
'add-title' => 'Add País',
'save-btn-title' => 'Salvar País',
'general' => 'Geral',
'code' => 'Código',
'name' => 'Nome'
],
'currencies' => [
'title' => 'Moedas',
'add-title' => 'Add Moeda',
'edit-title' => 'Editar Moeda',
'save-btn-title' => 'Salvar Moeda',
'general' => 'Geral',
'code' => 'Código',
'name' => 'Nome',
'symbol' => 'Símbolo'
],
'exchange_rates' => [
'title' => 'Taxas de Câmbio',
'add-title' => 'Add Taxa de Câmbio',
'edit-title' => 'Editar Taxa de Câmbio',
'save-btn-title' => 'Salvar Taxa de Câmbio',
'general' => 'Geral',
'source_currency' => 'Moeda de Origem',
'target_currency' => 'Moeda Alvo',
'rate' => 'Taxa'
],
'inventory_sources' => [
'title' => 'Origens do Estoque',
'add-title' => 'Add Origem de Estoque',
'edit-title' => 'Editar Origem de Estoque',
'save-btn-title' => 'Salvar Origem de Estoque',
'general' => 'Geral',
'code' => 'Código',
'name' => 'Nome',
'description' => 'Descrição',
'source-is-active' => 'Origem é ativo',
'contact-info' => 'Informação de Contato',
'contact_name' => 'Nome',
'contact_email' => 'Email',
'contact_number' => 'Número de Contato',
'contact_fax' => 'Fax',
'address' => 'Endereço de Origem',
'country' => 'País',
'state' => 'Estado',
'city' => 'Cidade',
'street' => 'Logradouro',
'postcode' => 'CEP',
'priority' => 'Prioridade',
'latitude' => 'Latitude',
'longitude' => 'Longitude',
'status' => 'Status'
],
'channels' => [
'title' => 'Canais (Lojas)',
'add-title' => 'Add Canal (Loja)',
'edit-title' => 'Edit Canal(Loja)',
'save-btn-title' => 'Salvar Canal(Loja)',
'general' => 'Geral',
'code' => 'Código',
'name' => 'Nome',
'description' => 'Descrição',
'hostname' => 'Hostname',
'currencies-and-locales' => 'Moedas e Idiomas',
'locales' => 'Idiomas',
'default-locale' => 'Idioma Padrão',
'currencies' => 'Moedas',
'base-currency' => 'Moeda Base',
'root-category' => 'Categoria Raíz',
'inventory_sources' => 'Origem do Estoque',
'design' => 'Design',
'theme' => 'Tema',
'home_page_content' => 'Conteúdo da Página Inicial',
'footer_content' => 'Conteúdo do Rodapé',
'logo' => 'Logo',
'favicon' => 'Favicon'
],
'sliders' => [
'title' => 'Sliders',
'add-title' => 'Criar Slider',
'edit-title' => 'Editar Slider',
'save-btn-title' => 'Salvar Slider',
'general' => 'Geral',
'image' => 'Imagem',
'content' => 'Conteúdo',
'channels' => 'Canal(Loja)',
'created-success' => 'Slider criado com sucesso',
'created-fault' => 'Erro ao criar Slider',
'update-success' => 'Slider atualizado com sucesso',
'update-fail' => 'Slider não pôde ser atualizado',
'delete-success' => 'Não foi possível excluir o slider',
'delete-fail' => 'Slider excluído com sucesso'
],
'tax-categories' => [
'title' => 'Categorias de Imposto',
'add-title' => 'Criar Categoria de Imposto',
'edit-title' => 'Edita Categoria de Imposto',
'save-btn-title' => 'Salvar Categoria de Imposto',
'general' => 'Categoria de Imposto',
'select-channel' => 'Selecione o Canal(Loja)',
'name' => 'Nome',
'code' => 'Código',
'description' => 'Descrição',
'select-taxrates' => 'Selecione as Taxas de Impostoss',
'edit' => [
'title' => 'Editar Categoria de Imposto',
'edit-button-title' => 'Editar Categoria de Imposto'
],
'create-success' => 'Nova Categoria de Imposto Criada',
'create-error' => 'Erro, durante a Criação da Categoria de Imposto',
'update-success' => 'Categoria de Imposto atualizada com sucesso',
'update-error' => 'Erro, durante a atualização da Categoria de Imposto',
'atleast-one' => 'Não é possível excluir a última Categoria de Imposto',
'delete' => 'Categoria de Imposto excluída com sucesso'
],
'tax-rates' => [
'title' => 'Taxas de Impostos',
'add-title' => 'Criar Taxas de Impostos',
'edit-title' => 'Editar Taxas de Impostos',
'save-btn-title' => 'Salvar Taxas de Impostos',
'general' => 'Taxas de Impostos',
'identifier' => 'Identificador',
'is_zip' => 'Ativar Range de CEP',
'zip_from' => 'CEP de',
'zip_to' => 'CEP para',
'state' => 'Estado',
'select-state' => 'Selecione uma região, estado ou província.',
'country' => 'País',
'tax_rate' => 'Taxa',
'edit' => [
'title' => 'Editar Taxas de Impostos',
'edit-button-title' => 'Editar Taxa'
],
'zip_code' => 'CEP',
'is_zip' => 'Ativar Range de CEP',
'create-success' => 'Taxas de Impostos Criada com Sucesso',
'create-error' => 'Não foi Possível Criar a Taxa de Impostos',
'update-success' => 'Taxas de Impostos Atualizadas com Sucesso',
'update-error' => 'Erro! Taxas de Impostos Não Poderam ser Atualizadas',
'delete' => 'Taxas de Impostos Excluídas com Sucesso',
'atleast-one' => 'Não é Possível Excluir a Última Taxa de Impostos'
]
],
'customers' => [
'groups' =>[
'add-title' => 'Add Grupo',
'edit-title' => 'Editar Grupo',
'save-btn-title' => 'Salvar Grupo',
'title' => 'Grupos',
'save-btn-title' => 'Salvar Grupo',
'name' => 'Nome',
'is_user_defined' => 'Usuário Definido',
'yes' => 'Sim'
],
'customers' => [
'add-title' => 'Add Cliente',
'edit-title' => 'Editar Cliente',
'title' => 'Clientes',
'first_name' => 'Nome',
'last_name' => 'Sobrenome',
'gender' => 'Gênero',
'email' => 'Email',
'date_of_birth' => 'Data de Nascimento',
'phone' => 'Telefone',
'customer_group' => 'Grupo de Cliente',
'save-btn-title' => 'Salvar Cliente',
'channel_name' => 'Nome do Canal(Loja)',
'state' => 'Estado',
'select-state' => 'Selecione uma região, estado ou província.',
'country' => 'País',
'male' => 'Masculino',
'female' => 'Feminino',
'phone' => 'Telefone',
'group-default' => 'Não possível excluir o grupo de cliente.',
],
'reviews' => [
'title' => 'Avaliações',
'edit-title' => 'Editar Avaliação',
'rating' => 'Classificação',
'status' => 'Status',
'comment' => 'Comentar',
'pending' => 'Pendente',
'approved' => 'Aprovado'
],
'subscribers' => [
'title' => 'Assinantes de Newletter',
'title-edit' => 'Editar Assinante',
'email' => 'Email',
'is_subscribed' => 'Inscrito',
'edit-btn-title' => 'Atualizar inscrito',
'update-success' => 'Inscrito foi atualizado com sucesso',
'update-failed' => 'Erro! Você não pode atualizar a inscrição desse usuário',
'delete' => 'Inscrito foi excluído com sucesso',
'delete-failed' => 'Erro! Você não pode excluir a inscrição desse usuário',
]
],
'error' => [
'go-to-home' => 'IR PARA PÁGINA INICIAL',
'404' => [
'page-title' => '404 Página não Encontrada',
'name' => '404',
'title' => 'Página não Encontrad',
'message' => 'A página que você está procurando não existe ou foi movida. Navegue usando o menu lateral.'
],
'403' => [
'page-title' => '403 Acesso Negado',
'name' => '403',
'title' => 'Acesso Negado',
'message' => 'Você não tem permissão para acessar esta página'
],
'500' => [
'page-title' => '500 Erro Interno do Servidor',
'name' => '500',
'title' => 'Erro Interno do Servidor',
'message' => 'O servidor encontrou um erro interno.'
],
'401' => [
'page-title' => '401 Erro não Autorizado',
'name' => '401',
'title' => 'Erro não Autorizado',
'message' => 'A solicitação não foi aplicada porque não possui credenciais de autenticação válidas para o recurso de destino.'
],
],
'export' => [
'export' => 'Exportar',
'format' => 'Selecione o Formato',
'download' => 'Download',
'csv' => 'CSV',
'xls' => 'XLS'
],
'response' => [
'create-success' => ':name criado com sucesso.',
'update-success' => ':name atualizaco com sucesso.',
'delete-success' => ':name excluído com sucesso.',
'last-delete-error' => 'Ao menos um :name é obrigatório.',
'user-define-error' => 'Não pode excluir o sistema :name',
'attribute-error' => ':name é usado em produtos configuráveis.',
'attribute-product-error' => ':name é usado em produtos.',
'customer-associate' => ':name não pode ser excluído porque o cliente está associado a esse grupo.',
'currency-delete-error' => 'Esta moeda é definida como moeda base do canal, então não pode ser excluída.'
],
];

View File

@ -158,4 +158,21 @@
</form>
</div>
@stop
@stop
@push('scripts')
<script src="{{ asset('vendor/webkul/admin/assets/js/tinyMCE/tinymce.min.js') }}"></script>
<script>
$(document).ready(function () {
tinymce.init({
selector: 'textarea#description',
height: 200,
width: "100%",
plugins: 'image imagetools media wordcount save fullscreen code',
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code',
image_advtab: true
});
});
</script>
@endpush

View File

@ -171,4 +171,21 @@
</form>
</div>
@stop
@stop
@push('scripts')
<script src="{{ asset('vendor/webkul/admin/assets/js/tinyMCE/tinymce.min.js') }}"></script>
<script>
$(document).ready(function () {
tinymce.init({
selector: 'textarea#description',
height: 200,
width: "100%",
plugins: 'image imagetools media wordcount save fullscreen code',
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code',
image_advtab: true
});
});
</script>
@endpush

View File

@ -27,7 +27,7 @@
<div class="page-title">
<h1>
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
{{ __('admin::app.catalog.products.add-title') }}
</h1>
</div>
@ -44,7 +44,6 @@
<?php $familyId = app('request')->input('family') ?>
<?php $sku = app('request')->input('sku') ?>
{!! view_render_event('bagisto.admin.catalog.product.create_form_accordian.general.before') !!}
<accordian :title="'{{ __('admin::app.catalog.products.general') }}'" :active="true">
@ -55,8 +54,9 @@
<div class="control-group" :class="[errors.has('type') ? 'has-error' : '']">
<label for="type" class="required">{{ __('admin::app.catalog.products.product-type') }}</label>
<select class="control" v-validate="'required'" id="type" name="type" {{ $familyId ? 'disabled' : '' }} data-vv-as="&quot;{{ __('admin::app.catalog.products.product-type') }}&quot;">
<option value="simple">{{ __('admin::app.catalog.products.simple') }}</option>
<option value="configurable" {{ $familyId ? 'selected' : '' }}>{{ __('admin::app.catalog.products.configurable') }}</option>
@foreach($productTypes as $key => $productType)
<option value="{{ $key }}">{{ $productType['name'] }}</option>
@endforeach
</select>
@if ($familyId)

View File

@ -1,8 +1,5 @@
<div class="aside-nav">
<ul>
{{-- <li class="slider-aside">
<span class="icon cross-icon" style="height: 64px; width: 64px; background: red;"></span>
</li> --}}
@if (request()->route()->getName() != 'admin.configuration.index')
<?php $keys = explode('.', $menu->currentKey); ?>
@ -32,25 +29,25 @@
@endif
</ul>
<div class="aside-nav-toggle">
<i class="angle-left-icon close-icon"></i>
</div>
{{-- <div class="close-nav-aside">
<i class="icon angle-left-icon close-icon"></i>
</div> --}}
</div>
@push('scripts')
{{-- @push('scripts')
<script>
$(document).ready(function() {
$(".close-icon").on('click', function(e){
$(".close-nav-aside").on('click', function(e) {
$('.content-wrapper').css("margin-left", "0px");
$('.aside-nav').hide();
$('.open').show();
$('.aside-nav').css('display', 'none');
$('.open-nav-aside').css('display', 'block');
});
$(".open-icon").on('click', function(e){
$(".open-nav-aside").on('click', function(e) {
$('.content-wrapper').css("margin-left", "305px");
$('.aside-nav').show();
$('.open').hide();
$('.aside-nav').css('display', '');
$('.open-nav-aside').css('display', 'none');
});
});
</script>
@endpush
@endpush --}}

View File

@ -11,7 +11,7 @@
@endforeach
</ul>
<div class="aside-nav-toggle open">
<i class="angle-right-icon open-icon"></i>
<div class="open-nav-aside">
<i class="icon angle-right-icon open-icon"></i>
</div>
</div>

View File

@ -1,5 +1,5 @@
{{ $address->name }}</br>
{{ $address->address1 }}, {{ $address->address2 ? $address->address2 . ',' : '' }}</br>
{{ $address->address1 }}</br>
{{ $address->city }}</br>
{{ $address->state }}</br>
{{ country()->name($address->country) }} {{ $address->postcode }}</br></br>

View File

@ -111,7 +111,7 @@
<tr>
<td>
<p>{{ $invoice->order->billing_address->name }}</p>
<p>{{ $invoice->order->billing_address->address1 }}, {{ $invoice->order->billing_address->address2 ? $invoice->order->billing_address->address2 . ',' : '' }}</p>
<p>{{ $invoice->order->billing_address->address1 }}</p>
<p>{{ $invoice->order->billing_address->city }}</p>
<p>{{ $invoice->order->billing_address->state }}</p>
<p>{{ country()->name($invoice->order->billing_address->country) }} {{ $invoice->order->billing_address->postcode }}</p>
@ -119,7 +119,7 @@
</td>
<td>
<p>{{ $invoice->order->shipping_address->name }}</p>
<p>{{ $invoice->order->shipping_address->address1 }}, {{ $invoice->order->shipping_address->address2 ? $invoice->order->shipping_address->address2 . ',' : '' }}</p>
<p>{{ $invoice->order->shipping_address->address1 }}</p>
<p>{{ $invoice->order->shipping_address->city }}</p>
<p>{{ $invoice->order->shipping_address->state }}</p>
<p>{{ country()->name($invoice->order->shipping_address->country) }} {{ $invoice->order->shipping_address->postcode }}</p>

View File

@ -650,7 +650,6 @@ class Cart {
$billingAddress['last_name'] = auth()->guard('customer')->user()->last_name;
$billingAddress['email'] = auth()->guard('customer')->user()->email;
$billingAddress['address1'] = $address['address1'];
$billingAddress['address2'] = $address['address2'];
$billingAddress['country'] = $address['country'];
$billingAddress['state'] = $address['state'];
$billingAddress['city'] = $address['city'];
@ -664,7 +663,6 @@ class Cart {
$shippingAddress['last_name'] = auth()->guard('customer')->user()->last_name;
$shippingAddress['email'] = auth()->guard('customer')->user()->email;
$shippingAddress['address1'] = $address['address1'];
$shippingAddress['address2'] = $address['address2'];
$shippingAddress['country'] = $address['country'];
$shippingAddress['state'] = $address['state'];
$shippingAddress['city'] = $address['city'];

View File

@ -9,7 +9,7 @@ class CartAddress extends Model implements CartAddressContract
{
protected $table = 'cart_address';
protected $fillable = ['first_name', 'last_name', 'email', 'address1', 'address2', 'city', 'state', 'postcode', 'country', 'phone', 'address_type', 'cart_id'];
protected $fillable = ['first_name', 'last_name', 'email', 'address1', 'city', 'state', 'postcode', 'country', 'phone', 'address_type', 'cart_id'];
/**
* Get the shipping rates for the cart address.

View File

@ -7,7 +7,6 @@ use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
use Webkul\Core\Repositories\ChannelRepository as Channel;
/**
* Channel controller
*
@ -26,14 +25,14 @@ class ChannelController extends Controller
/**
* ChannelRepository object
*
* @var array
* @var Object
*/
protected $channel;
/**
* Create a new controller instance.
*
* @param Webkul\Core\Repositories\ChannelRepository $channel
* @param Webkul\Core\Repositories\ChannelRepository $channel
* @return void
*/
public function __construct(Channel $channel)

View File

@ -1,8 +1,6 @@
<?php
namespace Webkul\Shop\Http\Controllers;
use Webkul\Shop\Http\Controllers\Controller;
namespace Webkul\Core\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
@ -14,16 +12,36 @@ use Webkul\Core\Repositories\SliderRepository as Slider;
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
*/
class SliderController extends controller
{
/**
* Contains route related configuration
*
* @var array
*/
protected $_config;
/**
* SliderRepository object
* Object
*/
protected $slider;
/**
* @var array
*/
protected $channels;
/**
* Create a new controller instance.
*
* @param Webkul\Core\Repositories\SliderRepository $slider
* @return void
*/
public function __construct(Slider $slider)
{
$this->slider = $slider;
$this->_config = request('_config');
}
@ -32,7 +50,8 @@ class SliderController extends controller
*
* @return mixed
*/
public function index() {
public function index()
{
return view($this->_config['view']);
}
@ -41,8 +60,8 @@ class SliderController extends controller
*
* @return mixed
*/
public function create() {
public function create()
{
$channels = core()->getAllChannels();
return view($this->_config['view']);

View File

@ -3,6 +3,7 @@
namespace Webkul\Core\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Storage;
use Webkul\Core\Contracts\Slider as SliderContract;
class Slider extends Model implements SliderContract
@ -12,10 +13,28 @@ class Slider extends Model implements SliderContract
*
* @var array
*/
protected $table = 'sliders';
protected $fillable = [
'title', 'path','content','channel_id'
'title', 'path', 'content', 'channel_id'
];
/**
* Get image url for the category image.
*/
public function image_url()
{
if (! $this->path)
return;
return Storage::url($this->path);
}
/**
* Get image url for the category image.
*/
public function getImageUrlAttribute()
{
return $this->image_url();
}
}

View File

@ -0,0 +1,7 @@
<?php
return [
'slug' => 'O :attribute precisa ter um slug válido.',
'code' => 'O :attribute precisa ser válido.',
'decimal' => 'O :attribute precisa ser válido.'
];

View File

@ -69,11 +69,12 @@ class AddressController extends Controller
*/
public function store()
{
request()->merge(['address1' => implode(PHP_EOL, array_filter(request()->input('address1')))]);
$data = collect(request()->input())->except('_token')->toArray();
$this->validate(request(), [
'address1' => 'string|required',
'address2' => 'string',
'country' => 'string|required',
'state' => 'string|required',
'city' => 'string|required',
@ -119,9 +120,10 @@ class AddressController extends Controller
*/
public function update($id)
{
request()->merge(['address1' => implode(PHP_EOL, array_filter(request()->input('address1')))]);
$this->validate(request(), [
'address1' => 'string|required',
'address2' => 'string',
'country' => 'string|required',
'state' => 'string|required',
'city' => 'string|required',

View File

@ -8,5 +8,5 @@ class CustomerAddress extends Model implements CustomerAddressContract
{
protected $table = 'customer_addresses';
protected $fillable = ['customer_id' ,'address1', 'address2', 'country', 'state', 'city', 'postcode', 'phone', 'default_address'];
protected $fillable = ['customer_id' ,'address1', 'country', 'state', 'city', 'postcode', 'phone', 'default_address'];
}

View File

@ -0,0 +1,17 @@
<?php
return [
'wishlist' => [
'success' => 'Item adicionado com sucesso à lista de desejos',
'failure' => 'Item não pode ser adicionado à lista de desejos',
'already' => 'Item já presente em sua lista de desejos',
'removed' => 'Item removido com sucesso da lista de desejos',
'remove-fail' => 'Item não pode ser removido da lista de desejos',
'empty' => 'Você não tem nenhum item em sua lista de desejos',
'select-options' => 'Precisa selecionar opções antes de adicionar à lista de desejos',
'remove-all-success' => 'Todos os itens da sua lista de desejos foram removidos',
],
'reviews' => [
'empty' => 'Você não avaliou nenhum produto ainda'
]
];

View File

@ -69,7 +69,6 @@ abstract class Paypal extends Payment
'zip' => $billingAddress->postcode,
'state' => $billingAddress->state,
'address1' => $billingAddress->address1,
'address2' => $billingAddress->address2,
'address_override' => 1
]);
}

View File

@ -0,0 +1,14 @@
<?php
return [
[
'key' => 'simple',
'name' => 'Simple',
'sort' => 1
], [
'key' => 'configurable',
'name' => 'Configurable',
'sort' => 2
]
];

View File

@ -20,4 +20,12 @@ class ProductFlat extends Model implements ProductFlatContract
{
return $this->belongsTo(ProductProxy::modelClass());
}
/**
* Get the product variants that owns the product.
*/
public function variants()
{
return $this->hasMany(self::class, 'parent_id');
}
}

View File

@ -21,6 +21,8 @@ class ProductServiceProvider extends ServiceProvider
$this->app->register(EventServiceProvider::class);
$this->app->register(ModuleServiceProvider::class);
$this->composeView();
}
/**
@ -30,6 +32,28 @@ class ProductServiceProvider extends ServiceProvider
*/
public function register()
{
$this->registerConfig();
}
public function registerConfig() {
$this->mergeConfigFrom(
dirname(__DIR__) . '/Config/product_types.php', 'product_types'
);
}
public function composeView() {
view()->composer(['admin::catalog.products.create'], function ($view) {
$items = array();
foreach (config('product_types') as $item) {
$item['children'] = [];
array_push($items, $item);
}
$types = core()->sortItems($items);
$view->with('productTypes', $types);
});
}
}

View File

@ -196,23 +196,14 @@ class ProductRepository extends Repository
if (isset($data['up_sell'])) {
$product->up_sells()->sync($data['up_sell']);
} else {
$data['up_sell'] = [];
$product->up_sells()->sync($data['up_sell']);
}
if (isset($data['cross_sell'])) {
$product->cross_sells()->sync($data['cross_sell']);
} else {
$data['cross_sell'] = [];
$product->cross_sells()->sync($data['cross_sell']);
}
if (isset($data['related_products'])) {
$product->related_products()->sync($data['related_products']);
} else {
$data['related_products'] = [];
$product->related_products()->sync($data['related_products']);
}
$previousVariantIds = $product->variants->pluck('id');
@ -431,7 +422,7 @@ class ProductRepository extends Repository
* @param integer $categoryId
* @return Collection
*/
public function findAllByCategory($categoryId = null)
public function getAll($categoryId = null)
{
$params = request()->input();
@ -448,12 +439,21 @@ class ProductRepository extends Repository
->leftJoin('products', 'product_flat.product_id', '=', 'products.id')
->leftJoin('product_categories', 'products.id', '=', 'product_categories.product_id')
->where('product_flat.visible_individually', 1)
->where('product_flat.status', 1)
->where('product_flat.channel', $channel)
->where('product_flat.locale', $locale)
->whereNotNull('product_flat.url_key')
->where('product_categories.category_id', $categoryId);
->whereNotNull('product_flat.url_key');
if ($categoryId) {
$qb->where('product_categories.category_id', $categoryId);
}
if (is_null(request()->input('status'))) {
$qb->where('product_flat.status', 1);
}
if (is_null(request()->input('visible_individually'))) {
$qb->where('product_flat.visible_individually', 1);
}
$queryBuilder = $qb->leftJoin('product_flat as flat_variants', function($qb) use($channel, $locale) {
$qb->on('product_flat.id', '=', 'flat_variants.parent_id')

View File

@ -122,17 +122,11 @@ return [
'locale_based' => true
], [
'name' => 'address1',
'title' => 'Address Line 1',
'title' => 'Street Address',
'type' => 'text',
'validation' => 'required',
'channel_based' => true,
'locale_based' => false
], [
'name' => 'address2',
'title' => 'Address Line 2',
'type' => 'text',
'channel_based' => true,
'locale_based' => false
], [
'name' => 'zipcode',
'title' => 'Zip',

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/js/shop.js": "/js/shop.js?id=e019a3a0b0cbcc981fd8",
"/css/shop.css": "/css/shop.css?id=f179c72a73d0f8996e4e"
}
"/js/shop.js": "/js/shop.js?id=391400bc9a994e60b97f",
"/css/shop.css": "/css/shop.css?id=2717e6e89dd0757ca282"
}

View File

@ -68,7 +68,14 @@ class OnepageController extends Controller
*/
public function saveAddress(CustomerAddressForm $request)
{
if (Cart::hasError() || !Cart::saveCustomerAddress(request()->all()) || ! $rates = Shipping::collectRates())
$data = request()->all();
// dd($data);
$data['billing']['address1'] = implode(PHP_EOL, array_filter($data['billing']['address1']));
$data['shipping']['address1'] = implode(PHP_EOL, array_filter($data['shipping']['address1']));
if (Cart::hasError() || !Cart::saveCustomerAddress($data) || ! $rates = Shipping::collectRates())
return response()->json(['redirect_url' => route('shop.checkout.cart.index')], 403);
Cart::collectTotals();

View File

@ -406,6 +406,7 @@ input {
.content-container {
display: block;
margin-bottom: 40px;
}
// product card, requires no changes for responsiveness.
@ -907,7 +908,7 @@ section.slider-block {
right: 0px;
li {
padding: 25px !important;
padding: 20px !important;
ul {
margin-top: 5px;
@ -1483,6 +1484,16 @@ section.slider-block {
background-image: url("../images/checkbox-checked.svg");
}
}
.color-swatch {
display: inline-block;
margin-right: 5px;
min-width: 20px;
height: 20px;
border: 1px solid #c7c7c7;
border-radius: 3px;
float: right;
}
}
}
@ -1518,9 +1529,9 @@ section.slider-block {
display: block;
.hero-image {
display:block;
display: inline-block;
visibility: visible;
width: auto;
width: 100%;
img {
height: 400px;

View File

@ -201,7 +201,6 @@ return [
'page-title' => 'زبون اضف استمارة',
'title' => 'أضف العنوان',
'address1' => 'العنوان سطر 1',
'address2' => 'العنوان خط 2',
'country' => 'البلد',
'state' => 'الحالة',
'select-state' => 'انتق a منطقة أو ولاية أو مقاطعة',
@ -401,7 +400,6 @@ return [
'last-name' => 'الاسم الأخير',
'email' => 'البريد الإلكتروني',
'address1' => 'العنوان',
'address2' => 'العنوان 2',
'city' => 'مدينة',
'state' => 'الحالة',
'select-state' => 'انتق a منطقة أو ولاية أو مقاطعة',

View File

@ -128,7 +128,7 @@ return [
'forgot_pass' => 'Forgot Password?',
'button_title' => 'Sign In',
'remember' => 'Remember Me',
'footer' => '© Copyright 2018 Webkul Software, All rights reserved',
'footer' => '© Copyright :year Webkul Software, All rights reserved',
'invalid-creds' => 'Please Check Your Credentials And Try Again',
'verify-first' => 'Verify Your Email Account First',
'resend-verification' => 'Resend Verification Mail Again'
@ -201,8 +201,7 @@ return [
'create' => [
'page-title' => 'Customer - Add Address Form',
'title' => 'Add Address',
'address1' => 'Address Line 1',
'address2' => 'Address Line 2',
'street-address' => 'Street Address',
'country' => 'Country',
'state' => 'State',
'select-state' => 'Select a region, state or province',
@ -404,8 +403,7 @@ return [
'first-name' => 'First Name',
'last-name' => 'Last Name',
'email' => 'Email',
'address1' => 'Address',
'address2' => 'Address 2',
'address1' => 'Street Address',
'city' => 'City',
'state' => 'State',
'select-state' => 'Select a region, state or province',
@ -465,7 +463,7 @@ return [
'shipping-handling' => 'Shipping & Handling',
'tax' => 'Tax',
'grand-total' => 'Grand Total',
'final-summary' => 'Thanks for showing your intrest in our store we will send you track number once it shiped',
'final-summary' => 'Thanks for showing your interest in our store we will send you tracking number once it shipped',
'help' => 'If you need any kind of help please contact us at :support_email',
'thanks' => 'Thanks!'
],
@ -491,7 +489,7 @@ return [
],
'webkul' => [
'copy-right' => '© Copyright 2018 Webkul Software, All rights reserved'
'copy-right' => '© Copyright :year Webkul Software, All rights reserved',
],
'response' => [

View File

@ -0,0 +1,503 @@
<?php
return [
'layouts' => [
'my-account' => 'Minha Conta',
'profile' => 'Perfil',
'address' => 'Endereço',
'reviews' => 'Avaliação',
'wishlist' => 'Lista de Desejos',
'orders' => 'Pedidos',
],
'common' => [
'error' => 'Algo deu errado, por favor, tente novamente mais tarde.'
],
'home' => [
'page-title' => 'Bagisto - Home',
'featured-products' => 'Produtos em Destaque',
'new-products' => 'Novos Produtos',
'verify-email' => 'Verifique sua Conta de E-mail',
'resend-verify-email' => 'Reenviar Email de Verificação'
],
'header' => [
'title' => 'Conta',
'dropdown-text' => 'Gerenciar Carrinho, Pedidos & Lista de Desejos',
'sign-in' => 'Entrar',
'sign-up' => 'Criar Conta',
'account' => 'Conta',
'cart' => 'Carrinho',
'profile' => 'Perfil',
'wishlist' => 'Lista de Desejos',
'cart' => 'Carrinho',
'logout' => 'Sair',
'search-text' => 'Pesquisar produtos aqui'
],
'minicart' => [
'view-cart' => 'Visualizar Carrinho',
'checkout' => 'Finalizar Compra',
'cart' => 'Carrinho',
'zero' => '0'
],
'footer' => [
'subscribe-newsletter' => 'Assinar Newsletter',
'subscribe' => 'Assinar',
'locale' => 'Idioma',
'currency' => 'Moeda',
],
'subscription' => [
'unsubscribe' => 'Cancelar Inscrição',
'subscribe' => 'Inscrever',
'subscribed' => 'Você está agora inscrito nos e-mails de newsletter',
'not-subscribed' => 'Você não pode se inscrever, tente novamente após algum tempo',
'already' => 'Você já está inscrito em nossa lista de assinaturas',
'unsubscribed' => 'Você não está inscrito em nossa lista de assinaturas',
'already-unsub' => 'Você não está mais inscrito em nossa lista de assinaturas',
'not-subscribed' => 'Erro! Emai lnão pode ser enviado, por favor, tente novamente mais tarde'
],
'search' => [
'no-results' => 'Nenhum resultado encontrado',
'page-title' => 'Buscar',
'found-results' => 'Resultados da pesquisa encontrados',
'found-result' => 'Resultado da pesquisa encontrado'
],
'reviews' => [
'title' => 'Título',
'add-review-page-title' => 'Adicionar Avaliação',
'write-review' => 'Escreva uma avaliação',
'review-title' => 'Dê um título a sua avaliação',
'product-review-page-title' => 'Avaliação do Produto',
'rating-reviews' => 'Notas & Avaliação',
'submit' => 'ENVIAR',
'delete-all' => 'Todas Avaliações foram excluídas com sucesso',
'ratingreviews' => ':rating Nota & :review Avaliação',
'star' => 'Estrela',
'percentage' => ':percentage %',
'id-star' => 'estrela',
'name' => 'Nome'
],
'customer' => [
'signup-text' => [
'account_exists' => 'Já tem uma conta',
'title' => 'Entrar'
],
'signup-form' => [
'page-title' => 'Cliente - Formulário de Cadastro',
'title' => 'Cadastrar',
'firstname' => 'Nome',
'lastname' => 'Sobrenome',
'email' => 'Email',
'password' => 'Senha',
'confirm_pass' => 'Confirmar Senha',
'button_title' => 'Cadastrar',
'agree' => 'Concordo',
'terms' => 'Termos',
'conditions' => 'Condições',
'using' => 'usando este site',
'agreement' => 'Acordo',
'success' => 'Conta criado com sucesso, um e-mail foi enviado para sua verificação de conta',
'success-verify-email-not-sent' => 'Conta criada com sucesso, mas o email de verificação não foi enviado',
'failed' => 'Erro! Não é possível criar sua conta, tente novamente mais tarde',
'already-verified' => 'Sua conta já foi confirmada ou tente enviar novamente novo de e-mail de confirmação',
'verification-not-sent' => 'Erro! Problema ao enviar e-mail de verificação, tente novamente mais tarde',
'verification-sent' => 'E-mail de verificação enviado',
'verified' => 'Sua Conta Foi Verificada, Tente Entrar Agora',
'verify-failed' => 'Não podemos verificar sua conta de e-mail',
'dont-have-account' => 'Você não tem conta conosco',
],
'login-text' => [
'no_account' => 'Não tem conta',
'title' => 'Cadastrar',
],
'login-form' => [
'page-title' => 'Cliente - Login',
'title' => 'Entrar',
'email' => 'Email',
'password' => 'Senha',
'forgot_pass' => 'Esqueceu sua Senha?',
'button_title' => 'Entrar',
'remember' => 'Lembrar de mim',
'footer' => '© Copyright :year Webkul Software, Todos os direitos reservados',
'invalid-creds' => 'Por favor, verifique suas credenciais e tente novamente',
'verify-first' => 'Verifique seu e-mail primeiro',
'resend-verification' => 'Reenviar email de verificação novamente'
],
'forgot-password' => [
'title' => 'Recuperar Senha',
'email' => 'Email',
'submit' => 'Enviar',
'page_title' => 'Esqueci minha Senha'
],
'reset-password' => [
'title' => 'Redefinir Senha',
'email' => 'Email registrado',
'password' => 'Senha',
'confirm-password' => 'Confirmar Senha',
'back-link-title' => 'Voltar para Login',
'submit-btn-title' => 'Redefinir Senha'
],
'account' => [
'dashboard' => 'Cliente - Perfil',
'menu' => 'Menu',
'profile' => [
'index' => [
'page-title' => 'Cliente - Perfil',
'title' => 'Perfil',
'edit' => 'Editar',
],
'edit-success' => 'Perfil Atualizado com Sucesso',
'edit-fail' => 'Erro! O perfil não pode ser atualizado, por favor, tente novamente mais tarde',
'unmatch' => 'A senha antiga não corresponde',
'fname' => 'Nome',
'lname' => 'Sobrenome',
'gender' => 'Gênero',
'dob' => 'Data de Nascimento',
'phone' => 'Telefone',
'email' => 'Email',
'opassword' => 'Senha antiga',
'password' => 'Senha',
'cpassword' => 'Confirmar Senha',
'submit' => 'Atualizar Perfil',
'edit-profile' => [
'title' => 'Editar Perfil',
'page-title' => 'Cliente - Editar Perfil'
]
],
'address' => [
'index' => [
'page-title' => 'Cliente - Endereço',
'title' => 'Endereço',
'add' => 'Adicionar Endereço',
'edit' => 'Editar',
'empty' => 'Você não tem nenhum endereço salvo aqui, por favor tente criá-lo clicando no link abaixo',
'create' => 'Criar Endereço',
'delete' => 'Deletar',
'make-default' => 'Definir como Padrão',
'default' => 'Padrão',
'contact' => 'Contato',
'confirm-delete' => 'Você realmente deseja excluir este endereço?',
'default-delete' => 'O endereço padrão não pode ser alterado'
],
'create' => [
'page-title' => 'Cliente - Adicionar Endereço',
'title' => 'Novo Endereço',
'address1' => 'Endereço Linha 1',
'address2' => 'Endereço Linha 2',
'country' => 'País',
'state' => 'Estado',
'select-state' => 'Select a region, state or province',
'city' => 'Cidade',
'postcode' => 'CEP',
'phone' => 'Telefone',
'submit' => 'Salvar Endereço',
'success' => 'Endereço foi adicionado com sucesso.',
'error' => 'Endereço não pode ser adicionado.'
],
'edit' => [
'page-title' => 'Cliente - Editar Endereço',
'title' => 'Editar Endereço',
'submit' => 'Salvar Endereço',
'success' => 'Endereço Atualizado com sucesso.'
],
'delete' => [
'success' => 'Endereço Excluído com sucesso',
'failure' => 'Endereço não pode ser adicionado'
]
],
'order' => [
'index' => [
'page-title' => 'Cliente - Pedidos',
'title' => 'Pedidos',
'order_id' => 'Pedido ID',
'date' => 'Data',
'status' => 'Status',
'total' => 'Total'
],
'view' => [
'page-tile' => 'Pedido #:order_id',
'info' => 'Informação',
'placed-on' => 'Criado em',
'products-ordered' => 'Produtos Pedidos',
'invoices' => 'Faturas',
'shipments' => 'Entregas',
'SKU' => 'SKU',
'product-name' => 'Nome',
'qty' => 'Qtd',
'item-status' => 'Item Status',
'item-ordered' => 'Pedidos (:qty_ordered)',
'item-invoice' => 'Faturados (:qty_invoiced)',
'item-shipped' => 'enviados (:qty_shipped)',
'item-canceled' => 'Cancelados (:qty_canceled)',
'price' => 'Preço',
'total' => 'Total',
'subtotal' => 'Subtotal',
'shipping-handling' => 'Entrega & Manuseio',
'tax' => 'Imposto',
'tax-percent' => 'Percentagem de imposto',
'tax-amount' => 'Valor de Imposto',
'discount-amount' => 'Valor de Desconto',
'grand-total' => 'Total',
'total-paid' => 'Total Pago',
'total-refunded' => 'Total Estornado',
'total-due' => 'Total Devido',
'shipping-address' => 'Endereço de Entrega',
'billing-address' => 'Endereço de Cobrança',
'shipping-method' => 'Método de Entrega',
'payment-method' => 'Método de Pagamento',
'individual-invoice' => 'Fatura #:invoice_id',
'individual-shipment' => 'Entrega #:shipment_id',
'print' => 'Imprimir',
'invoice-id' => 'Fatura Id',
'order-id' => 'Pedido Id',
'order-date' => 'Pedido Date',
'bill-to' => 'Cobrança de',
'ship-to' => 'Enviar para',
'contact' => 'Contato'
]
],
'review' => [
'index' => [
'title' => 'Avaliação',
'page-title' => 'Cliente - Avaliação'
],
'view' => [
'page-tile' => 'Avaliação #:id',
]
]
]
],
'products' => [
'layered-nav-title' => 'Compre por',
'price-label' => 'Tão baixo quanto',
'remove-filter-link-title' => 'Limpar Todos',
'sort-by' => 'Ordernar por',
'from-a-z' => 'De A-Z',
'from-z-a' => 'De Z-A',
'newest-first' => 'Novos Primeiros',
'oldest-first' => 'Antigos Primeiros',
'cheapest-first' => 'Mais baratos primeiros',
'expensive-first' => 'Mas caros primeiros',
'show' => 'Visualiar',
'pager-info' => 'Mostrando :showing de um :total de Itens',
'description' => 'Descrição',
'specification' => 'Especificação',
'total-reviews' => ':total Avaliação',
'total-rating' => ':total_rating Notas & :total_reviews Avaliações',
'by' => 'Por :name',
'up-sell-title' => 'Encontramos outros produtos que você pode gostar!',
'related-product-title' => 'Produtos Relacionados',
'cross-sell-title' => 'Mais escolhas',
'reviews-title' => 'Classificações & Avaliação',
'write-review-btn' => 'Escreva uma Avaliação',
'choose-option' => 'Escolha uma opção',
'sale' => 'Promoção',
'new' => 'Novo',
'empty' => 'Nenhum produto disponível nesta categoria',
'add-to-cart' => 'Adicionar ao Carrinho',
'buy-now' => 'Comprar Agora',
'whoops' => 'Oppss!',
'quantity' => 'Quantidade',
'in-stock' => 'Em Estoque',
'out-of-stock' => 'Fora de Estoque',
'view-all' => 'Ver Tudo',
'select-above-options' => 'Por favor, selecione as opções acima primeiro.'
],
'wishlist' => [
'title' => 'Lista de Desejos',
'deleteall' => 'Excluir Tudo',
'moveall' => 'Adicionar todos ao Carrinho',
'move-to-cart' => 'Adicionar ao Carrinho',
'error' => 'Não é possível adicionar o produto a lista de Desejos devido a problemas desconhecidos, por favor tente mais tarde',
'add' => 'Item adicionado com sucesso a Lista de Desejos',
'remove' => 'Item removido com sucesso da Lista de Desejos',
'moved' => 'Item movido com sucesso para Lista de Desejos',
'move-error' => 'Item não pode ser movido para Lista de Desejos, por favor, tente novamente mais tarde',
'success' => 'Item adicionado com sucesso a Lista de Desejos',
'failure' => 'Item não pode ser adicionado à Lista de Desejos, por favor, tente novamente mais tarde',
'already' => 'Item já presente em sua lista de desejos',
'removed' => 'Item removido com sucesso da Lista de Desejos',
'remove-fail' => 'Item não pode ser removido da lista de desejos, por favor, tente novamente mais tarde',
'empty' => 'Você não tem nenhum item em sua Lista de Desejos',
'remove-all-success' => 'Todos os itens da sua lista de desejos foram removidos',
],
// 'reviews' => [
// 'empty' => 'Você ainda não avaliou qualquer produto'
// ]
'buynow' => [
'no-options' => 'Por favor, selecione as opções antes de comprar este produto'
],
'checkout' => [
'cart' => [
'integrity' => [
'missing_fields' =>'Violação de integridade do sistema de carrinho, alguns campos obrigatórios ausentes',
'missing_options' =>'Violação de Integridade do Sistema de Carrinho, Faltam Opções para o Produto Configurável',
],
'create-error' => 'Encontrou algum problema ao fazer a instância do carrinho',
'title' => 'Carrinho de Compras',
'empty' => 'Seu carrinho de compras está vazio',
'update-cart' => 'Atualizar Carrinho',
'continue-shopping' => 'Continuar Comprando',
'proceed-to-checkout' => 'Finalizar Compra',
'remove' => 'Remover',
'remove-link' => 'Remover',
'move-to-wishlist' => 'Mover para Lista de Desejos',
'move-to-wishlist-success' => 'Item Movido para Lista de Desejos',
'move-to-wishlist-error' => 'Não foi possivel Mover Item para Lista de Desejos, Por favor, tente novamente mais tarde',
'add-config-warning' => 'Por favor, selecione a opção antes de adicionar ao carrinho',
'quantity' => [
'quantity' => 'Quantidade',
'success' => 'Carrinho Item(s) Atualizados com Sucesso!',
'illegal' => 'Quantidade não pode ser menor que um',
'inventory_warning' => 'A quantidade solicitada não está disponível, por favor, tente novamente mais tarde',
'error' => 'Não é possível atualizar o item(s) no momento, por favor, tente novamente mais tarde'
],
'item' => [
'error_remove' => 'Nenhum item para remover do carrinho',
'success' => 'Item foi adicionado com sucesso ao carrinho',
'success-remove' => 'Item foi removido com sucesso do carrinho',
'error-add' => 'Item não pode ser adicionado ao carrinho, por favor, tente novamente mais tarde',
],
'quantity-error' => 'Quantidade solicitada não está disponível',
'cart-subtotal' => 'Subtotal do carrinho',
'cart-remove-action' => 'Você realmente quer fazer isso ?'
],
'onepage' => [
'title' => 'Finalização Compra',
'information' => 'Informação',
'shipping' => 'Entrega',
'payment' => 'Pagamento',
'complete' => 'Completo',
'billing-address' => 'Endereço de Cobrança',
'sign-in' => 'Entrar',
'first-name' => 'Nome',
'last-name' => 'Sobrenome',
'email' => 'E-mail',
'address1' => 'Endereço',
'address2' => 'Endereço 2',
'city' => 'Cidade',
'state' => 'Estado',
'select-state' => 'Selecione uma região, estado e província',
'postcode' => 'CEP',
'phone' => 'Telefone',
'country' => 'País',
'order-summary' => 'Resumo do Pedido',
'shipping-address' => 'Endereço de Entrega',
'use_for_shipping' => 'Enviar para esse endereçõ',
'continue' => 'Continuar',
'shipping-method' => 'Selecione o Método de Entrega',
'payment-methods' => 'Selecione o Método de Pagamento',
'payment-method' => 'Método de Pagamento',
'summary' => 'Resumo do Pedido',
'price' => 'Preço',
'quantity' => 'Quantidade',
'billing-address' => 'Endereço de Cobrança',
'shipping-address' => 'Endereço de Entrega',
'contact' => 'Contato',
'place-order' => 'Enviar Pedido',
'new-address' => 'Add Novo Endereço',
'save_as_address' => 'Salvar Endereço'
],
'total' => [
'order-summary' => 'Resumo do Pedido',
'sub-total' => 'Itens',
'grand-total' => 'Total',
'delivery-charges' => 'Taxas de Entrega',
'tax' => 'Imposto',
'price' => 'preço'
],
'success' => [
'title' => 'Pedido enviado com sucesso!',
'thanks' => 'Obrigado pelo seu pedido!',
'order-id-info' => 'Seu ID do Pedido é #:order_id',
'info' => 'Nós lhe enviaremos por e-mail, detalhes do seu pedido e informações de rastreamento'
]
],
'mail' => [
'order' => [
'subject' => 'Confirmação de Novo Pedido',
'heading' => 'Confirmação de Pedido!',
'dear' => 'Caro :customer_name',
'greeting' => 'Obrigado pelo seu Pedido :order_id realizado em :created_at',
'summary' => 'Resumo do Pedido',
'shipping-address' => 'Endereço de Entrega',
'billing-address' => 'Endereço de Cobrança',
'contact' => 'Contato',
'shipping' => 'Entrega',
'payment' => 'Pagamento',
'price' => 'Preço',
'quantity' => 'Quantidade',
'subtotal' => 'Subtotal',
'shipping-handling' => 'Envio & Manuseio',
'tax' => 'Imposto',
'grand-total' => 'Total',
'final-summary' => 'Obrigado por mostrar o seu interesse em nossa loja nós lhe enviaremos o número de rastreamento assim que for despachado',
'help' => 'Se você precisar de algum tipo de ajuda, por favor entre em contato conosco :support_email',
'thanks' => 'Muito Obrigado!'
],
'invoice' => [
'heading' => 'Sua Fatura #:invoice_id do Pedido #:order_id',
'subject' => 'Fatura do seu pedido #:order_id',
'summary' => 'Resumo da Fatura',
],
'shipment' => [
'heading' => 'Sua Entrega #:shipment_id do Pedido #:order_id',
'subject' => 'Entrega do seu pedido #:order_id',
'summary' => 'Resumo da Entrega',
'carrier' => 'Transportadora',
'tracking-number' => 'Código de Rastreio'
],
'forget-password' => [
'dear' => 'Caro :name',
'info' => 'Você está recebendo este e-mail porque recebemos uma solicitação de redefinição de senha para sua conta',
'reset-password' => 'Redefinir Senha',
'final-summary' => 'Se você não solicitou uma redefinição de senha, nenhuma ação adicional é necessária',
'thanks' => 'Muito Obrigado!'
]
],
'webkul' => [
'copy-right' => '© Copyright :year Webkul Software, Todos os Direitos Reservados',
],
'response' => [
'create-success' => ':name criado com sucesso.',
'update-success' => ':name atualizado com sucesso.',
'delete-success' => ':name excluído com sucesso.',
'submit-success' => ':name enviado com sucesso.'
],
];

View File

@ -137,9 +137,12 @@
completedStep: 0,
address: {
billing: {
address1: [''],
use_for_shipping: true,
},
shipping: {},
shipping: {
address1: ['']
},
},
selected_shipping_method: '',
selected_payment_method: '',

View File

@ -22,10 +22,7 @@
</li>
<li class="mb-5">
@{{ addresses.address1 }}
<span v-if="addresses.hasOwnProperty('address2') && addresses.address2">
,<br/> @{{ addresses.address2 }},
</span>
@{{ addresses.address1 }},
</li>
<li class="mb-5">
@ -110,25 +107,25 @@
</span>
</div>
<div class="control-group" :class="[errors.has('address-form.billing[address1]') ? 'has-error' : '']">
<label for="billing[address1]" class="required">
<div class="control-group" :class="[errors.has('address-form.billing[address1][]') ? 'has-error' : '']">
<label for="billing[address1][]" class="required">
{{ __('shop::app.checkout.onepage.address1') }}
</label>
<input type="text" v-validate="'required'" class="control" id="billing[address1]" name="billing[address1]" v-model="address.billing.address1" data-vv-as="&quot;{{ __('shop::app.checkout.onepage.address1') }}&quot;"/>
<input type="text" v-validate="'required'" class="control" id="billing[address1][]" name="billing[address1][]" v-model="address.billing.address1[0]" data-vv-as="&quot;{{ __('shop::app.checkout.onepage.address1') }}&quot;"/>
<span class="control-error" v-if="errors.has('address-form.billing[address1]')">
@{{ errors.first('address-form.billing[address1]') }}
<span class="control-error" v-if="errors.has('address-form.billing[address1][]')">
@{{ errors.first('address-form.billing[address1][]') }}
</span>
</div>
<div class="control-group">
<label for="billing[address2]">
{{ __('shop::app.checkout.onepage.address2') }}
</label>
<input type="text" class="control" id="billing[address2]" name="billing[address2]" v-model="address.billing.address2"/>
</div>
@if (core()->getConfigData('customer.settings.address.street_lines') && core()->getConfigData('customer.settings.address.street_lines') > 1)
<div class="control-group" style="margin-top: -25px;">
@for ($i = 1; $i < core()->getConfigData('customer.settings.address.street_lines'); $i++)
<input type="text" class="control" name="address1[]" v-model="address.billing.address1[{{$i}}]">
@endfor
</div>
@endif
<div class="control-group" :class="[errors.has('address-form.billing[city]') ? 'has-error' : '']">
<label for="billing[city]" class="required">
@ -253,10 +250,7 @@
</li>
<li class="mb-5">
@{{ addresses.address1 }}
<span v-if="addresses.hasOwnProperty('address2') && addresses.address2">
,<br/> @{{ addresses.address2 }},
</span>
@{{ addresses.address1 }},
</li>
<li class="mb-5">
@ -329,25 +323,25 @@
</span>
</div>
<div class="control-group" :class="[errors.has('address-form.shipping[address1]') ? 'has-error' : '']">
<label for="shipping[address1]" class="required">
<div class="control-group" :class="[errors.has('address-form.shipping[address1][]') ? 'has-error' : '']">
<label for="shipping[address1][]" class="required">
{{ __('shop::app.checkout.onepage.address1') }}
</label>
<input type="text" v-validate="'required'" class="control" id="shipping[address1]" name="shipping[address1]" v-model="address.shipping.address1" data-vv-as="&quot;{{ __('shop::app.checkout.onepage.address1') }}&quot;"/>
<input type="text" v-validate="'required'" class="control" id="shipping[address1][]" name="shipping[address1][]" v-model="address.shipping.address1[0]" data-vv-as="&quot;{{ __('shop::app.checkout.onepage.address1') }}&quot;"/>
<span class="control-error" v-if="errors.has('address-form.shipping[address1]')">
@{{ errors.first('address-form.shipping[address1]') }}
<span class="control-error" v-if="errors.has('address-form.shipping[address1][]')">
@{{ errors.first('address-form.shipping[address1][]') }}
</span>
</div>
<div class="control-group">
<label for="shipping[address2]">
{{ __('shop::app.checkout.onepage.address2') }}
</label>
<input type="text" class="control" id="shipping[address2]" name="shipping[address2]" v-model="address.shipping.address2"/>
</div>
@if (core()->getConfigData('customer.settings.address.street_lines') && core()->getConfigData('customer.settings.address.street_lines') > 1)
<div class="control-group" style="margin-top: -25px;">
@for ($i = 1; $i < core()->getConfigData('customer.settings.address.street_lines'); $i++)
<input type="text" class="control" name="address1[]" v-model="address.shipping.address1[{{$i}}]">
@endfor
</div>
@endif
<div class="control-group" :class="[errors.has('address-form.shipping[city]') ? 'has-error' : '']">
<label for="shipping[city]" class="required">

View File

@ -12,7 +12,7 @@
{!! view_render_event('bagisto.shop.checkout.payment-method.before', ['payment' => $payment]) !!}
<div class="checkout-method-group mb-25">
<div class="checkout-method-group mb-20">
<div class="line-one">
<label class="radio-container">
<input v-validate="'required'" type="radio" id="{{ $payment['method'] }}" name="payment[method]" value="{{ $payment['method'] }}" v-model="payment.method" @change="methodSelected()" data-vv-as="&quot;{{ __('shop::app.checkout.onepage.payment-method') }}&quot;">

View File

@ -16,7 +16,7 @@
{{ $billingAddress->name }}
</li>
<li class="mb-10">
{{ $billingAddress->address1 }}, <br/>{{ $billingAddress->address2 ? $billingAddress->address2 . ',' : '' }} {{ $billingAddress->state }}
{{ $billingAddress->address1 }},<br/> {{ $billingAddress->state }}
</li>
<li class="mb-10">
{{ country()->name($billingAddress->country) }} {{ $billingAddress->postcode }}
@ -44,7 +44,7 @@
{{ $shippingAddress->name }}
</li>
<li class="mb-10">
{{ $shippingAddress->address1 }}, <br/>{{ $shippingAddress->address2 ? $shippingAddress->address2 . ',' : '' }} , {{ $shippingAddress->state }}
{{ $shippingAddress->address1 }},<br/> {{ $shippingAddress->state }}
</li>
<li class="mb-10">
{{ country()->name($shippingAddress->country) }} {{ $shippingAddress->postcode }}

View File

@ -12,7 +12,7 @@
{!! view_render_event('bagisto.shop.checkout.shipping-method.before', ['rateGroup' => $rateGroup]) !!}
@foreach ($rateGroup['rates'] as $rate)
<div class="checkout-method-group mb-25">
<div class="checkout-method-group mb-20">
<div class="line-one">
<label class="radio-container">
<input v-validate="'required'" type="radio" id="{{ $rate->method }}" name="shipping_method" data-vv-as="&quot;{{ __('shop::app.checkout.onepage.shipping-method') }}&quot;" value="{{ $rate->method }}" v-model="selected_shipping_method" @change="methodSelected()">

View File

@ -26,17 +26,19 @@
{!! view_render_event('bagisto.shop.customers.account.address.create_form_controls.before') !!}
<div class="control-group" :class="[errors.has('address1') ? 'has-error' : '']">
<label for="address1" class="required">{{ __('shop::app.customer.account.address.create.address1') }}</label>
<input type="text" class="control" name="address1" v-validate="'required'" data-vv-as="&quot;{{ __('shop::app.customer.account.address.create.address1') }}&quot;">
<span class="control-error" v-if="errors.has('address1')">@{{ errors.first('address1') }}</span>
<div class="control-group" :class="[errors.has('address1[]') ? 'has-error' : '']">
<label for="address1[]" class="required">{{ __('shop::app.customer.account.address.create.street-address') }}</label>
<input type="text" class="control" name="address1[]" v-validate="'required'" data-vv-as="&quot;{{ __('shop::app.customer.account.address.create.street-address') }}&quot;">
<span class="control-error" v-if="errors.has('address1[]')">@{{ errors.first('address1[]') }}</span>
</div>
<div class="control-group" :class="[errors.has('address2') ? 'has-error' : '']">
<label for="address2">{{ __('shop::app.customer.account.address.create.address2') }}</label>
<input type="text" class="control" name="address2">
<span class="control-error" v-if="errors.has('address2')">@{{ errors.first('address2') }}</span>
</div>
@if (core()->getConfigData('customer.settings.address.street_lines') && core()->getConfigData('customer.settings.address.street_lines') > 1)
<div class="control-group" style="margin-top: -25px;">
@for ($i = 1; $i < core()->getConfigData('customer.settings.address.street_lines'); $i++)
<input type="text" class="control" name="address1[]">
@endfor
</div>
@endif
@include ('shop::customers.account.address.country-state', ['countryCode' => old('country'), 'stateCode' => old('state')])

View File

@ -27,17 +27,22 @@
{!! view_render_event('bagisto.shop.customers.account.address.edit_form_controls.before', ['address' => $address]) !!}
<div class="control-group" :class="[errors.has('address1') ? 'has-error' : '']">
<label for="first_name" class="required">{{ __('shop::app.customer.account.address.create.address1') }}</label>
<input type="text" class="control" name="address1" v-validate="'required'" value="{{ $address->address1 }}" data-vv-as="&quot;{{ __('shop::app.customer.account.address.create.address1') }}&quot;">
<span class="control-error" v-if="errors.has('address1')">@{{ errors.first('address1') }}</span>
<?php $addresses = explode(PHP_EOL, $address->address1); ?>
<div class="control-group" :class="[errors.has('address1[]') ? 'has-error' : '']">
<label for="first_name" class="required">{{ __('shop::app.customer.account.address.create.street-address') }}</label>
<input type="text" class="control" name="address1[]" v-validate="'required'" value="{{ isset($addresses[0]) ? $addresses[0] : '' }}" data-vv-as="&quot;{{ __('shop::app.customer.account.address.create.street-address') }}&quot;">
<span class="control-error" v-if="errors.has('address1[]')">@{{ errors.first('address1[]') }}</span>
</div>
<div class="control-group" :class="[errors.has('address2') ? 'has-error' : '']">
<label for="address2">{{ __('shop::app.customer.account.address.create.address2') }}</label>
<input type="text" class="control" name="address2" value ="{{ $address->address2 }}">
<span class="control-error" v-if="errors.has('address2')">@{{ errors.first('address2') }}</span>
</div>
@if (core()->getConfigData('customer.settings.address.street_lines') && core()->getConfigData('customer.settings.address.street_lines') > 1)
<div class="control-group" style="margin-top: -25px;">
@for ($i = 1; $i < core()->getConfigData('customer.settings.address.street_lines'); $i++)
<input type="text" class="control" name="address1[]" value="{{ isset($addresses[$i]) ? $addresses[$i] : '' }}">
@endfor
</div>
@endif
@include ('shop::customers.account.address.country-state', ['countryCode' => old('country') ?? $address->country, 'stateCode' => old('state') ?? $address->state])

View File

@ -45,7 +45,7 @@
</li>
<li class="mt-5">
{{ $address->address1 }}, {{ $address->address2 ? $address->address2 . ',' : '' }}
{{ $address->address1 }},
</li>
<li class="mt-5">

View File

@ -111,7 +111,7 @@
<tr>
<td>
<p>{{ $invoice->order->billing_address->name }}</p>
<p>{{ $invoice->order->billing_address->address1 }}, {{ $invoice->order->billing_address->address2 ? $invoice->order->billing_address->address2 . ',' : '' }}</p>
<p>{{ $invoice->order->billing_address->address1 }}</p>
<p>{{ $invoice->order->billing_address->city }}</p>
<p>{{ $invoice->order->billing_address->state }}</p>
<p>{{ country()->name($invoice->order->billing_address->country) }} {{ $invoice->order->billing_address->postcode }}</p>
@ -119,7 +119,7 @@
</td>
<td>
<p>{{ $invoice->order->shipping_address->name }}</p>
<p>{{ $invoice->order->shipping_address->address1 }}, {{ $invoice->order->shipping_address->address2 ? $invoice->order->shipping_address->address2 . ',' : '' }}</p>
<p>{{ $invoice->order->shipping_address->address1 }}</p>
<p>{{ $invoice->order->shipping_address->city }}</p>
<p>{{ $invoice->order->shipping_address->state }}</p>
<p>{{ country()->name($invoice->order->shipping_address->country) }} {{ $invoice->order->shipping_address->postcode }}</p>

View File

@ -41,7 +41,7 @@
</div>
<div>
{{ $order->shipping_address->address1 }}, {{ $order->shipping_address->address2 ? $order->shipping_address->address2 . ',' : '' }} {{ $order->shipping_address->state }}
{{ $order->shipping_address->address1 }}, {{ $order->shipping_address->state }}
</div>
<div>
@ -73,7 +73,7 @@
</div>
<div>
{{ $order->billing_address->address1 }}, {{ $order->billing_address->address2 ? $order->billing_address->address2 . ',' : '' }} {{ $order->billing_address->state }}
{{ $order->billing_address->address1 }}, {{ $order->billing_address->state }}
</div>
<div>

View File

@ -39,7 +39,7 @@
</div>
<div>
{{ $order->shipping_address->address1 }}, {{ $order->shipping_address->address2 ? $order->shipping_address->address2 . ',' : '' }} {{ $order->shipping_address->state }}
{{ $order->shipping_address->address1 }}, {{ $order->shipping_address->state }}
</div>
<div>
@ -71,7 +71,7 @@
</div>
<div>
{{ $order->billing_address->address1 }}, {{ $order->billing_address->address2 ? $order->billing_address->address2 . ',' : '' }} {{ $order->billing_address->state }}
{{ $order->billing_address->address1 }}, {{ $order->billing_address->state }}
</div>
<div>

View File

@ -41,7 +41,7 @@
</div>
<div>
{{ $order->shipping_address->address1 }}, {{ $order->shipping_address->address2 ? $order->shipping_address->address2 . ',' : '' }} {{ $order->shipping_address->state }}
{{ $order->shipping_address->address1 }}, {{ $order->shipping_address->state }}
</div>
<div>
@ -83,7 +83,7 @@
</div>
<div>
{{ $order->billing_address->address1 }}, {{ $order->billing_address->address2 ? $order->billing_address->address2 . ',' : '' }} {{ $order->billing_address->state }}
{{ $order->billing_address->address1 }}, {{ $order->billing_address->state }}
</div>
<div>

View File

@ -67,7 +67,7 @@
<div class="footer-bottom">
<p>
{{ __('shop::app.webkul.copy-right') }}
{{ __('shop::app.webkul.copy-right', ['year' => date('Y')]) }}
</p>
</div>

View File

@ -26,7 +26,13 @@
@endif
</div>
<?php $products = $productRepository->findAllByCategory($category->id); ?>
@if ($category->description)
<div class="category-description">
{!! $category->description !!}
</div>
@endif
<?php $products = $productRepository->getAll($category->id); ?>
@if ($products->count())

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/js/ui.js": "/js/ui.js?id=83b5b520995eba4ce1f3",
"/css/ui.css": "/css/ui.css?id=6e9dd13119891a48ec16"
}
"/js/ui.js": "/js/ui.js?id=0219a3829322d1811a09",
"/css/ui.css": "/css/ui.css?id=212dcb4147a9796aee09"
}

View File

@ -207,7 +207,9 @@ abstract class DataGrid
if ($column['searchable'] == true) {
if($this->enableFilterMap && isset($this->filterMap[$column['index']])) {
$collection->orWhere($this->filterMap[$column['index']], 'like', '%'.$info['all'].'%');
} else {
} else if($this->enableFilterMap && !isset($this->filterMap[$column['index']])) {
$collection->orWhere($column['index'], 'like', '%'.$info['all'].'%');
}else {
$collection->orWhere($column['index'], 'like', '%'.$info['all'].'%');
}
}
@ -215,6 +217,12 @@ abstract class DataGrid
});
}
} else {
foreach ($this->completeColumnDetails as $column) {
if($column['index'] == $columnName && !$column['filterable']) {
return $collection;
}
}
if (array_keys($info)[0] == "like" || array_keys($info)[0] == "nlike") {
foreach ($info as $condition => $filter_value) {
if ($this->enableFilterMap && isset($this->filterMap[$columnName])) {
@ -223,6 +231,12 @@ abstract class DataGrid
$this->operators[$condition],
'%'.$filter_value.'%'
);
} else if($this->enableFilterMap && !isset($this->filterMap[$columnName])) {
$collection->where(
$columnName,
$this->operators[$condition],
'%'.$filter_value.'%'
);
} else {
$collection->where(
$columnName,
@ -240,6 +254,12 @@ abstract class DataGrid
$this->operators[$condition],
$filter_value
);
} else if($this->enableFilterMap && !isset($this->filterMap[$columnName])) {
$collection->whereDate(
$columnName,
$this->operators[$condition],
$filter_value
);
} else {
$collection->whereDate(
$columnName,
@ -254,6 +274,12 @@ abstract class DataGrid
$this->operators[$condition],
$filter_value
);
} else if($this->enableFilterMap && !isset($this->filterMap[$columnName])) {
$collection->where(
$columnName,
$this->operators[$condition],
$filter_value
);
} else {
$collection->where(
$columnName,

View File

@ -463,8 +463,9 @@ h2 {
.control-info {
display: block;
font-size: 16px;
color: #242424;
font-size: 14px;
color: #6F6F6F;
font-style: italic;
}
.control-error {

View File

@ -11,6 +11,7 @@ return [
'edit' => 'Do you really want to edit this :resource?',
],
'zero-index' => 'Index columns can have values greater than zero only',
'no-records' => 'No Records Found',
'filter-fields-missing' => 'Some of the required field is null, please check column, condition and value properly',
'click_on_action' => 'Do you really want to perform this action?',

View File

@ -32,9 +32,11 @@
<select class="filter-column-select control" v-model="filterColumn" v-on:click="getColumnOrAlias(filterColumn)">
<option selected disabled>{{ __('ui::app.datagrid.column') }}</option>
@foreach($results['columns'] as $column)
<option value="{{ $column['index'] }}">
{{ $column['label'] }}
</option>
@if(isset($column['filterable']) && $column['filterable'])
<option value="{{ $column['index'] }}">
{{ $column['label'] }}
</option>
@endif
@endforeach
</select>
</div>
@ -338,7 +340,7 @@
if (this.filterIndex == this.columnOrAlias && (this.numberValue == 0 || this.numberValue < 0)) {
indexConditions = false;
alert('index columns can have values greater than zero only');
alert('{{__('ui::app.datagrid.zero-index')}}');
}
if(indexConditions)