Merge branch 'master' of https://github.com/bagisto/bagisto into 3477
|
|
@ -40,7 +40,7 @@ jobs:
|
|||
- name: Composer install
|
||||
run: |
|
||||
set -e
|
||||
composer install --no-interaction --ansi --no-progress --no-suggest --optimize-autoloader
|
||||
composer install --no-cache
|
||||
|
||||
- name: Migrate database
|
||||
run: set -e && php artisan migrate --env=testing
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
||||
|
||||
class EventServiceProvider extends ServiceProvider
|
||||
|
|
@ -13,8 +15,8 @@ class EventServiceProvider extends ServiceProvider
|
|||
* @var array
|
||||
*/
|
||||
// protected $listen = [
|
||||
// 'App\Events\Event' => [
|
||||
// 'App\Listeners\EventListener',
|
||||
// Registered::class => [
|
||||
// SendEmailVerificationNotification::class,
|
||||
// ],
|
||||
// ];
|
||||
|
||||
|
|
@ -26,7 +28,5 @@ class EventServiceProvider extends ServiceProvider
|
|||
public function boot()
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
//
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -14,7 +14,7 @@ class RouteServiceProvider extends ServiceProvider
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $namespace = 'App\Http\Controllers';
|
||||
// protected $namespace = 'App\Http\Controllers';
|
||||
|
||||
/**
|
||||
* Define your route model bindings, pattern filters, etc.
|
||||
|
|
@ -36,8 +36,6 @@ class RouteServiceProvider extends ServiceProvider
|
|||
$this->mapApiRoutes();
|
||||
|
||||
$this->mapWebRoutes();
|
||||
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -8,14 +8,7 @@
|
|||
"license": "MIT",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"php": "^7.2.5",
|
||||
"ext-curl": "*",
|
||||
"ext-intl": "*",
|
||||
"ext-mbstring": "*",
|
||||
"ext-openssl": "*",
|
||||
"ext-pdo": "*",
|
||||
"ext-pdo_mysql": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"php": "^7.3",
|
||||
"algolia/algoliasearch-client-php": "^2.2",
|
||||
"astrotomic/laravel-translatable": "^11.0.0",
|
||||
"aws/aws-sdk-php": "^3.171",
|
||||
|
|
@ -23,23 +16,25 @@
|
|||
"bagisto/bagisto-package-generator": "9999999-dev",
|
||||
"bagistobrasil/bagisto-product-social-share": "^0.1.2",
|
||||
"barryvdh/laravel-debugbar": "^3.1",
|
||||
"barryvdh/laravel-dompdf": "0.8.6",
|
||||
"doctrine/dbal": "2.9.2",
|
||||
"barryvdh/laravel-dompdf": "^0.8",
|
||||
"doctrine/dbal": "^2.9",
|
||||
"enshrined/svg-sanitize": "^0.14.0",
|
||||
"facade/ignition": "^2.3.6",
|
||||
"fideloper/proxy": "^4.2",
|
||||
"flynsarmy/db-blade-compiler": "^5.5",
|
||||
"fzaninotto/faker": "^1.4",
|
||||
"guzzlehttp/guzzle": "~6.3",
|
||||
"guzzlehttp/guzzle": "^7.0.1",
|
||||
"intervention/image": "^2.4",
|
||||
"intervention/imagecache": "^2.3",
|
||||
"kalnoy/nestedset": "5.0.1",
|
||||
"kalnoy/nestedset": "^5.0",
|
||||
"khaled.alshamaa/ar-php": "^6.0.0",
|
||||
"konekt/concord": "^1.2",
|
||||
"laravel/framework": "^7.0",
|
||||
"laravel/framework": "^8.0",
|
||||
"laravel/legacy-factories": "^1.1",
|
||||
"laravel/scout": "^8.0",
|
||||
"laravel/socialite": "^4.4",
|
||||
"laravel/socialite": "^5.0",
|
||||
"laravel/tinker": "^2.0",
|
||||
"laravel/ui": "^2.0",
|
||||
"laravel/ui": "^3.0",
|
||||
"maatwebsite/excel": "^3.1.26",
|
||||
"paypal/paypal-checkout-sdk": "1.0.1",
|
||||
"prettus/l5-repository": "^2.6",
|
||||
|
|
@ -53,8 +48,8 @@
|
|||
"codeception/module-webdriver": "^1.0",
|
||||
"filp/whoops": "^2.0",
|
||||
"mockery/mockery": "^1.3.1",
|
||||
"nunomaduro/collision": "^4.1",
|
||||
"phpunit/phpunit": "^8.5"
|
||||
"nunomaduro/collision": "^5.0",
|
||||
"phpunit/phpunit": "9.0"
|
||||
},
|
||||
"replace": {
|
||||
"bagisto/laravel-user": "v0.1.0",
|
||||
|
|
@ -78,12 +73,10 @@
|
|||
"bagisto/laravel-discount": "v0.1.0"
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"database/seeds",
|
||||
"database/factories"
|
||||
],
|
||||
"psr-4": {
|
||||
"App\\": "app/",
|
||||
"Database\\Factories\\": "database/factories/",
|
||||
"Database\\Seeders\\": "database/seeders/",
|
||||
"Webkul\\User\\": "packages/Webkul/User/src",
|
||||
"Webkul\\Admin\\": "packages/Webkul/Admin/src",
|
||||
"Webkul\\Ui\\": "packages/Webkul/Ui/src",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|
|
||||
|--------------------------------------------------------------------------
|
||||
| Flare API key
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Specify Flare's API key below to enable error reporting to the service.
|
||||
|
|
||||
| More info: https://flareapp.io/docs/general/projects
|
||||
|
|
||||
*/
|
||||
|
||||
'key' => env('FLARE_KEY'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Reporting Options
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| These options determine which information will be transmitted to Flare.
|
||||
|
|
||||
*/
|
||||
|
||||
'reporting' => [
|
||||
'anonymize_ips' => true,
|
||||
'collect_git_information' => false,
|
||||
'report_queries' => true,
|
||||
'maximum_number_of_collected_queries' => 200,
|
||||
'report_query_bindings' => true,
|
||||
'report_view_data' => true,
|
||||
'grouping_type' => null,
|
||||
'report_logs' => true,
|
||||
'maximum_number_of_collected_logs' => 200,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Reporting Log statements
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If this setting is `false` log statements won't be send as events to Flare,
|
||||
| no matter which error level you specified in the Flare log channel.
|
||||
|
|
||||
*/
|
||||
|
||||
'send_logs_as_events' => true,
|
||||
];
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Editor
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Choose your preferred editor to use when clicking any edit button.
|
||||
|
|
||||
| Supported: "phpstorm", "vscode", "vscode-insiders",
|
||||
| "sublime", "atom", "nova"
|
||||
|
|
||||
*/
|
||||
|
||||
'editor' => env('IGNITION_EDITOR', 'phpstorm'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Theme
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify which theme Ignition should use.
|
||||
|
|
||||
| Supported: "light", "dark", "auto"
|
||||
|
|
||||
*/
|
||||
|
||||
'theme' => env('IGNITION_THEME', 'light'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Sharing
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| You can share local errors with colleagues or others around the world.
|
||||
| Sharing is completely free and doesn't require an account on Flare.
|
||||
|
|
||||
| If necessary, you can completely disable sharing below.
|
||||
|
|
||||
*/
|
||||
|
||||
'enable_share_button' => env('IGNITION_SHARING_ENABLED', true),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Register Ignition commands
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Ignition comes with an additional make command that lets you create
|
||||
| new solution classes more easily. To keep your default Laravel
|
||||
| installation clean, this command is not registered by default.
|
||||
|
|
||||
| You can enable the command registration below.
|
||||
|
|
||||
*/
|
||||
'register_commands' => env('REGISTER_IGNITION_COMMANDS', false),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Ignored Solution Providers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| You may specify a list of solution providers (as fully qualified class
|
||||
| names) that shouldn't be loaded. Ignition will ignore these classes
|
||||
| and possible solutions provided by them will never be displayed.
|
||||
|
|
||||
*/
|
||||
|
||||
'ignored_solution_providers' => [
|
||||
\Facade\Ignition\SolutionProviders\MissingPackageSolutionProvider::class,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Runnable Solutions
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Some solutions that Ignition displays are runnable and can perform
|
||||
| various tasks. Runnable solutions are enabled when your app has
|
||||
| debug mode enabled. You may also fully disable this feature.
|
||||
|
|
||||
*/
|
||||
|
||||
'enable_runnable_solutions' => env('IGNITION_ENABLE_RUNNABLE_SOLUTIONS', null),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Remote Path Mapping
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If you are using a remote dev server, like Laravel Homestead, Docker, or
|
||||
| even a remote VPS, it will be necessary to specify your path mapping.
|
||||
|
|
||||
| Leaving one, or both of these, empty or null will not trigger the remote
|
||||
| URL changes and Ignition will treat your editor links as local files.
|
||||
|
|
||||
| "remote_sites_path" is an absolute base path for your sites or projects
|
||||
| in Homestead, Vagrant, Docker, or another remote development server.
|
||||
|
|
||||
| Example value: "/home/vagrant/Code"
|
||||
|
|
||||
| "local_sites_path" is an absolute base path for your sites or projects
|
||||
| on your local computer where your IDE or code editor is running on.
|
||||
|
|
||||
| Example values: "/Users/<name>/Code", "C:\Users\<name>\Documents\Code"
|
||||
|
|
||||
*/
|
||||
|
||||
'remote_sites_path' => env('IGNITION_REMOTE_SITES_PATH', ''),
|
||||
'local_sites_path' => env('IGNITION_LOCAL_SITES_PATH', ''),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Housekeeping Endpoint Prefix
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Ignition registers a couple of routes when it is enabled. Below you may
|
||||
| specify a route prefix that will be used to host all internal links.
|
||||
|
|
||||
*/
|
||||
'housekeeping_endpoint_prefix' => '_ignition',
|
||||
|
||||
];
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Webkul\Velocity\Database\Seeders\VelocityMetaDataSeeder;
|
||||
use Webkul\Admin\Database\Seeders\DatabaseSeeder as BagistoDatabaseSeeder;
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
/*!
|
||||
* Sizzle CSS Selector Engine v2.3.5
|
||||
* Sizzle CSS Selector Engine v2.3.6
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://js.foundation/
|
||||
*
|
||||
* Date: 2020-03-14
|
||||
* Date: 2021-02-16
|
||||
*/
|
||||
|
||||
/*!
|
||||
|
|
@ -16,17 +16,17 @@
|
|||
*/
|
||||
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.5.1
|
||||
* jQuery JavaScript Library v3.6.0
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2020-05-04T22:49Z
|
||||
* Date: 2021-03-02T17:08Z
|
||||
*/
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/admin.js": "/js/admin.js?id=e4c3d46b82083613b407",
|
||||
"/css/admin.css": "/css/admin.css?id=f2b20e4283a639808ef6"
|
||||
"/js/admin.js": "/js/admin.js?id=c156943c5badc7f93027",
|
||||
"/css/admin.css": "/css/admin.css?id=f762f47b1bbc81ec1f84"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,12 @@ return [
|
|||
'route' => 'admin.sales.refunds.index',
|
||||
'sort' => 4,
|
||||
'icon-class' => '',
|
||||
], [
|
||||
'key' => 'sales.transactions',
|
||||
'name' => 'admin::app.layouts.transactions',
|
||||
'route' => 'admin.sales.transactions.index',
|
||||
'sort' => 5,
|
||||
'icon-class' => '',
|
||||
], [
|
||||
'key' => 'catalog',
|
||||
'name' => 'admin::app.layouts.catalog',
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class CustomerReviewDataGrid extends DataGrid
|
|||
{
|
||||
$queryBuilder = DB::table('product_reviews as pr')
|
||||
->leftjoin('product_flat as pf', 'pr.product_id', '=', 'pf.product_id')
|
||||
->select('pr.id as product_review_id', 'pr.title', 'pr.comment', 'pf.name as product_name', 'pr.status as product_review_status')
|
||||
->select('pr.id as product_review_id', 'pr.title', 'pr.comment', 'pf.name as product_name', 'pr.status as product_review_status', 'pr.rating')
|
||||
->where('channel', core()->getCurrentChannelCode())
|
||||
->where('locale', app()->getLocale());
|
||||
|
||||
|
|
@ -55,6 +55,15 @@ class CustomerReviewDataGrid extends DataGrid
|
|||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'rating',
|
||||
'label' => trans('admin::app.customers.reviews.rating'),
|
||||
'type' => 'number',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'product_name',
|
||||
'label' => trans('admin::app.datagrid.product-name'),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,76 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Admin\DataGrids;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Webkul\Ui\DataGrid\DataGrid;
|
||||
|
||||
class OrderTransactionsDataGrid extends DataGrid
|
||||
{
|
||||
protected $index = 'id';
|
||||
|
||||
protected $sortOrder = 'desc';
|
||||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('order_transactions')
|
||||
->leftJoin('orders as ors', 'order_transactions.order_id', '=', 'ors.id')
|
||||
->select('order_transactions.id as id', 'order_transactions.transaction_id as transaction_id', 'ors.increment_id as order_id', 'order_transactions.created_at as created_at');
|
||||
|
||||
$this->addFilter('id', 'order_transactions.id');
|
||||
$this->addFilter('transaction_id', 'order_transactions.transaction_id');
|
||||
$this->addFilter('order_id', 'ors.increment_id');
|
||||
$this->addFilter('created_at', 'order_transactions.created_at');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
||||
public function addColumns()
|
||||
{
|
||||
$this->addColumn([
|
||||
'index' => 'id',
|
||||
'label' => trans('admin::app.datagrid.id'),
|
||||
'type' => 'number',
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'transaction_id',
|
||||
'label' => trans('admin::app.datagrid.transaction-id'),
|
||||
'type' => 'string',
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'order_id',
|
||||
'label' => trans('admin::app.datagrid.order-id'),
|
||||
'type' => 'number',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'created_at',
|
||||
'label' => trans('admin::app.datagrid.transaction-date'),
|
||||
'type' => 'datetime',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
public function prepareActions()
|
||||
{
|
||||
$this->addAction([
|
||||
'title' => trans('admin::app.datagrid.view'),
|
||||
'method' => 'GET',
|
||||
'route' => 'admin.sales.transactions.view',
|
||||
'icon' => 'icon eye-icon',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Admin\Http\Controllers\Sales;
|
||||
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Webkul\Admin\Http\Controllers\Controller;
|
||||
use Webkul\Sales\Repositories\OrderTransactionRepository;
|
||||
|
||||
class TransactionController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
protected $_config;
|
||||
|
||||
/**
|
||||
* OrderRepository object
|
||||
*
|
||||
* @var \Webkul\Sales\Repositories\OrderTransactionRepository
|
||||
*/
|
||||
protected $orderTransactionRepository;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @param \Webkul\Sales\Repositories\OrderTransactionRepository $orderTransactionRepository
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(OrderTransactionRepository $orderTransactionRepository)
|
||||
{
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->orderTransactionRepository = $orderTransactionRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view($this->_config['view']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the view for the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function view($id)
|
||||
{
|
||||
$transaction = $this->orderTransactionRepository->findOrFail($id);
|
||||
|
||||
$transData = json_decode(json_encode(json_decode($transaction['data'])), true);
|
||||
|
||||
$transactionDeatilsData = $this->convertIntoSingleDimArray($transData);
|
||||
|
||||
return view($this->_config['view'], compact('transaction', 'transactionDeatilsData'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert Transaction Details Data into single Dim Array.
|
||||
*
|
||||
* @param array $data
|
||||
* @return array
|
||||
*/
|
||||
public function convertIntoSingleDimArray($transData) {
|
||||
static $detailsData = [];
|
||||
|
||||
foreach ($transData as $key => $data) {
|
||||
if (is_array($data)) {
|
||||
$this->convertIntoSingleDimArray($data);
|
||||
} else {
|
||||
$skipAttributes = ['sku', 'name', 'category', 'quantity'];
|
||||
|
||||
if (gettype($key) == 'integer' || in_array($key, $skipAttributes)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$detailsData[$key] = $data;
|
||||
}
|
||||
}
|
||||
|
||||
return $detailsData;
|
||||
}
|
||||
}
|
||||
|
|
@ -250,6 +250,15 @@ Route::group(['middleware' => ['web']], function () {
|
|||
Route::get('/refunds/view/{id}', 'Webkul\Admin\Http\Controllers\Sales\RefundController@view')->defaults('_config', [
|
||||
'view' => 'admin::sales.refunds.view',
|
||||
])->name('admin.sales.refunds.view');
|
||||
|
||||
// Sales Transactions Routes
|
||||
Route::get('/transactions', 'Webkul\Admin\Http\Controllers\Sales\TransactionController@index')->defaults('_config', [
|
||||
'view' => 'admin::sales.transactions.index',
|
||||
])->name('admin.sales.transactions.index');
|
||||
|
||||
Route::get('/transactions/view/{id}', 'Webkul\Admin\Http\Controllers\Sales\TransactionController@view')->defaults('_config', [
|
||||
'view' => 'admin::sales.transactions.view',
|
||||
])->name('admin.sales.transactions.view');
|
||||
});
|
||||
|
||||
// Catalog Routes
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ Vue.use(VeeValidate, {
|
|||
});
|
||||
Vue.prototype.$http = axios
|
||||
|
||||
Vue.component('nav-slide-button', require('./components/navigation/nav-slide-button').default);
|
||||
Vue.component('required-if', require('./components/validators/required-if').default);
|
||||
|
||||
window.eventBus = new Vue();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
<template>
|
||||
<span class="toggle-aside-nav" @click="toggle">
|
||||
<i class="icon" :class="iconClass"></i>
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.toggle-aside-nav {
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
left: 78px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data: function() {
|
||||
return {
|
||||
iconClass: 'accordian-right-icon'
|
||||
};
|
||||
},
|
||||
|
||||
methods: {
|
||||
toggle: function () {
|
||||
if ($('.aside-nav').is(':visible')) {
|
||||
this.hide();
|
||||
} else {
|
||||
this.show();
|
||||
}
|
||||
},
|
||||
|
||||
hide: function () {
|
||||
let self = this;
|
||||
|
||||
$('.aside-nav').hide(function () {
|
||||
self.iconClass = 'accordian-right-icon';
|
||||
|
||||
$('.content-wrapper').css({
|
||||
marginLeft: 'unset'
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
show: function () {
|
||||
let self = this;
|
||||
|
||||
$('.aside-nav').show(function () {
|
||||
self.iconClass = 'accordian-left-icon';
|
||||
|
||||
$('.content-wrapper').css({
|
||||
marginLeft: '280px'
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -108,7 +108,7 @@ body {
|
|||
border-right: 1px solid rgba(162, 162, 162, 0.2);
|
||||
height: auto;
|
||||
bottom: 0;
|
||||
z-index: 2;
|
||||
z-index: 5;
|
||||
background-color: $white;
|
||||
|
||||
ul.menubar {
|
||||
|
|
@ -153,6 +153,7 @@ body {
|
|||
}
|
||||
|
||||
.aside-nav {
|
||||
display: none;
|
||||
width: 280px;
|
||||
position: fixed;
|
||||
top: 60px;
|
||||
|
|
@ -189,7 +190,6 @@ body {
|
|||
|
||||
.content-wrapper {
|
||||
padding: 25px 25px 25px 15px;
|
||||
margin-left: 280px;
|
||||
margin-top:1px;
|
||||
background-color: $white;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,7 +81,8 @@ return [
|
|||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'discount' => 'خصم',
|
||||
'cms' => 'CMS'
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'acl' => [
|
||||
|
|
@ -240,7 +241,9 @@ return [
|
|||
'view' => 'رأي',
|
||||
'rtl' => 'RTL',
|
||||
'ltr' => 'LTR',
|
||||
'update-status' => 'تحديث الحالة'
|
||||
'update-status' => 'تحديث الحالة',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -392,6 +395,7 @@ return [
|
|||
'comment' => 'Comment',
|
||||
'submit-comment' => 'Submit Comment',
|
||||
'notify-customer' => 'Notify Customer',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -468,6 +472,20 @@ return [
|
|||
'action' => 'عمل',
|
||||
'view-title' => '#:refund_id إعادة مال',
|
||||
'invalid-refund-amount-error' => 'يجب ألا يكون المبلغ المسترد صفرًا'
|
||||
],
|
||||
|
||||
'transactions' => [
|
||||
'title' => 'Transactions',
|
||||
'id' => 'Id',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'payment-method' => 'Payment method',
|
||||
'action' => 'Action',
|
||||
'view-title' => 'Transaction #:transaction_id',
|
||||
'transaction-data' => 'Transaction Data',
|
||||
'order-id' => 'Order Id',
|
||||
'status' => 'Status',
|
||||
'created-at' => 'Created At',
|
||||
'transaction-details' => 'Transaction Details'
|
||||
]
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ return [
|
|||
'tax-rates' => 'Steuersätze',
|
||||
'discount' => 'Rabatt',
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
'acl' =>
|
||||
[
|
||||
|
|
@ -240,6 +241,8 @@ return [
|
|||
'rtl' => 'RTL',
|
||||
'ltr' => 'LTR',
|
||||
'update-status' => 'Update-Status',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
],
|
||||
'account' =>
|
||||
[
|
||||
|
|
@ -388,6 +391,7 @@ return [
|
|||
'cancel-confirm-msg' => 'Sind Sie sicher, dass Sie diese Bestellung stornieren möchten?',
|
||||
'refund-btn-title' => 'Rückerstattung',
|
||||
'refunds' => 'Erstattungen',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
'invoices' =>
|
||||
[
|
||||
|
|
@ -462,6 +466,20 @@ return [
|
|||
'view-title' => 'Rückerstattung #:refund_id',
|
||||
'invalid-refund-amount-error' => 'Der Rückerstattungsbetrag sollte nicht Null sein.',
|
||||
],
|
||||
|
||||
'transactions' => [
|
||||
'title' => 'Transactions',
|
||||
'id' => 'Id',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'payment-method' => 'Payment method',
|
||||
'action' => 'Action',
|
||||
'view-title' => 'Transaction #:transaction_id',
|
||||
'transaction-data' => 'Transaction Data',
|
||||
'order-id' => 'Order Id',
|
||||
'status' => 'Status',
|
||||
'created-at' => 'Created At',
|
||||
'transaction-details' => 'Transaction Details'
|
||||
]
|
||||
],
|
||||
'catalog' =>
|
||||
[
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
return [
|
||||
'save' => 'Guardar',
|
||||
'copy-of' => 'Copia de ',
|
||||
'copy-of-slug' => 'copia-de-',
|
||||
'create' => 'Crear',
|
||||
'update' => 'Actualizar',
|
||||
'delete' => 'Borrar',
|
||||
|
|
@ -13,13 +15,12 @@ return [
|
|||
'attribute' => 'Atributo',
|
||||
'actions' => 'Acciones',
|
||||
'id' => 'ID',
|
||||
'action' => 'acción',
|
||||
'action' => 'Acción',
|
||||
'yes' => 'Sí',
|
||||
'no' => 'No',
|
||||
'true' => 'Verdadero',
|
||||
'false' => 'Falso',
|
||||
'apply' => 'Aplicar',
|
||||
'action' => 'Acción',
|
||||
'label' => 'Etiqueta',
|
||||
'name' => 'Nombre',
|
||||
'title' => 'Título',
|
||||
|
|
@ -27,7 +28,7 @@ return [
|
|||
'type' => 'Tipo',
|
||||
'required' => 'Requerido',
|
||||
'unique' => 'Único',
|
||||
'locale-based' => 'Basado en lugar',
|
||||
'locale-based' => 'Basado en idioma',
|
||||
'channel-based' => 'Basado en canal',
|
||||
'status' => 'Estado',
|
||||
'select-option' => 'Seleccione opción',
|
||||
|
|
@ -42,6 +43,7 @@ return [
|
|||
],
|
||||
|
||||
'layouts' => [
|
||||
'app-version' => 'Versión : :version',
|
||||
'my-account' => 'Mi cuenta',
|
||||
'logout' => 'Desconectar',
|
||||
'visit-shop' => 'Visitar tienda',
|
||||
|
|
@ -59,10 +61,10 @@ return [
|
|||
'customers' => 'Clientes',
|
||||
'groups' => 'Grupos',
|
||||
'reviews' => 'Opiniones',
|
||||
'newsletter-subscriptions' => 'Suscripciones a newsletter por correo',
|
||||
'newsletter-subscriptions' => 'Suscripciones a los Boletines',
|
||||
'configure' => 'Configurar',
|
||||
'settings' => 'Ajustes',
|
||||
'locales' => 'Lugares',
|
||||
'locales' => 'Idiomas',
|
||||
'currencies' => 'Monedas',
|
||||
'exchange-rates' => 'Tasas de cambio',
|
||||
'inventory-sources' => 'Fuentes de inventario',
|
||||
|
|
@ -73,38 +75,40 @@ return [
|
|||
'taxes' => 'Impuestos',
|
||||
'tax-categories' => 'Categorías de impuestos',
|
||||
'tax-rates' => 'Tasas de impuestos',
|
||||
'marketing' => 'Marketing',
|
||||
'marketing' => 'Márketing',
|
||||
'promotions' => 'Promociones',
|
||||
'email-marketing' => 'Email Marketing',
|
||||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'email-marketing' => 'Email Márketing',
|
||||
'campaigns' => 'Campañas',
|
||||
'email-templates' => 'Plantillas de Email',
|
||||
'events' => 'Eventos',
|
||||
'discount' => 'Descuento',
|
||||
'cms' => 'CMS'
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transacciones'
|
||||
],
|
||||
|
||||
'acl' => [
|
||||
'dashboard' => 'Tablero',
|
||||
'sales' => 'Ventas',
|
||||
'cancel' => 'Cancel',
|
||||
'cancel' => 'Cancelar',
|
||||
'orders' => 'Pedidos',
|
||||
'shipments' => 'Envíos',
|
||||
'invoices' => 'Facturas',
|
||||
'refunds' => 'Refunds',
|
||||
'refunds' => 'Reembolsos',
|
||||
'catalog' => 'Catálogo',
|
||||
'products' => 'Productos',
|
||||
'copy' => 'Copy',
|
||||
'copy' => 'Copiar',
|
||||
'categories' => 'Categorías',
|
||||
'attributes' => 'Atributos',
|
||||
'attribute-families' => 'Familias de atributos',
|
||||
'customers' => 'Clientes',
|
||||
'addresses' => 'Addresses',
|
||||
'note' => 'Note',
|
||||
'addresses' => 'Direcciones',
|
||||
'note' => 'Nota',
|
||||
'groups' => 'Grupos',
|
||||
'reviews' => 'Opiniones',
|
||||
'newsletter-subscriptions' => 'Suscripciones a newsletter por correo',
|
||||
'newsletter-subscriptions' => 'Suscripciones a los Boletines',
|
||||
'configure' => 'Configurar',
|
||||
'settings' => 'Ajustes',
|
||||
'locales' => 'Lugares',
|
||||
'locales' => 'Idiomas',
|
||||
'currencies' => 'Monedas',
|
||||
'exchange-rates' => 'Tasas de cambio',
|
||||
'inventory-sources' => 'Fuentes de inventario',
|
||||
|
|
@ -115,16 +119,21 @@ return [
|
|||
'taxes' => 'Impuestos',
|
||||
'tax-categories' => 'Categorías de impuestos',
|
||||
'tax-rates' => 'Tasas de impuestos',
|
||||
'view' => 'View',
|
||||
'view' => 'Vista',
|
||||
'edit' => 'Editar',
|
||||
'create' => 'Agregar',
|
||||
'delete' => 'Borrar',
|
||||
'mass-delete' => 'Mass Delete',
|
||||
'mass-update' => 'Mass Update',
|
||||
'marketing' => 'Marketing',
|
||||
'mass-delete' => 'Eliminar Masivamente',
|
||||
'mass-update' => 'Actualizar Masivamente',
|
||||
'marketing' => 'Márketing',
|
||||
'promotions' => 'Promociones',
|
||||
'cart-rules' => 'Reglas del carrito',
|
||||
'catalog-rules' => 'Reglas del catálogo',
|
||||
'email-marketing' => 'Email Márketing',
|
||||
'email-templates' => 'Plantillas de Email',
|
||||
'campaigns' => 'Campañas',
|
||||
'subscribers' => 'Suscriptores del Boletín',
|
||||
'events' => 'Eventos'
|
||||
],
|
||||
|
||||
'dashboard' => [
|
||||
|
|
@ -163,15 +172,16 @@ return [
|
|||
'code' => 'Código',
|
||||
'admin-name' => 'Nombre',
|
||||
'name' => 'Nombre',
|
||||
'copy' => 'Copiar',
|
||||
'direction' => 'Dirección',
|
||||
'fullname' => 'Nombre completo',
|
||||
'type' => 'Tipo',
|
||||
'required' => 'Requerido',
|
||||
'unique' => 'Único',
|
||||
'per-locale' => 'Lugar ubicado',
|
||||
'per-locale' => 'Idioma ubicado',
|
||||
'per-channel' => 'Canal ubicado',
|
||||
'position' => 'Posición',
|
||||
'locale' => 'Lugar',
|
||||
'locale' => 'Idioma',
|
||||
'hostname' => 'Hostname',
|
||||
'email' => 'Email',
|
||||
'group' => 'Grupo',
|
||||
|
|
@ -223,13 +233,14 @@ return [
|
|||
'end' => 'Fin',
|
||||
'active' => 'Activo',
|
||||
'inactive' => 'Inactivo',
|
||||
'draft' => 'Borrador',
|
||||
'true' => 'Verdadero',
|
||||
'false' => 'Falso',
|
||||
'approved' => 'Aprobado',
|
||||
'pending' => 'Pendiente',
|
||||
'disapproved' => 'Rechazado',
|
||||
'coupon-code' => 'Código de cupón',
|
||||
'times-used' => 'Times Used',
|
||||
'times-used' => 'Veces Usados',
|
||||
'created-date' => 'Creado en',
|
||||
'expiration-date' => 'Fecha expiración',
|
||||
'edit' => 'Editar',
|
||||
|
|
@ -237,7 +248,11 @@ return [
|
|||
'view' => 'Ver',
|
||||
'rtl' => 'RTL',
|
||||
'ltr' => 'LTR',
|
||||
'update-status' => 'Actualizar Estado'
|
||||
'update-status' => 'Actualizar Estado',
|
||||
'subject' => 'Asunto',
|
||||
'date' => 'Fecha',
|
||||
'transaction-id' => 'Transacción #',
|
||||
'transaction-date' => 'Fecha de Transacción',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -362,12 +377,12 @@ return [
|
|||
'SKU' => 'SKU',
|
||||
'product-name' => 'Nombre del producto',
|
||||
'qty' => 'Cant',
|
||||
'artículo-status' => 'Estado del articulo',
|
||||
'artículo-ordered' => 'Pedido (:qty_ordered)',
|
||||
'artículo-invoice' => 'Facturado (:qty_invoiced)',
|
||||
'artículo-shipped' => 'Enviado (:qty_shipped)',
|
||||
'artículo-canceled' => 'Cancelado (:qty_canceled)',
|
||||
'artículo-refunded' => 'Reembolsado (:qty_refunded)',
|
||||
'item-status' => 'Estado del articulo',
|
||||
'item-ordered' => 'Pedido (:qty_ordered)',
|
||||
'item-invoice' => 'Facturado (:qty_invoiced)',
|
||||
'item-shipped' => 'Enviado (:qty_shipped)',
|
||||
'item-canceled' => 'Cancelado (:qty_canceled)',
|
||||
'item-refunded' => 'Reembolsado (:qty_refunded)',
|
||||
'price' => 'Precio',
|
||||
'total' => 'Total',
|
||||
'subtotal' => 'Subtotal',
|
||||
|
|
@ -376,15 +391,21 @@ return [
|
|||
'tax' => 'Impuesto',
|
||||
'tax-percent' => 'Porcentaje impuesto',
|
||||
'tax-amount' => 'Monto impuesto',
|
||||
'discount-amount' => 'Monto descuento',
|
||||
'discount-amount' => 'Monto descuento',
|
||||
'discount-amount' => 'Monto de Descuento',
|
||||
'grand-total' => 'Gran total',
|
||||
'total-paid' => 'Total Pagado',
|
||||
'total-refunded' => 'Total reembolsado',
|
||||
'total-due' => 'Total adeudado',
|
||||
'cancel-confirm-msg' => '¿Está seguro que desea cancelar este pedido?',
|
||||
'refund-btn-title' => 'El monto del reembolso no debe ser cero',
|
||||
'refunds' => 'Reembolsos'
|
||||
'refund-btn-title' => 'Reembolso',
|
||||
'refunds' => 'Reembolsos',
|
||||
'comment-added-success' => 'Comentario agregado exitosamente.',
|
||||
'comment' => 'Comentario',
|
||||
'submit-comment' => 'Enviar Comentario',
|
||||
'notify-customer' => 'Notificar al Cliente',
|
||||
'customer-notified' => ':date | Cliente <b>Notificado</b>',
|
||||
'customer-not-notified' => ':date | Cliente <b>No Notificado</b>',
|
||||
'transactions' => 'Transacciones'
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -408,7 +429,7 @@ return [
|
|||
'ship-to' => 'Enviar a',
|
||||
'print' => 'Imprimir',
|
||||
'order-date' => 'Fecha del pedido',
|
||||
'creation-error' => 'La creaciónd e facturas al pedido no está permitida.',
|
||||
'creation-error' => 'La creación de facturas al pedido no está permitida.',
|
||||
'product-error' => 'La factura no puede ser creada sin productos.'
|
||||
],
|
||||
|
||||
|
|
@ -432,7 +453,7 @@ return [
|
|||
'qty-available' => 'Cant disponible',
|
||||
'inventory-source' => 'Fuente de inventario',
|
||||
'carrier-title' => 'Nombre transportista',
|
||||
'tracking-number' => 'Número de tracking',
|
||||
'tracking-number' => 'Número de Seguimiento',
|
||||
'view-title' => 'Envío #:shipment_id',
|
||||
'creation-error' => 'El envío no puede ser creado para este pedido.',
|
||||
'order-error' => 'La creación de envíos no está permitido.',
|
||||
|
|
@ -443,7 +464,7 @@ return [
|
|||
'title' => 'Reembolsos',
|
||||
'id' => 'Id',
|
||||
'add-title' => 'Crear reembolso',
|
||||
'save-btn-title' => 'El monto del reembolso no debe ser cero',
|
||||
'save-btn-title' => 'Reembolso',
|
||||
'order-id' => 'Pedido #',
|
||||
'qty-ordered' => 'Cant pedido',
|
||||
'qty-to-refund' => 'Cant a reembolsar',
|
||||
|
|
@ -461,6 +482,20 @@ return [
|
|||
'view-title' => 'Reembolso #:refund_id',
|
||||
'invalid-refund-amount-error' => 'El monto del reembolso no debe ser cero.'
|
||||
|
||||
],
|
||||
|
||||
'transactions' => [
|
||||
'title' => 'Transacciones',
|
||||
'id' => 'ID',
|
||||
'transaction-id' => 'Transacción #',
|
||||
'payment-method' => 'Método de Pago',
|
||||
'action' => 'Accción',
|
||||
'view-title' => 'Transacciónn #:transaction_id',
|
||||
'transaction-data' => 'Fecha de Transacción',
|
||||
'order-id' => 'Pedido #',
|
||||
'status' => 'Estado',
|
||||
'created-at' => 'Creado En',
|
||||
'transaction-details' => 'Detalles de la Transacción'
|
||||
]
|
||||
],
|
||||
|
||||
|
|
@ -490,8 +525,6 @@ return [
|
|||
'price' => 'Precio',
|
||||
'weight' => 'Peso',
|
||||
'status' => 'Estado',
|
||||
'enabled' => 'Habilitado',
|
||||
'disabled' => 'Deshabilitado',
|
||||
'add-variant-title' => 'Agregar variante',
|
||||
'variant-already-exist-message' => 'Una variante con las mismas opciones de atributos ya existe.',
|
||||
'add-image-btn-title' => 'Agregar imagen',
|
||||
|
|
@ -516,14 +549,13 @@ return [
|
|||
'browse-file' => 'Buscar archivo',
|
||||
'product-link' => 'Productos enlazados',
|
||||
'cross-selling' => 'Venta cruzada',
|
||||
'up-selling' => 'Up Selling',
|
||||
'up-selling' => 'Vendiendo',
|
||||
'related-products' => 'Productos relacionados',
|
||||
'product-search-hint' => 'Inicie escribiendo un nombre de producto',
|
||||
'no-result-found' => 'Productos con el mismo nombre no fueron encontrados.',
|
||||
'searching' => 'Buscaring ...',
|
||||
'grouped-products' => 'Grouped Productos',
|
||||
'searching' => 'Buscando ...',
|
||||
'grouped-products' => 'Productos Agrupados',
|
||||
'search-products' => 'Buscar Productos',
|
||||
'no-result-found' => 'Productos con el mismo nombre no fueron encontrados.',
|
||||
'channel' => 'Canales',
|
||||
'bundle-item' => 'Paquete de artículos',
|
||||
'add-option-btn-title' => 'Agregar opción',
|
||||
|
|
@ -536,12 +568,17 @@ return [
|
|||
'multiselect' => 'Lista de selección múltiple',
|
||||
'new-option' => 'Nueva opción',
|
||||
'is-default' => 'Es predeterminada',
|
||||
'remove-image-btn-title' => 'Remove Image',
|
||||
'customer-group' => 'Grupo de Clientes',
|
||||
'add-group-price' => 'Agregar Precio de Grupo de Clientes',
|
||||
'all-group' => 'Todos los Grupos',
|
||||
'fixed' => 'Reparado',
|
||||
'discount' => 'Descuento',
|
||||
'remove-image-btn-title' => 'Remover Imágen',
|
||||
'videos' => 'Videos',
|
||||
'video' => 'Video',
|
||||
'add-video-btn-title' => 'Add Video',
|
||||
'remove-video-btn-title' => 'Remove Video',
|
||||
'not-support-video' => 'Your browser does not support the video tag.',
|
||||
'add-video-btn-title' => 'Agregar Video',
|
||||
'remove-video-btn-title' => 'Remover Video',
|
||||
'not-support-video' => 'Su navegador no soporta la etiqueta video.',
|
||||
],
|
||||
|
||||
'attributes' => [
|
||||
|
|
@ -577,8 +614,7 @@ return [
|
|||
'status' => 'Estado',
|
||||
'yes' => 'Sí',
|
||||
'no' => 'No',
|
||||
'value_per_locale' => 'Valor por lugar',
|
||||
'value_per_channel' => 'Valor por canal',
|
||||
'value_per_locale' => 'Valor por idioma',
|
||||
'value_per_channel' => 'Valor por canal',
|
||||
'is_filterable' => 'Usar en navegación por capas',
|
||||
'is_configurable' => 'Usar para crear producto configurable',
|
||||
|
|
@ -676,9 +712,9 @@ return [
|
|||
'save-btn-title' => 'Guardar tasa de impuesto',
|
||||
'general' => 'Tasa de impuesto',
|
||||
'identifier' => 'Identificador',
|
||||
'is_zip' => 'Habilitar rango Zip',
|
||||
'zip_from' => 'Zip desde',
|
||||
'zip_to' => 'Zip hasta',
|
||||
'is_zip' => 'Habilitar Rango de Código Postal',
|
||||
'zip_from' => 'Código Postal Desde',
|
||||
'zip_to' => 'Código Postal Hasta',
|
||||
'state' => 'Departamento',
|
||||
'select-state' => 'Seleccione un departamento.',
|
||||
'country' => 'País',
|
||||
|
|
@ -687,8 +723,7 @@ return [
|
|||
'title' => 'Editar tasa de impuesto',
|
||||
'edit-button-title' => 'Editar tasa'
|
||||
],
|
||||
'zip_code' => 'Código Zip',
|
||||
'is_zip' => 'Habilitar rango Zip',
|
||||
'zip_code' => 'Código Postal',
|
||||
],
|
||||
|
||||
'sales' => [
|
||||
|
|
@ -704,19 +739,18 @@ return [
|
|||
|
||||
'settings' => [
|
||||
'locales' => [
|
||||
'title' => 'Lugares',
|
||||
'add-title' => 'Agregar lugar',
|
||||
'edit-title' => 'Editar lugar',
|
||||
'add-title' => 'Agregar lugar',
|
||||
'save-btn-title' => 'Guardar lugar',
|
||||
'title' => 'Idiomas',
|
||||
'add-title' => 'Agregar idioma',
|
||||
'edit-title' => 'Editar idioma',
|
||||
'save-btn-title' => 'Guardar idioma',
|
||||
'general' => 'General',
|
||||
'code' => 'Código',
|
||||
'name' => 'Nombre',
|
||||
'direction' => 'Dirección',
|
||||
'create-success' => 'Lugar creado con éxito.',
|
||||
'update-success' => 'Lugar actualizado con éxito.',
|
||||
'delete-success' => 'Lugar borrado con éxito.',
|
||||
'last-delete-error' => 'Se requiere al menos un lugar.',
|
||||
'create-success' => 'Idioma creado con éxito.',
|
||||
'update-success' => 'Idioma actualizado con éxito.',
|
||||
'delete-success' => 'Idioma borrado con éxito.',
|
||||
'last-delete-error' => 'Se requiere al menos un idioma.',
|
||||
],
|
||||
'countries' => [
|
||||
'title' => 'Países',
|
||||
|
|
@ -796,9 +830,9 @@ return [
|
|||
'name' => 'Nombre',
|
||||
'description' => 'Descripción',
|
||||
'hostname' => 'Hostname',
|
||||
'currencies-and-locales' => 'Monedas y lugares',
|
||||
'locales' => 'Lugares',
|
||||
'default-locale' => 'Lugar predeterminado',
|
||||
'currencies-and-locales' => 'Monedas e Idiomas',
|
||||
'locales' => 'Idiomas',
|
||||
'default-locale' => 'Idioma predeterminado',
|
||||
'currencies' => 'Monedas',
|
||||
'base-currency' => 'Moneda predeterminada',
|
||||
'root-category' => 'Categoría raíz',
|
||||
|
|
@ -817,9 +851,9 @@ return [
|
|||
'seo-title' => 'Meta title',
|
||||
'seo-description' => 'Meta description',
|
||||
'seo-keywords' => 'Meta keywords',
|
||||
'maintenance-mode' => 'Maintenance Mode',
|
||||
'maintenance-mode-text' => 'Message',
|
||||
'allowed-ips' => 'Allowed IPs'
|
||||
'maintenance-mode' => 'Modo de Mantenimiento',
|
||||
'maintenance-mode-text' => 'Mensaje',
|
||||
'allowed-ips' => 'IP Permitidas'
|
||||
],
|
||||
|
||||
'sliders' => [
|
||||
|
|
@ -870,9 +904,9 @@ return [
|
|||
'save-btn-title' => 'Guardar tasa de impuesto',
|
||||
'general' => 'Tasa de impuesto',
|
||||
'identifier' => 'Identificador',
|
||||
'is_zip' => 'Habilitar rango Zip',
|
||||
'zip_from' => 'Zip desde',
|
||||
'zip_to' => 'Zip hasta',
|
||||
'is_zip' => 'Habilitar Rango de Código Postal',
|
||||
'zip_from' => 'Código Postal Desde',
|
||||
'zip_to' => 'Código Postal Hasta',
|
||||
'state' => 'Departamento',
|
||||
'select-state' => 'Seleccione un departamento.',
|
||||
'country' => 'País',
|
||||
|
|
@ -881,8 +915,7 @@ return [
|
|||
'title' => 'Editar tasa de impuesto',
|
||||
'edit-button-title' => 'Editar tasa'
|
||||
],
|
||||
'zip_code' => 'Código Zip',
|
||||
'is_zip' => 'Habilitar rango Zip',
|
||||
'zip_code' => 'Código Postal',
|
||||
'create-success' => 'Tasa de impuesto creada con éxito',
|
||||
'create-error' => 'No se puede crear la tasa de impuesto',
|
||||
'update-success' => 'Tasa de impuesto actualizada con éxito',
|
||||
|
|
@ -917,6 +950,7 @@ return [
|
|||
'address-list' => 'Lista de direcciones',
|
||||
'order-list' => 'Lista de pedidos',
|
||||
'address-id' => 'Dirección ID',
|
||||
'company-name' => 'Nombre de la Empresa',
|
||||
'address-1' => 'Dirección 1',
|
||||
'city' => 'Ciudad',
|
||||
'state-name' => 'Departamento',
|
||||
|
|
@ -954,6 +988,7 @@ return [
|
|||
'gender' => 'Género',
|
||||
'email' => 'Email',
|
||||
'date_of_birth' => 'Fecha de nacimiento',
|
||||
'date_of_birth_placeholder' => 'aaaa-mm-dd',
|
||||
'phone' => 'Teléfono',
|
||||
'customer_group' => 'Grupo',
|
||||
'save-btn-title' => 'Guardar cliente',
|
||||
|
|
@ -964,7 +999,6 @@ return [
|
|||
'other' => 'Otro',
|
||||
'male' => 'Masculino',
|
||||
'female' => 'Femenino',
|
||||
'phone' => 'Teléfono',
|
||||
'group-default' => 'No puede borrar el grupo predeterminado.',
|
||||
'edit-help-title' => 'Editar cliente',
|
||||
'delete-help-title' => 'Borrar cliente',
|
||||
|
|
@ -988,8 +1022,8 @@ return [
|
|||
],
|
||||
|
||||
'subscribers' => [
|
||||
'title' => 'Suscriptores',
|
||||
'title-edit' => 'Editar suscriptor',
|
||||
'title' => 'Suscriptores del Boletín',
|
||||
'title-edit' => 'Editar Suscriptor del Boletín',
|
||||
'email' => 'Email',
|
||||
'is_subscribed' => 'Suscrito',
|
||||
'edit-btn-title' => 'Actualizar suscriptor',
|
||||
|
|
@ -1034,11 +1068,12 @@ return [
|
|||
'choose-condition-to-add' => 'Elija una condición para agregar',
|
||||
'cart-attribute' => 'Atributo de carrito',
|
||||
'subtotal' => 'Subtotal',
|
||||
'additional' => 'Información Adicional',
|
||||
'total-item-qty' => 'Cant total artículos',
|
||||
'total-weight' => 'Peso total',
|
||||
'payment-method' => 'Método de pago',
|
||||
'shipping-method' => 'Método de envío',
|
||||
'shipping-postcode' => 'Código postal/Zip de envío',
|
||||
'shipping-postcode' => 'Código Postal de envío',
|
||||
'shipping-state' => 'Departamento de envío',
|
||||
'shipping-country' => 'País de envío',
|
||||
'cart-item-attribute' => 'Atributo del artículo del carrito',
|
||||
|
|
@ -1137,63 +1172,63 @@ return [
|
|||
|
||||
'marketing' => [
|
||||
'templates' => [
|
||||
'title' => 'Email Templates',
|
||||
'add-title' => 'Add Email Template',
|
||||
'edit-title' => 'Edit Email Template',
|
||||
'save-btn-title' => 'Save',
|
||||
'title' => 'Plantilla de Email',
|
||||
'add-title' => 'Agregar Plantilla de Email',
|
||||
'edit-title' => 'Editar Plantilla de Email',
|
||||
'save-btn-title' => 'Guardar',
|
||||
'general' => 'General',
|
||||
'name' => 'Name',
|
||||
'status' => 'Status',
|
||||
'active' => 'Active',
|
||||
'inactive' => 'Inactive',
|
||||
'draft' => 'Draft',
|
||||
'content' => 'Content',
|
||||
'create-success' => 'Email template created successfully.',
|
||||
'update-success' => 'Email template updated successfully.',
|
||||
'delete-success' => 'Email template deleted successfully',
|
||||
'name' => 'Nombre',
|
||||
'status' => 'Estado',
|
||||
'active' => 'Activo',
|
||||
'inactive' => 'Inactivo',
|
||||
'draft' => 'Borrador',
|
||||
'content' => 'Contenido',
|
||||
'create-success' => 'Plantilla de Email creada correctamente.',
|
||||
'update-success' => 'Plantilla de Email actualizada correctamente.',
|
||||
'delete-success' => 'Plantilla de Email eliminada correctamente.',
|
||||
],
|
||||
|
||||
'campaigns' => [
|
||||
'title' => 'Campaigns',
|
||||
'add-title' => 'Add Campaign',
|
||||
'edit-title' => 'Edit Campaign',
|
||||
'save-btn-title' => 'Save',
|
||||
'title' => 'Campañas',
|
||||
'add-title' => 'Agregar Campaña',
|
||||
'edit-title' => 'Editar Campaña',
|
||||
'save-btn-title' => 'Guardar',
|
||||
'general' => 'General',
|
||||
'name' => 'Name',
|
||||
'status' => 'Status',
|
||||
'active' => 'Active',
|
||||
'inactive' => 'Inactive',
|
||||
'subject' => 'Subject',
|
||||
'email-template' => 'Email Template',
|
||||
'audience' => 'Audience',
|
||||
'channel' => 'Channel',
|
||||
'customer-group' => 'Customer Group',
|
||||
'schedule' => 'Schedule',
|
||||
'schedule-type' => 'Schedule Type',
|
||||
'once' => 'Once',
|
||||
'events' => 'Events',
|
||||
'schedule-date' => 'Schedule Date',
|
||||
'name' => 'Nombre',
|
||||
'status' => 'Estado',
|
||||
'active' => 'Activo',
|
||||
'inactive' => 'Inactivo',
|
||||
'subject' => 'Asunto',
|
||||
'email-template' => 'Plantilla de Email',
|
||||
'audience' => 'Audiencia',
|
||||
'channel' => 'Canal',
|
||||
'customer-group' => 'Grupo de Clientes',
|
||||
'schedule' => 'Programación',
|
||||
'schedule-type' => 'Tipo de Programación',
|
||||
'once' => 'Una vez',
|
||||
'events' => 'Eventos',
|
||||
'schedule-date' => 'Fecha Programada',
|
||||
'spooling' => 'Spooling',
|
||||
'event' => 'Event',
|
||||
'birthday' => 'Birthday',
|
||||
'create-success' => 'Campaign created successfully.',
|
||||
'update-success' => 'Campaign updated successfully.',
|
||||
'delete-success' => 'Campaign deleted successfully',
|
||||
'event' => 'Evento',
|
||||
'birthday' => 'Cumpleaños',
|
||||
'create-success' => 'Campaña creada correctamente.',
|
||||
'update-success' => 'Campaña actualizada correctamente.',
|
||||
'delete-success' => 'Campaña eliminada correctamente.',
|
||||
],
|
||||
|
||||
'events' => [
|
||||
'title' => 'Events',
|
||||
'add-title' => 'Add Event',
|
||||
'edit-title' => 'Edit Event',
|
||||
'save-btn-title' => 'Save',
|
||||
'title' => 'Eventos',
|
||||
'add-title' => 'Agregar Evento',
|
||||
'edit-title' => 'Editar Evento',
|
||||
'save-btn-title' => 'Guardar',
|
||||
'general' => 'General',
|
||||
'name' => 'Name',
|
||||
'description' => 'Description',
|
||||
'date' => 'Date',
|
||||
'create-success' => 'Event created successfully.',
|
||||
'update-success' => 'Event updated successfully.',
|
||||
'delete-success' => 'Event deleted successfully.',
|
||||
'edit-error' => 'Can not edit this event.'
|
||||
'name' => 'Nombre',
|
||||
'description' => 'Descripción',
|
||||
'date' => 'Fecha',
|
||||
'create-success' => 'Evento creado con éxito.',
|
||||
'update-success' => 'Evento actualizado con éxito.',
|
||||
'delete-success' => 'Evento borrado con éxito.',
|
||||
'edit-error' => 'No se puede editar este evento.'
|
||||
]
|
||||
],
|
||||
|
||||
|
|
@ -1256,7 +1291,7 @@ return [
|
|||
'content' => 'Contenido',
|
||||
'url-key' => 'URL clave',
|
||||
'channel' => 'Canales',
|
||||
'locale' => 'Lugares',
|
||||
'locale' => 'Idiomas',
|
||||
'create-btn-title' => 'Guardar página',
|
||||
'edit-title' => 'Editar Page',
|
||||
'edit-btn-title' => 'Guardar página',
|
||||
|
|
@ -1267,9 +1302,9 @@ return [
|
|||
'update-failure' => 'La página no pudo ser actualizada',
|
||||
'page-title' => 'Título de la página',
|
||||
'layout' => 'Diseño',
|
||||
'meta_keywords' => 'Meta Keywords',
|
||||
'meta_description' => 'Meta Description',
|
||||
'meta_title' => 'Meta Title',
|
||||
'meta_keywords' => 'Meta Palabras Claves',
|
||||
'meta_description' => 'Meta Descripción',
|
||||
'meta_title' => 'Meta Título',
|
||||
'delete-success' => 'Página CMS borrada con éxito',
|
||||
'delete-failure' => 'Página CMS no pudo ser borrada',
|
||||
'preview' => 'Previsualización',
|
||||
|
|
@ -1282,6 +1317,9 @@ return [
|
|||
|
||||
'response' => [
|
||||
'being-used' => 'Este recurso: :name está siendo usado en :source',
|
||||
'product-copied' => 'El Producto ha sido copiado',
|
||||
'error-while-copying' => 'Se produjo un error al intentar copiar el producto',
|
||||
'product-can-not-be-copied' => 'Productos del tipo :type no se pueden copiar',
|
||||
'cannot-delete-default' => 'No puede borrar el canal predeterminado',
|
||||
'create-success' => ':name :name creado con éxito.',
|
||||
'update-success' => ':name actualizado con éxito.',
|
||||
|
|
@ -1326,14 +1364,17 @@ return [
|
|||
],
|
||||
'system' => [
|
||||
'catalog' => 'Catálogo',
|
||||
'homepage' => 'Homepage configuration',
|
||||
'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage',
|
||||
'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage',
|
||||
'allow-out-of-stock-items' => 'Allow out of stock items',
|
||||
'homepage' => 'Configuración de Página de Inicio',
|
||||
'allow-no-of-new-product-homepage' => 'No permitido Nuevo Producto en la Página de Inicio',
|
||||
'allow-no-of-featured-product-homepage' => 'No Permitido Producto Destacado en Página de Inicio',
|
||||
'allow-out-of-stock-items' => 'Permitir Artículos Agotados',
|
||||
'products' => 'Productos',
|
||||
'guest-checkout' => 'Compras como invitado',
|
||||
'allow-guest-checkout' => 'Permitir compras como invitado',
|
||||
'allow-guest-checkout-hint' => 'Aviso: Si eligió permitir, esta opción puede ser configurada específicamente para cada producto.',
|
||||
'attribute' => 'Atributo',
|
||||
'image-upload-size' => 'Tamaño de Carga de Imagen Permitido (en Kb)',
|
||||
'file-upload-size' => 'Tamaño de Carga de Archivo Permitido (en Kb)',
|
||||
'review' => 'Opiniones',
|
||||
'allow-guest-review' => 'Permitir opiniones como invitado',
|
||||
'inventory' => 'Inventario',
|
||||
|
|
@ -1351,7 +1392,7 @@ return [
|
|||
'origin' => 'Origen',
|
||||
'country' => 'País',
|
||||
'state' => 'Departamento',
|
||||
'zip' => 'Zip',
|
||||
'zip' => 'Código Postal',
|
||||
'city' => 'Ciudad',
|
||||
'street-address' => 'Dirección',
|
||||
'title' => 'Título',
|
||||
|
|
@ -1365,11 +1406,11 @@ return [
|
|||
'money-transfer' => 'Transferencia',
|
||||
'paypal-standard' => 'PayPal',
|
||||
'business-account' => 'Cuenta de negocio',
|
||||
'newsletter' => 'Suscripción a newsletter',
|
||||
'newsletter-subscription' => 'Permitir suscripciones a newsletter',
|
||||
'newsletter' => 'Boletín de Suscripción',
|
||||
'newsletter-subscription' => 'Permitir Suscripciones al Boletín',
|
||||
'email' => 'Verificación de email',
|
||||
'email-verification' => 'Permitir verificación de email',
|
||||
'sort_order' => 'Orden de clasificación',
|
||||
'sort_order' => 'Orden de Clasificación',
|
||||
'general' => 'General',
|
||||
'footer' => 'Pie de página',
|
||||
'content' => 'Contenido',
|
||||
|
|
@ -1394,31 +1435,59 @@ return [
|
|||
'order-number-prefix' => 'Prefijo para Pedido #',
|
||||
'order-number-length' => 'Largo para Pedido #',
|
||||
'order-number-suffix' => 'Sufijo para Pedido #',
|
||||
'minimum-order' => 'Minimum Order Settings',
|
||||
'minimum-order-amount' => 'Minimum Order Amount',
|
||||
'order-number-generator-class' => 'Generado de Números de Pedido',
|
||||
'minimum-order' => 'Configuración de Pedido Mínimo',
|
||||
'minimum-order-amount' => 'Cantidad Mínima de Pedido',
|
||||
'default' => 'Predeterminado',
|
||||
'sandbox' => 'Sandbox',
|
||||
'all-channels' => 'Todos',
|
||||
'all-locales' => 'Todos',
|
||||
'invoice-slip-design' => 'Diseño parte trasera factura',
|
||||
'logo' => 'logo',
|
||||
'all-channels' => 'Todos los Canales',
|
||||
'all-locales' => 'Todos los Idiomas',
|
||||
'all-customer-groups' => 'Todos los grupos de Clientes',
|
||||
'invoice-slip-design' => 'Diseño de Comprobande de Factura',
|
||||
'logo' => 'Logo',
|
||||
'storefront' => 'Storefront',
|
||||
'default-list-mode' => 'Modo de Lista Predeterminado',
|
||||
'grid' => 'Cuadrícula',
|
||||
'list' => 'Lista',
|
||||
'products-per-page' => 'Productos Por Página',
|
||||
'sort-by' => 'Ordenar Por',
|
||||
'from-z-a' => 'Desde Z-A',
|
||||
'from-a-z' => 'Desde A-Z',
|
||||
'newest-first' => 'Más Nuevos Primero',
|
||||
'oldest-first' => 'Más Viejos Primero',
|
||||
'cheapest-first' => 'Más Barato Primero',
|
||||
'expensive-first' => 'Más Caro Primero',
|
||||
'comma-seperated' => 'Separado por Comas',
|
||||
'favicon' => 'Favicon',
|
||||
'seo' => 'SEO',
|
||||
'rich-snippets' => 'Fragmentos Enriquecidos',
|
||||
'enable' => 'Habilitar',
|
||||
'show-weight' => 'Mostrar Peso',
|
||||
'show-categories' => 'Mostrar Categorías',
|
||||
'show-images' => 'Mostrar Imágenes',
|
||||
'show-reviews' => 'Mostrar Reseñas',
|
||||
'show-ratings' => 'Mostrar Calificaciones',
|
||||
'show-offers' => 'Mostrar Ofertas',
|
||||
'show-sku' => 'Mostrar SKU',
|
||||
'categories' => 'Categorías',
|
||||
'show-search-input-field' => 'Mostrar Campo de Entrada de Búsqueda',
|
||||
'store-name' => 'Nombre de la tienda',
|
||||
'vat-number' => 'Número de valor agregado',
|
||||
'contact-number' => 'Número de contacto',
|
||||
'bank-details' => 'Detalles del banco',
|
||||
'mailing-address' => 'Send Check to',
|
||||
'instructions' => 'Instructions',
|
||||
'custom-scripts' => 'Custom Scripts',
|
||||
'custom-css' => 'Custom CSS',
|
||||
'custom-javascript' => 'Custom Javascript',
|
||||
'mailing-address' => 'Dirección de Envío',
|
||||
'instructions' => 'Instrucciones',
|
||||
'custom-scripts' => 'Scripts Personalizados',
|
||||
'custom-css' => 'CSS Personalizados',
|
||||
'custom-javascript' => 'Javascript Personalizado',
|
||||
'paypal-smart-button' => 'PayPal',
|
||||
'client-id' => 'Client Id',
|
||||
'client-id-info' => 'Use "sb" for testing.',
|
||||
'client-secret' => 'Client Secret',
|
||||
'client-secret-info' => 'Add your secret key here',
|
||||
'accepted-currencies' => 'Accepted currencies',
|
||||
'accepted-currencies-info' => 'Add currency code comma seperated e.g. USD,INR,...',
|
||||
'buy-now-button-display' => 'Allow customers to directly buy products'
|
||||
'client-id' => 'Id del Cliente',
|
||||
'client-id-info' => 'Utilice "sb" para realizar pruebas.',
|
||||
'client-secret' => 'Secreto del Cliente',
|
||||
'client-secret-info' => 'Agrega tu clave secreta aquí',
|
||||
'accepted-currencies' => 'Monedas aceptadas',
|
||||
'accepted-currencies-info' => 'Agregue el código de moneda separado por comas, por ej. USD,INR,...',
|
||||
'buy-now-button-display' => 'Permitir que los clientes compren productos directamente'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -80,7 +80,8 @@ return [
|
|||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'discount' => 'تخفیف',
|
||||
'cms' => 'CMS'
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'acl' => [
|
||||
|
|
@ -238,7 +239,9 @@ return [
|
|||
'view' => 'چشم انداز',
|
||||
'rtl' => 'RTL',
|
||||
'ltr' => 'LTR',
|
||||
'update-status' => 'وضعیت به روز رسانی'
|
||||
'update-status' => 'وضعیت به روز رسانی',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -390,6 +393,7 @@ return [
|
|||
'comment' => 'Comment',
|
||||
'submit-comment' => 'Submit Comment',
|
||||
'notify-customer' => 'Notify Customer',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -466,6 +470,20 @@ return [
|
|||
'view-title' => ' #:refund_id بازپرداخت',
|
||||
'invalid-refund-amount-error' => 'مبلغ بازپرداخت باید صفر نباشد.'
|
||||
|
||||
],
|
||||
|
||||
'transactions' => [
|
||||
'title' => 'Transactions',
|
||||
'id' => 'Id',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'payment-method' => 'Payment method',
|
||||
'action' => 'Action',
|
||||
'view-title' => 'Transaction #:transaction_id',
|
||||
'transaction-data' => 'Transaction Data',
|
||||
'order-id' => 'Order Id',
|
||||
'status' => 'Status',
|
||||
'created-at' => 'Created At',
|
||||
'transaction-details' => 'Transaction Details'
|
||||
]
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,8 @@ return [
|
|||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'discount' => 'Sconti',
|
||||
'cms' => 'CMS'
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'acl' => [
|
||||
|
|
@ -239,7 +240,9 @@ return [
|
|||
'view' => 'Vedi',
|
||||
'rtl' => 'RTL',
|
||||
'ltr' => 'LTR',
|
||||
'update-status' => 'Update Stato'
|
||||
'update-status' => 'Update Stato',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -392,7 +395,8 @@ return [
|
|||
'submit-comment' => 'Invia Commento',
|
||||
'notify-customer' => 'Notifica Cliente',
|
||||
'customer-notified' => ':date | Cliente <b>Notificato</b>',
|
||||
'customer-not-notified' => ':date | Cliente <b>Non Notificato</b>'
|
||||
'customer-not-notified' => ':date | Cliente <b>Non Notificato</b>',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -468,6 +472,20 @@ return [
|
|||
'view-title' => 'Rimborso #:refund_id',
|
||||
'invalid-refund-amount-error' => 'La somma rimborsata dovrebbe essere diversa da zero.'
|
||||
|
||||
],
|
||||
|
||||
'transactions' => [
|
||||
'title' => 'Transactions',
|
||||
'id' => 'Id',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'payment-method' => 'Payment method',
|
||||
'action' => 'Action',
|
||||
'view-title' => 'Transaction #:transaction_id',
|
||||
'transaction-data' => 'Transaction Data',
|
||||
'order-id' => 'Order Id',
|
||||
'status' => 'Status',
|
||||
'created-at' => 'Created At',
|
||||
'transaction-details' => 'Transaction Details'
|
||||
]
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,8 @@ return [
|
|||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'discount' => 'Korting',
|
||||
'cms' => 'CMS'
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'acl' => [
|
||||
|
|
@ -391,6 +392,7 @@ return [
|
|||
'comment' => 'Comment',
|
||||
'submit-comment' => 'Submit Comment',
|
||||
'notify-customer' => 'Notify Customer',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -467,6 +469,20 @@ return [
|
|||
'view-title' => 'Terugbetaling #:refund_id',
|
||||
'invalid-refund-amount-error' => 'Het restitutiebedrag mag niet nul zijn.'
|
||||
|
||||
],
|
||||
|
||||
'transactions' => [
|
||||
'title' => 'Transactions',
|
||||
'id' => 'Id',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'payment-method' => 'Payment method',
|
||||
'action' => 'Action',
|
||||
'view-title' => 'Transaction #:transaction_id',
|
||||
'transaction-data' => 'Transaction Data',
|
||||
'order-id' => 'Order Id',
|
||||
'status' => 'Status',
|
||||
'created-at' => 'Created At',
|
||||
'transaction-details' => 'Transaction Details'
|
||||
]
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -79,7 +79,8 @@ return [
|
|||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'discount' => 'Rabat',
|
||||
'cms' => 'System CMS'
|
||||
'cms' => 'System CMS',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'acl' => [
|
||||
|
|
@ -237,7 +238,9 @@ return [
|
|||
'view' => 'Widok',
|
||||
'rtl' => 'RTL',
|
||||
'ltr' => 'LTR',
|
||||
'update-status' => 'Aktualizcja statusu'
|
||||
'update-status' => 'Aktualizcja statusu',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -390,7 +393,8 @@ return [
|
|||
'submit-comment' => 'Prześlij komentarz',
|
||||
'notify-customer' => 'Powiadom klienta',
|
||||
'customer-notified' => ':date | Klient <b>Powiadomiony</b>',
|
||||
'customer-not-notified' => ':date | Klient <b>Nie powiadomiony</b>'
|
||||
'customer-not-notified' => ':date | Klient <b>Nie powiadomiony</b>',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -467,6 +471,20 @@ return [
|
|||
'view-title' => 'Refundacja nr #:refund_id',
|
||||
'invalid-refund-amount-error' => 'Kwota zwrotu powinna być różna od zera.'
|
||||
|
||||
],
|
||||
|
||||
'transactions' => [
|
||||
'title' => 'Transactions',
|
||||
'id' => 'Id',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'payment-method' => 'Payment method',
|
||||
'action' => 'Action',
|
||||
'view-title' => 'Transaction #:transaction_id',
|
||||
'transaction-data' => 'Transaction Data',
|
||||
'order-id' => 'Order Id',
|
||||
'status' => 'Status',
|
||||
'created-at' => 'Created At',
|
||||
'transaction-details' => 'Transaction Details'
|
||||
]
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,8 @@ return [
|
|||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'discount' => 'Desconto',
|
||||
'cms' => 'CMS'
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'acl' => [
|
||||
|
|
@ -238,7 +239,9 @@ return [
|
|||
'view' => 'Visão',
|
||||
'rtl' => 'RTL',
|
||||
'ltr' => 'LTR',
|
||||
'update-status' => 'Atualizar o status'
|
||||
'update-status' => 'Atualizar o status',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -390,6 +393,7 @@ return [
|
|||
'comment' => 'Comment',
|
||||
'submit-comment' => 'Submit Comment',
|
||||
'notify-customer' => 'Notify Customer',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -466,6 +470,20 @@ return [
|
|||
'view-title' => 'Reembolso #:refund_id',
|
||||
'invalid-refund-amount-error' => 'Refund amount should be non zero.'
|
||||
|
||||
],
|
||||
|
||||
'transactions' => [
|
||||
'title' => 'Transactions',
|
||||
'id' => 'Id',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'payment-method' => 'Payment method',
|
||||
'action' => 'Action',
|
||||
'view-title' => 'Transaction #:transaction_id',
|
||||
'transaction-data' => 'Transaction Data',
|
||||
'order-id' => 'Order Id',
|
||||
'status' => 'Status',
|
||||
'created-at' => 'Created At',
|
||||
'transaction-details' => 'Transaction Details'
|
||||
]
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -78,7 +78,8 @@ return [
|
|||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'discount' => 'İndirim',
|
||||
'cms' => 'CMS'
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'acl' => [
|
||||
|
|
@ -236,7 +237,9 @@ return [
|
|||
'view' => 'Görüntüle',
|
||||
'rtl' => 'RTL',
|
||||
'ltr' => 'LTR',
|
||||
'update-status' => 'Durum Güncelle'
|
||||
'update-status' => 'Durum Güncelle',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -388,7 +391,8 @@ return [
|
|||
'submit-comment' => 'Yorum Gönder',
|
||||
'notify-customer' => 'Müşteriyi Bilgilendir',
|
||||
'customer-notified' => ':date | Müşteri <b>Bilgilendirildi</b>',
|
||||
'customer-not-notified' => ':date | Müşteri <b>Bilgilendirilmedi</b>'
|
||||
'customer-not-notified' => ':date | Müşteri <b>Bilgilendirilmedi</b>',
|
||||
'transactions' => 'Transactions'
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -465,6 +469,20 @@ return [
|
|||
'view-title' => 'İade #:refund_id',
|
||||
'invalid-refund-amount-error' => 'Lütfen iade miktarını giriniz.'
|
||||
|
||||
],
|
||||
|
||||
'transactions' => [
|
||||
'title' => 'Transactions',
|
||||
'id' => 'Id',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'payment-method' => 'Payment method',
|
||||
'action' => 'Action',
|
||||
'view-title' => 'Transaction #:transaction_id',
|
||||
'transaction-data' => 'Transaction Data',
|
||||
'order-id' => 'Order Id',
|
||||
'status' => 'Status',
|
||||
'created-at' => 'Created At',
|
||||
'transaction-details' => 'Transaction Details'
|
||||
]
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@
|
|||
<div class="product image">
|
||||
<?php $productBaseImage = productimage()->getProductBaseImage($item->product); ?>
|
||||
|
||||
<img class="item-image" src="{{ $productBaseImage['small_image_url'] }}" />
|
||||
<img class="item-image" src="{{ $productBaseImage['small_image_url'] ?? asset('vendor/webkul/ui/assets/images/product/small-product-placeholder.webp') }}" />
|
||||
</div>
|
||||
|
||||
<div class="description do-not-cross-arrow">
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@
|
|||
@foreach ($records as $record)
|
||||
<tr>
|
||||
@foreach($record as $column => $value)
|
||||
@php
|
||||
$value = preg_replace('/[^A-Za-z0-9@#$%^&*()_!+\-]/', '', $value);
|
||||
@endphp
|
||||
|
||||
<td>{{ $value }} </td>
|
||||
@endforeach
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
@section('content-wrapper')
|
||||
<div class="inner-section">
|
||||
|
||||
|
||||
@include ('admin::layouts.nav-aside')
|
||||
|
||||
<div class="content-wrapper">
|
||||
|
|
@ -12,6 +12,6 @@
|
|||
@yield('content')
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -30,8 +30,4 @@
|
|||
@endforeach
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
<!-- <div class="close-nav-aside">
|
||||
<i class="icon angle-left-icon close-icon"></i>
|
||||
</div> -->
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,14 @@
|
|||
<div class="navbar-left">
|
||||
{{-- button for toggling aside nav --}}
|
||||
<nav-slide-button></nav-slide-button>
|
||||
|
||||
{{-- left menu bar --}}
|
||||
<ul class="menubar">
|
||||
@foreach ($menu->items as $menuItem)
|
||||
<li class="menu-item {{ $menu->getActive($menuItem) }}">
|
||||
<a href="{{ count($menuItem['children']) ? current($menuItem['children'])['url'] : $menuItem['url'] }}">
|
||||
<span class="icon {{ $menuItem['icon-class'] }}"></span>
|
||||
|
||||
|
||||
<span>{{ trans($menuItem['name']) }}</span>
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,32 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
{{-- meta tags --}}
|
||||
<meta http-equiv="Cache-control" content="no-cache">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
{{-- lang supports inclusion --}}
|
||||
<style type="text/css">
|
||||
@font-face {
|
||||
font-family: 'Hind';
|
||||
src: url({{ asset('vendor/webkul/ui/assets/fonts/Hind/Hind-Regular.ttf') }}) format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
src: url({{ asset('vendor/webkul/ui/assets/fonts/Noto/NotoSans-Regular.ttf') }}) format('truetype');
|
||||
}
|
||||
</style>
|
||||
|
||||
@php
|
||||
/* main font will be set on locale based */
|
||||
$mainFontFamily = app()->getLocale() === 'ar' ? 'DejaVu Sans' : 'Noto Sans';
|
||||
@endphp
|
||||
|
||||
{{-- main css --}}
|
||||
<style type="text/css">
|
||||
* {
|
||||
font-family: DejaVu Sans;
|
||||
font-family: '{{ $mainFontFamily }}';
|
||||
}
|
||||
|
||||
body, th, td, h5 {
|
||||
|
|
@ -306,7 +326,6 @@
|
|||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -509,6 +509,7 @@
|
|||
<td class="empty" colspan="7">{{ __('admin::app.common.no-result-found') }}</td>
|
||||
<tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
|
@ -551,6 +552,7 @@
|
|||
<td class="empty" colspan="7">{{ __('admin::app.common.no-result-found') }}</td>
|
||||
<tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
|
@ -595,6 +597,49 @@
|
|||
<td class="empty" colspan="7">{{ __('admin::app.common.no-result-found') }}</td>
|
||||
<tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</tab>
|
||||
|
||||
<tab name="{{ __('admin::app.sales.orders.transactions') }}">
|
||||
|
||||
<div class="table" style="padding: 20px 0">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('admin::app.sales.transactions.transaction-id') }}</th>
|
||||
<th>{{ __('admin::app.sales.invoices.order-id') }}</th>
|
||||
<th>{{ __('admin::app.sales.transactions.payment-method') }}</th>
|
||||
<th>{{ __('admin::app.sales.transactions.action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
@foreach ($order->transactions as $transaction)
|
||||
<tr>
|
||||
<td>#{{ $transaction->transaction_id }}</td>
|
||||
<td>{{ $transaction->order_id }}</td>
|
||||
<td>
|
||||
{{ core()->getConfigData('sales.paymentmethods.' . $transaction->payment_method . '.title') }}
|
||||
</td>
|
||||
<td class="action">
|
||||
<a href="{{ route('admin.sales.transactions.view', $transaction->id) }}">
|
||||
<i class="icon eye-icon"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
@if (! $order->transactions->count())
|
||||
<tr>
|
||||
<td class="empty" colspan="7">{{ __('admin::app.common.no-result-found') }}</td>
|
||||
<tr>
|
||||
@endif
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.sales.transactions.title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.sales.transactions.title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<div class="export-import" @click="showModal('downloadDataGrid')">
|
||||
<i class="export-icon"></i>
|
||||
<span>
|
||||
{{ __('admin::app.export.export') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
@inject('orderTransactionsDataGrid', 'Webkul\Admin\DataGrids\OrderTransactionsDataGrid')
|
||||
{!! $orderTransactionsDataGrid->render() !!}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<modal id="downloadDataGrid" :is-open="modalIds.downloadDataGrid">
|
||||
<h3 slot="header">{{ __('admin::app.export.download') }}</h3>
|
||||
<div slot="body">
|
||||
<export-form></export-form>
|
||||
</div>
|
||||
</modal>
|
||||
@stop
|
||||
|
||||
@push('scripts')
|
||||
@include('admin::export.export', ['gridName' => $orderTransactionsDataGrid])
|
||||
@endpush
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
@extends('admin::layouts.master')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.sales.transactions.view-title', ['transaction_id' => $transaction->id]) }}
|
||||
@stop
|
||||
|
||||
@section('content-wrapper')
|
||||
<div class="content full-page">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="window.location = '{{ route('admin.sales.transactions.index') }}'"></i>
|
||||
|
||||
{{ __('admin::app.sales.transactions.view-title', ['transaction_id' => $transaction->id]) }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="sale-container">
|
||||
|
||||
<accordian :title="'{{ __('admin::app.sales.transactions.transaction-data') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<div class="sale-section">
|
||||
<div class="secton-title">
|
||||
<span>{{ __('admin::app.sales.transactions.transaction-data') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="section-content">
|
||||
<div class="row">
|
||||
<span class="title">
|
||||
{{ __('admin::app.sales.transactions.transaction-id') }}
|
||||
</span>
|
||||
|
||||
<span class="value">
|
||||
{{ $transaction->transaction_id }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<span class="title">
|
||||
{{ __('admin::app.sales.transactions.order-id') }}
|
||||
</span>
|
||||
|
||||
<span class="value">
|
||||
<a href="{{ route('admin.sales.orders.view', $transaction->order_id)}}">
|
||||
{{ $transaction->order_id }}
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<span class="title">
|
||||
{{ __('admin::app.sales.transactions.payment-method') }}
|
||||
</span>
|
||||
|
||||
<span class="value">
|
||||
{{ core()->getConfigData('sales.paymentmethods.' . $transaction->payment_method . '.title') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{{-- <div class="row">
|
||||
<span class="title">
|
||||
{{ __('admin::app.sales.transactions.status') }}
|
||||
</span>
|
||||
|
||||
<span class="value">
|
||||
{{ $transaction->status }}
|
||||
</span>
|
||||
</div> --}}
|
||||
|
||||
<div class="row">
|
||||
<span class="title">
|
||||
{{ __('admin::app.sales.transactions.created-at') }}
|
||||
</span>
|
||||
|
||||
<span class="value">
|
||||
{{ $transaction->created_at }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</accordian>
|
||||
|
||||
<accordian :title="'{{ __('admin::app.sales.transactions.transaction-details') }}'" :active="true">
|
||||
<div slot="body">
|
||||
@php
|
||||
$transData = json_decode(json_encode(json_decode($transaction['data'])), true);
|
||||
@endphp
|
||||
|
||||
<div class="sale-section">
|
||||
<div class="secton-title">
|
||||
<span>{{ __('admin::app.sales.transactions.transaction-details') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="section-content">
|
||||
@foreach ($transactionDeatilsData as $key => $data)
|
||||
<div class="row">
|
||||
<span class="title">
|
||||
{{ $key }}
|
||||
</span>
|
||||
|
||||
<span class="value">
|
||||
{{ $data }}
|
||||
</span>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</accordian>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -0,0 +1,128 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'admin' => [
|
||||
'catalog' => [
|
||||
'products' => [
|
||||
'booking' => 'Información sobre Reservas',
|
||||
'booking-type' => 'Tipo de Reserva',
|
||||
'default' => 'Estándar',
|
||||
'appointment-booking' => 'Reserva de Cita',
|
||||
'event-booking' => 'Reserva de Eventos',
|
||||
'rental-booking' => 'Reserva de Alquiler',
|
||||
'table-booking' => 'Reserva de Mesa',
|
||||
'slot-duration' => 'Duración de Horarios (Minutos)',
|
||||
'break-time' => 'Intervalo de Tiempo entre Franjas Horarias (Minutos)',
|
||||
'available-every-week' => 'Disponible Todas las Semanas',
|
||||
'yes' => 'Si',
|
||||
'no' => 'No',
|
||||
'available-from' => 'Disponible Desde:',
|
||||
'available-to' => 'Disponible Hasta',
|
||||
'same-slot-all-days' => 'Mismos Horarios Todos los Días',
|
||||
'slot-has-quantity' => 'El Horario Tiene Cantidad',
|
||||
'slots' => 'Horarios',
|
||||
'from' => 'Desde',
|
||||
'to' => 'A',
|
||||
'qty' => 'Cant',
|
||||
'add-slot' => 'Agregar Horario',
|
||||
'sunday' => 'Domingo',
|
||||
'monday' => 'Lunes',
|
||||
'tuesday' => 'Martes',
|
||||
'wednesday' => 'Miércoles',
|
||||
'thursday' => 'Jueves',
|
||||
'friday' => 'Viernes',
|
||||
'saturday' => 'Sábado',
|
||||
'renting-type' => 'Tipo de Alquiler',
|
||||
'daily' => 'Diariamente',
|
||||
'hourly' => 'Por Hora',
|
||||
'daily-hourly' => 'Ambos (Diariamente y Por Hora)',
|
||||
'daily-price' => 'Precio Diario',
|
||||
'hourly-price' => 'Precio por Hora',
|
||||
'location' => 'Ubicación',
|
||||
'show-location' => 'Mostrar Ubicación',
|
||||
'event-start-date' => 'Fecha de Inicio del Evento',
|
||||
'event-end-date' => 'Fecha de Finalización del Evento',
|
||||
'tickets' => 'Tickets',
|
||||
'add-ticket' => 'Agregar Ticket',
|
||||
'name' => 'Nombre',
|
||||
'price' => 'Precio',
|
||||
'quantity' => 'Cantidad',
|
||||
'description' => 'Descripción',
|
||||
'special-price' => 'Precio Especial',
|
||||
'special-price-from' => 'Válida Desde',
|
||||
'special-price-to' => 'Válida Hasta',
|
||||
'charged-per' => 'Cargado Por',
|
||||
'guest' => 'Invitado',
|
||||
'table' => 'Mesa',
|
||||
'prevent-scheduling-before' => 'Prevenir Agendamientos Antes',
|
||||
'guest-limit' => 'Límites de Invitados por Mesa',
|
||||
'guest-capacity' => 'Capacidad de Invitados',
|
||||
'type' => 'Tipo',
|
||||
'many-bookings-for-one-day' => 'Muchas Reservas para un Día',
|
||||
'one-booking-for-many-days' => 'Una Reserva para Muchos Días',
|
||||
'day' => 'Día',
|
||||
'status' => 'Estado',
|
||||
'open' => 'Abierto',
|
||||
'close' => 'Cerrado'
|
||||
]
|
||||
]
|
||||
],
|
||||
|
||||
'shop' => [
|
||||
'products' => [
|
||||
'location' => 'Ubicación',
|
||||
'contact' => 'Contacto',
|
||||
'email' => 'Correo Electrónico',
|
||||
'slot-duration' => 'Duración de Horario',
|
||||
'slot-duration-in-minutes' => ':minutes Minutos',
|
||||
'today-availability' => 'Disponibilidad Hoy',
|
||||
'slots-for-all-days' => 'Mostrar todos los días',
|
||||
'sunday' => 'Domingo',
|
||||
'monday' => 'Lunes',
|
||||
'tuesday' => 'Martes',
|
||||
'wednesday' => 'Miércoles',
|
||||
'thursday' => 'Jueves',
|
||||
'friday' => 'Viernes',
|
||||
'saturday' => 'Sábado',
|
||||
'closed' => 'Cerrado',
|
||||
'book-an-appointment' => 'Reservar una Cita',
|
||||
'date' => 'Fecha',
|
||||
'slot' => 'Horario',
|
||||
'rent-an-item' => 'Alquilar un Artículo',
|
||||
'choose-rent-option' => 'Elija la Opción de Alquiler',
|
||||
'daily-basis' => 'Diariamente',
|
||||
'hourly-basis' => 'Por día',
|
||||
'select-time-slot'=> 'Seleccionar Franja Horaria',
|
||||
'select-slot' => 'Seleccionar Horario',
|
||||
'select-date' => 'Seleccionar Fecha',
|
||||
'select-rent-time' => 'Seleccionar el Tiempo de Alquiler',
|
||||
'from' => 'Desde',
|
||||
'to' => 'A',
|
||||
'book-a-table' => 'Reserva una Mesa',
|
||||
'special-notes' => 'Pedido/Notas Especiales',
|
||||
'event-on' => 'Evento Activado',
|
||||
'book-your-ticket' => 'Reserve su Ticket',
|
||||
'per-ticket-price' => ':price Por Ticket',
|
||||
'number-of-tickets' => 'Numero de Tickets',
|
||||
'total-tickets' => 'Total Tickets',
|
||||
'base-price' => 'Precio Base',
|
||||
'total-price' => 'Precio Total',
|
||||
'base-price-info' => '(Esto se aplicará a cada tipo de ticket por cada cantidad)'
|
||||
],
|
||||
|
||||
'cart' => [
|
||||
'renting_type' => 'Tipo de Alquiler',
|
||||
'daily' => 'Diario',
|
||||
'hourly' => 'Por Hora',
|
||||
'event-ticket' => 'Ticket de Evento',
|
||||
'event-from' => 'Evento Desde:',
|
||||
'event-till' => 'Evento Hasta',
|
||||
'rent-type' => 'Tipo de Alquiler',
|
||||
'rent-from' => 'Alquilar Desde',
|
||||
'rent-till' => 'Alquilar Hasta',
|
||||
'booking-from' => 'Reserva Desde',
|
||||
'booking-till' => 'Reserva Hasta',
|
||||
'special-note' => 'Pedido/Notas Especiales',
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
@ -81,13 +81,13 @@ class CategoryController extends Controller
|
|||
public function store()
|
||||
{
|
||||
$this->validate(request(), [
|
||||
'slug' => ['required', 'unique:category_translations,slug', new \Webkul\Core\Contracts\Validations\Slug],
|
||||
'slug' => ['required', 'unique:category_translations,slug'],
|
||||
'name' => 'required',
|
||||
'image.*' => 'mimes:bmp,jpeg,jpg,png,webp',
|
||||
'description' => 'required_if:display_mode,==,description_only,products_and_description',
|
||||
]);
|
||||
|
||||
$category = $this->categoryRepository->create(request()->all());
|
||||
$this->categoryRepository->create(request()->all());
|
||||
|
||||
session()->flash('success', trans('admin::app.response.create-success', ['name' => 'Category']));
|
||||
|
||||
|
|
@ -122,7 +122,7 @@ class CategoryController extends Controller
|
|||
$locale = request()->get('locale') ?: app()->getLocale();
|
||||
|
||||
$this->validate(request(), [
|
||||
$locale . '.slug' => ['required', new \Webkul\Core\Contracts\Validations\Slug, function ($attribute, $value, $fail) use ($id) {
|
||||
$locale . '.slug' => ['required', function ($attribute, $value, $fail) use ($id) {
|
||||
if (! $this->categoryRepository->isSlugUnique($id, $value)) {
|
||||
$fail(trans('admin::app.response.already-taken', ['name' => 'Category']));
|
||||
}
|
||||
|
|
@ -152,15 +152,11 @@ class CategoryController extends Controller
|
|||
session()->flash('warning', trans('admin::app.response.delete-category-root', ['name' => 'Category']));
|
||||
} else {
|
||||
try {
|
||||
Event::dispatch('catalog.category.delete.before', $id);
|
||||
|
||||
if ($category->products->count() > 0) {
|
||||
$category->products()->delete();
|
||||
}
|
||||
Event::dispatch('catalog.category.delete.before', $category);
|
||||
|
||||
$category->delete();
|
||||
|
||||
Event::dispatch('catalog.category.delete.after', $id);
|
||||
Event::dispatch('catalog.category.delete.after', $category);
|
||||
|
||||
session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Category']));
|
||||
|
||||
|
|
@ -195,10 +191,6 @@ class CategoryController extends Controller
|
|||
$suppressFlash = true;
|
||||
Event::dispatch('catalog.category.delete.before', $categoryId);
|
||||
|
||||
if ($category->products->count() > 0) {
|
||||
$category->products()->delete();
|
||||
}
|
||||
|
||||
$category->delete();
|
||||
|
||||
Event::dispatch('catalog.category.delete.after', $categoryId);
|
||||
|
|
|
|||
|
|
@ -2,19 +2,17 @@
|
|||
|
||||
namespace Webkul\Category\Repositories;
|
||||
|
||||
use Illuminate\Container\Container as App;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Webkul\Core\Eloquent\Repository;
|
||||
use Webkul\Category\Models\Category;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Webkul\Category\Models\CategoryTranslationProxy;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class CategoryRepository extends Repository
|
||||
{
|
||||
/**
|
||||
* Specify Model class name
|
||||
* Specify model class name.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
|
|
@ -24,6 +22,8 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Create category.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Webkul\Category\Contracts\Category
|
||||
*/
|
||||
|
|
@ -58,7 +58,7 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Specify category tree
|
||||
* Specify category tree.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Webkul\Category\Contracts\Category
|
||||
|
|
@ -66,12 +66,12 @@ class CategoryRepository extends Repository
|
|||
public function getCategoryTree($id = null)
|
||||
{
|
||||
return $id
|
||||
? $this->model::orderBy('position', 'ASC')->where('id', '!=', $id)->get()->toTree()
|
||||
: $this->model::orderBy('position', 'ASC')->get()->toTree();
|
||||
? $this->model::orderBy('position', 'ASC')->where('id', '!=', $id)->get()->toTree()
|
||||
: $this->model::orderBy('position', 'ASC')->get()->toTree();
|
||||
}
|
||||
|
||||
/**
|
||||
* Specify category tree
|
||||
* Specify category tree.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Support\Collection
|
||||
|
|
@ -84,7 +84,7 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Get root categories
|
||||
* Get root categories.
|
||||
*
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
|
|
@ -94,7 +94,7 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* get visible category tree
|
||||
* get visible category tree.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Support\Collection
|
||||
|
|
@ -108,19 +108,19 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
return $categories[$id] = $id
|
||||
? $this->model::orderBy('position', 'ASC')->where('status', 1)->descendantsAndSelf($id)->toTree($id)
|
||||
: $this->model::orderBy('position', 'ASC')->where('status', 1)->get()->toTree();
|
||||
? $this->model::orderBy('position', 'ASC')->where('status', 1)->descendantsAndSelf($id)->toTree($id)
|
||||
: $this->model::orderBy('position', 'ASC')->where('status', 1)->get()->toTree();
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks slug is unique or not based on locale
|
||||
* Checks slug is unique or not based on locale.
|
||||
*
|
||||
* @param int $id
|
||||
* @param string $slug
|
||||
* @return bool
|
||||
*/
|
||||
public function isSlugUnique($id, $slug)
|
||||
{
|
||||
{
|
||||
$exists = CategoryTranslationProxy::modelClass()::where('category_id', '<>', $id)
|
||||
->where('slug', $slug)
|
||||
->limit(1)
|
||||
|
|
@ -131,7 +131,7 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Retrive category from slug
|
||||
* Retrive category from slug.
|
||||
*
|
||||
* @param string $slug
|
||||
* @return \Webkul\Category\Contracts\Category
|
||||
|
|
@ -150,6 +150,8 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Find by path.
|
||||
*
|
||||
* @param string $urlPath
|
||||
* @return \Webkul\Category\Contracts\Category
|
||||
*/
|
||||
|
|
@ -159,6 +161,8 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Update category.
|
||||
*
|
||||
* @param array $data
|
||||
* @param int $id
|
||||
* @param string $attribute
|
||||
|
|
@ -170,6 +174,8 @@ class CategoryRepository extends Repository
|
|||
|
||||
Event::dispatch('catalog.category.update.before', $id);
|
||||
|
||||
$data = $this->setSameAttributeValueToAllLocale($data, 'slug');
|
||||
|
||||
$category->update($data);
|
||||
|
||||
$this->uploadImages($data, $category);
|
||||
|
|
@ -184,6 +190,8 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Delete category.
|
||||
*
|
||||
* @param int $id
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -197,8 +205,11 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Upload category's images.
|
||||
*
|
||||
* @param array $data
|
||||
* @param \Webkul\Category\Contracts\Category $category
|
||||
* @param string $type
|
||||
* @return void
|
||||
*/
|
||||
public function uploadImages($data, $category, $type = "image")
|
||||
|
|
@ -230,6 +241,8 @@ class CategoryRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Get partials.
|
||||
*
|
||||
* @param array|null $columns
|
||||
* @return array
|
||||
*/
|
||||
|
|
@ -251,4 +264,33 @@ class CategoryRepository extends Repository
|
|||
|
||||
return $trimmed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set same value to all locales in category.
|
||||
*
|
||||
* To Do: Move column from the `category_translations` to `category` table. And remove
|
||||
* this created method.
|
||||
*
|
||||
* @param array $data
|
||||
* @param string $attributeNames
|
||||
* @return array
|
||||
*/
|
||||
private function setSameAttributeValueToAllLocale(array $data, ...$attributeNames)
|
||||
{
|
||||
$requestedLocale = request()->get('locale') ?: app()->getLocale();
|
||||
|
||||
$model = app()->make($this->model());
|
||||
|
||||
foreach ($attributeNames as $attributeName) {
|
||||
foreach (core()->getAllLocales() as $locale) {
|
||||
foreach ($model->translatedAttributes as $attribute) {
|
||||
if ($attribute === $attributeName) {
|
||||
$data[$locale->code][$attribute] = $data[$requestedLocale][$attribute];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
|
@ -118,7 +118,7 @@ class Install extends Command
|
|||
$input_admin_url = $this->ask('Please Enter the Admin URL : ');
|
||||
$this->envUpdate('APP_ADMIN_URL=', $input_admin_url ?: $default_admin_url);
|
||||
|
||||
$locale = $this->choice('Please select the default locale or press enter to continue', ['ar', 'en', 'fa', 'nl', 'pt_BR'], 1);
|
||||
$locale = $this->choice('Please select the default locale or press enter to continue', ['ar', 'en', 'es', 'fa', 'nl', 'pt_BR'], 1);
|
||||
$this->envUpdate('APP_LOCALE=', $locale);
|
||||
|
||||
$TimeZones = timezone_identifiers_list();
|
||||
|
|
|
|||
|
|
@ -3974,5 +3974,131 @@
|
|||
"code":"WB",
|
||||
"default_name":"West Bengal",
|
||||
"country_id":106
|
||||
},
|
||||
{
|
||||
"id":569,
|
||||
"country_code":"PY",
|
||||
"code":"PY-16",
|
||||
"default_name":"Alto Paraguay",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":570,
|
||||
"country_code":"PY",
|
||||
"code":"PY-10",
|
||||
"default_name":"Alto Paran\u00e1",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":571,
|
||||
"country_code":"PY",
|
||||
"code":"PY-13",
|
||||
"default_name":"Amambay",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":572,
|
||||
"country_code":"PY",
|
||||
"code":"PY-ASU",
|
||||
"default_name":"Asunci\u00f3n",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":573,
|
||||
"country_code":"PY",
|
||||
"code":"PY-19",
|
||||
"default_name":"Boquer\u00f3n",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":574,
|
||||
"country_code":"PY",
|
||||
"code":"PY-5",
|
||||
"default_name":"Caaguaz\u00fa",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":575,
|
||||
"country_code":"PY",
|
||||
"code":"PY-6",
|
||||
"default_name":"Caazap\u00e1",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":576,
|
||||
"country_code":"PY",
|
||||
"code":"PY-14",
|
||||
"default_name":"Canindey\u00fa",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":577,
|
||||
"country_code":"PY",
|
||||
"code":"PY-11",
|
||||
"default_name":"Central",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":578,
|
||||
"country_code":"PY",
|
||||
"code":"PY-1",
|
||||
"default_name":"Concepci\u00f3n",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":579,
|
||||
"country_code":"PY",
|
||||
"code":"PY-3",
|
||||
"default_name":"Cordillera",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":580,
|
||||
"country_code":"PY",
|
||||
"code":"PY-4",
|
||||
"default_name":"Guair\u00e1",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":581,
|
||||
"country_code":"PY",
|
||||
"code":"PY-7",
|
||||
"default_name":"Itap\u00faa",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":582,
|
||||
"country_code":"PY",
|
||||
"code":"PY-8",
|
||||
"default_name":"Misiones",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":583,
|
||||
"country_code":"PY",
|
||||
"code":"PY-9",
|
||||
"default_name":"Paraguar\u00ed",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":584,
|
||||
"country_code":"PY",
|
||||
"code":"PY-15",
|
||||
"default_name":"Presidente Hayes",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":585,
|
||||
"country_code":"PY",
|
||||
"code":"PY-2",
|
||||
"default_name":"San Pedro",
|
||||
"country_id":176
|
||||
},
|
||||
{
|
||||
"id":586,
|
||||
"country_code":"PY",
|
||||
"code":"PY-12",
|
||||
"default_name":"\u00d1eembuc\u00fa",
|
||||
"country_id":176
|
||||
}
|
||||
]
|
||||
|
|
@ -182,6 +182,46 @@ class ChannelTableSeeder extends Seeder
|
|||
</div>
|
||||
',
|
||||
'home_seo' => '{"meta_title": "Demo store", "meta_keywords": "Demo store meta keyword", "meta_description": "Demo store meta description"}',
|
||||
], [
|
||||
'id' => 5,
|
||||
'channel_id' => 1,
|
||||
'locale' => 'es',
|
||||
'name' => 'Default',
|
||||
'home_page_content' => '
|
||||
<p>@include("shop::home.slider") @include("shop::home.featured-products") @include("shop::home.new-products")</p>
|
||||
<div class="banner-container">
|
||||
<div class="left-banner">
|
||||
<img src='.asset("/themes/default/assets/images/1.webp").' data-src='.asset("/themes/default/assets/images/1.webp").' class="lazyload" alt="test" width="720" height="720" />
|
||||
</div>
|
||||
<div class="right-banner">
|
||||
<img src='. asset("/themes/default/assets/images/2.webp").' data-src='. asset("/themes/default/assets/images/2.webp").' class="lazyload" alt="test" width="460" height="330" />
|
||||
<img src='.asset("/themes/default/assets/images/3.webp").' data-src='.asset("/themes/default/assets/images/3.webp").' class="lazyload" alt="test" width="460" height="330" />
|
||||
</div>
|
||||
</div>
|
||||
',
|
||||
'footer_content' => '
|
||||
<div class="list-container">
|
||||
<span class="list-heading">Quick Links</span>
|
||||
<ul class="list-group">
|
||||
<li><a href="@php echo route(\'shop.cms.page\', \'about-us\') @endphp">About Us</a></li>
|
||||
<li><a href="@php echo route(\'shop.cms.page\', \'return-policy\') @endphp">Return Policy</a></li>
|
||||
<li><a href="@php echo route(\'shop.cms.page\', \'refund-policy\') @endphp">Refund Policy</a></li>
|
||||
<li><a href="@php echo route(\'shop.cms.page\', \'terms-conditions\') @endphp">Terms and conditions</a></li>
|
||||
<li><a href="@php echo route(\'shop.cms.page\', \'terms-of-use\') @endphp">Terms of Use</a></li><li><a href="@php echo route(\'shop.cms.page\', \'contact-us\') @endphp">Contact Us</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="list-container">
|
||||
<span class="list-heading">Connect With Us</span>
|
||||
<ul class="list-group">
|
||||
<li><a href="#"><span class="icon icon-facebook"></span>Facebook </a></li>
|
||||
<li><a href="#"><span class="icon icon-twitter"></span> Twitter </a></li>
|
||||
<li><a href="#"><span class="icon icon-instagram"></span> Instagram </a></li>
|
||||
<li><a href="#"> <span class="icon icon-google-plus"></span>Google+ </a></li>
|
||||
<li><a href="#"> <span class="icon icon-linkedin"></span>LinkedIn </a></li>
|
||||
</ul>
|
||||
</div>
|
||||
',
|
||||
'home_seo' => '{"meta_title": "Demo store", "meta_keywords": "Demo store meta keyword", "meta_description": "Demo store meta description"}',
|
||||
]
|
||||
]);
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ class CountryStateTranslationSeeder extends Seeder
|
|||
public function run()
|
||||
{
|
||||
|
||||
foreach (['ar', 'fa', 'pt_BR'] as $code) {
|
||||
foreach (['ar', 'es', 'fa', 'pt_BR'] as $code) {
|
||||
DB::table('country_translations')->where('locale', $code)->delete();
|
||||
|
||||
DB::table('country_state_translations')->where('locale', $code)->delete();
|
||||
|
|
@ -30,4 +30,4 @@ class CountryStateTranslationSeeder extends Seeder
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ class LocalesTableSeeder extends Seeder
|
|||
'id' => 4,
|
||||
'code' => 'tr',
|
||||
'name' => 'Türkçe',
|
||||
], [
|
||||
'id' => 5,
|
||||
'code' => 'es',
|
||||
'name' => 'Español',
|
||||
]]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'path-hint' => [
|
||||
'template' => 'Plantilla',
|
||||
'parents' => 'Padres'
|
||||
]
|
||||
];
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'slug' => 'O :attribute debe tener un slug válido.',
|
||||
'code' => 'O :attribute debe ser válido.',
|
||||
'decimal' => 'O :attribute debe ser válido.'
|
||||
];
|
||||
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
namespace Webkul\Customer\Http\Controllers;
|
||||
|
||||
use Cart;
|
||||
use Webkul\Product\Repositories\ProductRepository;
|
||||
use Webkul\Customer\Repositories\WishlistRepository;
|
||||
use Cart;
|
||||
|
||||
class WishlistController extends Controller
|
||||
{
|
||||
/**
|
||||
* Contains route related configuration
|
||||
* Contains route related configuration.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
|
|
@ -57,7 +57,7 @@ class WishlistController extends Controller
|
|||
*/
|
||||
public function index()
|
||||
{
|
||||
$wishlistItems = $this->wishlistRepository->getCustomerWhishlist();
|
||||
$wishlistItems = $this->wishlistRepository->getCustomerWishlist();
|
||||
|
||||
if (! core()->getConfigData('general.content.shop.wishlist_option')) {
|
||||
abort(404);
|
||||
|
|
@ -91,7 +91,7 @@ class WishlistController extends Controller
|
|||
'customer_id' => auth()->guard('customer')->user()->id,
|
||||
]);
|
||||
|
||||
//accidental case if some one adds id of the product in the anchor tag amd gives id of a variant.
|
||||
// accidental case if some one adds id of the product in the anchor tag amd gives id of a variant.
|
||||
if ($product->parent_id != null) {
|
||||
$product = $this->productRepository->findOneByField('id', $product->parent_id);
|
||||
$data['product_id'] = $product->id;
|
||||
|
|
@ -152,9 +152,9 @@ class WishlistController extends Controller
|
|||
public function move($itemId)
|
||||
{
|
||||
$wishlistItem = $this->wishlistRepository->findOneWhere([
|
||||
'id' => $itemId,
|
||||
'customer_id' => auth()->guard('customer')->user()->id,
|
||||
]);
|
||||
'id' => $itemId,
|
||||
'customer_id' => auth()->guard('customer')->user()->id,
|
||||
]);
|
||||
|
||||
if (! $wishlistItem) {
|
||||
abort(404);
|
||||
|
|
@ -182,7 +182,7 @@ class WishlistController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Function to remove all of the items items in the customer's wishlist
|
||||
* Function to remove all of the items items in the customer's wishlist.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -7,17 +7,18 @@ use Webkul\Core\Eloquent\Repository;
|
|||
class WishlistRepository extends Repository
|
||||
{
|
||||
/**
|
||||
* Specify Model class name
|
||||
* Specify model class name.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
|
||||
function model()
|
||||
{
|
||||
return 'Webkul\Customer\Contracts\Wishlist';
|
||||
}
|
||||
|
||||
/**
|
||||
* Create wishlist.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Webkul\Customer\Contracts\Wishlist
|
||||
*/
|
||||
|
|
@ -29,6 +30,8 @@ class WishlistRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Update wishlist.
|
||||
*
|
||||
* @param array $data
|
||||
* @param int $id
|
||||
* @param string $attribute
|
||||
|
|
@ -55,25 +58,28 @@ class WishlistRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* get customer wishlist Items.
|
||||
* Get customer wishlist items.
|
||||
*
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
public function getCustomerWhishlist()
|
||||
public function getCustomerWishlist()
|
||||
{
|
||||
$query = $this->model;
|
||||
/* due to ambigious ids only selecting from wishlist table */
|
||||
$query = $this->model->select('wishlist.*');
|
||||
|
||||
/* don't add product repository method as that one will need a product flat table */
|
||||
if (! core()->getConfigData('catalog.products.homepage.out_of_stock_items')) {
|
||||
$query = $this->model
|
||||
->leftJoin('products as ps', 'wishlist.product_id', '=', 'ps.id')
|
||||
->leftJoin('product_inventories as pv', 'ps.id', '=', 'pv.product_id')
|
||||
->where(function ($qb) {
|
||||
$qb
|
||||
->WhereIn('ps.type', ['configurable', 'grouped', 'downloadable', 'bundle', 'booking'])
|
||||
->orwhereIn('ps.type', ['simple', 'virtual'])->where('pv.qty' , '>' , 0);
|
||||
});
|
||||
$query = $query
|
||||
->leftJoin('products as ps', 'wishlist.product_id', '=', 'ps.id')
|
||||
->leftJoin('product_inventories as pv', 'ps.id', '=', 'pv.product_id')
|
||||
->where(function ($qb) {
|
||||
$qb
|
||||
->WhereIn('ps.type', ['configurable', 'grouped', 'downloadable', 'bundle', 'booking'])
|
||||
->orwhereIn('ps.type', ['simple', 'virtual'])->where('pv.qty' , '>' , 0);
|
||||
});
|
||||
}
|
||||
|
||||
/* main check to determine the wishlist */
|
||||
return $query->where([
|
||||
'channel_id' => core()->getCurrentChannel()->id,
|
||||
'customer_id' => auth()->guard('customer')->user()->id,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'wishlist' => [
|
||||
'success' => 'Artículo agregado exitosamente a la lista de deseos',
|
||||
'failure' => 'El artículo no se puede agregar a la lista de deseos',
|
||||
'already' => 'El artículo ya está en tu lista de deseos',
|
||||
'removed' => 'Artículo eliminado correctamente de la lista de deseos',
|
||||
'remove-fail' => 'El artículo no se puede eliminar de la lista de deseos',
|
||||
'empty' => 'No tienes artículos en la lista de deseos',
|
||||
'select-options' => 'Necesita seleccionar opciones antes de agregar a la lista de deseos',
|
||||
'remove-all-success' => 'Se han eliminado todos los elementos de su lista de deseos',
|
||||
],
|
||||
'reviews' => [
|
||||
'empty' => 'Aún no has calificado ningún producto'
|
||||
],
|
||||
'forget_password' => [
|
||||
'reset_link_sent' => 'Hemos enviado un correo electrónico con el enlace para restablecer la contraseña.',
|
||||
'email_not_exist' => "No podemos encontrar un usuario con esa dirección de correo electrónico"
|
||||
]
|
||||
];
|
||||
|
|
@ -2,34 +2,42 @@
|
|||
|
||||
namespace Webkul\Paypal\Helpers;
|
||||
|
||||
use Webkul\Paypal\Payment\Standard;
|
||||
use Webkul\Sales\Repositories\OrderRepository;
|
||||
use Webkul\Sales\Repositories\InvoiceRepository;
|
||||
|
||||
class Ipn
|
||||
{
|
||||
/**
|
||||
* Ipn post data
|
||||
* IPN post data.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $post;
|
||||
|
||||
/**
|
||||
* Order object
|
||||
* Standard $paypalStandard
|
||||
*
|
||||
* @var \Webkul\Paypal\Payment\Standard
|
||||
*/
|
||||
protected $paypalStandard;
|
||||
|
||||
/**
|
||||
* Order $order
|
||||
*
|
||||
* @var \Webkul\Sales\Contracts\Order
|
||||
*/
|
||||
protected $order;
|
||||
|
||||
/**
|
||||
* OrderRepository object
|
||||
* OrderRepository $orderRepository
|
||||
*
|
||||
* @var \Webkul\Sales\Repositories\OrderRepository
|
||||
*/
|
||||
protected $orderRepository;
|
||||
|
||||
/**
|
||||
* InvoiceRepository object
|
||||
* InvoiceRepository $invoiceRepository
|
||||
*
|
||||
* @var \Webkul\Sales\Repositories\InvoiceRepository
|
||||
*/
|
||||
|
|
@ -40,20 +48,24 @@ class Ipn
|
|||
*
|
||||
* @param \Webkul\Sales\Repositories\OrderRepository $orderRepository
|
||||
* @param \Webkul\Sales\Repositories\InvoiceRepository $invoiceRepository
|
||||
* @param \Webkul\Paypal\Payment\Standard $paypalStandard
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
Standard $paypalStandard,
|
||||
OrderRepository $orderRepository,
|
||||
InvoiceRepository $invoiceRepository
|
||||
)
|
||||
{
|
||||
$this->paypalStandard = $paypalStandard;
|
||||
|
||||
$this->orderRepository = $orderRepository;
|
||||
|
||||
$this->invoiceRepository = $invoiceRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function process the ipn sent from paypal end
|
||||
* This function process the IPN sent from paypal end.
|
||||
*
|
||||
* @param array $post
|
||||
* @return null|void|\Exception
|
||||
|
|
@ -80,7 +92,7 @@ class Ipn
|
|||
}
|
||||
|
||||
/**
|
||||
* Load order via ipn invoice id
|
||||
* Load order via IPN invoice id.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -92,7 +104,7 @@ class Ipn
|
|||
}
|
||||
|
||||
/**
|
||||
* Process order and create invoice
|
||||
* Process order and create invoice.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -112,13 +124,13 @@ class Ipn
|
|||
}
|
||||
|
||||
/**
|
||||
* Prepares order's invoice data for creation
|
||||
* Prepares order's invoice data for creation.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function prepareInvoiceData()
|
||||
{
|
||||
$invoiceData = ["order_id" => $this->order->id,];
|
||||
$invoiceData = ['order_id' => $this->order->id];
|
||||
|
||||
foreach ($this->order->items as $item) {
|
||||
$invoiceData['invoice']['items'][$item->id] = $item->qty_to_invoice;
|
||||
|
|
@ -128,24 +140,20 @@ class Ipn
|
|||
}
|
||||
|
||||
/**
|
||||
* Post back to PayPal to check whether this request is a valid one
|
||||
* Post back to PayPal to check whether this request is a valid one.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function postBack()
|
||||
{
|
||||
if (array_key_exists('test_ipn', $this->post) && 1 === (int) $this->post['test_ipn']) {
|
||||
$url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
|
||||
} else {
|
||||
$url = 'https://www.paypal.com/cgi-bin/webscr';
|
||||
}
|
||||
$url = $this->paypalStandard->getIPNUrl();
|
||||
|
||||
$request = curl_init();
|
||||
|
||||
curl_setopt_array($request, [
|
||||
CURLOPT_URL => $url,
|
||||
CURLOPT_POST => TRUE,
|
||||
CURLOPT_POSTFIELDS => http_build_query(array('cmd' => '_notify-validate') + $this->post),
|
||||
CURLOPT_POSTFIELDS => http_build_query(['cmd' => '_notify-validate'] + $this->post),
|
||||
CURLOPT_RETURNTRANSFER => TRUE,
|
||||
CURLOPT_HEADER => FALSE,
|
||||
]);
|
||||
|
|
@ -161,4 +169,4 @@ class Ipn
|
|||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,21 +2,21 @@
|
|||
|
||||
namespace Webkul\Paypal\Http\Controllers;
|
||||
|
||||
use Webkul\Paypal\Helpers\Ipn;
|
||||
use Webkul\Checkout\Facades\Cart;
|
||||
use Webkul\Sales\Repositories\OrderRepository;
|
||||
use Webkul\Paypal\Helpers\Ipn;
|
||||
|
||||
class StandardController extends Controller
|
||||
{
|
||||
/**
|
||||
* OrderRepository object
|
||||
* OrderRepository $orderRepository
|
||||
*
|
||||
* @var \Webkul\Sales\Repositories\OrderRepository
|
||||
*/
|
||||
protected $orderRepository;
|
||||
|
||||
/**
|
||||
* Ipn object
|
||||
* IPN $ipnHelper
|
||||
*
|
||||
* @var \Webkul\Paypal\Helpers\Ipn
|
||||
*/
|
||||
|
|
@ -62,7 +62,7 @@ class StandardController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Success payment
|
||||
* Success payment.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
|
@ -78,7 +78,7 @@ class StandardController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Paypal Ipn listener
|
||||
* Paypal IPN listener.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -16,4 +16,4 @@ Route::group(['middleware' => ['web']], function () {
|
|||
});
|
||||
});
|
||||
|
||||
Route::get('paypal/standard/ipn', 'Webkul\Paypal\Http\Controllers\StandardController@ipn')->name('paypal.standard.ipn');
|
||||
Route::post('paypal/standard/ipn', 'Webkul\Paypal\Http\Controllers\StandardController@ipn')->name('paypal.standard.ipn');
|
||||
|
|
|
|||
|
|
@ -0,0 +1,83 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Paypal\Listeners;
|
||||
|
||||
use Webkul\Paypal\Payment\SmartButton;
|
||||
use Webkul\Sales\Repositories\OrderTransactionRepository;
|
||||
|
||||
class Transaction
|
||||
{
|
||||
/**
|
||||
* SmartButton $smartButton
|
||||
*
|
||||
* @var \Webkul\Paypal\Payment\SmartButton
|
||||
*/
|
||||
protected $smartButton;
|
||||
|
||||
/**
|
||||
* OrderTransactionRepository object
|
||||
*
|
||||
* @var \Webkul\Sales\Repositories\OrderTransactionRepository
|
||||
*/
|
||||
protected $orderTransactionRepository;
|
||||
|
||||
/**
|
||||
* Create a new listener instance.
|
||||
*
|
||||
* @param \Webkul\Paypal\Payment\SmartButton $smartButton
|
||||
* @param \Webkul\Sales\Repositories\OrderTransactionRepository $orderTransactionRepository
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
SmartButton $smartButton,
|
||||
OrderTransactionRepository $orderTransactionRepository
|
||||
)
|
||||
{
|
||||
$this->smartButton = $smartButton;
|
||||
|
||||
$this->orderTransactionRepository = $orderTransactionRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the transaction data for online payment.
|
||||
* @param \Webkul\Sales\Models\Invoice $invoice
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function saveTransaction($invoice) {
|
||||
$data = request()->all();
|
||||
|
||||
if ($invoice->order->payment->method == 'paypal_smart_button') {
|
||||
if (isset($data['orderData']) && isset($data['orderData']['orderID'])) {
|
||||
$smartButtonOrderId = $data['orderData']['orderID'];
|
||||
$transactionDetails = $this->smartButton->getOrder($smartButtonOrderId);
|
||||
$transactionDetails = json_decode(json_encode($transactionDetails), true);
|
||||
|
||||
if ($transactionDetails['statusCode'] == 200) {
|
||||
$transactionData['transaction_id'] = $transactionDetails['result']['id'];
|
||||
$transactionData['status'] = $transactionDetails['result']['status'];
|
||||
$transactionData['type'] = $transactionDetails['result']['intent'];
|
||||
$transactionData['payment_method'] = $invoice->order->payment->method;
|
||||
$transactionData['order_id'] = $invoice->order->id;
|
||||
$transactionData['invoice_id'] = $invoice->id;
|
||||
$transactionData['data'] = json_encode (
|
||||
array_merge($transactionDetails['result']['purchase_units'],
|
||||
$transactionDetails['result']['payer'])
|
||||
);
|
||||
|
||||
$this->orderTransactionRepository->create($transactionData);
|
||||
}
|
||||
}
|
||||
} else if ($invoice->order->payment->method == 'paypal_standard') {
|
||||
$transactionData['transaction_id'] = $data['txn_id'];
|
||||
$transactionData['status'] = $data['payment_status'];
|
||||
$transactionData['type'] = $data['payment_type'];
|
||||
$transactionData['payment_method'] = $invoice->order->payment->method;
|
||||
$transactionData['order_id'] = $invoice->order->id;
|
||||
$transactionData['invoice_id'] = $invoice->id;
|
||||
$transactionData['data'] = json_encode ($data);
|
||||
|
||||
$this->orderTransactionRepository->create($transactionData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -5,14 +5,14 @@ namespace Webkul\Paypal\Payment;
|
|||
class Standard extends Paypal
|
||||
{
|
||||
/**
|
||||
* Payment method code
|
||||
* Payment method code.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $code = 'paypal_standard';
|
||||
|
||||
/**
|
||||
* Line items fields mapping
|
||||
* Line items fields mapping.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
|
|
@ -24,7 +24,7 @@ class Standard extends Paypal
|
|||
];
|
||||
|
||||
/**
|
||||
* Return paypal redirect url
|
||||
* Return paypal redirect url.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
|
@ -34,7 +34,20 @@ class Standard extends Paypal
|
|||
}
|
||||
|
||||
/**
|
||||
* Return form field array
|
||||
* Return paypal IPN url.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getIPNUrl()
|
||||
{
|
||||
return $this->getConfigData('sandbox')
|
||||
? 'https://ipnpb.sandbox.paypal.com/cgi-bin/webscr'
|
||||
: 'https://ipnpb.paypal.com/cgi-bin/webscr';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return form field array.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
|
|
@ -89,7 +102,7 @@ class Standard extends Paypal
|
|||
}
|
||||
|
||||
/**
|
||||
* Add shipping as item
|
||||
* Add shipping as item.
|
||||
*
|
||||
* @param array $fields
|
||||
* @param int $i
|
||||
|
|
|
|||
|
|
@ -15,9 +15,11 @@ class EventServiceProvider extends ServiceProvider
|
|||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
{
|
||||
Event::listen('bagisto.shop.layout.body.after', static function(ViewRenderEventManager $viewRenderEventManager) {
|
||||
$viewRenderEventManager->addTemplate('paypal::checkout.onepage.paypal-smart-button');
|
||||
});
|
||||
|
||||
Event::listen('sales.invoice.save.after', 'Webkul\Paypal\Listeners\Transaction@saveTransaction');
|
||||
}
|
||||
}
|
||||
|
|
@ -70,6 +70,15 @@ class ProductImage extends AbstractProduct
|
|||
];
|
||||
}
|
||||
|
||||
/*
|
||||
* Product parent checked already above. If the case reached here that means the
|
||||
* parent is available. So recursing the method for getting the parent image if
|
||||
* images of the child are not found.
|
||||
*/
|
||||
if (empty($images)) {
|
||||
$images = $this->getGalleryImages($product->parent);
|
||||
}
|
||||
|
||||
return $loadedGalleryImages[$product->id] = $images;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sales\Contracts;
|
||||
|
||||
interface OrderTransaction
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOrderTransactionsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('order_transactions', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->string('transaction_id');
|
||||
$table->string('status')->nullable();
|
||||
$table->string('type')->nullable();
|
||||
$table->string('payment_method')->nullable();
|
||||
$table->json('data')->nullable();
|
||||
$table->integer('invoice_id')->unsigned();
|
||||
$table->integer('order_id')->unsigned();
|
||||
$table->foreign('order_id')->references('id')->on('orders')->onDelete('cascade');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('order_transactions');
|
||||
}
|
||||
}
|
||||
|
|
@ -126,6 +126,14 @@ class Order extends Model implements OrderContract
|
|||
return $this->hasMany(RefundProxy::modelClass());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the order transactions record associated with the order.
|
||||
*/
|
||||
public function transactions()
|
||||
{
|
||||
return $this->hasMany(OrderTransactionProxy::modelClass());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the customer record associated with the order.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sales\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Webkul\Sales\Contracts\OrderTransaction as OrderTransactionContract;
|
||||
|
||||
class OrderTransaction extends Model implements OrderTransactionContract
|
||||
{
|
||||
protected $table = 'order_transactions';
|
||||
|
||||
protected $guarded = [
|
||||
'id',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sales\Models;
|
||||
|
||||
use Konekt\Concord\Proxies\ModelProxy;
|
||||
|
||||
class OrderTransactionProxy extends ModelProxy
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -19,5 +19,6 @@ class ModuleServiceProvider extends CoreModuleServiceProvider
|
|||
\Webkul\Sales\Models\ShipmentItem::class,
|
||||
\Webkul\Sales\Models\Refund::class,
|
||||
\Webkul\Sales\Models\RefundItem::class,
|
||||
\Webkul\Sales\Models\OrderTransaction::class,
|
||||
];
|
||||
}
|
||||
|
|
@ -2,26 +2,26 @@
|
|||
|
||||
namespace Webkul\Sales\Repositories;
|
||||
|
||||
use Illuminate\Container\Container as App;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Webkul\Core\Eloquent\Repository;
|
||||
use Webkul\Sales\Contracts\Order;
|
||||
use Webkul\Sales\Models\Order as OrderModel;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Webkul\Core\Eloquent\Repository;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Webkul\Shop\Generators\Sequencer;
|
||||
use Illuminate\Container\Container as App;
|
||||
use Webkul\Shop\Generators\OrderNumberIdSequencer;
|
||||
|
||||
class OrderRepository extends Repository
|
||||
{
|
||||
/**
|
||||
* OrderItemRepository object
|
||||
* OrderItemRepository $orderItemRepository
|
||||
*
|
||||
* @var \Webkul\Sales\Repositories\OrderItemRepository
|
||||
*/
|
||||
protected $orderItemRepository;
|
||||
|
||||
/**
|
||||
* DownloadableLinkPurchasedRepository object
|
||||
* DownloadableLinkPurchasedRepository $downloadableLinkPurchasedRepository
|
||||
*
|
||||
* @var \Webkul\Sales\Repositories\DownloadableLinkPurchasedRepository
|
||||
*/
|
||||
|
|
@ -32,6 +32,7 @@ class OrderRepository extends Repository
|
|||
*
|
||||
* @param \Webkul\Sales\Repositories\OrderItemRepository $orderItemRepository
|
||||
* @param \Webkul\Sales\Repositories\DownloadableLinkPurchasedRepository $downloadableLinkPurchasedRepository
|
||||
* @param \Illuminate\Container\Container $app
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
|
|
@ -47,7 +48,7 @@ class OrderRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Specify Model class name
|
||||
* Specify model class name.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
|
@ -57,10 +58,11 @@ class OrderRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* This method will try attempt to a create order.
|
||||
*
|
||||
* @return \Webkul\Sales\Contracts\Order
|
||||
*/
|
||||
public function create(array $data)
|
||||
public function createOrderIfNotThenRetry(array $data)
|
||||
{
|
||||
DB::beginTransaction();
|
||||
|
||||
|
|
@ -114,24 +116,46 @@ class OrderRepository extends Repository
|
|||
|
||||
Event::dispatch('checkout.order.save.after', $order);
|
||||
} catch (\Exception $e) {
|
||||
/* rolling back first */
|
||||
DB::rollBack();
|
||||
|
||||
throw $e;
|
||||
}
|
||||
/* storing log for errors */
|
||||
Log::error('OrderRepository:createOrderIfNotThenRetry: ' . $e->getMessage(),
|
||||
['data' => $data]);
|
||||
|
||||
DB::commit();
|
||||
/* recalling */
|
||||
$this->createOrderIfNotThenRetry($data);
|
||||
} finally {
|
||||
/* commit in each case */
|
||||
DB::commit();
|
||||
}
|
||||
|
||||
return $order;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $orderId
|
||||
* Create order.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Webkul\Sales\Contracts\Order
|
||||
*/
|
||||
public function cancel($orderId)
|
||||
public function create(array $data)
|
||||
{
|
||||
$order = $this->findOrFail($orderId);
|
||||
return $this->createOrderIfNotThenRetry($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancel order. This method should be independent as admin also can cancel the order.
|
||||
*
|
||||
* @param \Webkul\Sales\Models\Order|int $orderOrId
|
||||
* @return \Webkul\Sales\Contracts\Order
|
||||
*/
|
||||
public function cancel($orderOrId)
|
||||
{
|
||||
/* order */
|
||||
$order = $this->resolveOrderInstance($orderOrId);
|
||||
|
||||
/* check wether order can be cancelled or not */
|
||||
if (! $order->canCancel()) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -183,17 +207,21 @@ class OrderRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Generate increment id.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function generateIncrementId()
|
||||
{
|
||||
/**
|
||||
* @var $generatorClass Sequencer
|
||||
*/
|
||||
$generatorClass = core()->getConfigData('sales.orderSettings.order_number.order_number_generator-class') ?: false;
|
||||
|
||||
if ($generatorClass !== false
|
||||
&& class_exists($generatorClass)
|
||||
&& in_array(Sequencer::class, class_implements($generatorClass), true)
|
||||
) {
|
||||
/** @var $generatorClass Sequencer */
|
||||
return $generatorClass::generate();
|
||||
}
|
||||
|
||||
|
|
@ -201,6 +229,8 @@ class OrderRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Is order in completed state.
|
||||
*
|
||||
* @param \Webkul\Sales\Contracts\Order $order
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -232,6 +262,8 @@ class OrderRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Is order in cancelled state.
|
||||
*
|
||||
* @param \Webkul\Sales\Contracts\Order $order
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -248,8 +280,9 @@ class OrderRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* @param mixed $order
|
||||
* Is order in closed state.
|
||||
*
|
||||
* @param mixed $order
|
||||
* @return void
|
||||
*/
|
||||
public function isInClosedState($order)
|
||||
|
|
@ -266,6 +299,8 @@ class OrderRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Update order status.
|
||||
*
|
||||
* @param \Webkul\Sales\Contracts\Order $order
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -288,12 +323,14 @@ class OrderRepository extends Repository
|
|||
}
|
||||
|
||||
/**
|
||||
* Collect totals.
|
||||
*
|
||||
* @param \Webkul\Sales\Contracts\Order $order
|
||||
* @return mixed
|
||||
*/
|
||||
public function collectTotals($order)
|
||||
{
|
||||
//Order invoice total
|
||||
// order invoice total
|
||||
$order->sub_total_invoiced = $order->base_sub_total_invoiced = 0;
|
||||
$order->shipping_invoiced = $order->base_shipping_invoiced = 0;
|
||||
$order->tax_amount_invoiced = $order->base_tax_amount_invoiced = 0;
|
||||
|
|
@ -316,7 +353,7 @@ class OrderRepository extends Repository
|
|||
$order->grand_total_invoiced = $order->sub_total_invoiced + $order->shipping_invoiced + $order->tax_amount_invoiced - $order->discount_invoiced;
|
||||
$order->base_grand_total_invoiced = $order->base_sub_total_invoiced + $order->base_shipping_invoiced + $order->base_tax_amount_invoiced - $order->base_discount_invoiced;
|
||||
|
||||
//Order refund total
|
||||
// order refund total
|
||||
$order->sub_total_refunded = $order->base_sub_total_refunded = 0;
|
||||
$order->shipping_refunded = $order->base_shipping_refunded = 0;
|
||||
$order->tax_amount_refunded = $order->base_tax_amount_refunded = 0;
|
||||
|
|
@ -347,4 +384,17 @@ class OrderRepository extends Repository
|
|||
|
||||
return $order;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will find order if id is given else pass the order as it is.
|
||||
*
|
||||
* @param \Webkul\Sales\Models\Order|int $orderOrId
|
||||
* @return \Webkul\Sales\Contracts\Order
|
||||
*/
|
||||
private function resolveOrderInstance($orderOrId)
|
||||
{
|
||||
return $orderOrId instanceof \Webkul\Sales\Models\Order
|
||||
? $orderOrId
|
||||
: $this->findOrFail($orderOrId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sales\Repositories;
|
||||
|
||||
use Webkul\Core\Eloquent\Repository;
|
||||
use Webkul\Sales\Contracts\OrderTransaction;
|
||||
|
||||
/**
|
||||
* Order Transaction Repository
|
||||
*
|
||||
* @author Jitendra Singh <jitendra@webkul.com>
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
class OrderTransactionRepository extends Repository
|
||||
{
|
||||
/**
|
||||
* Specify Model class name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
||||
function model()
|
||||
{
|
||||
return OrderTransaction::class;
|
||||
}
|
||||
}
|
||||
|
|
@ -8,6 +8,11 @@ use Webkul\Sales\Repositories\InvoiceRepository;
|
|||
|
||||
class OrderController extends Controller
|
||||
{
|
||||
/**
|
||||
* Current customer.
|
||||
*/
|
||||
protected $currentCustomer;
|
||||
|
||||
/**
|
||||
* OrderrRepository object
|
||||
*
|
||||
|
|
@ -36,6 +41,8 @@ class OrderController extends Controller
|
|||
{
|
||||
$this->middleware('customer');
|
||||
|
||||
$this->currentCustomer = auth()->guard('customer')->user();
|
||||
|
||||
$this->orderRepository = $orderRepository;
|
||||
|
||||
$this->invoiceRepository = $invoiceRepository;
|
||||
|
|
@ -62,7 +69,7 @@ class OrderController extends Controller
|
|||
public function view($id)
|
||||
{
|
||||
$order = $this->orderRepository->findOneWhere([
|
||||
'customer_id' => auth()->guard('customer')->user()->id,
|
||||
'customer_id' => $this->currentCustomer->id,
|
||||
'id' => $id,
|
||||
]);
|
||||
|
||||
|
|
@ -83,7 +90,7 @@ class OrderController extends Controller
|
|||
{
|
||||
$invoice = $this->invoiceRepository->findOrFail($id);
|
||||
|
||||
if ($invoice->order->customer_id !== auth()->guard('customer')->user()->id) {
|
||||
if ($invoice->order->customer_id !== $this->currentCustomer->id) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
|
|
@ -100,7 +107,15 @@ class OrderController extends Controller
|
|||
*/
|
||||
public function cancel($id)
|
||||
{
|
||||
$result = $this->orderRepository->cancel($id);
|
||||
/* find by order id in customer's order */
|
||||
$order = $this->currentCustomer->all_orders()->find($id);
|
||||
|
||||
/* if order id not found then process should be aborted with 404 page */
|
||||
if (! $order) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
$result = $this->orderRepository->cancel($order);
|
||||
|
||||
if ($result) {
|
||||
session()->flash('success', trans('admin::app.response.cancel-success', ['name' => 'Order']));
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
namespace Webkul\Shop\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Webkul\Core\Tree;
|
||||
use Illuminate\Routing\Router;
|
||||
use Illuminate\Pagination\Paginator;
|
||||
use Webkul\Shop\Http\Middleware\Locale;
|
||||
use Webkul\Shop\Http\Middleware\Theme;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Webkul\Shop\Http\Middleware\Locale;
|
||||
use Webkul\Shop\Http\Middleware\Currency;
|
||||
use Webkul\Core\Tree;
|
||||
|
||||
class ShopServiceProvider extends ServiceProvider
|
||||
{
|
||||
|
|
@ -19,28 +19,28 @@ class ShopServiceProvider extends ServiceProvider
|
|||
*/
|
||||
public function boot(Router $router)
|
||||
{
|
||||
$this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations');
|
||||
|
||||
$this->loadRoutesFrom(__DIR__ . '/../Http/routes.php');
|
||||
|
||||
$this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'shop');
|
||||
$this->publishes([__DIR__.'/../Resources/lang' => resource_path('lang/vendor/shop')]);
|
||||
|
||||
/* publishers */
|
||||
$this->publishes([
|
||||
__DIR__ . '/../../publishable/assets' => public_path('themes/default/assets'),
|
||||
], 'public');
|
||||
|
||||
$this->loadViewsFrom(__DIR__ . '/../Resources/views', 'shop');
|
||||
$this->publishes([
|
||||
__DIR__ . '/../Resources/views' => resource_path('themes/shop/views'),
|
||||
__DIR__ . '/../Resources/views' => resource_path('themes/default/views'),
|
||||
__DIR__ . '/../Resources/lang' => resource_path('lang/vendor/shop'),
|
||||
]);
|
||||
|
||||
/* loaders */
|
||||
$this->loadRoutesFrom(__DIR__ . '/../Http/routes.php');
|
||||
$this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations');
|
||||
$this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'shop');
|
||||
$this->loadViewsFrom(__DIR__ . '/../Resources/views', 'shop');
|
||||
|
||||
/* aliases */
|
||||
$router->aliasMiddleware('locale', Locale::class);
|
||||
$router->aliasMiddleware('theme', Theme::class);
|
||||
$router->aliasMiddleware('currency', Currency::class);
|
||||
|
||||
/* view composers */
|
||||
$this->composeView();
|
||||
|
||||
/* paginators */
|
||||
Paginator::defaultView('shop::partials.pagination');
|
||||
Paginator::defaultSimpleView('shop::partials.pagination');
|
||||
}
|
||||
|
|
@ -56,7 +56,7 @@ class ShopServiceProvider extends ServiceProvider
|
|||
}
|
||||
|
||||
/**
|
||||
* Bind the the data to the views
|
||||
* Bind the the data to the views.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'invalid_vat_format' => 'El ID de IVA tiene un formato incorrecto',
|
||||
'security-warning' => 'Actividad sospechosa detectada!!!',
|
||||
'nothing-to-delete' => 'Nada que eliminar',
|
||||
|
||||
|
|
@ -16,7 +17,8 @@ return [
|
|||
|
||||
'common' => [
|
||||
'error' => 'Algo ha ido mal, por favor prueba más tarde.',
|
||||
'image-upload-limit' => 'El tamaño máximo de carga de la imagen es de 2 MB'
|
||||
'image-upload-limit' => 'El tamaño máximo de carga de la imagen es de 2 MB',
|
||||
'no-result-found' => 'No pudimos encontrar ningún registro.'
|
||||
],
|
||||
|
||||
'home' => [
|
||||
|
|
@ -33,7 +35,7 @@ return [
|
|||
'sign-in' => 'Entrar',
|
||||
'sign-up' => 'Regístrate',
|
||||
'account' => 'Cuenta',
|
||||
'cart' => 'Cesta',
|
||||
'cart' => 'Carrito',
|
||||
'profile' => 'Perfil',
|
||||
'wishlist' => 'Lista de deseos',
|
||||
'logout' => 'Salir',
|
||||
|
|
@ -41,14 +43,14 @@ return [
|
|||
],
|
||||
|
||||
'minicart' => [
|
||||
'view-cart' => 'Ver Cesta',
|
||||
'view-cart' => 'Ver Carrito',
|
||||
'checkout' => 'Hacer pedido',
|
||||
'cart' => 'Cesta',
|
||||
'cart' => 'Carrito',
|
||||
'zero' => '0'
|
||||
],
|
||||
|
||||
'footer' => [
|
||||
'subscribe-newsletter' => 'Suscríbete a la Newsletter',
|
||||
'subscribe-newsletter' => 'Suscribirse al Boletín Informativo',
|
||||
'subscribe' => 'Suscríbete',
|
||||
'locale' => 'Idioma',
|
||||
'currency' => 'Moneda',
|
||||
|
|
@ -57,9 +59,9 @@ return [
|
|||
'subscription' => [
|
||||
'unsubscribe' => 'Darse de baja',
|
||||
'subscribe' => 'Suscríbete',
|
||||
'subscribed' => 'Te has suscrito a la newsletter',
|
||||
'not-subscribed' => 'No se pudo suscribir a la newsletter, inténtalo de nuevo más tarde',
|
||||
'already' => 'Ya estás suscrito',
|
||||
'subscribed' => 'Te has suscrito al boletín',
|
||||
'not-subscribed' => 'No se pudo suscribir al boletín, inténtalo de nuevo más tarde',
|
||||
'already' => 'Ya estás suscrito a nuestra lista de suscripciones.',
|
||||
'unsubscribed' => 'Te has desuscrito',
|
||||
'already-unsub' => 'Ya estás desuscrito',
|
||||
'not-subscribed' => '¡Error! El correo no se puede enviar actualmente, inténtalo de nuevo más tarde'
|
||||
|
|
@ -67,11 +69,11 @@ return [
|
|||
|
||||
'search' => [
|
||||
'no-results' => 'No hay resultados',
|
||||
'page-title' => 'Búsqueda',
|
||||
'found-results' => 'No hay resultados de búsqueda',
|
||||
'found-result' => 'Resultados de la búsqueda',
|
||||
'analysed-keywords' => 'Analysed Keywords',
|
||||
'image-search-option' => 'Image Search Option'
|
||||
'page-title' => config('app.name') . ' - Buscar',
|
||||
'found-results' => 'Resultados de la Búsqueda',
|
||||
'found-result' => 'Resultado de la Búsqueda',
|
||||
'analysed-keywords' => 'Palabras claves Analizadas',
|
||||
'image-search-option' => 'Opción de Búsqueda de Imágenes'
|
||||
],
|
||||
|
||||
'reviews' => [
|
||||
|
|
@ -84,9 +86,9 @@ return [
|
|||
'submit' => 'ENVIAR',
|
||||
'delete-all' => 'Todas las opiniones se han eliminado con éxito',
|
||||
'ratingreviews' => ':rating calificaciones & :review opiniones',
|
||||
'star' => 'Star',
|
||||
'star' => 'Inicio',
|
||||
'percentage' => ':percentage %',
|
||||
'id-star' => 'star',
|
||||
'id-star' => 'inicio',
|
||||
'name' => 'Nombre'
|
||||
],
|
||||
|
||||
|
|
@ -100,8 +102,8 @@ return [
|
|||
'removed' => 'Elemento eliminado con éxito de la lista de comparación',
|
||||
'removed-all' => 'Todos los elementos eliminados correctamente de la lista de comparación',
|
||||
'empty-text' => "No tienes ningún artículo en tu lista de comparación",
|
||||
'product_image' => 'Product Image',
|
||||
'actions' => 'Actions',
|
||||
'product_image' => 'Imagen del Producto',
|
||||
'actions' => 'Acciones',
|
||||
],
|
||||
|
||||
'signup-text' => [
|
||||
|
|
@ -123,6 +125,7 @@ return [
|
|||
'conditions' => 'Condiciones',
|
||||
'using' => 'Mediante el uso de este sitio web',
|
||||
'agreement' => 'Acuerdo',
|
||||
'subscribe-to-newsletter' => 'Suscríbete al boletín',
|
||||
'success' => 'Cuenta creada exitosamente',
|
||||
'success-verify' => 'Cuenta creada con éxito, se ha enviado un correo electrónico para su verificación.',
|
||||
'success-verify-email-unsent' => 'Cuenta creada correctamente, pero no se envió el correo electrónico de verificación',
|
||||
|
|
@ -226,11 +229,16 @@ return [
|
|||
'contact' => 'Contacto',
|
||||
'confirm-delete' => '¿Quieres eleminar esta dirección?',
|
||||
'default-delete' => 'La dirección por defecto no puede ser cambiada',
|
||||
'enter-password' => 'Enter Your Password.',
|
||||
'enter-password' => 'Ingresa tu contraseña.',
|
||||
],
|
||||
|
||||
'create' => [
|
||||
'page-title' => 'Cliente - Formulario de dirección',
|
||||
'company_name' => 'Nombre de la empresa',
|
||||
'first_name' => 'Nombres',
|
||||
'last_name' => 'Apellidos',
|
||||
'vat_id' => 'ID de IVA',
|
||||
'vat_help_note' => '[Nota: Utilice el Código de País con el ID de IVA Ej. INV01234567891]',
|
||||
'title' => 'Añadir dirección',
|
||||
'street-address' => 'Calle',
|
||||
'country' => 'País',
|
||||
|
|
@ -246,6 +254,10 @@ return [
|
|||
|
||||
'edit' => [
|
||||
'page-title' => 'Cliente - Editar Dirección',
|
||||
'company_name' => 'Nombre de la empresa',
|
||||
'first_name' => 'Nombres',
|
||||
'last_name' => 'Apellidos',
|
||||
'vat_id' => 'ID de IVA',
|
||||
'title' => 'Editar Dirección',
|
||||
'street-address' => 'Calle',
|
||||
'submit' => 'Guardar dirección',
|
||||
|
|
@ -254,7 +266,7 @@ return [
|
|||
'delete' => [
|
||||
'success' => 'Dirección eliminada correctamente',
|
||||
'failure' => 'La dirección no puede ser eliminada',
|
||||
'wrong-password' => 'Wrong Password !'
|
||||
'wrong-password' => 'Contraseña Incorrecta !'
|
||||
]
|
||||
],
|
||||
|
||||
|
|
@ -267,13 +279,13 @@ return [
|
|||
'status' => 'Estado',
|
||||
'total' => 'Total',
|
||||
'order_number' => 'Número de pedido',
|
||||
'processing' => 'Processing',
|
||||
'completed' => 'Completed',
|
||||
'canceled' => 'Canceled',
|
||||
'closed' => 'Closed',
|
||||
'pending' => 'Pending',
|
||||
'pending-payment' => 'Pending Payment',
|
||||
'fraud' => 'Fraud'
|
||||
'processing' => 'Porcesando',
|
||||
'completed' => 'Completado',
|
||||
'canceled' => 'Cancelado',
|
||||
'closed' => 'Cerrado',
|
||||
'pending' => 'Pendiente',
|
||||
'pending-payment' => 'Pago Pendiente',
|
||||
'fraud' => 'Fraude'
|
||||
],
|
||||
|
||||
'view' => [
|
||||
|
|
@ -291,14 +303,15 @@ return [
|
|||
'item-invoice' => 'Facturado (:qty_invoiced)',
|
||||
'item-shipped' => 'Enviado (:qty_shipped)',
|
||||
'item-canceled' => 'Cancelado (:qty_canceled)',
|
||||
'item-refunded' => 'Reembolsado (:qty_refunded)',
|
||||
'price' => 'Precio',
|
||||
'total' => 'Total',
|
||||
'subtotal' => 'Total parcial',
|
||||
'shipping-handling' => 'Envío y Manipulación',
|
||||
'tax' => 'Impuesto',
|
||||
'discount' => 'Descuento',
|
||||
'tax-percent' => 'Porcentaje IVA',
|
||||
'tax-amount' => 'Cantidad impuesto',
|
||||
'tax-percent' => 'Porcentaje de Impuestos',
|
||||
'tax-amount' => 'Importe del Impuesto',
|
||||
'discount-amount' => 'Cantidad descontada',
|
||||
'grand-total' => 'Total',
|
||||
'total-paid' => 'Total Pago',
|
||||
|
|
@ -317,7 +330,12 @@ return [
|
|||
'bill-to' => 'Facturar a',
|
||||
'ship-to' => 'Envío a',
|
||||
'contact' => 'Contacto',
|
||||
'tracking-number' => 'Tracking Number',
|
||||
'refunds' => 'Reembolsos',
|
||||
'individual-refund' => 'Reembolso #:refund_id',
|
||||
'adjustment-refund' => 'Reembolso de Ajuste',
|
||||
'adjustment-fee' => 'Tarifa de Ajuste',
|
||||
'cancel-btn-title' => 'Cancelar',
|
||||
'tracking-number' => 'Número de Rastreo',
|
||||
'cancel-confirm-msg' => 'Estás segura de que deseas cancelar este pedido ?'
|
||||
]
|
||||
],
|
||||
|
|
@ -326,14 +344,15 @@ return [
|
|||
'page-title' => 'Cliente - Lista de deseos',
|
||||
'title' => 'Lista de deseos',
|
||||
'deleteall' => 'Eliminar todo',
|
||||
'moveall' => 'Mover todos los productos a la cesta',
|
||||
'move-to-cart' => 'Mover a la cesta',
|
||||
'moveall' => 'Mover todos los productos al carrito',
|
||||
'move-to-cart' => 'Mover al carrito',
|
||||
'error' => 'No se puede agregar el producto a la lista de deseos por problemas desconocidos, inténtelo más tarde.',
|
||||
'add' => 'Artículo añadido a la lista de deseos',
|
||||
'remove' => 'Artículo eliminado de la lista de deseos',
|
||||
'add-wishlist-text' => 'Añadir producto a la lista de deseos',
|
||||
'remove-wishlist-text' => 'Eliminar producto de la lista de deseos',
|
||||
'moved' => 'Artículo movido a la cesta exitosamente',
|
||||
'moved' => 'Artículo movido al carrito exitosamente',
|
||||
'option-missing' => 'Faltan opciones del producto, por lo que el artículo no se puede mover a la lista de deseos.',
|
||||
'move-error' => 'El artículo no se puede añadir a la lista de deseos, por favor inténtalo más tarde',
|
||||
'success' => 'Artículo añadido a la lista de deseos',
|
||||
'failure' => 'El artículo no se puede añadir a la lista de deseos, por favor inténtalo más tarde',
|
||||
|
|
@ -356,7 +375,7 @@ return [
|
|||
'remaining-downloads' => 'Descargas restantes',
|
||||
'unlimited' => 'Ilimitado',
|
||||
'download-error' => 'El enlace de descarga ha caducado.',
|
||||
'payment-error' => 'Payment has not been done for this download.'
|
||||
'payment-error' => 'No se ha realizado el pago de esta descarga.'
|
||||
],
|
||||
|
||||
'review' => [
|
||||
|
|
@ -384,12 +403,12 @@ return [
|
|||
'oldest-first' => 'Lo más antiguo primero',
|
||||
'cheapest-first' => 'Lo más barato primero',
|
||||
'expensive-first' => 'Lo más caro primero',
|
||||
'show' => 'Show',
|
||||
'show' => 'Mostrar',
|
||||
'pager-info' => 'Mostrar :showing of :total Items',
|
||||
'description' => 'Descripción',
|
||||
'specification' => 'Especificaciones',
|
||||
'total-reviews' => ':total Reviews',
|
||||
'total-rating' => ':total_rating Ratings & :total_reviews Reviews',
|
||||
'total-reviews' => ':total Reseñas',
|
||||
'total-rating' => ':total_rating Calidifcaciones & :total_reviews Reseñas',
|
||||
'by' => 'Por :name',
|
||||
'up-sell-title' => '¡Hemos encontrado otros productos que te pueden gustar!',
|
||||
'related-product-title' => 'Productos relacionados',
|
||||
|
|
@ -400,21 +419,32 @@ return [
|
|||
'sale' => 'En venta',
|
||||
'new' => 'Nuevo',
|
||||
'empty' => 'No hay prodcutos disponibles en esta categoría',
|
||||
'add-to-cart' => 'Añadir a la cesta',
|
||||
'add-to-cart' => 'Añadir al carrito',
|
||||
'book-now' => 'reservar ahora',
|
||||
'buy-now' => 'Comprar ahora',
|
||||
'whoops' => 'Ups!',
|
||||
'quantity' => 'Cantidad',
|
||||
'in-stock' => 'En estoc',
|
||||
'out-of-stock' => 'Sin estoc',
|
||||
'in-stock' => 'Disponible',
|
||||
'out-of-stock' => 'No disponible',
|
||||
'view-all' => 'Ver todo',
|
||||
'select-above-options' => 'Primero selecciona las opciones de arriba.',
|
||||
'less-quantity' => 'La cantidad no debe ser inferior a uno.',
|
||||
'samples' => 'Muestras',
|
||||
'links' => 'Enlaces',
|
||||
'sample' => 'Muestra',
|
||||
'name' => 'Nombre',
|
||||
'qty' => 'Cant',
|
||||
'starting-at' => 'A partir de',
|
||||
'customize-options' => 'Personalizar Opciones',
|
||||
'choose-selection' => 'Elija una selección',
|
||||
'your-customization' => 'Tu Personalización',
|
||||
'total-amount' => 'Cantidad Total',
|
||||
'none' => 'Ninguno',
|
||||
'available-for-order' => 'Disponible para ordenar',
|
||||
'settings' => 'Settings',
|
||||
'compare_options' => 'Compare Options',
|
||||
'wishlist-options' => 'Wishlist Options',
|
||||
'offers' => 'Buy :qty for :price each and save :discount%',
|
||||
'settings' => 'Ajustes',
|
||||
'compare_options' => 'Comparar Optiones',
|
||||
'wishlist-options' => 'Opciones de Lista de Deseos',
|
||||
'offers' => 'Compre :qty por :price cada uno y ahorre :discount%',
|
||||
],
|
||||
|
||||
// 'reviews' => [
|
||||
|
|
@ -431,11 +461,14 @@ return [
|
|||
'integrity' => [
|
||||
'missing_fields' =>'Faltan algunos campos requeridos',
|
||||
'missing_options' =>'Faltan opciones configurables del producto',
|
||||
'missing_links' => 'Faltan enlaces descargables para este producto.',
|
||||
'qty_missing' => 'Al menos un producto debe tener más de 1 cantidad.',
|
||||
'qty_impossible' => 'No se pueden agregar más de uno de estos productos al carrito.'
|
||||
],
|
||||
'create-error' => 'Se encontraron problemas con la cesta de compra',
|
||||
'title' => 'Cesta de la compra',
|
||||
'empty' => 'Tu cesta está vacía',
|
||||
'update-cart' => 'Actualizar cesta',
|
||||
'create-error' => 'Se encontraron problemas con el carrito de compra',
|
||||
'title' => 'Carrito de la compra',
|
||||
'empty' => 'Tu carrito está vacía',
|
||||
'update-cart' => 'Actualizar carrito',
|
||||
'continue-shopping' => 'Seguir comprando',
|
||||
'proceed-to-checkout' => 'Continuar con el pago',
|
||||
'remove' => 'Eliminar',
|
||||
|
|
@ -443,21 +476,21 @@ return [
|
|||
'move-to-wishlist' => 'Mover a la lista de deseos',
|
||||
'move-to-wishlist-success' => 'Artículo movido a la lista de deseos',
|
||||
'move-to-wishlist-error' => 'El artículo no se puede añadir a la lista de deseos, por favor inténtalo más tarde',
|
||||
'add-config-warning' => 'Por favor selecciona las opciones antes de añadir a la cesta',
|
||||
'add-config-warning' => 'Por favor selecciona las opciones antes de añadir al carrito',
|
||||
'quantity' => [
|
||||
'quantity' => 'Cantidad',
|
||||
'success' => 'Cesta actualizada exitosamente',
|
||||
'success' => 'Carrito actualizada exitosamente',
|
||||
'illegal' => 'La cantidad no puede ser menor que uno',
|
||||
'inventory_warning' => 'La cantidad solicitada no está disponible, inténtelo más tarde',
|
||||
'error' => 'No se pueden actualizar los artículos, inténtelo más tarde'
|
||||
],
|
||||
'item' => [
|
||||
'error_remove' => 'No hay artículos que eliminar en la cesta',
|
||||
'success' => 'El artículp se añadió a la cesta',
|
||||
'success-remove' => 'El artículo se eliminó de la cesta',
|
||||
'error-add' => 'El artículo no se puede añadir a la cesta, inténtelo más tarde',
|
||||
'inactive' => 'An item is inactive and was removed from cart',
|
||||
'inactive-add' => 'Inactive item cannot be added to cart',
|
||||
'error_remove' => 'No hay artículos que eliminar en el carrito',
|
||||
'success' => 'El artículo se añadió al carrito',
|
||||
'success-remove' => 'El artículo se eliminó del carrito',
|
||||
'error-add' => 'El artículo no se puede añadir al carrito, inténtelo más tarde',
|
||||
'inactive' => 'Un artículo está inactivo y se eliminó del carrito.',
|
||||
'inactive-add' => 'El artículo inactivo no se puede agregar al carrito',
|
||||
],
|
||||
'quantity-error' => 'La cantidad solicitada no está disponible',
|
||||
'cart-subtotal' => 'Total parcial',
|
||||
|
|
@ -478,6 +511,7 @@ return [
|
|||
'review' => 'revisión',
|
||||
'billing-address' => 'Dirección de facturación',
|
||||
'sign-in' => 'Entrar',
|
||||
'company-name' => 'Nombre de la empresa',
|
||||
'first-name' => 'Nombre',
|
||||
'last-name' => 'Apellido',
|
||||
'email' => 'Correo electrónico',
|
||||
|
|
@ -515,7 +549,10 @@ return [
|
|||
'money-desc' => 'Transferencia bancaria',
|
||||
'paypal-desc' => 'Paypal',
|
||||
'free-desc' => 'Envío gratuito',
|
||||
'flat-desc' => 'Esta es una tarifa plana'
|
||||
'flat-desc' => 'Esta es una tarifa plana',
|
||||
'password' => 'Contraseña',
|
||||
'login-exist-message' => 'Ya tienes una cuenta con nosotros, inicia sesión o continúa como invitado .',
|
||||
'enter-coupon-code' => 'Introduce el Código de Cupón'
|
||||
],
|
||||
|
||||
'total' => [
|
||||
|
|
@ -531,7 +568,10 @@ return [
|
|||
'coupon' => 'Cupón',
|
||||
'coupon-applied' => 'Cupón aplicado',
|
||||
'remove-coupon' => 'Eliminar cupón',
|
||||
'cannot-apply-coupon' => 'No se puede aplicar cupón'
|
||||
'cannot-apply-coupon' => 'No se puede aplicar cupón',
|
||||
'invalid-coupon' => 'El código del cupón no es válido.',
|
||||
'success-coupon' => 'Código del cupón aplicado correctamente.',
|
||||
'coupon-apply-issue' => 'No se puede aplicar el código de cupón.'
|
||||
],
|
||||
|
||||
'success' => [
|
||||
|
|
@ -597,7 +637,7 @@ return [
|
|||
]
|
||||
],
|
||||
'invoice' => [
|
||||
'heading' => 'Tu factura #:invoice_id for Order #:order_id',
|
||||
'heading' => 'Tu factura #:invoice_id para el pedido#:order_id',
|
||||
'subject' => 'Factura de tu pedido #:order_id',
|
||||
'summary' => 'Resumen de pedido',
|
||||
],
|
||||
|
|
@ -611,6 +651,15 @@ return [
|
|||
'tracking-number' => 'Número de seguimiento',
|
||||
'greeting' => 'El pedido :order_id ha sido enviado a :created_at',
|
||||
],
|
||||
|
||||
'refund' => [
|
||||
'heading' => 'Su Reembolso #:refund_id para el pedido #:order_id',
|
||||
'subject' => 'Reembolso de su pedido #:order_id',
|
||||
'summary' => 'Resumen de Reembolso',
|
||||
'adjustment-refund' => 'Reembolso de Ajuste',
|
||||
'adjustment-fee' => 'Tarifa de Ajuste'
|
||||
],
|
||||
|
||||
'forget-password' => [
|
||||
'subject' => 'Restablecer contraseña cliente',
|
||||
'dear' => 'Estimado/a :name',
|
||||
|
|
@ -631,7 +680,7 @@ return [
|
|||
'username-email' => 'Nombre de usuario/Email',
|
||||
'subject' => 'Nuevo registro de cliente',
|
||||
'password' => 'Contraseña',
|
||||
'summary' => 'Tu cuenta ha sido creada en Bassar.
|
||||
'summary' => 'Tu cuenta ha sido creada.
|
||||
Los detalles de tu cuenta puedes verlos abajo: ',
|
||||
'thanks' => '¡Gracias!',
|
||||
],
|
||||
|
|
@ -641,23 +690,23 @@ return [
|
|||
'customer-registration' => 'Cliente registrado exitosamente',
|
||||
'dear' => 'Estimado/a :customer_name',
|
||||
'greeting' => '¡Bienvenido y gracias por registrarte en Bassar!',
|
||||
'summary' => 'Your account has now been created successfully and you can login using your email address and password credentials. Upon logging in, you will be able to access other services including reviewing past orders, wishlists and editing your account information.',
|
||||
'summary' => 'Su cuenta se ha creado con éxito y puede iniciar sesión con su dirección de correo electrónico y su contraseña. Al iniciar sesión, podrá acceder a otros servicios, incluida la revisión de pedidos anteriores, listas de deseos y la edición de la información de su cuenta.',
|
||||
'thanks' => '¡Gracias!',
|
||||
],
|
||||
|
||||
'verification' => [
|
||||
'heading' => 'Bassar - Verificación por correo',
|
||||
'heading' => config('app.name') . ' - Verificación por correo',
|
||||
'subject' => 'Verificación por correo',
|
||||
'verify' => 'Verifica tu cuenta',
|
||||
'summary' => 'Este mensaje es para verificar que esta dirección de mail es tuya.
|
||||
Por favor, clica el botón de abajo para verificar tu cuenta.'
|
||||
Por favor, hacer click al botón de abajo para verificar tu cuenta.'
|
||||
],
|
||||
|
||||
'subscription' => [
|
||||
'subject' => 'Subscripción mail',
|
||||
'greeting' => ' Bienvenido a Bassar - Subscripción por mail',
|
||||
'greeting' => ' Bienvenido a ' . config('app.name') . ' - Subscripción por mail',
|
||||
'unsubscribe' => 'Darse de baja',
|
||||
'summary' => 'Gracias por ponernos en tu bandeja de entrada. Ha pasado un tiempo desde que leyó el último correo electrónico de Bassar, y no queremos abrumar su bandeja de entrada. Si ya no quiere recibir
|
||||
'summary' => 'Gracias por ponernos en tu bandeja de entrada. Ha pasado un tiempo desde que leyó el último correo electrónico de ' . config('app.name') . ', y no queremos abrumar su bandeja de entrada. Si ya no quiere recibir
|
||||
las últimas noticias de marketing, haga clic en el botón de abajo.'
|
||||
]
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,12 +1,32 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
{{-- meta tags --}}
|
||||
<meta http-equiv="Cache-control" content="no-cache">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
{{-- lang supports inclusion --}}
|
||||
<style type="text/css">
|
||||
@font-face {
|
||||
font-family: 'Hind';
|
||||
src: url({{ asset('vendor/webkul/ui/assets/fonts/Hind/Hind-Regular.ttf') }}) format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
src: url({{ asset('vendor/webkul/ui/assets/fonts/Noto/NotoSans-Regular.ttf') }}) format('truetype');
|
||||
}
|
||||
</style>
|
||||
|
||||
@php
|
||||
/* main font will be set on locale based */
|
||||
$mainFontFamily = app()->getLocale() === 'ar' ? 'DejaVu Sans' : 'Noto Sans';
|
||||
@endphp
|
||||
|
||||
{{-- main css --}}
|
||||
<style type="text/css">
|
||||
* {
|
||||
font-family: DejaVu Sans;
|
||||
font-family: '{{ $mainFontFamily }}';
|
||||
}
|
||||
|
||||
body, th, td, h5 {
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@
|
|||
|
||||
@case('addToCartHtml')
|
||||
<div class="action">
|
||||
<div v-html="addToCartHtml"></div>
|
||||
<div v-html="product.addToCartHtml"></div>
|
||||
|
||||
<span class="icon white-cross-sm-icon remove-product" @click="removeProductCompare(product.id)"></span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -94,8 +94,6 @@
|
|||
},
|
||||
|
||||
created: function() {
|
||||
this.galleryImages = galleryImages.slice(0)
|
||||
|
||||
var config = @json($config);
|
||||
|
||||
var childAttributes = this.childAttributes,
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@
|
|||
</script>
|
||||
|
||||
<script>
|
||||
var galleryImages = @json($images);
|
||||
let galleryImages = @json($images);
|
||||
|
||||
Vue.component('product-gallery', {
|
||||
|
||||
|
|
@ -122,12 +122,12 @@
|
|||
|
||||
methods: {
|
||||
prepareThumbs: function() {
|
||||
var this_this = this;
|
||||
let self = this;
|
||||
|
||||
this_this.thumbs = [];
|
||||
self.thumbs = [];
|
||||
|
||||
this.images.forEach(function(image) {
|
||||
this_this.thumbs.push(image);
|
||||
self.thumbs.push(image);
|
||||
});
|
||||
},
|
||||
|
||||
|
|
@ -194,25 +194,29 @@
|
|||
$('img#pro-img').data('zoom-image', $('img#pro-img').data('image')).ezPlus();
|
||||
}
|
||||
|
||||
var wishlist = "{{ $wishListHelper->getWishlistProduct($product) ? 'true' : 'false' }}";
|
||||
@if (auth()->guard('customer')->user())
|
||||
|
||||
$(document).mousemove(function(event) {
|
||||
if ($('.add-to-wishlist').length || wishlist != 0) {
|
||||
if (event.pageX > $('.add-to-wishlist').offset().left && event.pageX < $('.add-to-wishlist').offset().left+32 && event.pageY > $('.add-to-wishlist').offset().top && event.pageY < $('.add-to-wishlist').offset().top+32) {
|
||||
let wishlist = "{{ $wishListHelper->getWishlistProduct($product) ? 'true' : 'false' }}";
|
||||
|
||||
$(".zoomContainer").addClass("show-wishlist");
|
||||
$(document).mousemove(function(event) {
|
||||
if ($('.add-to-wishlist').length || wishlist != 0) {
|
||||
if (event.pageX > $('.add-to-wishlist').offset().left && event.pageX < $('.add-to-wishlist').offset().left+32 && event.pageY > $('.add-to-wishlist').offset().top && event.pageY < $('.add-to-wishlist').offset().top+32) {
|
||||
|
||||
$(".zoomContainer").addClass("show-wishlist");
|
||||
|
||||
} else {
|
||||
$(".zoomContainer").removeClass("show-wishlist");
|
||||
}
|
||||
};
|
||||
|
||||
if ($("body").hasClass("rtl")) {
|
||||
$(".zoomWindow").addClass("zoom-image-direction");
|
||||
} else {
|
||||
$(".zoomContainer").removeClass("show-wishlist");
|
||||
$(".zoomWindow").removeClass("zoom-image-direction");
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
if ($("body").hasClass("rtl")) {
|
||||
$(".zoomWindow").addClass("zoom-image-direction");
|
||||
} else {
|
||||
$(".zoomWindow").removeClass("zoom-image-direction");
|
||||
}
|
||||
});
|
||||
@endif
|
||||
})
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'admin' => [
|
||||
'system' => [
|
||||
'social-login' => 'Social Login',
|
||||
'enable-facebook' => 'Habilitar Facebook',
|
||||
'enable-twitter' => 'Habilitar Twitter',
|
||||
'enable-google' => 'Habilitar Google',
|
||||
'enable-twitter' => 'Habilitar Twitter',
|
||||
'enable-linkedin' => 'Habilitar LinkedIn',
|
||||
'enable-github' => 'Habilitar Github'
|
||||
]
|
||||
],
|
||||
|
||||
'shop' => [
|
||||
'customer' => [
|
||||
'login-form' => [
|
||||
'continue-with-facebook' => 'Continuar con Facebook',
|
||||
'continue-with-twitter' => 'Continuar con Twitter',
|
||||
'continue-with-google' => 'Continuar con Google',
|
||||
'continue-with-linkedin' => 'Continuar con LinkedIn',
|
||||
'continue-with-github' => 'Continuar con Github',
|
||||
'or' => 'O'
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
|
After Width: | Height: | Size: 518 B |
|
|
@ -0,0 +1,4 @@
|
|||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" r="12" transform="rotate(-180 12 12)" fill="#0041FF"/>
|
||||
<path d="M13.5 17.5L8.5 12.5L13.5 7.5" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 302 B |
|
After Width: | Height: | Size: 513 B |
|
|
@ -0,0 +1,4 @@
|
|||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" r="12" transform="rotate(-180 12 12)" fill="#0041FF"/>
|
||||
<path d="M10.5 17.5L15.5 12.5L10.5 7.5" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 303 B |
|
|
@ -1,20 +1,3 @@
|
|||
/* flatpickr v4.6.6, @license MIT */
|
||||
|
||||
/*! *****************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/ui.js": "/js/ui.js?id=8eae585f880f44e9aa39",
|
||||
"/css/ui.css": "/css/ui.css?id=72e23fc21cf1623e7aff"
|
||||
"/js/ui.js": "/js/ui.js?id=ab1dd431924ced0d89c3",
|
||||
"/css/ui.css": "/css/ui.css?id=6d93a4a052e38d6aa795"
|
||||
}
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 518 B |
|
|
@ -0,0 +1,4 @@
|
|||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" r="12" transform="rotate(-180 12 12)" fill="#0041FF"/>
|
||||
<path d="M13.5 17.5L8.5 12.5L13.5 7.5" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 302 B |
|
After Width: | Height: | Size: 513 B |
|
|
@ -0,0 +1,4 @@
|
|||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" r="12" transform="rotate(-180 12 12)" fill="#0041FF"/>
|
||||
<path d="M10.5 17.5L15.5 12.5L10.5 7.5" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 303 B |
|
|
@ -1,10 +1,13 @@
|
|||
// Icon scss
|
||||
@import "icons";
|
||||
@import "variables";
|
||||
@import "components";
|
||||
@import "mixins";
|
||||
@import "animations";
|
||||
/* main imports */
|
||||
@import "main/icons";
|
||||
@import "main/variables";
|
||||
@import "main/mixins";
|
||||
|
||||
/* includes */
|
||||
@import "includes/animations";
|
||||
@import "includes/components";
|
||||
|
||||
/* start from here */
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
|
|
@ -15,7 +18,7 @@
|
|||
outline: none;
|
||||
}
|
||||
|
||||
//margin bottom classes
|
||||
// margin bottom classes
|
||||
.mb-10 {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
|
@ -68,7 +71,7 @@
|
|||
margin-bottom: 90px;
|
||||
}
|
||||
|
||||
//margin-top
|
||||
// margin-top
|
||||
.mt-5 {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
|
@ -141,8 +144,8 @@ a:active {
|
|||
|
||||
::selection {
|
||||
background-color: $selection-color;
|
||||
color: $color-white;
|
||||
}
|
||||
color: $white-color;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: none;
|
||||
|
|
@ -198,7 +201,7 @@ h5 {
|
|||
);
|
||||
@include border-radius(3px);
|
||||
border: none;
|
||||
color: #fff;
|
||||
color: $white-color;
|
||||
cursor: pointer;
|
||||
transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
font: inherit;
|
||||
|
|
@ -214,12 +217,15 @@ h5 {
|
|||
&.btn-sm {
|
||||
padding: 6px 12px;
|
||||
}
|
||||
|
||||
&.btn-md {
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
&.btn-lg {
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
&.btn-xl {
|
||||
padding: 12px 24px;
|
||||
font-size: 16px;
|
||||
|
|
@ -227,17 +233,17 @@ h5 {
|
|||
|
||||
&.btn-primary {
|
||||
background: $brand-color;
|
||||
color: #ffffff;
|
||||
color: $white-color;
|
||||
}
|
||||
|
||||
&.btn-black {
|
||||
background: #000;
|
||||
color: #ffffff;
|
||||
background: $black-color;
|
||||
color: $white-color;
|
||||
}
|
||||
|
||||
&.btn-white {
|
||||
background: #ffffff;
|
||||
color: #000;
|
||||
background: $white-color;
|
||||
color: $black-color;
|
||||
}
|
||||
|
||||
&:disabled,
|
||||
|
|
@ -254,7 +260,7 @@ h5 {
|
|||
.dropdown-btn {
|
||||
min-width: 150px;
|
||||
text-align: left;
|
||||
background: #ffffff;
|
||||
background: $white-color;
|
||||
border: 2px solid $control-border-color;
|
||||
@include border-radius(3px);
|
||||
font-size: 14px;
|
||||
|
|
@ -293,7 +299,7 @@ h5 {
|
|||
0 0 9px 0 rgba(0, 0, 0, 0.16)
|
||||
);
|
||||
@include border-radius(3px);
|
||||
background-color: #ffffff;
|
||||
background-color: $white-color;
|
||||
position: absolute;
|
||||
display: none;
|
||||
z-index: 10;
|
||||
|
|
@ -303,14 +309,17 @@ h5 {
|
|||
top: 42px;
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
&.bottom-right {
|
||||
top: 42px;
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
&.top-left {
|
||||
bottom: 0px;
|
||||
left: 42px;
|
||||
}
|
||||
|
||||
&.top-right {
|
||||
bottom: 0px;
|
||||
right: 42px;
|
||||
|
|
@ -321,7 +330,7 @@ h5 {
|
|||
border-bottom: 1px solid $border-color;
|
||||
|
||||
.control {
|
||||
background: #fff;
|
||||
background: $white-color;
|
||||
border: 2px solid $control-border-color;
|
||||
@include border-radius(3px);
|
||||
width: 100%;
|
||||
|
|
@ -363,9 +372,10 @@ h5 {
|
|||
a:active,
|
||||
a:visited,
|
||||
a:focus {
|
||||
color: #333333;
|
||||
color: $font-color;
|
||||
display: block;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: $brand-color;
|
||||
}
|
||||
|
|
@ -392,11 +402,9 @@ h5 {
|
|||
}
|
||||
|
||||
.section {
|
||||
// font-size: 16px;
|
||||
|
||||
.secton-title {
|
||||
font-size: 18px;
|
||||
color: #8E8E8E;
|
||||
color: $font-color;
|
||||
padding: 15px 0;
|
||||
border-bottom: 1px solid $border-color;
|
||||
}
|
||||
|
|
@ -427,7 +435,6 @@ h5 {
|
|||
|
||||
.table {
|
||||
width: 100%;
|
||||
// overflow-x: auto !important;
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
|
|
@ -483,14 +490,14 @@ h5 {
|
|||
|
||||
.pagination {
|
||||
.page-item {
|
||||
background: #ffffff;
|
||||
background: $white-color;
|
||||
border: 2px solid $control-border-color;
|
||||
@include border-radius(3px);
|
||||
padding: 7px 14px;
|
||||
margin-right: 5px;
|
||||
font-size: 16px;
|
||||
display: inline-block;
|
||||
color: #8e8e8e;
|
||||
color: $font-color;
|
||||
vertical-align: middle;
|
||||
text-decoration: none;
|
||||
|
||||
|
|
@ -500,9 +507,9 @@ h5 {
|
|||
}
|
||||
|
||||
&.active {
|
||||
background: #0041ff;
|
||||
color: #fff;
|
||||
border-color: #0041ff;
|
||||
background: $brand-color;
|
||||
color: $white-color;
|
||||
border-color: $brand-color;
|
||||
}
|
||||
|
||||
.icon {
|
||||
|
|
@ -515,7 +522,6 @@ h5 {
|
|||
.checkbox {
|
||||
position: relative;
|
||||
display: block;
|
||||
// vertical-align: middle;
|
||||
|
||||
input {
|
||||
left: 0;
|
||||
|
|
@ -585,7 +591,7 @@ h5 {
|
|||
display: block;
|
||||
margin-bottom: 25px;
|
||||
font-size: 15px;
|
||||
color: #333333;
|
||||
color: $font-color;
|
||||
width: 750px;
|
||||
max-width: 100%;
|
||||
position: relative;
|
||||
|
|
@ -608,7 +614,7 @@ h5 {
|
|||
}
|
||||
|
||||
.control {
|
||||
background: #fff;
|
||||
background: $white-color;
|
||||
border: 2px solid $control-border-color;
|
||||
@include border-radius(3px);
|
||||
width: 70%;
|
||||
|
|
@ -672,7 +678,7 @@ h5 {
|
|||
|
||||
.control-error {
|
||||
display: none;
|
||||
color: #ff5656;
|
||||
color: $danger-color;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
|
|
@ -786,7 +792,7 @@ h5 {
|
|||
width: 26px;
|
||||
left: 4px;
|
||||
bottom: 4px;
|
||||
background-color: $color-white;
|
||||
background-color: $white-color;
|
||||
-webkit-transition: .2s;
|
||||
transition: .2s;
|
||||
}
|
||||
|
|
@ -805,7 +811,7 @@ h5 {
|
|||
transform: translateX(26px);
|
||||
}
|
||||
|
||||
/* Rounded sliders */
|
||||
/* rounded sliders */
|
||||
.slider.round {
|
||||
border-radius: 34px;
|
||||
}
|
||||
|
|
@ -867,7 +873,7 @@ h5 {
|
|||
}
|
||||
|
||||
p {
|
||||
color: #ffffff;
|
||||
color: $white-color;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
font-size: 15px;
|
||||
|
|
@ -887,7 +893,7 @@ h5 {
|
|||
cursor: pointer;
|
||||
margin: 0px 2px;
|
||||
text-align: center;
|
||||
color: #000311;
|
||||
color: $black-color-shade;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
|
@ -1012,7 +1018,7 @@ h5 {
|
|||
.panel {
|
||||
@include box-shadow(0 2px 25px 0 rgba(0, 0, 0, 0.15));
|
||||
@include border-radius(5px);
|
||||
background: #fff;
|
||||
background: $white-color;
|
||||
|
||||
.panel-content {
|
||||
padding: 20px;
|
||||
|
|
@ -1036,7 +1042,7 @@ modal {
|
|||
bottom: 0px;
|
||||
left: 0px;
|
||||
position: fixed;
|
||||
background: #000;
|
||||
background: $black-color;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
|
|
@ -1045,7 +1051,7 @@ modal {
|
|||
}
|
||||
|
||||
.modal-container {
|
||||
background: #ffffff;
|
||||
background: $white-color;
|
||||
top: 100px;
|
||||
width: 600px;
|
||||
max-width: 80%;
|
||||
|
|
@ -1101,7 +1107,7 @@ modal {
|
|||
background: #E7E7E7;
|
||||
@include border-radius(2px);
|
||||
padding: 8px;
|
||||
color: #000311;
|
||||
color: $black-color-shade;
|
||||
display: inline-block;
|
||||
|
||||
&.label-sm {
|
||||
|
|
@ -1160,7 +1166,7 @@ modal {
|
|||
}
|
||||
}
|
||||
|
||||
//Image wrapper
|
||||
// image wrapper
|
||||
.image-wrapper {
|
||||
margin-bottom: 20px;
|
||||
margin-top: 10px;
|
||||
|
|
@ -1198,7 +1204,7 @@ modal {
|
|||
width: 100%;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
color: $white-color;
|
||||
text-shadow: 0 1px 2px rgba(0,0,0,0.24);
|
||||
margin-right: 20px;
|
||||
cursor: pointer;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes jelly-out {
|
||||
0% {
|
||||
transform: translateY(0px) scale(1);
|
||||