first upload all files
This commit is contained in:
21
Themes/Storefront/views/admin/storefront/edit.blade.php
Normal file
21
Themes/Storefront/views/admin/storefront/edit.blade.php
Normal file
@@ -0,0 +1,21 @@
|
||||
@extends('admin::layout')
|
||||
|
||||
@section('title', trans('storefront::storefront.storefront'))
|
||||
|
||||
@section('content_header')
|
||||
<h3>{{ trans('storefront::storefront.storefront') }}</h3>
|
||||
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ route('admin.dashboard.index') }}">{{ trans('admin::dashboard.dashboard') }}</a></li>
|
||||
<li class="active">{{ trans('storefront::storefront.storefront') }}</li>
|
||||
</ol>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<form method="POST" action="{{ route('admin.storefront.settings.update') }}" class="form-horizontal" id="storefront-settings-edit-form" novalidate>
|
||||
{{ csrf_field() }}
|
||||
{{ method_field('put') }}
|
||||
|
||||
{!! $tabs->render(compact('settings')) !!}
|
||||
</form>
|
||||
@endsection
|
||||
@@ -0,0 +1,79 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_featured_categories_section_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_featured_categories_section'), $errors, $settings) }}
|
||||
{{ Form::text('translatable[storefront_featured_categories_section_title]', trans('storefront::attributes.section_title'), $errors, $settings) }}
|
||||
{{ Form::text('translatable[storefront_featured_categories_section_subtitle]', trans('storefront::attributes.section_subtitle'), $errors, $settings) }}
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.category_1') }}</h4>
|
||||
|
||||
{{ Form::select('storefront_featured_categories_section_category_1_category_id', trans('storefront::attributes.category'), $errors, $categories, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_featured_categories_section_category_1',
|
||||
'products' => $categoryOneProducts,
|
||||
'featuredCategories' => true,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.category_2') }}</h4>
|
||||
|
||||
{{ Form::select('storefront_featured_categories_section_category_2_category_id', trans('storefront::attributes.category'), $errors, $categories, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_featured_categories_section_category_2',
|
||||
'products' => $categoryTwoProducts,
|
||||
'featuredCategories' => true,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.category_3') }}</h4>
|
||||
|
||||
{{ Form::select('storefront_featured_categories_section_category_3_category_id', trans('storefront::attributes.category'), $errors, $categories, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_featured_categories_section_category_3',
|
||||
'products' => $categoryThreeProducts,
|
||||
'featuredCategories' => true,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.category_4') }}</h4>
|
||||
|
||||
{{ Form::select('storefront_featured_categories_section_category_4_category_id', trans('storefront::attributes.category'), $errors, $categories, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_featured_categories_section_category_4',
|
||||
'products' => $categoryFourProducts,
|
||||
'featuredCategories' => true,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.category_5') }}</h4>
|
||||
|
||||
{{ Form::select('storefront_featured_categories_section_category_5_category_id', trans('storefront::attributes.category'), $errors, $categories, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_featured_categories_section_category_5',
|
||||
'products' => $categoryFiveProducts,
|
||||
'featuredCategories' => true,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.category_6') }}</h4>
|
||||
|
||||
{{ Form::select('storefront_featured_categories_section_category_6_category_id', trans('storefront::attributes.category'), $errors, $categories, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_featured_categories_section_category_6',
|
||||
'products' => $categorySixProducts,
|
||||
'featuredCategories' => true,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,47 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_features_section_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_features_section'), $errors, $settings) }}
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<div class="box-content">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.feature_1') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_feature_1_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
{{ Form::text('translatable[storefront_feature_1_subtitle]', trans('storefront::attributes.subtitle'), $errors, $settings) }}
|
||||
{{ Form::text('storefront_feature_1_icon', trans('storefront::attributes.icon'), $errors, $settings) }}
|
||||
</div>
|
||||
|
||||
<div class="box-content">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.feature_2') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_feature_2_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
{{ Form::text('translatable[storefront_feature_2_subtitle]', trans('storefront::attributes.subtitle'), $errors, $settings) }}
|
||||
{{ Form::text('storefront_feature_2_icon', trans('storefront::attributes.icon'), $errors, $settings) }}
|
||||
</div>
|
||||
|
||||
<div class="box-content">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.feature_3') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_feature_3_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
{{ Form::text('translatable[storefront_feature_3_subtitle]', trans('storefront::attributes.subtitle'), $errors, $settings) }}
|
||||
{{ Form::text('storefront_feature_3_icon', trans('storefront::attributes.icon'), $errors, $settings) }}
|
||||
</div>
|
||||
|
||||
<div class="box-content">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.feature_4') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_feature_4_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
{{ Form::text('translatable[storefront_feature_4_subtitle]', trans('storefront::attributes.subtitle'), $errors, $settings) }}
|
||||
{{ Form::text('storefront_feature_4_icon', trans('storefront::attributes.icon'), $errors, $settings) }}
|
||||
</div>
|
||||
|
||||
<div class="box-content">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.feature_5') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_feature_5_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
{{ Form::text('translatable[storefront_feature_5_subtitle]', trans('storefront::attributes.subtitle'), $errors, $settings) }}
|
||||
{{ Form::text('storefront_feature_5_icon', trans('storefront::attributes.icon'), $errors, $settings) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,36 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_flash_sale_and_vertical_products_section_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_flash_sale_and_vertical_products_section'), $errors, $settings) }}
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.flash_sale') }}</h4>
|
||||
|
||||
{{ Form::text('storefront_flash_sale_title', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
{{ Form::select('storefront_active_flash_sale_campaign', trans('storefront::attributes.storefront_active_flash_sale_campaign'), $errors, $flashSales, $settings) }}
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.vertical_products_1') }}</h4>
|
||||
|
||||
{{ Form::text('storefront_vertical_products_1_title', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', ['fieldNamePrefix' => 'storefront_vertical_products_1', 'products' => $verticalProductsOne])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.vertical_products_2') }}</h4>
|
||||
|
||||
{{ Form::text('storefront_vertical_products_2_title', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', ['fieldNamePrefix' => 'storefront_vertical_products_2', 'products' => $verticalProductsTwo])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.vertical_products_3') }}</h4>
|
||||
|
||||
{{ Form::text('storefront_vertical_products_3_title', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', ['fieldNamePrefix' => 'storefront_vertical_products_3', 'products' => $verticalProductsThree])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,16 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="box-content clearfix">
|
||||
{{ Form::select('storefront_footer_tags', trans('storefront::attributes.storefront_footer_tags'), $errors, $tags, $settings, ['class' => 'selectize prevent-creation', 'multiple' => true]) }}
|
||||
{{ Form::text('translatable[storefront_copyright_text]', trans('storefront::attributes.storefront_copyright_text'), $errors, $settings) }}
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
@include('media::admin.image_picker.single', [
|
||||
'title' => trans('storefront::storefront.form.accepted_payment_methods_image'),
|
||||
'inputName' => 'storefront_accepted_payment_methods_image',
|
||||
'file' => $acceptedPaymentMethodsImage,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,24 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::text('translatable[storefront_welcome_text]', trans('storefront::attributes.storefront_welcome_text'), $errors, $settings) }}
|
||||
{{ Form::select('storefront_theme_color', trans('storefront::attributes.storefront_theme_color'), $errors, trans('storefront::themes'), $settings) }}
|
||||
|
||||
<div class="{{ old('storefront_theme_color', array_get($settings, 'storefront_theme_color')) === 'custom_color' ? '' : 'hide' }}"
|
||||
id="custom-theme-color">
|
||||
{{ Form::color('storefront_custom_theme_color', trans('storefront::attributes.storefront_custom_theme_color'), $errors, $settings) }}
|
||||
</div>
|
||||
|
||||
{{ Form::select('storefront_mail_theme_color', trans('storefront::attributes.storefront_mail_theme_color'), $errors, trans('storefront::themes'), $settings) }}
|
||||
|
||||
<div class="{{ old('storefront_mail_theme_color', array_get($settings, 'storefront_mail_theme_color')) === 'custom_color' ? '' : 'hide' }}"
|
||||
id="custom-mail-theme-color">
|
||||
{{ Form::color('storefront_custom_mail_theme_color', trans('storefront::attributes.storefront_custom_mail_theme_color'), $errors, $settings) }}
|
||||
</div>
|
||||
|
||||
{{ Form::select('storefront_slider', trans('storefront::attributes.storefront_slider'), $errors, $sliders, $settings) }}
|
||||
{{ Form::select('storefront_terms_page', trans('storefront::attributes.storefront_terms_page'), $errors, $pages, $settings) }}
|
||||
{{ Form::select('storefront_privacy_page', trans('storefront::attributes.storefront_privacy_page'), $errors, $pages, $settings) }}
|
||||
{{ Form::text('translatable[storefront_address]', trans('storefront::attributes.storefront_address'), $errors, $settings) }}
|
||||
{{ Form::checkbox('storefront_most_searched_keywords_enabled', trans('storefront::attributes.storefront_most_searched_keywords'), trans('storefront::storefront.form.enable_most_searched_keywords'), $errors, $settings) }}
|
||||
</div>
|
||||
</div>
|
||||
21
Themes/Storefront/views/admin/storefront/tabs/logo.blade.php
Normal file
21
Themes/Storefront/views/admin/storefront/tabs/logo.blade.php
Normal file
@@ -0,0 +1,21 @@
|
||||
@include('media::admin.image_picker.single', [
|
||||
'title' => trans('storefront::storefront.form.favicon'),
|
||||
'inputName' => 'storefront_favicon',
|
||||
'file' => $favicon,
|
||||
])
|
||||
|
||||
<div class="media-picker-divider"></div>
|
||||
|
||||
@include('media::admin.image_picker.single', [
|
||||
'title' => trans('storefront::storefront.form.header_logo'),
|
||||
'inputName' => 'translatable[storefront_header_logo]',
|
||||
'file' => $headerLogo,
|
||||
])
|
||||
|
||||
<div class="media-picker-divider"></div>
|
||||
|
||||
@include('media::admin.image_picker.single', [
|
||||
'title' => trans('storefront::storefront.form.mail_logo'),
|
||||
'inputName' => 'translatable[storefront_mail_logo]',
|
||||
'file' => $mailLogo,
|
||||
])
|
||||
@@ -0,0 +1,11 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::text('translatable[storefront_navbar_text]', trans('storefront::attributes.storefront_navbar_text'), $errors, $settings) }}
|
||||
{{ Form::select('storefront_primary_menu', trans('storefront::attributes.storefront_primary_menu'), $errors, $menus, $settings) }}
|
||||
{{ Form::select('storefront_category_menu', trans('storefront::attributes.storefront_category_menu'), $errors, $menus, $settings) }}
|
||||
{{ Form::text('translatable[storefront_footer_menu_one_title]', trans('storefront::attributes.storefront_footer_menu_one_title'), $errors, $settings) }}
|
||||
{{ Form::select('storefront_footer_menu_one', trans('storefront::attributes.storefront_footer_menu_one'), $errors, $menus, $settings) }}
|
||||
{{ Form::text('translatable[storefront_footer_menu_two_title]', trans('storefront::attributes.storefront_footer_menu_two_title'), $errors, $settings) }}
|
||||
{{ Form::select('storefront_footer_menu_two', trans('storefront::attributes.storefront_footer_menu_two'), $errors, $menus, $settings) }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,5 @@
|
||||
@include('media::admin.image_picker.single', [
|
||||
'title' => trans('storefront::storefront.form.newsletter_bg_image'),
|
||||
'inputName' => 'storefront_newsletter_bg_image',
|
||||
'file' => $newsletterBgImage,
|
||||
])
|
||||
@@ -0,0 +1,17 @@
|
||||
<div class="accordion-box-content">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_one_column_banner_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_one_column_banner_section'), $errors, $settings) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-content clearfix">
|
||||
<div class="panel-wrap">
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner'),
|
||||
'name' => 'storefront_one_column_banner',
|
||||
'banner' => $banner,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,47 @@
|
||||
@hasAccess('admin.products.index')
|
||||
<div class="form-group">
|
||||
<label for="{{ "{$fieldNamePrefix}_product_type" }}" class="col-md-3 control-label text-left">
|
||||
{{ trans('storefront::attributes.type') }}
|
||||
</label>
|
||||
|
||||
<div class="col-md-9">
|
||||
<select name="{{ "{$fieldNamePrefix}_product_type" }}" class="form-control custom-select-black product-type" id="{{ "{$fieldNamePrefix}_product_type" }}">
|
||||
<option value="">{{ trans('storefront::storefront.form.please_select') }}</option>
|
||||
|
||||
@hasAccess('admin.categories.index')
|
||||
<option value="category_products" {{ setting("{$fieldNamePrefix}_product_type") === 'category_products' ? 'selected' : '' }}>
|
||||
{{ trans('storefront::storefront.form.product_types.category_products') }}
|
||||
</option>
|
||||
@endHasAccess
|
||||
|
||||
@unless ($featuredCategories ?? false)
|
||||
<option value="latest_products" {{ setting("{$fieldNamePrefix}_product_type") === 'latest_products' ? 'selected' : '' }}>
|
||||
{{ trans('storefront::storefront.form.product_types.latest_products') }}
|
||||
</option>
|
||||
|
||||
<option value="recently_viewed_products" {{ setting("{$fieldNamePrefix}_product_type") === 'recently_viewed_products' ? 'selected' : '' }}>
|
||||
{{ trans('storefront::storefront.form.product_types.recently_viewed_products') }}
|
||||
</option>
|
||||
@endunless
|
||||
|
||||
<option value="custom_products" {{ setting("{$fieldNamePrefix}_product_type") === 'custom_products' ? 'selected' : '' }}>
|
||||
{{ trans('storefront::storefront.form.product_types.custom_products') }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (auth()->user()->hasAccess('admin.categories.index') && ! ($featuredCategories ?? false))
|
||||
<div class="category-products {{ setting("{$fieldNamePrefix}_product_type") === 'category_products' ? '' : 'hide' }}">
|
||||
{{ Form::select("{$fieldNamePrefix}_category_id", trans('storefront::attributes.category'), $errors, $categories, $settings) }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="products-limit {{ in_array(setting("{$fieldNamePrefix}_product_type"), ['latest_products', 'recently_viewed_products','category_products']) ? '' : 'hide' }}">
|
||||
{{ Form::number("{$fieldNamePrefix}_products_limit", trans('storefront::attributes.products_limit'), $errors, $settings) }}
|
||||
</div>
|
||||
|
||||
<div class="custom-products {{ setting("{$fieldNamePrefix}_product_type") === 'custom_products' ? '' : 'hide' }}">
|
||||
{{ Form::select("{$fieldNamePrefix}_products", trans('storefront::attributes.products'), $errors, $products, $settings, ['class' => 'selectize prevent-creation', 'data-url' => route('admin.products.index'), 'multiple' => true]) }}
|
||||
</div>
|
||||
@endHasAccess
|
||||
@@ -0,0 +1,43 @@
|
||||
<div class="panel">
|
||||
<div class="panel-header">
|
||||
<h5>{{ $label }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
@hasAccess('admin.media.index')
|
||||
<div class="panel-image">
|
||||
@if (is_null($banner->image->path))
|
||||
<i class="fa fa-picture-o" aria-hidden="true"></i>
|
||||
<img class="hide">
|
||||
@else
|
||||
<img src="{{ $banner->image->path }}" alt="Banner">
|
||||
@endif
|
||||
|
||||
<input type="hidden" name="translatable[{{ $name }}_file_id]" value="{{ $banner->image->id }}" class="banner-file-id">
|
||||
</div>
|
||||
@endHasAccess
|
||||
|
||||
<div class="panel-content clearfix">
|
||||
<div class="row">
|
||||
<div class="col-lg-6 col-md-12 col-sm-6 clearfix">
|
||||
<div class="form-group">
|
||||
<label for="{{ $name }}-call-to-action-url">{{ trans("storefront::attributes.call_to_action_url") }}</label>
|
||||
<input type="text" name="{{ $name }}_call_to_action_url" value="{{ $banner->call_to_action_url }}" class="form-control" id="{{ $name }}-call-to-action-url">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6 col-md-12 col-sm-6">
|
||||
<div class="checkbox">
|
||||
<input type="hidden" name="{{ $name }}_open_in_new_window" value="0">
|
||||
<input type="checkbox" name="{{ $name }}_open_in_new_window" value="1" id="{{ $name }}-open-in-new-window" {{ $banner->open_in_new_window ? 'checked' : '' }}>
|
||||
<label for="{{ $name }}-open-in-new-window">
|
||||
{{ trans("storefront::attributes.open_in_new_window") }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,48 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_product_grid_section_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_product_grid_section'), $errors, $settings) }}
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_1') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_grid_section_tab_1_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', ['fieldNamePrefix' => 'storefront_product_grid_section_tab_1', 'products' => $tabOneProducts])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_2') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_grid_section_tab_2_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_grid_section_tab_2',
|
||||
'products' => $tabTwoProducts,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_3') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_grid_section_tab_3_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_grid_section_tab_3',
|
||||
'products' => $tabThreeProducts,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_4') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_grid_section_tab_4_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_grid_section_tab_4',
|
||||
'products' => $tabFourProducts,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
<div class="accordion-box-content">
|
||||
<div class="tab-content clearfix">
|
||||
<div class="panel-wrap">
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.product_page_banner'),
|
||||
'name' => 'storefront_product_page_banner',
|
||||
'banner' => $banner,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,51 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_product_tabs_1_section_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_product_tabs_one_section'), $errors, $settings) }}
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_1') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_tabs_1_section_tab_1_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_tabs_1_section_tab_1',
|
||||
'products' => $tabOneProducts,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_2') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_tabs_1_section_tab_2_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_tabs_1_section_tab_2',
|
||||
'products' => $tabTwoProducts,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_3') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_tabs_1_section_tab_3_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_tabs_1_section_tab_3',
|
||||
'products' => $tabThreeProducts,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_4') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_tabs_1_section_tab_4_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_tabs_1_section_tab_4',
|
||||
'products' => $tabFourProducts,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,54 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_product_tabs_2_section_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_product_tabs_two_section'), $errors, $settings) }}
|
||||
{{ Form::text('translatable[storefront_product_tabs_2_section_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_1') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_tabs_2_section_tab_1_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_tabs_2_section_tab_1',
|
||||
'products' => $tabOneProducts,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_2') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_tabs_2_section_tab_2_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_tabs_2_section_tab_2',
|
||||
'products' => $tabTwoProducts,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_3') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_tabs_2_section_tab_3_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_tabs_2_section_tab_3',
|
||||
'products' => $tabThreeProducts,
|
||||
])
|
||||
</div>
|
||||
|
||||
<div class="box-content clearfix">
|
||||
<h4 class="section-title">{{ trans('storefront::storefront.form.tab_4') }}</h4>
|
||||
|
||||
{{ Form::text('translatable[storefront_product_tabs_2_section_tab_4_title]', trans('storefront::attributes.title'), $errors, $settings) }}
|
||||
|
||||
@include('admin.storefront.tabs.partials.products', [
|
||||
'fieldNamePrefix' => 'storefront_product_tabs_2_section_tab_4',
|
||||
'products' => $tabFourProducts,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('admin::partials.selectize_remote')
|
||||
@@ -0,0 +1,17 @@
|
||||
<div class="accordion-box-content">
|
||||
<div class="tab-content clearfix">
|
||||
<div class="panel-wrap">
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner_1'),
|
||||
'name' => 'storefront_slider_banner_1',
|
||||
'banner' => $banners['banner_1'],
|
||||
])
|
||||
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner_2'),
|
||||
'name' => 'storefront_slider_banner_2',
|
||||
'banner' => $banners['banner_2'],
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::text('storefront_facebook_link', trans('storefront::attributes.storefront_facebook_link'), $errors, $settings) }}
|
||||
{{ Form::text('storefront_twitter_link', trans('storefront::attributes.storefront_twitter_link'), $errors, $settings) }}
|
||||
{{ Form::text('storefront_instagram_link', trans('storefront::attributes.storefront_instagram_link'), $errors, $settings) }}
|
||||
{{ Form::text('storefront_youtube_link', trans('storefront::attributes.storefront_youtube_link'), $errors, $settings) }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
<div class="accordion-box-content">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_three_column_banners_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_three_column_banners_section'), $errors, $settings) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-content clearfix">
|
||||
<div class="panel-wrap">
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner_1'),
|
||||
'name' => 'storefront_three_column_banners_1',
|
||||
'banner' => $banners['banner_1'],
|
||||
])
|
||||
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner_2'),
|
||||
'name' => 'storefront_three_column_banners_2',
|
||||
'banner' => $banners['banner_2'],
|
||||
])
|
||||
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner_3'),
|
||||
'name' => 'storefront_three_column_banners_3',
|
||||
'banner' => $banners['banner_3'],
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,35 @@
|
||||
<div class="accordion-box-content">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_three_column_full_width_banners_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_three_column_full_width_banners_section'), $errors, $settings) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-content clearfix">
|
||||
<div class="panel-wrap">
|
||||
@include('media::admin.image_picker.single', [
|
||||
'title' => trans('storefront::storefront.form.background'),
|
||||
'inputName' => 'storefront_three_column_full_width_banners_background_file_id',
|
||||
'file' => $banners['background']->image,
|
||||
])
|
||||
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner_1'),
|
||||
'name' => 'storefront_three_column_full_width_banners_1',
|
||||
'banner' => $banners['banner_1'],
|
||||
])
|
||||
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner_2'),
|
||||
'name' => 'storefront_three_column_full_width_banners_2',
|
||||
'banner' => $banners['banner_2'],
|
||||
])
|
||||
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner_3'),
|
||||
'name' => 'storefront_three_column_full_width_banners_3',
|
||||
'banner' => $banners['banner_3'],
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_top_brands_section_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_brands_section'), $errors, $settings) }}
|
||||
{{ Form::select('storefront_top_brands', trans('storefront::attributes.storefront_top_brands'), $errors, $brands, setting(), ['class' => 'selectize prevent-creation', 'multiple' => true]) }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,23 @@
|
||||
<div class="accordion-box-content">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::checkbox('storefront_two_column_banners_enabled', trans('storefront::attributes.section_status'), trans('storefront::storefront.form.enable_two_column_banners_section'), $errors, $settings) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-content clearfix">
|
||||
<div class="panel-wrap">
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner_1'),
|
||||
'name' => 'storefront_two_column_banners_1',
|
||||
'banner' => $banners['banner_1'],
|
||||
])
|
||||
|
||||
@include('admin.storefront.tabs.partials.single_banner', [
|
||||
'label' => trans('storefront::storefront.form.banner_2'),
|
||||
'name' => 'storefront_two_column_banners_2',
|
||||
'banner' => $banners['banner_2'],
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
584
Themes/Storefront/views/emails/invoice.blade.php
Normal file
584
Themes/Storefront/views/emails/invoice.blade.php
Normal file
@@ -0,0 +1,584 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-print-color-adjust: exact;"
|
||||
>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
.order-details {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.shipping-address {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.billing-address {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
min-width: 320px;
|
||||
color: #555555;
|
||||
margin: 0;"
|
||||
>
|
||||
<table style="border-collapse: collapse;
|
||||
min-width: 320px;
|
||||
max-width: 900px;
|
||||
width: 100%;
|
||||
margin: auto;
|
||||
border-bottom: 2px solid {{ mail_theme_color() }};"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse;
|
||||
width: 100%;
|
||||
background: {{ mail_theme_color() }};"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0 15px; text-align: center;">
|
||||
@if (is_null($logo))
|
||||
<h1 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 32px;
|
||||
line-height: 39px;
|
||||
display: inline-block;
|
||||
color: #fafafa;
|
||||
margin: 17px 0 0;"
|
||||
>
|
||||
{{ setting('store_name') }}
|
||||
</h1>
|
||||
@else
|
||||
<div style="display: flex;
|
||||
height: 64px;
|
||||
width: 200px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: auto;"
|
||||
>
|
||||
<img src="{{ $logo }}" style="max-height: 100%; max-width: 100%;" alt="logo">
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0 15px; text-align: center;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 56px;
|
||||
line-height: 68px;
|
||||
display: inline-block;
|
||||
color: #fafafa;
|
||||
margin: 3px 0 5px;"
|
||||
>
|
||||
{{ trans('storefront::invoice.invoice') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0 15px;">
|
||||
<table style="border-collapse: collapse;
|
||||
width: 230px;
|
||||
margin: 0 auto 20px;"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #fafafa;
|
||||
padding: 0;"
|
||||
>
|
||||
<span style="float: left;">
|
||||
{{ trans('storefront::invoice.order_id') }}:
|
||||
</span>
|
||||
|
||||
<span style="float: right;">
|
||||
#{{ $order->id }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #fafafa;
|
||||
padding: 0;"
|
||||
>
|
||||
<span style="float: left;">
|
||||
{{ trans('storefront::invoice.date') }}:
|
||||
</span>
|
||||
|
||||
<span style="float: right;">
|
||||
{{ $order->created_at->toFormattedDateString() }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 30px 15px;">
|
||||
<table style="border-collapse: collapse;
|
||||
min-width: 320px;
|
||||
max-width: 760px;
|
||||
width: 100%;
|
||||
margin: auto;"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0; width: 50%;">
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<h5 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
line-height: 22px;
|
||||
margin: 0 0 8px;
|
||||
color: #444444;"
|
||||
>
|
||||
{{ trans('storefront::invoice.order_details') }}
|
||||
</h5>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table class="order-details" style="border-collapse: collapse; width: 50%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.email') }}:
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;
|
||||
word-break: break-all;"
|
||||
>
|
||||
{{ $order->customer_email }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.phone') }}:
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;
|
||||
word-break: break-all;"
|
||||
>
|
||||
{{ $order->customer_phone }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.payment_method') }}:
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;
|
||||
word-break: break-all;"
|
||||
>
|
||||
{{ $order->payment_method }}
|
||||
@if($order->payment_method==='Bank Transfer')
|
||||
</br>
|
||||
{{setting('bank_transfer_instructions')}}
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table class="shipping-address" style="border-collapse: collapse;
|
||||
width: 50%;
|
||||
float: left;
|
||||
margin-top: 25px;"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<h5 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
line-height: 22px;
|
||||
margin: 0 0 8px;
|
||||
color: #444444;"
|
||||
>
|
||||
{{ trans('storefront::invoice.shipping_address') }}
|
||||
</h5>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 0;"
|
||||
>
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->shipping_full_name }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->shipping_address_1 }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->shipping_address_2 }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->shipping_city }}, {{ $order->shipping_state_name }} {{ $order->shipping_zip }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->shipping_country_name }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="billing-address" style="border-collapse: collapse;
|
||||
width: 50%;
|
||||
float: left;
|
||||
margin-top: 25px;"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<h5 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
line-height: 22px;
|
||||
margin: 0 0 8px;
|
||||
color: #444444;"
|
||||
>
|
||||
{{ trans('storefront::invoice.billing_address') }}
|
||||
</h5>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 0;"
|
||||
>
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->billing_full_name }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->billing_address_1 }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->billing_address_2 }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->billing_city }}, {{ $order->billing_state_name }} {{ $order->billing_zip }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->billing_country_name }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 30px 0 0;">
|
||||
<table style="border-collapse: collapse;
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #e9e9e9;"
|
||||
>
|
||||
<tbody>
|
||||
@foreach ($order->products as $product)
|
||||
<tr style="border-top: 1px solid #f1f1f1;">
|
||||
<td style="padding: 14px 0 14px;">
|
||||
<table style="border-collapse: collapse;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0 0 8px;">
|
||||
<a href="{{ $product->url() }}"
|
||||
style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 18px;
|
||||
line-height: 22px;
|
||||
color: #444444;
|
||||
margin: 0;
|
||||
text-decoration: none;"
|
||||
>
|
||||
{{ $product->name }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@if ($product->hasAnyOption())
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
padding: 0 0 8px;"
|
||||
>
|
||||
@foreach ($product->options as $option)
|
||||
<span style="display: block;">
|
||||
{{ $option->name }}:
|
||||
|
||||
<span style="color: #9a9a9a; margin-left: 5px;">
|
||||
@if ($option->option->isFieldType())
|
||||
{{ $option->value }}
|
||||
@else
|
||||
{{ $option->values->implode('label', ', ') }}
|
||||
@endif
|
||||
</span>
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
padding: 0 0 4px;"
|
||||
>
|
||||
<span>
|
||||
{{ trans('storefront::invoice.unit_price') }}:
|
||||
</span>
|
||||
|
||||
<span style="margin-left: 5px;">
|
||||
{{ $product->unit_price->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
padding: 0 0 4px;"
|
||||
>
|
||||
<span>
|
||||
{{ trans('storefront::invoice.quantity') }}:
|
||||
</span>
|
||||
|
||||
<span style="margin-left: 5px;">
|
||||
{{ $product->qty }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
padding: 0 0 4px;"
|
||||
>
|
||||
<span>
|
||||
{{ trans('storefront::invoice.line_total') }}:
|
||||
</span>
|
||||
|
||||
<span style="margin-left: 5px;">
|
||||
{{ $product->line_total->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse;
|
||||
width: 300px;
|
||||
margin-top: 10px;
|
||||
float: right;"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.subtotal') }}
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;
|
||||
float: right;"
|
||||
>
|
||||
{{ $order->sub_total->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@if ($order->hasShippingMethod())
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;"
|
||||
>
|
||||
{{ $order->shipping_method }}
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;
|
||||
float: right;"
|
||||
>
|
||||
{{ $order->shipping_cost->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if ($order->hasCoupon())
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.coupon') }}
|
||||
(<span style="color: #444444;">{{ $order->coupon->code }}</span>)
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;
|
||||
float: right;"
|
||||
>
|
||||
{{ $order->discount->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@foreach ($order->taxes as $tax)
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;"
|
||||
>
|
||||
{{ $tax->name }}
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;
|
||||
float: right;"
|
||||
>
|
||||
{{ $tax->order_tax->amount->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
<tr style="border-top: 1px solid #e9e9e9;">
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 600;
|
||||
padding: 5px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.total') }}
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 600;
|
||||
padding: 5px 0;
|
||||
float: right;"
|
||||
>
|
||||
{{ $order->total->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
587
Themes/Storefront/views/emails/invoice_rtl.blade.php
Normal file
587
Themes/Storefront/views/emails/invoice_rtl.blade.php
Normal file
@@ -0,0 +1,587 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-print-color-adjust: exact;"
|
||||
>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
.order-details {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.shipping-address {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.billing-address {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body dir="rtl" style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
min-width: 320px;
|
||||
color: #555555;
|
||||
margin: 0;"
|
||||
>
|
||||
<table style="border-collapse: collapse;
|
||||
min-width: 320px;
|
||||
max-width: 900px;
|
||||
width: 100%;
|
||||
margin: auto;
|
||||
border-bottom: 2px solid {{ mail_theme_color() }};"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse;
|
||||
width: 100%;
|
||||
background: {{ mail_theme_color() }};"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0 15px; text-align: center;">
|
||||
@if (is_null($logo))
|
||||
<h1 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 32px;
|
||||
line-height: 39px;
|
||||
display: inline-block;
|
||||
color: #fafafa;
|
||||
margin: 17px 0 0;"
|
||||
>
|
||||
{{ setting('store_name') }}
|
||||
</h1>
|
||||
@else
|
||||
<div style="display: flex;
|
||||
height: 64px;
|
||||
width: 200px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: auto;"
|
||||
>
|
||||
<img src="{{ $logo }}" style="max-height: 100%; max-width: 100%;" alt="logo">
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0 15px; text-align: center;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 56px;
|
||||
line-height: 68px;
|
||||
display: inline-block;
|
||||
color: #fafafa;
|
||||
margin: 3px 0 5px;"
|
||||
>
|
||||
{{ trans('storefront::invoice.invoice') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0 15px;">
|
||||
<table style="border-collapse: collapse;
|
||||
width: 230px;
|
||||
margin: 0 auto 20px;"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #fafafa;
|
||||
padding: 0;"
|
||||
>
|
||||
<span style="float: right;">
|
||||
{{ trans('storefront::invoice.order_id') }}:
|
||||
</span>
|
||||
|
||||
<span style="float: left;">
|
||||
#{{ $order->id }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #fafafa;
|
||||
padding: 0;"
|
||||
>
|
||||
<span style="float: right;">
|
||||
{{ trans('storefront::invoice.date') }}:
|
||||
</span>
|
||||
|
||||
<span style="float: left;">
|
||||
{{ $order->created_at->toFormattedDateString() }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 30px 15px;">
|
||||
<table style="border-collapse: collapse;
|
||||
min-width: 320px;
|
||||
max-width: 760px;
|
||||
width: 100%;
|
||||
margin: auto;"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0; width: 50%;">
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<h5 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
line-height: 22px;
|
||||
margin: 0 0 8px;
|
||||
color: #444444;"
|
||||
>
|
||||
{{ trans('storefront::invoice.order_details') }}
|
||||
</h5>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table class="order-details" style="border-collapse: collapse; width: 50%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.email') }}:
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;
|
||||
word-break: break-all;"
|
||||
>
|
||||
{{ $order->customer_email }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.phone') }}:
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;
|
||||
word-break: break-all;"
|
||||
>
|
||||
{{ $order->customer_phone }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.payment_method') }}:
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 4px 0;
|
||||
word-break: break-all;"
|
||||
>
|
||||
{{ $order->payment_method }}
|
||||
@if($order->payment_method==='Bank Transfer')
|
||||
</br>
|
||||
{{setting('bank_transfer_instructions')}}
|
||||
@endif
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table class="shipping-address" style="border-collapse: collapse;
|
||||
width: 50%;
|
||||
float: left;
|
||||
margin-top: 25px;"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<h5 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
line-height: 22px;
|
||||
margin: 0 0 8px;
|
||||
color: #444444;"
|
||||
>
|
||||
{{ trans('storefront::invoice.shipping_address') }}
|
||||
</h5>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 0;"
|
||||
>
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->shipping_full_name }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->shipping_address_1 }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->shipping_address_2 }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->shipping_city }}, {{ $order->shipping_state_name }} {{ $order->shipping_zip }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->shipping_country_name }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="billing-address" style="border-collapse: collapse;
|
||||
width: 50%;
|
||||
float: left;
|
||||
margin-top: 25px;"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<h5 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 18px;
|
||||
line-height: 22px;
|
||||
margin: 0 0 8px;
|
||||
color: #444444;"
|
||||
>
|
||||
{{ trans('storefront::invoice.billing_address') }}
|
||||
</h5>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
padding: 0;"
|
||||
>
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->billing_full_name }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->billing_address_1 }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->billing_address_2 }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->billing_city }}, {{ $order->billing_state_name }} {{ $order->billing_zip }}
|
||||
</span>
|
||||
|
||||
<span style="display: block; padding: 4px 0;">
|
||||
{{ $order->billing_country_name }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 30px 0 0;">
|
||||
<table style="border-collapse: collapse;
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #e9e9e9;"
|
||||
>
|
||||
<tbody>
|
||||
@foreach ($order->products as $product)
|
||||
<tr style="border-top: 1px solid #f1f1f1;">
|
||||
<td style="padding: 14px 0 14px;">
|
||||
<table style="border-collapse: collapse;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0 0 8px;">
|
||||
<a href="{{ $product->url() }}"
|
||||
style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 18px;
|
||||
line-height: 22px;
|
||||
color: #444444;
|
||||
margin: 0;
|
||||
text-decoration: none;"
|
||||
>
|
||||
{{ $product->name }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@if ($product->hasAnyOption())
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
padding: 0 0 8px;"
|
||||
>
|
||||
@foreach ($product->options as $option)
|
||||
<span style="display: block;">
|
||||
{{ $option->name }}:
|
||||
|
||||
<span
|
||||
style="color: #9a9a9a; margin-right: 5px;">
|
||||
@if ($option->option->isFieldType())
|
||||
{{ $option->value }}
|
||||
@else
|
||||
{{ $option->values->implode('label', ', ') }}
|
||||
@endif
|
||||
</span>
|
||||
</span>
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
padding: 0 0 4px;"
|
||||
>
|
||||
<span>
|
||||
{{ trans('storefront::invoice.unit_price') }}:
|
||||
</span>
|
||||
|
||||
<span style="margin-right: 5px;">
|
||||
{{ $product->unit_price->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
padding: 0 0 4px;"
|
||||
>
|
||||
<span>
|
||||
{{ trans('storefront::invoice.quantity') }}:
|
||||
</span>
|
||||
|
||||
<span style="margin-right: 5px;">
|
||||
{{ $product->qty }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
padding: 0 0 4px;"
|
||||
>
|
||||
<span>
|
||||
{{ trans('storefront::invoice.line_total') }}:
|
||||
</span>
|
||||
|
||||
<span style="margin-right: 5px;">
|
||||
{{ $product->line_total->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse;
|
||||
width: 300px;
|
||||
margin-top: 10px;
|
||||
float: left;"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.subtotal') }}
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;
|
||||
float: left;"
|
||||
>
|
||||
{{ $order->sub_total->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@if ($order->hasShippingMethod())
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;"
|
||||
>
|
||||
{{ $order->shipping_method }}
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;
|
||||
float: left;"
|
||||
>
|
||||
{{ $order->shipping_cost->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if ($order->hasCoupon())
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.coupon') }}
|
||||
(<span style="color: #444444;">{{ $order->coupon->code }}</span>)
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;
|
||||
float: left;"
|
||||
>
|
||||
{{ $order->discount->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@foreach ($order->taxes as $tax)
|
||||
<tr>
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;"
|
||||
>
|
||||
{{ $tax->name }}
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
padding: 5px 0;
|
||||
float: left;"
|
||||
>
|
||||
{{ $tax->order_tax->amount->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
<tr style="border-top: 1px solid #e9e9e9;">
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 600;
|
||||
padding: 5px 0;"
|
||||
>
|
||||
{{ trans('storefront::invoice.total') }}
|
||||
</td>
|
||||
|
||||
<td style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 600;
|
||||
padding: 5px 0;
|
||||
float: left;"
|
||||
>
|
||||
{{ $order->total->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
154
Themes/Storefront/views/emails/new_order.blade.php
Normal file
154
Themes/Storefront/views/emails/new_order.blade.php
Normal file
@@ -0,0 +1,154 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-print-color-adjust: exact;"
|
||||
>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
min-width: 320px;
|
||||
margin: 0;"
|
||||
>
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="background: {{ mail_theme_color() }}; text-align: center;">
|
||||
@if (is_null($logo))
|
||||
<h5 style="font-size: 30px;
|
||||
line-height: 36px;
|
||||
margin: 0;
|
||||
padding: 30px 15px;
|
||||
text-align: center;"
|
||||
>
|
||||
<a href="{{ route('home') }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
text-decoration: none;"
|
||||
>
|
||||
{{ setting('store_name') }}
|
||||
</a>
|
||||
</h5>
|
||||
@else
|
||||
<div style="display: flex;
|
||||
height: 64px;
|
||||
width: 200px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: auto;
|
||||
padding: 16px 15px;"
|
||||
>
|
||||
<img src="{{ $logo }}" style="max-height: 100%; max-width: 100%;" alt="logo">
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 40px 15px;">
|
||||
<table style="border-collapse: collapse;
|
||||
min-width: 320px;
|
||||
max-width: 600px;
|
||||
width: 100%;
|
||||
margin: auto;"
|
||||
>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
color: #666666;
|
||||
display: block;"
|
||||
>
|
||||
{{ trans('checkout::mail.new_order_text', ['order_id' => $order->id]) }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 30px 0; text-align: center;">
|
||||
<a href="{{ route('admin.orders.show', $order) }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
background: {{ mail_theme_color() }};
|
||||
color: #fafafa;
|
||||
padding: 11px 30px;
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
outline: 0;"
|
||||
>
|
||||
{{ trans('checkout::mail.view_order') }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
line-height: 24px;
|
||||
display: block;
|
||||
padding: 5px 0 10px;
|
||||
color: #666666;
|
||||
border-top: 1px solid #e9e9e9;"
|
||||
>
|
||||
{{ trans('checkout::mail.if_you\’re_having_trouble') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<a href="{{ route('admin.orders.show', $order) }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
text-decoration: underline;
|
||||
color: #31629f;
|
||||
word-break: break-all;"
|
||||
>
|
||||
{{ route('admin.orders.show', $order) }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 15px 0; background: #f1f3f7; text-align: center;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
display: inline-block;
|
||||
color: #555555;
|
||||
padding: 0 15px;"
|
||||
>
|
||||
© {{ date('Y') }}
|
||||
<a target="_blank" href="{{ route('home') }}" style="text-decoration: none; color: #31629f;">
|
||||
{{ setting('store_name') }}.
|
||||
</a>
|
||||
{{ trans('storefront::mail.all_rights_reserved') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
154
Themes/Storefront/views/emails/new_order_rtl.blade.php
Normal file
154
Themes/Storefront/views/emails/new_order_rtl.blade.php
Normal file
@@ -0,0 +1,154 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-print-color-adjust: exact;"
|
||||
>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body dir="rtl" style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
min-width: 320px;
|
||||
margin: 0;"
|
||||
>
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="background: {{ mail_theme_color() }}; text-align: center;">
|
||||
@if (is_null($logo))
|
||||
<h5 style="font-size: 30px;
|
||||
line-height: 36px;
|
||||
margin: 0;
|
||||
padding: 30px 15px;
|
||||
text-align: center;"
|
||||
>
|
||||
<a href="{{ route('home') }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
text-decoration: none;"
|
||||
>
|
||||
{{ setting('store_name') }}
|
||||
</a>
|
||||
</h5>
|
||||
@else
|
||||
<div style="display: flex;
|
||||
height: 64px;
|
||||
width: 200px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: auto;
|
||||
padding: 16px 15px;"
|
||||
>
|
||||
<img src="{{ $logo }}" style="max-height: 100%; max-width: 100%;" alt="logo">
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 40px 15px;">
|
||||
<table style="border-collapse: collapse;
|
||||
min-width: 320px;
|
||||
max-width: 600px;
|
||||
width: 100%;
|
||||
margin: auto;"
|
||||
>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
color: #666666;
|
||||
display: block;"
|
||||
>
|
||||
{{ trans('checkout::mail.new_order_text', ['order_id' => $order->id]) }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 30px 0; text-align: center;">
|
||||
<a href="{{ route('admin.orders.show', $order) }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
background: {{ mail_theme_color() }};
|
||||
color: #fafafa;
|
||||
padding: 11px 30px;
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
outline: 0;"
|
||||
>
|
||||
{{ trans('checkout::mail.view_order') }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
line-height: 24px;
|
||||
display: block;
|
||||
padding: 5px 0 10px;
|
||||
color: #666666;
|
||||
border-top: 1px solid #e9e9e9;"
|
||||
>
|
||||
{{ trans('checkout::mail.if_you\’re_having_trouble') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<a href="{{ route('admin.orders.show', $order) }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
text-decoration: underline;
|
||||
color: #31629f;
|
||||
word-break: break-all;"
|
||||
>
|
||||
{{ route('admin.orders.show', $order) }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 15px 0; background: #f1f3f7; text-align: center;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
display: inline-block;
|
||||
color: #555555;
|
||||
padding: 0 15px;"
|
||||
>
|
||||
© {{ date('Y') }}
|
||||
<a target="_blank" href="{{ route('home') }}" style="text-decoration: none; color: #31629f;">
|
||||
{{ setting('store_name') }}.
|
||||
</a>
|
||||
{{ trans('storefront::mail.all_rights_reserved') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
182
Themes/Storefront/views/emails/reset_password.blade.php
Normal file
182
Themes/Storefront/views/emails/reset_password.blade.php
Normal file
@@ -0,0 +1,182 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-print-color-adjust: exact;"
|
||||
>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
min-width: 320px;
|
||||
margin: 0;"
|
||||
>
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="background: {{ mail_theme_color() }}; text-align: center;">
|
||||
@if (is_null($logo))
|
||||
<h5 style="font-size: 30px;
|
||||
line-height: 36px;
|
||||
margin: 0;
|
||||
padding: 30px 15px;
|
||||
text-align: center;"
|
||||
>
|
||||
<a href="{{ route('home') }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
text-decoration: none;"
|
||||
>
|
||||
{{ setting('store_name') }}
|
||||
</a>
|
||||
</h5>
|
||||
@else
|
||||
<div style="display: flex;
|
||||
height: 64px;
|
||||
width: 200px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: auto;
|
||||
padding: 16px 15px;"
|
||||
>
|
||||
<img src="{{ $logo }}" style="max-height: 100%; max-width: 100%;" alt="logo">
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 40px 15px;">
|
||||
<table style="border-collapse: collapse;
|
||||
min-width: 320px;
|
||||
max-width: 600px;
|
||||
width: 100%;
|
||||
margin: auto;"
|
||||
>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<h4 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 21px;
|
||||
line-height: 26px;
|
||||
margin: 0 0 15px;
|
||||
color: #555555;"
|
||||
>
|
||||
{{ trans('storefront::mail.hello', ['name' => $user->first_name]) }}
|
||||
</h4>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
color: #666666;
|
||||
display: block;"
|
||||
>
|
||||
{{ trans('user::mail.received_a_password_reset_request') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 30px 0; text-align: center;">
|
||||
<a href="{{ $url }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
background: {{ mail_theme_color() }};
|
||||
color: #fafafa;
|
||||
padding: 11px 30px;
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
outline: 0;"
|
||||
>
|
||||
{{ trans('user::mail.reset_password') }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
color: #666666;
|
||||
display: block;"
|
||||
>
|
||||
{{ trans('user::mail.no_further_action_is_required') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 23px 0 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
line-height: 24px;
|
||||
display: block;
|
||||
padding: 5px 0 10px;
|
||||
color: #666666;
|
||||
border-top: 1px solid #e9e9e9;"
|
||||
>
|
||||
{{ trans('user::mail.if_you\’re_having_trouble') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<a href="{{ $url }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
text-decoration: underline;
|
||||
color: #31629f;
|
||||
word-break: break-all;"
|
||||
>
|
||||
{{ $url }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 15px 0; background: #f1f3f7; text-align: center;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
display: inline-block;
|
||||
color: #555555;
|
||||
padding: 0 15px;"
|
||||
>
|
||||
© {{ date('Y') }}
|
||||
<a target="_blank" href="{{ route('home') }}" style="text-decoration: none; color: #31629f;">
|
||||
{{ setting('store_name') }}.
|
||||
</a>
|
||||
{{ trans('storefront::mail.all_rights_reserved') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
182
Themes/Storefront/views/emails/reset_password_rtl.blade.php
Normal file
182
Themes/Storefront/views/emails/reset_password_rtl.blade.php
Normal file
@@ -0,0 +1,182 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-print-color-adjust: exact;"
|
||||
>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body dir="rtl" style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
min-width: 320px;
|
||||
margin: 0;"
|
||||
>
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="background: {{ mail_theme_color() }}; text-align: center;">
|
||||
@if (is_null($logo))
|
||||
<h5 style="font-size: 30px;
|
||||
line-height: 36px;
|
||||
margin: 0;
|
||||
padding: 30px 15px;
|
||||
text-align: center;"
|
||||
>
|
||||
<a href="{{ route('home') }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
text-decoration: none;"
|
||||
>
|
||||
{{ setting('store_name') }}
|
||||
</a>
|
||||
</h5>
|
||||
@else
|
||||
<div style="display: flex;
|
||||
height: 64px;
|
||||
width: 200px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: auto;
|
||||
padding: 16px 15px;"
|
||||
>
|
||||
<img src="{{ $logo }}" style="max-height: 100%; max-width: 100%;" alt="logo">
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 40px 15px;">
|
||||
<table style="border-collapse: collapse;
|
||||
min-width: 320px;
|
||||
max-width: 600px;
|
||||
width: 100%;
|
||||
margin: auto;"
|
||||
>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<h4 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 21px;
|
||||
line-height: 26px;
|
||||
margin: 0 0 15px;
|
||||
color: #555555;"
|
||||
>
|
||||
{{ trans('storefront::mail.hello', ['name' => $user->first_name]) }}
|
||||
</h4>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
color: #666666;
|
||||
display: block;"
|
||||
>
|
||||
{{ trans('user::mail.received_a_password_reset_request') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 30px 0; text-align: center;">
|
||||
<a href="{{ $url }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
background: {{ mail_theme_color() }};
|
||||
color: #fafafa;
|
||||
padding: 11px 30px;
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
outline: 0;"
|
||||
>
|
||||
{{ trans('user::mail.reset_password') }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
color: #666666;
|
||||
display: block;"
|
||||
>
|
||||
{{ trans('user::mail.no_further_action_is_required') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 23px 0 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
line-height: 24px;
|
||||
display: block;
|
||||
padding: 5px 0 10px;
|
||||
color: #666666;
|
||||
border-top: 1px solid #e9e9e9;"
|
||||
>
|
||||
{{ trans('user::mail.if_you\’re_having_trouble') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<a href="{{ $url }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
text-decoration: underline;
|
||||
color: #31629f;
|
||||
word-break: break-all;"
|
||||
>
|
||||
{{ $url }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 15px 0; background: #f1f3f7; text-align: center;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
display: inline-block;
|
||||
color: #555555;
|
||||
padding: 0 15px;"
|
||||
>
|
||||
© {{ date('Y') }}
|
||||
<a target="_blank" href="{{ route('home') }}" style="text-decoration: none; color: #31629f;">
|
||||
{{ setting('store_name') }}.
|
||||
</a>
|
||||
{{ trans('storefront::mail.all_rights_reserved') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
121
Themes/Storefront/views/emails/text.blade.php
Normal file
121
Themes/Storefront/views/emails/text.blade.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-print-color-adjust: exact;"
|
||||
>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
min-width: 320px;
|
||||
margin: 0;"
|
||||
>
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="background: {{ mail_theme_color() }}; text-align: center;">
|
||||
@if (is_null($logo))
|
||||
<h5 style="font-size: 30px;
|
||||
line-height: 36px;
|
||||
margin: 0;
|
||||
padding: 30px 15px;
|
||||
text-align: center;"
|
||||
>
|
||||
<a href="{{ route('home') }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
text-decoration: none;"
|
||||
>
|
||||
{{ setting('store_name') }}
|
||||
</a>
|
||||
</h5>
|
||||
@else
|
||||
<div style="display: flex;
|
||||
height: 64px;
|
||||
width: 200px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: auto;
|
||||
padding: 16px 15px;"
|
||||
>
|
||||
<img src="{{ $logo }}" style="max-height: 100%; max-width: 100%;" alt="logo">
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 40px 15px;">
|
||||
<table style="border-collapse: collapse;
|
||||
min-width: 320px;
|
||||
max-width: 600px;
|
||||
width: 100%;
|
||||
margin: auto;"
|
||||
>
|
||||
@isset($heading)
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<h4 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 21px;
|
||||
line-height: 26px;
|
||||
margin: 0 0 15px;
|
||||
color: #555555;"
|
||||
>
|
||||
{{ $heading }}
|
||||
</h4>
|
||||
</td>
|
||||
</tr>
|
||||
@endisset
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
color: #666666;
|
||||
display: block;"
|
||||
>
|
||||
{{ $text }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 15px 0; background: #f1f3f7; text-align: center;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
display: inline-block;
|
||||
color: #555555;
|
||||
padding: 0 15px;"
|
||||
>
|
||||
© {{ date('Y') }}
|
||||
<a target="_blank" href="{{ route('home') }}" style="text-decoration: none; color: #31629f;">
|
||||
{{ setting('store_name') }}.
|
||||
</a>
|
||||
{{ trans('storefront::mail.all_rights_reserved') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
121
Themes/Storefront/views/emails/text_rtl.blade.php
Normal file
121
Themes/Storefront/views/emails/text_rtl.blade.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-print-color-adjust: exact;"
|
||||
>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body dir="rtl" style="font-family: 'Open Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
min-width: 320px;
|
||||
margin: 0;"
|
||||
>
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<table style="border-collapse: collapse; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="background: {{ mail_theme_color() }}; text-align: center;">
|
||||
@if (is_null($logo))
|
||||
<h5 style="font-size: 30px;
|
||||
line-height: 36px;
|
||||
margin: 0;
|
||||
padding: 30px 15px;
|
||||
text-align: center;"
|
||||
>
|
||||
<a href="{{ route('home') }}" style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
text-decoration: none;"
|
||||
>
|
||||
{{ setting('store_name') }}
|
||||
</a>
|
||||
</h5>
|
||||
@else
|
||||
<div style="display: flex;
|
||||
height: 64px;
|
||||
width: 200px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: auto;
|
||||
padding: 16px 15px;"
|
||||
>
|
||||
<img src="{{ $logo }}" style="max-height: 100%; max-width: 100%;" alt="logo">
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 40px 15px;">
|
||||
<table style="border-collapse: collapse;
|
||||
min-width: 320px;
|
||||
max-width: 600px;
|
||||
width: 100%;
|
||||
margin: auto;"
|
||||
>
|
||||
@isset($heading)
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<h4 style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 21px;
|
||||
line-height: 26px;
|
||||
margin: 0 0 15px;
|
||||
color: #555555;"
|
||||
>
|
||||
{{ $heading }}
|
||||
</h4>
|
||||
</td>
|
||||
</tr>
|
||||
@endisset
|
||||
|
||||
<tr>
|
||||
<td style="padding: 0;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
color: #666666;
|
||||
display: block;"
|
||||
>
|
||||
{{ $text }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding: 15px 0; background: #f1f3f7; text-align: center;">
|
||||
<span style="font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
display: inline-block;
|
||||
color: #555555;
|
||||
padding: 0 15px;"
|
||||
>
|
||||
© {{ date('Y') }}
|
||||
<a target="_blank" href="{{ route('home') }}" style="text-decoration: none; color: #31629f;">
|
||||
{{ setting('store_name') }}.
|
||||
</a>
|
||||
{{ trans('storefront::mail.all_rights_reserved') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
25
Themes/Storefront/views/errors/404.blade.php
Normal file
25
Themes/Storefront/views/errors/404.blade.php
Normal file
@@ -0,0 +1,25 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('storefront::404.404'))
|
||||
|
||||
@section('content')
|
||||
<section class="error-page-wrap">
|
||||
<div class="container">
|
||||
<div class="row error-page">
|
||||
<div class="col-xl-7 col-lg-8 col-md-18 error-page-left">
|
||||
<h1 class="section-title">{{ trans('storefront::404.page_not_found') }}</h1>
|
||||
|
||||
<p>{{ trans('storefront::404.unable_to_find_the_page') }}</p>
|
||||
|
||||
<a href="{{ route('home') }}" class="btn btn-default btn-back-to-home">
|
||||
{{ trans('storefront::404.back_to_home') }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-6 col-lg-7 col-md-18 error-page-right">
|
||||
<img src="{{ Theme::url('public/images/404.svg') }}" class="error-image" alt="error image">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
206
Themes/Storefront/views/public/account/addresses/index.blade.php
Normal file
206
Themes/Storefront/views/public/account/addresses/index.blade.php
Normal file
@@ -0,0 +1,206 @@
|
||||
@extends('public.account.layout')
|
||||
|
||||
@section('title', trans('storefront::account.pages.my_addresses'))
|
||||
|
||||
@push('globals')
|
||||
<script>
|
||||
FleetCart.langs['storefront::account.addresses.confirm'] = '{{ trans('storefront::account.addresses.confirm') }}';
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
@section('panel')
|
||||
<my-addresses :initial-addresses="{{ $addresses }}" :initial-default-address="{{ $defaultAddress }}"
|
||||
:countries="{{ json_encode($countries) }}" inline-template>
|
||||
<div class="panel">
|
||||
<div class="panel-header">
|
||||
<h4>{{ trans('storefront::account.pages.my_addresses') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-body" v-cloak>
|
||||
<div class="my-addresses">
|
||||
<div class="address-card-wrap" v-if="hasAddress && ! formOpen">
|
||||
<div class="row">
|
||||
<div class="col-xl-6 col-lg-9 d-flex" v-for="address in addresses" :key="address.id">
|
||||
<address class="address-card" :class="{ active: defaultAddress.address_id === address.id }"
|
||||
@click="changeDefaultAddress(address)">
|
||||
<div class="address-card-data">
|
||||
<span v-text="address.full_name"></span>
|
||||
<span v-text="address.address_1"></span>
|
||||
<span v-if="address.address_2" v-text="address.address_2"></span>
|
||||
<span>@{{ address.city }}, @{{ address.state_name }}
|
||||
@{{ address.zip }}</span>
|
||||
<span v-text="address.country_name"></span>
|
||||
</div>
|
||||
|
||||
<div class="address-card-actions">
|
||||
<button type="button" class="btn btn-edit-address" @click.stop="edit(address)">
|
||||
{{ trans('storefront::account.addresses.edit') }}
|
||||
</button>
|
||||
|
||||
<button type="button" class="btn btn-delete-address" @click.stop="remove(address)">
|
||||
{{ trans('storefront::account.addresses.delete') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</address>
|
||||
</div>
|
||||
|
||||
<div class="col-md-18">
|
||||
<button type="button" class="btn btn-lg btn-default btn-add-new-address"
|
||||
@click="formOpen = true">
|
||||
{{ trans('storefront::account.addresses.add_new_address') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form @submit.prevent="save" @input="errors.clear($event.target.name)" v-else>
|
||||
<div class="add-new-address-form">
|
||||
<h4 class="section-title">
|
||||
{{ trans('storefront::account.addresses.new_address') }}
|
||||
</h4>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="first-name">
|
||||
{{ trans('storefront::account.addresses.first_name') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input v-model="form.first_name" name="first_name" type="text" id="first-name"
|
||||
class="form-control">
|
||||
|
||||
<span class="error-message" v-if="errors.has('first_name')"
|
||||
v-text="errors.get('first_name')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="last-name">
|
||||
{{ trans('storefront::account.addresses.last_name') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input v-model="form.last_name" name="last_name" type="text" id="last-name"
|
||||
class="form-control">
|
||||
|
||||
<span class="error-message" v-if="errors.has('last_name')"
|
||||
v-text="errors.get('last_name')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-18">
|
||||
<div class="form-group">
|
||||
<label for="address-1">
|
||||
{{ trans('storefront::account.addresses.street_address') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input v-model="form.address_1" name="address_1" type="text" id="address-1"
|
||||
placeholder="{{ trans('storefront::account.addresses.address_line_1') }}"
|
||||
class="form-control">
|
||||
|
||||
<span class="error-message" v-if="errors.has('address_1')"
|
||||
v-text="errors.get('address_1')">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<input v-model="form.address_2" name="address_2" type="text" id="address-2"
|
||||
placeholder="{{ trans('storefront::account.addresses.address_line_2') }}"
|
||||
class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="city">
|
||||
{{ trans('storefront::account.addresses.city') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input v-model="form.city" name="city" type="text" id="city"
|
||||
class="form-control">
|
||||
|
||||
<span class="error-message" v-if="errors.has('city')" v-text="errors.get('city')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="zip">
|
||||
{{ trans('storefront::account.addresses.zip') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input v-model="form.zip" name="zip" type="text" id="zip"
|
||||
class="form-control">
|
||||
|
||||
<span class="error-message" v-if="errors.has('zip')" v-text="errors.get('zip')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="country">
|
||||
{{ trans('storefront::account.addresses.country') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<select :value="form.country" name="country" id="country"
|
||||
class="form-control arrow-black" @change="changeCountry($event.target.value)">
|
||||
<option v-for="(name, code) in countries" :value="code"
|
||||
v-text="name">
|
||||
</option>
|
||||
</select>
|
||||
|
||||
<span class="error-message" v-if="errors.has('country')"
|
||||
v-text="errors.get('country')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="state">
|
||||
{{ trans('storefront::account.addresses.state') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input v-model="form.state" name="state" type="text" id="state"
|
||||
class="form-control" v-if="hasNoStates">
|
||||
|
||||
<select v-model="form.state" name="state" id="state"
|
||||
class="form-control arrow-black" v-else>
|
||||
<option value="">
|
||||
{{ trans('storefront::account.addresses.please_select') }}
|
||||
</option>
|
||||
|
||||
<option v-for="(name, code) in states" :value="code" v-html="name">
|
||||
</option>
|
||||
</select>
|
||||
|
||||
<span class="error-message" v-if="errors.has('state')"
|
||||
v-text="errors.get('state')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-18">
|
||||
<button type="button" class="btn btn-lg btn-default btn-cancel" v-if="hasAddress"
|
||||
@click="cancel">
|
||||
{{ trans('storefront::account.addresses.cancel') }}
|
||||
</button>
|
||||
|
||||
<button type="submit" class="btn btn-lg btn-primary btn-save-address"
|
||||
:class="{ 'btn-loading': loading }">
|
||||
{{ trans('storefront::account.addresses.save_address') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</my-addresses>
|
||||
@endsection
|
||||
@@ -0,0 +1,45 @@
|
||||
@extends('public.account.layout')
|
||||
|
||||
@section('title', trans('storefront::account.pages.dashboard'))
|
||||
|
||||
@section('panel')
|
||||
@if ($recentOrders->isNotEmpty())
|
||||
<div class="panel">
|
||||
<div class="panel-header">
|
||||
<h4>{{ trans('storefront::account.dashboard.recent_orders') }}</h4>
|
||||
|
||||
<a href="{{ route('account.orders.index') }}">
|
||||
{{ trans('storefront::account.dashboard.view_all') }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
@include('public.account.partials.orders_table', ['orders' => $recentOrders])
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-header">
|
||||
<h4>{{ trans('storefront::account.dashboard.account_information') }}</h4>
|
||||
|
||||
<a href="{{ route('account.profile.edit') }}">
|
||||
{{ trans('storefront::account.dashboard.edit') }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<ul class="list-inline user-info">
|
||||
<li>
|
||||
<i class="las la-user-circle"></i>
|
||||
<span>{{ $account->full_name }}</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<i class="las la-envelope"></i>
|
||||
<span>{{ $account->email }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,25 @@
|
||||
@extends('public.account.layout')
|
||||
|
||||
@section('title', trans('storefront::account.pages.my_downloads'))
|
||||
|
||||
@section('account_breadcrumb')
|
||||
<li class="active">{{ trans('storefront::account.pages.my_downloads') }}</li>
|
||||
@endsection
|
||||
|
||||
@section('panel')
|
||||
<div class="panel">
|
||||
<div class="panel-header">
|
||||
<h4>{{ trans('storefront::account.pages.my_downloads') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
@if ($downloads->isEmpty())
|
||||
<div class="empty-message">
|
||||
<h3>{{ trans('storefront::account.downloads.no_downloadable_files') }}</h3>
|
||||
</div>
|
||||
@else
|
||||
@include('public.account.downloads.partials.downloads_table')
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,27 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-borderless my-downloads-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ trans('storefront::account.downloads.filename') }}</th>
|
||||
<th>{{ trans('storefront::account.action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($downloads as $download)
|
||||
<tr>
|
||||
<td>
|
||||
{{ $download->filename }}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<a href="{{ route('account.downloads.show', encrypt($download->id)) }}" class="btn btn-download">
|
||||
<i class="las la-cloud-download-alt"></i>
|
||||
{{ trans('storefront::account.downloads.download') }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
85
Themes/Storefront/views/public/account/layout.blade.php
Normal file
85
Themes/Storefront/views/public/account/layout.blade.php
Normal file
@@ -0,0 +1,85 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('breadcrumb')
|
||||
@if (request()->routeIs('account.dashboard.index'))
|
||||
<li class="active">{{ trans('storefront::account.pages.my_account') }}</li>
|
||||
@else
|
||||
<li><a href="{{ route('account.dashboard.index') }}">{{ trans('storefront::account.pages.my_account') }}</a></li>
|
||||
@endif
|
||||
|
||||
@yield('account_breadcrumb')
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<section class="account-wrap">
|
||||
<div class="container">
|
||||
<div class="account-wrap-inner">
|
||||
<div class="account-left">
|
||||
<ul class="list-inline account-sidebar">
|
||||
<li class="{{ request()->routeIs('account.dashboard.index') ? 'active' : '' }}">
|
||||
<a href="{{ route('account.dashboard.index') }}">
|
||||
<i class="las la-tachometer-alt"></i>
|
||||
{{ trans('storefront::account.pages.dashboard') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="{{ request()->routeIs('account.orders.index') ? 'active' : '' }}">
|
||||
<a href="{{ route('account.orders.index') }}">
|
||||
<i class="las la-cart-arrow-down"></i>
|
||||
{{ trans('storefront::account.pages.my_orders') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="{{ request()->routeIs('account.downloads.index') ? 'active' : '' }}">
|
||||
<a href="{{ route('account.downloads.index') }}">
|
||||
<i class="las la-download"></i>
|
||||
{{ trans('storefront::account.pages.my_downloads') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="{{ request()->routeIs('account.wishlist.index') ? 'active' : '' }}">
|
||||
<a href="{{ route('account.wishlist.index') }}">
|
||||
<i class="lar la-heart"></i>
|
||||
{{ trans('storefront::account.pages.my_wishlist') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="{{ request()->routeIs('account.reviews.index') ? 'active' : '' }}">
|
||||
<a href="{{ route('account.reviews.index') }}">
|
||||
<i class="las la-comment"></i>
|
||||
{{ trans('storefront::account.pages.my_reviews') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="{{ request()->routeIs('account.addresses.index') ? 'active' : '' }}">
|
||||
<a href="{{ route('account.addresses.index') }}">
|
||||
<i class="las la-address-book"></i>
|
||||
{{ trans('storefront::account.pages.my_addresses') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="{{ request()->routeIs('account.profile.edit') ? 'active' : '' }}">
|
||||
<a href="{{ route('account.profile.edit') }}">
|
||||
<i class="las la-user-circle"></i>
|
||||
{{ trans('storefront::account.pages.my_profile') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="{{ route('logout') }}">
|
||||
<i class="las la-sign-out-alt"></i>
|
||||
{{ trans('storefront::account.pages.logout') }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="account-right">
|
||||
<div class="panel-wrap">
|
||||
@yield('panel')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@@ -0,0 +1,29 @@
|
||||
@extends('public.account.layout')
|
||||
|
||||
@section('title', trans('storefront::account.pages.my_orders'))
|
||||
|
||||
@section('account_breadcrumb')
|
||||
<li class="active">{{ trans('storefront::account.pages.my_orders') }}</li>
|
||||
@endsection
|
||||
|
||||
@section('panel')
|
||||
<div class="panel">
|
||||
<div class="panel-header">
|
||||
<h4>{{ trans('storefront::account.pages.my_orders') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
@if ($orders->isEmpty())
|
||||
<div class="empty-message">
|
||||
<h3>{{ trans('storefront::account.orders.no_orders') }}</h3>
|
||||
</div>
|
||||
@else
|
||||
@include('public.account.partials.orders_table')
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="panel-footer">
|
||||
{!! $orders->links() !!}
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
28
Themes/Storefront/views/public/account/orders/show.blade.php
Normal file
28
Themes/Storefront/views/public/account/orders/show.blade.php
Normal file
@@ -0,0 +1,28 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('storefront::account.view_order.view_order'))
|
||||
|
||||
@section('breadcrumb')
|
||||
<li><a href="{{ route('account.dashboard.index') }}">{{ trans('storefront::account.pages.my_account') }}</a></li>
|
||||
<li><a href="{{ route('account.orders.index') }}">{{ trans('storefront::account.pages.my_orders') }}</a></li>
|
||||
<li class="active">{{ trans('storefront::account.orders.view_order') }}</li>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<section class="order-details-wrap">
|
||||
<div class="container">
|
||||
<div class="order-details-top">
|
||||
<h3 class="section-title">{{ trans('storefront::account.view_order.view_order') }}</h3>
|
||||
|
||||
<div class="row">
|
||||
@include('public.account.orders.show.order_information')
|
||||
@include('public.account.orders.show.billing_address')
|
||||
@include('public.account.orders.show.shipping_address')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('public.account.orders.show.items_ordered')
|
||||
@include('public.account.orders.show.order_totals')
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@@ -0,0 +1,17 @@
|
||||
<div class="col-lg-6 col-sm-9">
|
||||
<div class="order-billing-details">
|
||||
<h4>{{ trans('storefront::account.view_order.billing_address') }}</h4>
|
||||
|
||||
<address>
|
||||
<span>{{ $order->billing_full_name }}</span>
|
||||
<span>{{ $order->billing_address_1 }}</span>
|
||||
|
||||
@if ($order->billing_address_2)
|
||||
<span>{{ $order->billing_address_2 }}</span>
|
||||
@endif
|
||||
|
||||
<span>{{ $order->billing_city }}, {{ $order->billing_state_name }} {{ $order->billing_zip }}</span>
|
||||
<span>{{ $order->billing_country_name }}</span>
|
||||
</address>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,64 @@
|
||||
<div class="order-details-middle">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-borderless order-details-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ trans('storefront::account.product_name') }}</th>
|
||||
<th>{{ trans('storefront::account.view_order.unit_price') }}</th>
|
||||
<th>{{ trans('storefront::account.view_order.quantity') }}</th>
|
||||
<th>{{ trans('storefront::account.view_order.line_total') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($order->products as $product)
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ $product->url() }}" class="product-name">
|
||||
{{ $product->name }}
|
||||
</a>
|
||||
|
||||
@if ($product->hasAnyOption())
|
||||
<ul class="list-inline product-options">
|
||||
@foreach ($product->options as $option)
|
||||
<li>
|
||||
@if ($option->isFieldType())
|
||||
<label>{{ $option->name }}:</label> {{ $option->value }}
|
||||
@else
|
||||
<label>{{ $option->name }}:</label> {{ $option->values->implode('label', ', ') }}
|
||||
@endif
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<label>{{ trans('storefront::account.view_order.unit_price') }}</label>
|
||||
|
||||
<span class="product-price">
|
||||
{{ $product->unit_price->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<label>{{ trans('storefront::account.view_order.quantity') }}</label>
|
||||
|
||||
<span class="quantity">
|
||||
{{ $product->qty }}
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<label>{{ trans('storefront::account.view_order.line_total') }}</label>
|
||||
|
||||
<span class="product-price">
|
||||
{{ $product->line_total->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,51 @@
|
||||
<div class="col-lg-6 col-sm-18">
|
||||
<div class="order-information">
|
||||
<h4>{{ trans('storefront::account.view_order.order_information') }}</h4>
|
||||
|
||||
<ul class="list-inline order-information-list">
|
||||
<li>
|
||||
<label>{{ trans('storefront::account.view_order.id') }}</label>
|
||||
<span>{{ $order->id }}</span>
|
||||
</li>
|
||||
<li>
|
||||
<label>{{ trans('storefront::account.view_order.phone') }}</label>
|
||||
<span>{{ $order->customer_phone }}</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{{ trans('storefront::account.view_order.email') }}</label>
|
||||
<span>{{ $order->customer_email }}</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{{ trans('storefront::account.view_order.date') }}</label>
|
||||
<span>{{ $order->created_at->toFormattedDateString() }}</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{{ trans('storefront::account.view_order.shipping_method') }}</label>
|
||||
<span>{{ $order->shipping_method }}</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label>{{ trans('storefront::account.view_order.payment_method') }}</label>
|
||||
<span>
|
||||
{{ $order->payment_method }}
|
||||
|
||||
@if ($order->payment_method === 'Bank Transfer')
|
||||
</br>
|
||||
{{ setting('bank_transfer_instructions') }}
|
||||
@endif
|
||||
|
||||
</span>
|
||||
</li>
|
||||
|
||||
@if ($order->note)
|
||||
<li>
|
||||
<label>{{ trans('storefront::account.view_order.order_note') }}</label>
|
||||
<span>{{ $order->note }}</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,52 @@
|
||||
<div class="order-details-bottom">
|
||||
<ul class="list-inline order-summary-list">
|
||||
<li>
|
||||
<label>{{ trans('storefront::account.view_order.subtotal') }}</label>
|
||||
|
||||
<span class="price-amount">
|
||||
{{ $order->sub_total->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</li>
|
||||
|
||||
@if ($order->hasShippingMethod())
|
||||
<li>
|
||||
<label>{{ $order->shipping_method }}</label>
|
||||
|
||||
<span class="price-amount">
|
||||
{{ $order->shipping_cost->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@foreach ($order->taxes as $tax)
|
||||
<li>
|
||||
<label>{{ $tax->name }}</label>
|
||||
|
||||
<span class="price-amount">
|
||||
{{ $tax->order_tax->amount->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
@if ($order->hasCoupon())
|
||||
<li>
|
||||
<label>
|
||||
{{ trans('storefront::account.view_order.coupon') }}
|
||||
<span class="coupon-code">[{{ $order->coupon->code }}]</span>
|
||||
</label>
|
||||
|
||||
<span class="price-amount">
|
||||
-{{ $order->discount->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
<div class="order-summary-total">
|
||||
<label>{{ trans('storefront::account.view_order.total') }}</label>
|
||||
|
||||
<span class="total-price">
|
||||
{{ $order->total->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
<div class="col-lg-6 col-sm-9">
|
||||
<div class="order-shipping-details">
|
||||
<h4>{{ trans('storefront::account.view_order.shipping_address') }}</h4>
|
||||
|
||||
<address>
|
||||
<span>{{ $order->shipping_full_name }}</span>
|
||||
<span>{{ $order->shipping_address_1 }}</span>
|
||||
|
||||
@if ($order->shipping_address_2)
|
||||
<span>{{ $order->shipping_address_2 }}</span>
|
||||
@endif
|
||||
|
||||
<span>{{ $order->shipping_city }}, {{ $order->shipping_state_name }} {{ $order->shipping_zip }}</span>
|
||||
<span>{{ $order->shipping_country_name }}</span>
|
||||
</address>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,44 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-borderless my-orders-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ trans('storefront::account.orders.order_id') }}</th>
|
||||
<th>{{ trans('storefront::account.date') }}</th>
|
||||
<th>{{ trans('storefront::account.status') }}</th>
|
||||
<th>{{ trans('storefront::account.orders.total') }}</th>
|
||||
<th>{{ trans('storefront::account.action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($orders as $order)
|
||||
<tr>
|
||||
<td>
|
||||
{{ $order->id }}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{{ $order->created_at->toFormattedDateString() }}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span class="badge {{ order_status_badge_class($order->status) }}">
|
||||
{{ $order->status() }}
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{{ $order->total->convert($order->currency, $order->currency_rate)->format($order->currency) }}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<a href="{{ route('account.orders.show', $order) }}" class="btn btn-view">
|
||||
<i class="las la-eye"></i>
|
||||
{{ trans('storefront::account.orders.view') }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
114
Themes/Storefront/views/public/account/profile/edit.blade.php
Normal file
114
Themes/Storefront/views/public/account/profile/edit.blade.php
Normal file
@@ -0,0 +1,114 @@
|
||||
@extends('public.account.layout')
|
||||
|
||||
@section('title', trans('storefront::account.pages.my_profile'))
|
||||
|
||||
@section('account_breadcrumb')
|
||||
<li class="active">{{ trans('storefront::account.pages.my_profile') }}</li>
|
||||
@endsection
|
||||
|
||||
@section('panel')
|
||||
<div class="panel">
|
||||
<div class="panel-header">
|
||||
<h4>{{ trans('storefront::account.pages.my_profile') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="my-profile">
|
||||
<form method="POST" action="{{ route('account.profile.update') }}">
|
||||
@csrf
|
||||
@method('put')
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="email">
|
||||
{{ trans('storefront::account.profile.email') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="email" value="{{ old('email', $account->email) }}" id="email" class="form-control">
|
||||
|
||||
@error('email')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="phone">
|
||||
{{ trans('storefront::account.profile.phone') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="phone" value="{{ old('phone', $account->phone) }}" id="phone" class="form-control">
|
||||
|
||||
@error('phone')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="first-name">
|
||||
{{ trans('storefront::account.profile.first_name') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="first_name" value="{{ old('first_name', $account->first_name) }}" id="first-name" class="form-control">
|
||||
|
||||
@error('first_name')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="last-name">
|
||||
{{ trans('storefront::account.profile.last_name') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="last_name" value="{{ old('last_name', $account->last_name) }}" id="last-name" class="form-control">
|
||||
|
||||
@error('last_name')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="password">
|
||||
{{ trans('storefront::account.profile.password') }}
|
||||
</label>
|
||||
|
||||
<input type="password" name="password" id="password" class="form-control">
|
||||
|
||||
@error('password')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="confirm-password">
|
||||
{{ trans('storefront::account.profile.confirm_password') }}
|
||||
</label>
|
||||
|
||||
<input type="password" name="password_confirmation" id="confirm-password" class="form-control">
|
||||
|
||||
@error('password_confirmation')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-lg btn-primary btn-save-changes" data-loading>
|
||||
{{ trans('storefront::account.profile.save_changes') }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,77 @@
|
||||
@extends('public.account.layout')
|
||||
|
||||
@section('title', trans('storefront::account.pages.my_reviews'))
|
||||
|
||||
@section('account_breadcrumb')
|
||||
<li class="active">{{ trans('storefront::account.pages.my_reviews') }}</li>
|
||||
@endsection
|
||||
|
||||
@section('panel')
|
||||
<div class="panel">
|
||||
<div class="panel-header">
|
||||
<h4>{{ trans('storefront::account.pages.my_reviews') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
@if ($reviews->isEmpty())
|
||||
<div class="empty-message">
|
||||
<h3>{{ trans('storefront::account.reviews.no_reviews') }}</h3>
|
||||
</div>
|
||||
@else
|
||||
<div class="table-responsive">
|
||||
<table class="table table-borderless my-reviews-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ trans('storefront::account.image') }}</th>
|
||||
<th>{{ trans('storefront::account.product_name') }}</th>
|
||||
<th>{{ trans('storefront::account.status') }}</th>
|
||||
<th>{{ trans('storefront::account.date') }}</th>
|
||||
<th>{{ trans('storefront::account.reviews.rating') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($reviews as $review)
|
||||
<tr>
|
||||
<td>
|
||||
<div class="product-image">
|
||||
@if ($review->product->base_image->exists)
|
||||
<img src="{{ $review->product->base_image->path }}" alt="{{ $review->product->name }}">
|
||||
@else
|
||||
<img src="{{ asset('themes/storefront/public/images/image-placeholder.png') }}" class="image-placeholder">
|
||||
@endif
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<a href="{{ route('products.show', ['slug' => $review->product->slug]) }}" class="product-name">
|
||||
{{ $review->product->name }}
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span class="badge {{ $review->is_approved ? 'badge-success' : 'badge-secondary' }}">
|
||||
{{ $review->status() }}
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{{ $review->created_at->toFormattedDateString() }}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
@include('public.account.reviews.partials.product_rating')
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="panel-footer">
|
||||
{!! $reviews->links() !!}
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,17 @@
|
||||
<div class="product-rating">
|
||||
<div class="back-stars">
|
||||
<i class="las la-star"></i>
|
||||
<i class="las la-star"></i>
|
||||
<i class="las la-star"></i>
|
||||
<i class="las la-star"></i>
|
||||
<i class="las la-star"></i>
|
||||
|
||||
<div class="front-stars" style="width: {{ $review->rating_percent }}%">
|
||||
<i class="las la-star"></i>
|
||||
<i class="las la-star"></i>
|
||||
<i class="las la-star"></i>
|
||||
<i class="las la-star"></i>
|
||||
<i class="las la-star"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,86 @@
|
||||
@extends('public.account.layout')
|
||||
|
||||
@section('title', trans('storefront::account.pages.my_wishlist'))
|
||||
|
||||
@section('account_breadcrumb')
|
||||
<li class="active">{{ trans('storefront::account.pages.my_wishlist') }}</li>
|
||||
@endsection
|
||||
|
||||
@section('panel')
|
||||
<my-wishlist inline-template>
|
||||
<div class="panel">
|
||||
<div class="panel-header">
|
||||
<h4>{{ trans('storefront::account.pages.my_wishlist') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-body" :class="{ loading: fetchingWishlist }" v-cloak>
|
||||
<div class="empty-message" v-if="wishlistIsEmpty">
|
||||
<h3 v-if="! fetchingWishlist">
|
||||
{{ trans('storefront::account.wishlist.empty_wishlist') }}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive" v-else>
|
||||
<table class="table table-borderless my-wishlist-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ trans('storefront::account.image') }}</th>
|
||||
<th>{{ trans('storefront::account.product_name') }}</th>
|
||||
<th>{{ trans('storefront::account.wishlist.price') }}</th>
|
||||
<th>{{ trans('storefront::account.wishlist.availability') }}</th>
|
||||
<th>{{ trans('storefront::account.action') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr v-for="product in products.data" :key="product.id">
|
||||
<td>
|
||||
<div class="product-image">
|
||||
<img :src="baseImage(product)" :class="{ 'image-placeholder': ! hasBaseImage(product) }" alt="product-image">
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<a :href="productUrl(product)" class="product-name">
|
||||
@{{ product.name }}
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span class="product-price" v-html="product.formatted_price"></span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span class="badge badge-success" v-if="product.is_in_stock">
|
||||
{{ trans('storefront::account.wishlist.in_stock') }}
|
||||
</span>
|
||||
|
||||
<span class="badge badge-danger" v-else>
|
||||
{{ trans('storefront::account.wishlist.out_of_stock') }}
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<button class="btn btn-delete" @click="remove(product)">
|
||||
<i class="las la-trash"></i>
|
||||
{{ trans('storefront::account.wishlist.delete') }}
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel-footer">
|
||||
<v-pagination
|
||||
:total-page="totalPage"
|
||||
:current-page="currentPage"
|
||||
@page-changed="fetchProducts"
|
||||
v-if="products.total > 20"
|
||||
>
|
||||
</v-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</my-wishlist>
|
||||
@endsection
|
||||
59
Themes/Storefront/views/public/auth/login.blade.php
Normal file
59
Themes/Storefront/views/public/auth/login.blade.php
Normal file
@@ -0,0 +1,59 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('user::auth.login'))
|
||||
|
||||
@section('content')
|
||||
<section class="form-wrap login-wrap">
|
||||
<div class="container">
|
||||
<div class="form-wrap-inner login-wrap-inner">
|
||||
<h2>{{ trans('user::auth.login') }}</h2>
|
||||
|
||||
<form method="POST" action="{{ route('login.post') }}">
|
||||
@csrf
|
||||
|
||||
<div class="form-group">
|
||||
<label for="email">{{ trans('user::auth.email') }}<span>*</span></label>
|
||||
<input type="text" name="email" value="{{ old('email') }}" id="email" class="form-control">
|
||||
|
||||
@error('email')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="password">{{ trans('user::auth.password') }}<span>*</span></label>
|
||||
<input type="password" name="password" id="password" class="form-control">
|
||||
|
||||
@error('password')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-check remember-me">
|
||||
<input type="hidden" name="remember_me" value="0">
|
||||
<input type="checkbox" name="remember_me" value="1" id="remember" {{ old('remember_me', false) ? 'checked' : '' }}>
|
||||
<label for="remember" class="form-check-label">{{ trans('user::auth.remember_me') }}</label>
|
||||
</div>
|
||||
|
||||
<a href="{{ route('reset') }}" class="forgot-password">
|
||||
{{ trans('user::auth.forgot_password') }}
|
||||
</a>
|
||||
|
||||
<button type="submit" class="btn btn-primary btn-sign-in" data-loading>
|
||||
{{ trans('user::auth.sign_in') }}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
@include('public.auth.partials.social_login')
|
||||
|
||||
<span class="have-an-account">
|
||||
{{ trans('user::auth.dont_have_an_account') }}
|
||||
</span>
|
||||
|
||||
<a href="{{ route('register') }}" class="btn btn-default btn-create-account">
|
||||
{{ trans('user::auth.create_account') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@@ -0,0 +1,27 @@
|
||||
@if (count($providers) !== 0)
|
||||
<span class="sign-in-with">
|
||||
@if (request()->routeIs('login'))
|
||||
{{ trans('user::auth.or_continue_with') }}
|
||||
@else
|
||||
{{ trans('user::auth.or_sign_up_with') }}
|
||||
@endif
|
||||
</span>
|
||||
|
||||
<ul class="list-inline social-login">
|
||||
@if (setting('facebook_login_enabled'))
|
||||
<li>
|
||||
<a href="{{ route('login.redirect', ['provider' => 'facebook']) }}" class="facebook" data-toggle="tooltip" data-placement="top" title="{{ trans('user::auth.facebook') }}">
|
||||
<i class="lab la-facebook-f"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (setting('google_login_enabled'))
|
||||
<li>
|
||||
<a href="{{ route('login.redirect', ['provider' => 'google']) }}" class="google" data-toggle="tooltip" data-placement="top" title="{{ trans('user::auth.google') }}">
|
||||
<i class="lab la-google"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
@endif
|
||||
126
Themes/Storefront/views/public/auth/register.blade.php
Normal file
126
Themes/Storefront/views/public/auth/register.blade.php
Normal file
@@ -0,0 +1,126 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('user::auth.register'))
|
||||
|
||||
@section('content')
|
||||
<section class="form-wrap register-wrap">
|
||||
<div class="container">
|
||||
<div class="form-wrap-inner register-wrap-inner">
|
||||
<h2>{{ trans('user::auth.register') }}</h2>
|
||||
|
||||
<form method="POST" action="{{ route('register.post') }}">
|
||||
@csrf
|
||||
@honeypot
|
||||
|
||||
<div class="form-group">
|
||||
<label for="first-name">
|
||||
{{ trans('user::auth.first_name') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="first_name" value="{{ old('first_name') }}" id="first-name" class="form-control">
|
||||
|
||||
@error('first_name')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="last-name">
|
||||
{{ trans('user::auth.last_name') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="last_name" value="{{ old('last_name') }}" id="last-name" class="form-control">
|
||||
|
||||
@error('last_name')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="email">
|
||||
{{ trans('user::auth.email') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="email" value="{{ old('email') }}" id="email" class="form-control">
|
||||
|
||||
@error('email')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="phone">
|
||||
{{ trans('user::auth.phone') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="phone" value="{{ old('phone') }}" id="phone" class="form-control">
|
||||
|
||||
@error('phone')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="password">
|
||||
{{ trans('user::auth.password') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="password" name="password" id="password" class="form-control">
|
||||
|
||||
@error('password')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="confirm-password">
|
||||
{{ trans('user::auth.confirm_password') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="password" name="password_confirmation" id="confirm-password" class="form-control">
|
||||
|
||||
@error('password_confirmation')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group p-t-5">
|
||||
@captcha
|
||||
<input type="text" name="captcha" id="captcha" class="captcha-input" placeholder="{{ trans('storefront::layout.enter_captcha_code') }}">
|
||||
|
||||
@error('captcha')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-check terms-and-conditions">
|
||||
<input type="hidden" name="privacy_policy" value="0">
|
||||
<input type="checkbox" name="privacy_policy" value="1" id="terms" {{ old('privacy_policy', false) ? 'checked' : '' }}>
|
||||
|
||||
<label for="terms" class="form-check-label">
|
||||
{{ trans('user::auth.i_agree_to_the') }} <a href="{{ $privacyPageUrl }}">{{ trans('user::auth.privacy_policy') }}</a>
|
||||
</label>
|
||||
|
||||
@error('privacy_policy')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary btn-create-account" data-loading>
|
||||
{{ trans('user::auth.create_account') }}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
@include('public.auth.partials.social_login')
|
||||
|
||||
<span class="have-an-account">
|
||||
{{ trans('user::auth.already_have_an_account') }}
|
||||
</span>
|
||||
|
||||
<a href="{{ route('login') }}" class="btn btn-default btn-sign-in">
|
||||
{{ trans('user::auth.sign_in') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
31
Themes/Storefront/views/public/auth/reset/begin.blade.php
Normal file
31
Themes/Storefront/views/public/auth/reset/begin.blade.php
Normal file
@@ -0,0 +1,31 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('user::auth.reset_password'))
|
||||
|
||||
@section('content')
|
||||
<section class="form-wrap register-wrap">
|
||||
<div class="container">
|
||||
<div class="form-wrap-inner register-wrap-inner">
|
||||
<h2>{{ trans('user::auth.reset_password') }}</h2>
|
||||
<p>{{ trans('user::auth.enter_email') }}</p>
|
||||
|
||||
<form method="POST" action="{{ route('reset.post') }}">
|
||||
@csrf
|
||||
|
||||
<div class="form-group">
|
||||
<label for="email">{{ trans('user::attributes.users.email') }}<span>*</span></label>
|
||||
<input type="text" name="email" value="{{ old('email') }}" id="email" class="form-control" autofocus>
|
||||
|
||||
@error('email')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary btn-reset-password" data-loading>
|
||||
{{ trans('user::auth.submit') }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
45
Themes/Storefront/views/public/auth/reset/complete.blade.php
Normal file
45
Themes/Storefront/views/public/auth/reset/complete.blade.php
Normal file
@@ -0,0 +1,45 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('user::auth.reset_password'))
|
||||
|
||||
@section('content')
|
||||
<section class="form-wrap register-wrap">
|
||||
<div class="container">
|
||||
<div class="form-wrap-inner register-wrap-inner">
|
||||
<h2>{{ trans('user::auth.reset_password') }}</h2>
|
||||
|
||||
<form method="POST" action="{{ route('reset.complete.post', [$user->email, $code]) }}">
|
||||
@csrf
|
||||
|
||||
<div class="form-group">
|
||||
<label for="new-password">
|
||||
{{ trans('user::attributes.users.new_password') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="password" name="new_password" class="form-control" id="new-password">
|
||||
|
||||
@error('new_password')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="confirm-new-password">
|
||||
{{ trans('user::attributes.users.confirm_new_password') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="password" name="new_password_confirmation" class="form-control" id="confirm-new-password">
|
||||
|
||||
@error('new_password_confirmation')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary btn-reset-password" data-loading>
|
||||
{{ trans('user::auth.submit') }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
40
Themes/Storefront/views/public/brands/index.blade.php
Normal file
40
Themes/Storefront/views/public/brands/index.blade.php
Normal file
@@ -0,0 +1,40 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('storefront::brands.brands'))
|
||||
|
||||
@section('content')
|
||||
<section class="all-brands-wrap">
|
||||
<div class="container">
|
||||
<div class="all-brands">
|
||||
@if ($brands->isNotEmpty())
|
||||
<div class="all-brands-inner">
|
||||
@foreach ($brands as $brand)
|
||||
<div class="col-lg-3 col-md-6 col-9">
|
||||
<a href="{{ $brand->url() }}" class="brand-image">
|
||||
@if ($brand->logo->exists)
|
||||
<img src="{{ $brand->logo->path }}" alt="brand image">
|
||||
@else
|
||||
<img src="{{ asset('themes/storefront/public/images/image-placeholder.png') }}" class="image-placeholder" alt="brand image">
|
||||
@endif
|
||||
</a>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@else
|
||||
<div class="empty-message">
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 500 500"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<path d="M195.94,408.49A12.49,12.49,0,0,0,204,384.84a142.43,142.43,0,0,1-96.51-134.9c0-78.55,63.9-142.46,142.46-142.46a142.48,142.48,0,0,1,45.94,277.35,12.5,12.5,0,0,0,8.05,23.66,167.49,167.49,0,0,0-54-326c-92.33,0-167.44,75.11-167.44,167.44A167.4,167.4,0,0,0,195.94,408.49Zm0,0"/>
|
||||
<path d="M258.77,396.06a12.51,12.51,0,1,0,3.65,8.83,12.59,12.59,0,0,0-3.65-8.83Zm0,0"/>
|
||||
<path d="M197.39,473.91a72.68,72.68,0,0,0,101.47.84,47.73,47.73,0,0,1,40.19-12.69,72.67,72.67,0,0,0,82.59-58.95,47.69,47.69,0,0,1,25.06-33.89A72.68,72.68,0,0,0,478.86,273a47.7,47.7,0,0,1,.35-42.15,72.63,72.63,0,0,0-20.77-90.42L437.9,126.15a47.73,47.73,0,0,1-13.73-26.38A72.87,72.87,0,0,0,405,61.32l0-.07c-7-7.87-20.13-14.79-20.13-14.79a72.94,72.94,0,0,0-42.37-7,47.69,47.69,0,0,1-29.25-5.39L293.68,18.6a72.62,72.62,0,0,0-92.54,6.64A47.69,47.69,0,0,1,161,37.92a72.68,72.68,0,0,0-82.59,59A47.69,47.69,0,0,1,53.3,130.77,72.67,72.67,0,0,0,21.14,227a47.7,47.7,0,0,1-.35,42.15,72.68,72.68,0,0,0,30.55,96.76,47.71,47.71,0,0,1,24.49,34.3A72.84,72.84,0,0,0,94.32,438l21.55,15.93a72.86,72.86,0,0,0,41.55,6.61A47.67,47.67,0,0,1,197.39,473.91Zm-43.26-38.13a47.8,47.8,0,0,1-53.66-39.67,72.52,72.52,0,0,0-37.24-52.17,47.78,47.78,0,0,1-20.08-63.62,72.53,72.53,0,0,0,.53-64.1,47.78,47.78,0,0,1,21.15-63.28,72.5,72.5,0,0,0,38.1-51.54,47.8,47.8,0,0,1,54.32-38.76,72.51,72.51,0,0,0,61.11-19.3,47.79,47.79,0,0,1,66.72.55,72.47,72.47,0,0,0,60.79,20.32,47.8,47.8,0,0,1,53.66,39.67A72.41,72.41,0,0,0,428,150.46a73.61,73.61,0,0,0,8.8,5.58,47.79,47.79,0,0,1,20.08,63.63,72.56,72.56,0,0,0-.54,64.1,47.78,47.78,0,0,1-21.14,63.28,72.54,72.54,0,0,0-38.11,51.54,47.77,47.77,0,0,1-54.3,38.76,72.52,72.52,0,0,0-61.13,19.3,47.77,47.77,0,0,1-66.71-.56,72.5,72.5,0,0,0-60.79-20.31"/>
|
||||
<path d="M249.84,351.5a12,12,0,0,1-4.83-.8c-6.68-2.6-7.57-10.73-8-17l0-.21L225.45,176.16c-.28-3.75-.52-7.7,1.1-11.1,1.49-3.14,4.36-5.37,7.16-7.44,4.79-3.55,10.08-7.15,16-7.17,5.79,0,11,3.36,15.69,6.74,3.4,2.44,6.93,5.19,8.32,9.13,1,2.77.78,5.8.56,8.72L262.66,335.11c-.26,3.57-.56,7.28-2.32,10.4A12.51,12.51,0,0,1,249.84,351.5Z"/>
|
||||
</svg>
|
||||
|
||||
<h2>{{ trans('storefront::brands.no_brand_found') }}</h2>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
32
Themes/Storefront/views/public/cart/index.blade.php
Normal file
32
Themes/Storefront/views/public/cart/index.blade.php
Normal file
@@ -0,0 +1,32 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('storefront::cart.cart'))
|
||||
|
||||
@section('content')
|
||||
<cart-index inline-template v-cloak>
|
||||
<div>
|
||||
<section class="shopping-cart-wrap">
|
||||
<div class="container">
|
||||
<template v-if="cartIsNotEmpty">
|
||||
@include('public.cart.index.steps')
|
||||
|
||||
<div class="shopping-cart">
|
||||
<div class="shopping-cart-inner">
|
||||
@include('public.cart.index.cart_items')
|
||||
@include('public.cart.index.coupon')
|
||||
</div>
|
||||
|
||||
@include('public.cart.index.order_summary')
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@include('public.cart.index.empty_cart')
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<landscape-products title="{{ trans('storefront::product.you_might_also_like') }}" v-if="hasAnyCrossSellProduct"
|
||||
:products="crossSellProducts">
|
||||
</landscape-products>
|
||||
</div>
|
||||
</cart-index>
|
||||
@endsection
|
||||
@@ -0,0 +1,92 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-borderless shopping-cart-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ trans('storefront::cart.table.image') }}</th>
|
||||
<th>{{ trans('storefront::cart.table.product_name') }}</th>
|
||||
<th>{{ trans('storefront::cart.table.unit_price') }}</th>
|
||||
<th>{{ trans('storefront::cart.table.quantity') }}</th>
|
||||
<th>{{ trans('storefront::cart.table.line_total') }}</th>
|
||||
<th>
|
||||
<button class="btn-remove" @click="clearCart">
|
||||
<i class="las la-times"></i>
|
||||
</button>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr v-for="cartItem in cart.items" :key="cartItem.id">
|
||||
<td>
|
||||
<div class="product-image">
|
||||
<img
|
||||
:src="baseImage(cartItem.product)"
|
||||
:class="{ 'image-placeholder': ! hasBaseImage(cartItem.product) }"
|
||||
alt="product image"
|
||||
>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<a
|
||||
:href="productUrl(cartItem.product)"
|
||||
class="product-name"
|
||||
v-text="cartItem.product.name"
|
||||
>
|
||||
</a>
|
||||
|
||||
<ul class="list-inline product-options" v-cloak>
|
||||
<li v-for="option in cartItem.options">
|
||||
<label>@{{ option.name }}:</label> @{{ optionValues(option) }}
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<label>{{ trans('storefront::cart.table.unit_price:') }}</label>
|
||||
|
||||
<span class="product-price" v-html="cartItem.unitPrice.inCurrentCurrency.formatted"></span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<label>{{ trans('storefront::cart.table.quantity:') }}</label>
|
||||
|
||||
<div class="number-picker">
|
||||
<div class="input-group-quantity">
|
||||
<button type="button" class="btn btn-number btn-minus" data-type="minus" :disabled="cartItem.qty == 1">
|
||||
<i class="las la-angle-left"></i>
|
||||
</button>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
:value="cartItem.qty"
|
||||
min="1"
|
||||
:max="cartItem.product.manage_stock ? cartItem.product.qty : ''"
|
||||
class="form-control input-number input-quantity"
|
||||
@input="updateQuantity(cartItem, $event.target.value)"
|
||||
@keydown.up="updateQuantity(cartItem, cartItem.qty + 1)"
|
||||
@keydown.down="updateQuantity(cartItem, cartItem.qty - 1)"
|
||||
>
|
||||
|
||||
<button type="button" class="btn btn-number btn-plus" data-type="plus">
|
||||
<i class="las la-angle-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<label>{{ trans('storefront::cart.table.line_total:') }}</label>
|
||||
|
||||
<span class="product-price" v-html="cartItem.total.inCurrentCurrency.formatted"></span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<button class="btn-remove" @click="remove(cartItem)">
|
||||
<i class="las la-times"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
37
Themes/Storefront/views/public/cart/index/coupon.blade.php
Normal file
37
Themes/Storefront/views/public/cart/index/coupon.blade.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<div class="coupon-wrap">
|
||||
<form @submit.prevent="applyCoupon">
|
||||
<div class="form-group">
|
||||
<div class="form-input">
|
||||
<input
|
||||
type="text"
|
||||
v-model="couponCode"
|
||||
placeholder="{{ trans('storefront::cart.enter_coupon_code') }}"
|
||||
class="form-control"
|
||||
@input="couponError = null"
|
||||
>
|
||||
|
||||
<span
|
||||
class="error-message"
|
||||
v-if="couponError"
|
||||
v-text="couponError"
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-primary btn-apply-coupon"
|
||||
:class="{ 'btn-loading': applyingCoupon }"
|
||||
>
|
||||
{{ trans('storefront::cart.apply_coupon') }}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<span
|
||||
class="error-message"
|
||||
v-if="couponError"
|
||||
v-text="couponError"
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
102
Themes/Storefront/views/public/cart/index/empty_cart.blade.php
Normal file
102
Themes/Storefront/views/public/cart/index/empty_cart.blade.php
Normal file
@@ -0,0 +1,102 @@
|
||||
<div class="empty-cart-message" v-else v-cloak>
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500" preserveAspectRatio="xMidYMid meet">
|
||||
<g>
|
||||
<path
|
||||
d="M477.52,135.43c3.72-20.13-6.84-37.6-26.3-43.52c-90.6-27.43-180.44-54.64-267.05-80.8
|
||||
c-5.18-1.57-10.17-2.36-14.82-2.36c-15.49,0-27.41,8.74-34.46,25.26l-22.12,51.7c-12.92,30.19-25.82,60.37-38.74,90.56
|
||||
c-0.44,1.04-0.92,2.06-1.46,3.14l-3.03-0.9c-3.42-1.04-6.68-2.03-9.92-2.98c-2.89-0.86-5.59-1.29-8-1.29
|
||||
c-8.27,0-13.96,4.97-16.94,14.77c-3.79,12.5-7.58,25.03-11.33,37.54c-4.35,14.4-0.09,22.37,14.17,26.7l27.25,8.25
|
||||
c52.7,15.97,107.2,32.47,160.77,48.86c1.8,0.53,3.95,2.33,4.9,4.07c8.71,15.9,17.4,32.15,25.79,47.87
|
||||
c2.66,4.95,5.29,9.89,7.93,14.84l13.61,25.42c12.37,23.11,25.17,47.03,37.81,70.54c6.12,11.37,16.85,18.17,28.68,18.17
|
||||
c2.15,0,4.32-0.21,6.45-0.67c10.38-2.17,18.79-8.69,23.09-17.89c4.41-9.41,3.98-20.36-1.2-30.07
|
||||
c-19.28-36.24-38.99-73.04-58.04-108.61l-10.82-20.18c-0.23-0.44-0.44-0.88-0.67-1.32c-1.34-2.75-3.21-6.49-7.56-6.49
|
||||
c-1.13,0-2.33,0.28-3.68,0.83c-1.99,0.86-3.33,2.15-3.93,3.84c-0.9,2.54-0.18,5.69,2.4,10.49l17.75,33.19
|
||||
c16.99,31.71,33.95,63.4,50.89,95.13c5.11,9.57,2.5,19.65-6.33,24.52c-2.57,1.41-5.25,2.1-8.02,2.1c-6.4,0-12.32-3.88-15.83-10.42
|
||||
c-32.06-59.82-63.33-118.29-92.96-173.81c-4.95-9.29-2.91-17.66,5.73-23.6c6.1-4.16,5.22-8.44,3.42-11.28
|
||||
c-1.9-2.94-4.32-3.56-6.03-3.56c-1.8,0-3.74,0.67-5.8,2.03c-10.42,6.86-15.44,16.48-14.93,28.57c0.12,2.8,0.67,5.55,1.2,8.21
|
||||
c0.02,0.12,0.05,0.23,0.07,0.35c-18.95-5.76-37.91-11.53-56.86-17.29c-40.93-12.46-81.87-24.92-122.82-37.35
|
||||
c-1.39-0.42-2.27-0.97-2.61-1.59c-0.39-0.74-0.3-1.99,0.28-3.84c2.45-7.93,4.88-16.02,7.21-23.85c1.32-4.39,2.63-8.78,3.95-13.17
|
||||
c1.78-5.85,2.22-6.08,3.14-6.08c1.23,0,3.35,0.62,6.01,1.43l29.58,8.97c40.66,12.32,81.29,24.64,121.94,36.93
|
||||
c3.04,0.92,6.09,1.85,9.13,2.77c3.06,0.93,6.11,1.85,9.17,2.78c3.06,0.93,6.11,1.85,9.17,2.78c3.06,0.93,6.11,1.85,9.17,2.78
|
||||
c3.06,0.93,6.12,1.85,9.17,2.78c1.13,0.34,2.28,0.65,3.39,1.03c-0.8-0.32-1.58-0.33-2.41-0.07c-1.3,0.42-2.39,1.28-3.42,2.14
|
||||
c-0.94,0.78-1.86,1.68-2.22,2.88c-0.11,0.37-0.16,0.75-0.15,1.14c0.05,2.98,2.08,7.12,4.9,8.32c5.2,2.2,8.85,5.73,11.46,11.09
|
||||
c0.32,0.62,0.62,1.27,0.92,1.92c1.53,3.21,3.1,6.52,5.45,9.29c1.59,1.87,4.67,2.7,6.98,2.7c0.95,0,1.78-0.14,2.5-0.39
|
||||
c1.18-0.42,2.15-1.53,2.89-3.31c0.25-0.62,1.5-3.84,0.46-6.08c-3.19-6.91-6.7-13.2-10.45-18.74c-3.1-4.55-7.56-7.84-13.59-9.92
|
||||
c36.22,11,72.46,21.96,108.68,32.94l85.08,25.75c1.62,0.51,4.62,1.41,5.06,2.24c0.44,0.86-0.49,3.91-0.97,5.57
|
||||
c-1.55,5.11-3.07,10.24-4.62,15.37c-2.1,7.05-4.23,14.12-6.36,21.17c-1.48,4.9-2.03,4.9-2.89,4.9c-1.09,0-2.87-0.49-4.6-1.02
|
||||
l-13.54-4.09c-31.36-9.48-62.73-18.95-94.07-28.45c-1.8-0.55-3.24-0.81-4.51-0.81c-3.4,0-5.82,1.87-6.86,5.29
|
||||
c-2.17,7.21,4.74,9.31,7.03,9.98c15.37,4.65,30.74,9.31,46.11,13.98c21.31,6.45,42.62,12.92,63.95,19.35
|
||||
c2.2,0.67,4.37,0.99,6.43,0.99c7.9,0,14.15-4.95,16.73-13.22c3.79-12.3,7.81-25.63,12.62-42.02c3.14-10.77-1.55-19.58-12.25-23.02
|
||||
c-3.58-1.13-7.17-2.22-10.93-3.37c-1.16-0.35-2.33-0.69-3.54-1.06c0.02-0.37,0.05-0.69,0.09-0.95
|
||||
C458.17,239.95,467.83,187.66,477.52,135.43z M438.92,261.3l-4.78,25.86c-0.09,0.53-0.25,1.06-0.46,1.66l-200.41-60.72
|
||||
L87.39,183.92c0.28-0.76,0.55-1.48,0.86-2.17l6.73-15.72c18.07-42.37,36.15-84.71,54.25-127.05c4.25-9.94,11.33-15.21,20.5-15.21
|
||||
c2.8,0,5.82,0.49,8.97,1.46c88.85,26.86,177.67,53.76,266.49,80.69c14.03,4.23,19.81,13.68,17.17,28.04
|
||||
C454.61,176.41,446.64,219.56,438.92,261.3z" />
|
||||
<path
|
||||
d="M193,311.18c0-2.33,0.02-9.41-7.47-9.64h-0.35c-3.63,0-5.41,1.8-6.24,3.33c-1.04,1.87-1.16,4.21-1.16,6.03
|
||||
c0.02,27,0.02,53.97,0,80.94c0,1.83,0.12,4.18,1.18,6.06c0.83,1.53,2.61,3.33,6.24,3.33h0.32c7.49-0.21,7.47-7.3,7.47-9.64
|
||||
c-0.02-9.75-0.02-19.51-0.02-29.26v-22.07C192.97,330.57,192.97,320.86,193,311.18z" />
|
||||
<path
|
||||
d="M125.84,370.79c-0.07-1.02-0.16-2.05-0.27-3.07c-0.3-2.78-0.93-5.86-3.24-7.43c-2.42-1.64-6.8-1.21-9.02,0.6
|
||||
c-2.46,2.02-2.74,5.1-2.73,8.11c0.03,6.85,0.06,13.7,0.1,20.55c0.04,7.64-0.06,15.77-4.21,22.18c-3.96,6.14-11.15,9.67-18.39,10.62
|
||||
c-2.53,0.33-5.31,0.47-7.18,2.21c-1.47,1.36-2.05,3.47-2.03,5.47c0.02,2.01,0.63,4.1,2.08,5.48c1.85,1.76,4.64,2.05,7.19,1.98
|
||||
c7.61-0.2,15.14-2.74,21.3-7.2c6.17-4.46,10.94-10.81,13.51-17.97c2.32-6.47,2.85-13.43,3.08-20.3c0.15-4.48,0.19-8.95,0.11-13.43
|
||||
C126.11,375.99,126.02,373.38,125.84,370.79z" />
|
||||
<path
|
||||
d="M220.11,462.08c-1.62,0-3.33,0.51-5.59,1.62c-2.43,1.2-4.9,1.8-7.35,1.8c-8.07,0-13.98-6.4-14.1-15.25
|
||||
c-0.07-5.69-0.07-11.74,0-18.51c0.07-7.81-4.62-9.11-7.44-9.18l-0.3-0.02c-2.2,0-3.95,0.67-5.25,1.99
|
||||
c-1.53,1.55-2.24,3.84-2.2,6.96c0.05,2.47,0.05,5.02,0.02,7.47v5.62h0.02v0.95c-0.02,2.33-0.05,4.76,0.05,7.16
|
||||
c0.67,15.81,13.73,28.17,29.75,28.17c4.74,0,9.27-1.13,13.52-3.35c2.08-1.11,8.41-4.44,5.11-11.12
|
||||
C224.59,462.85,221.98,462.08,220.11,462.08z" />
|
||||
<path
|
||||
d="M447.44,404.04c-0.56-0.14-1.12-0.2-1.68-0.18c-2.22,0.05-4.44,1.14-6.63,1.81
|
||||
c-4.65,1.44-10.07,0.9-13.83-2.18c-3.13-2.57-4.8-6.58-5.3-10.6c-0.29-2.29-0.27-4.73-1.46-6.71c-1.17-1.93-3.41-3.1-5.66-3.21
|
||||
c-1.81-0.08-3.61,0.47-5.15,1.42c-0.38,0.23-0.75,0.48-1.09,0.77c-0.29,0.24-0.48,0.7-0.65,1.04c-0.4,0.77-0.71,1.59-0.93,2.44
|
||||
c-0.44,1.72-0.54,3.51-0.43,5.27c0.04,0.68,0.12,1.36,0.22,2.04c0.97,6.45,4.08,12.56,8.68,17.18c4.6,4.63,10.66,7.77,17.09,8.92
|
||||
c1.36,0.24,2.75,0.4,4.12,0.25c0.96-0.11,1.9-0.37,2.84-0.63c1.94-0.54,3.89-1.08,5.83-1.62c1.83-0.51,3.67-1.02,5.32-1.95
|
||||
c1.65-0.93,3.11-2.33,3.73-4.13c0.54-1.57,0.38-3.32-0.15-4.89C451.53,406.77,449.8,404.64,447.44,404.04z" />
|
||||
<path
|
||||
d="M153.01,332.44h-0.07c-4.78,0-7.65,3.14-7.67,8.39c-0.05,9.18-0.05,18.84,0,30.39
|
||||
c0.02,5.36,2.77,8.48,7.56,8.53h0.14c4.69,0,7.53-3.12,7.58-8.39c0.05-3.54,0.05-7.1,0.02-10.63v-9.08
|
||||
c0.02-3.56,0.02-7.12-0.02-10.68C160.48,333.3,155.25,332.44,153.01,332.44z" />
|
||||
<path
|
||||
d="M111.69,315.61c0.79,1.52,2.01,2.79,3.43,3.74c0.81,0.54,1.72,1,2.7,1.02c1.06,0.03,2.07-0.46,3-0.96
|
||||
c1.32-0.71,2.65-1.51,3.51-2.74c0.9-1.3,1.18-2.92,1.33-4.49c0.27-2.84,0.21-5.7,0.21-8.55c0-2.36,0.02-4.79-0.85-6.98
|
||||
c-0.8-2.01-2.38-3.73-4.39-4.54c-2.03-0.82-4.58-0.68-6.28,0.74c-1.83,1.53-2.95,3.38-3.44,5.73c-0.48,2.28-0.39,4.64-0.43,6.97
|
||||
c-0.05,2.83-0.26,5.79,0.56,8.44C111.21,314.55,111.42,315.09,111.69,315.61z" />
|
||||
<g>
|
||||
<path
|
||||
d="M244.57,72.74c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62
|
||||
c8.33,2.49,17.13-2.25,19.62-10.58l29.95-100.01C257.64,84.03,252.89,75.23,244.57,72.74z M213.7,188.93
|
||||
c-0.6,1.99-2.7,3.12-4.69,2.53s-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69
|
||||
L213.7,188.93z" />
|
||||
<path
|
||||
d="M303.62,90.42c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62
|
||||
c8.33,2.49,17.13-2.25,19.62-10.58l29.95-100.01C316.69,101.72,311.95,92.92,303.62,90.42z M272.75,206.62
|
||||
c-0.6,1.99-2.7,3.12-4.69,2.53c-1.99-0.6-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53s3.12,2.7,2.53,4.69
|
||||
L272.75,206.62z" />
|
||||
<path
|
||||
d="M362.67,108.11c-8.33-2.49-17.13,2.25-19.62,10.58L313.09,218.7c-2.49,8.33,2.25,17.13,10.58,19.62
|
||||
s17.13-2.25,19.62-10.58l29.95-100.01C375.74,119.4,371,110.6,362.67,108.11z M331.8,224.3c-0.6,1.99-2.7,3.12-4.69,2.53
|
||||
c-1.99-0.6-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69L331.8,224.3z" />
|
||||
<path
|
||||
d="M421.72,125.79c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62
|
||||
c8.33,2.49,17.13-2.25,19.62-10.58l29.95-100.01C434.79,137.09,430.05,128.29,421.72,125.79z M390.85,241.98
|
||||
c-0.6,1.99-2.7,3.12-4.69,2.53s-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69
|
||||
L390.85,241.98z" />
|
||||
<path
|
||||
d="M185.52,55.05c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62
|
||||
c8.33,2.49,17.13-2.25,19.62-10.58L196.1,74.68C198.59,66.35,193.84,57.55,185.52,55.05z M154.65,171.25
|
||||
c-0.6,1.99-2.7,3.12-4.69,2.53s-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69
|
||||
L154.65,171.25z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
<h2>{{ trans('storefront::cart.your_cart_is_empty') }}</h2>
|
||||
|
||||
<span>{{ trans('storefront::cart.looks_like_you_haven\'t_made_any_choice_yet') }}</span>
|
||||
|
||||
<a href="{{ route('home') }}"
|
||||
class="btn btn-default btn-continue-shopping">{{ trans('storefront::cart.continue_shopping') }}</a>
|
||||
</div>
|
||||
@@ -0,0 +1,89 @@
|
||||
<aside class="order-summary-wrap" v-if="cartIsNotEmpty">
|
||||
<div class="order-summary">
|
||||
<div class="order-summary-top">
|
||||
<h3 class="section-title">{{ trans('storefront::cart.order_summary') }}</h3>
|
||||
</div>
|
||||
|
||||
<div class="order-summary-middle" :class="{ loading: loadingOrderSummary }">
|
||||
<ul class="list-inline order-summary-list">
|
||||
<li>
|
||||
<label>{{ trans('storefront::cart.subtotal') }}</label>
|
||||
|
||||
<span
|
||||
class="price-amount"
|
||||
v-html="cart.subTotal.inCurrentCurrency.formatted"
|
||||
>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li v-for="tax in cart.taxes">
|
||||
<label v-text="tax.name"></label>
|
||||
|
||||
<span
|
||||
class="price-amount"
|
||||
v-html="tax.amount.inCurrentCurrency.formatted"
|
||||
>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li v-if="hasCoupon" v-cloak>
|
||||
<label>
|
||||
{{ trans('storefront::cart.coupon') }}
|
||||
|
||||
<span class="coupon-code">
|
||||
[@{{ cart.coupon.code }}]
|
||||
<span class="btn-remove-coupon" @click="removeCoupon">
|
||||
<i class="las la-times"></i>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
|
||||
<span
|
||||
class="price-amount"
|
||||
v-html="'-' + cart.coupon.value.inCurrentCurrency.formatted"
|
||||
>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="shipping-methods" v-if="hasShippingMethod" v-cloak>
|
||||
<h6>{{ trans('storefront::cart.shipping_method') }}</h6>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="form-radio" v-for="shippingMethod in cart.availableShippingMethods">
|
||||
<input
|
||||
type="radio"
|
||||
name="shipping_method"
|
||||
v-model="shippingMethodName"
|
||||
:value="shippingMethod.name"
|
||||
:id="shippingMethod.name"
|
||||
@change="updateShippingMethod(shippingMethod.name)"
|
||||
>
|
||||
|
||||
<label :for="shippingMethod.name" v-text="shippingMethod.label"></label>
|
||||
|
||||
<span
|
||||
class="price-amount"
|
||||
v-html="shippingMethod.cost.inCurrentCurrency.formatted"
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="order-summary-total">
|
||||
<label>{{ trans('storefront::cart.total') }}</label>
|
||||
<span class="total-price" v-html="cart.total.inCurrentCurrency.formatted"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="order-summary-bottom">
|
||||
<a
|
||||
href="{{ route('checkout.create') }}"
|
||||
class="btn btn-primary btn-proceed-to-checkout"
|
||||
>
|
||||
{{ trans('storefront::cart.proceed_to_checkout') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
44
Themes/Storefront/views/public/cart/index/steps.blade.php
Normal file
44
Themes/Storefront/views/public/cart/index/steps.blade.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<div class="steps-wrap">
|
||||
<div class="container">
|
||||
<ul class="list-inline step-tabs">
|
||||
<li class="step-tab {{ request()->routeIs('cart.index') ? 'active' : '' }}">
|
||||
@if (request()->routeIs('checkout.create'))
|
||||
<a href="{{ route('cart.index') }}" class="step-tab-link">
|
||||
<span class="step-tab-text">
|
||||
{{ trans('storefront::cart.shopping_cart') }}
|
||||
<span class="bg-text">01</span>
|
||||
</span>
|
||||
</a>
|
||||
@else
|
||||
<span class="step-tab-text">
|
||||
{{ trans('storefront::cart.shopping_cart') }}
|
||||
<span class="bg-text">01</span>
|
||||
</span>
|
||||
@endif
|
||||
</li>
|
||||
|
||||
<li class="step-tab {{ request()->routeIs('checkout.create') ? 'active' : '' }}">
|
||||
@if (request()->routeIs('cart.index') && Cart::hasAvailableShippingMethod())
|
||||
<a href="{{ route('checkout.create') }}" class="step-tab-link">
|
||||
<span class="step-tab-text">
|
||||
{{ trans('storefront::cart.checkout') }}
|
||||
<span class="bg-text">02</span>
|
||||
</span>
|
||||
</a>
|
||||
@else
|
||||
<span class="step-tab-text">
|
||||
{{ trans('storefront::cart.checkout') }}
|
||||
<span class="bg-text">02</span>
|
||||
</span>
|
||||
@endif
|
||||
</li>
|
||||
|
||||
<li class="step-tab {{ request()->routeIs('checkout.complete.show') ? 'active' : '' }}">
|
||||
<span class="step-tab-text">
|
||||
{{ trans('storefront::cart.order_complete') }}
|
||||
<span class="bg-text">03</span>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
37
Themes/Storefront/views/public/categories/index.blade.php
Normal file
37
Themes/Storefront/views/public/categories/index.blade.php
Normal file
@@ -0,0 +1,37 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('storefront::categories.all_categories'))
|
||||
|
||||
@section('content')
|
||||
<section class="all-categories-wrap">
|
||||
<div class="container">
|
||||
<div class="all-categories">
|
||||
@forelse ($categories as $category)
|
||||
<div class="single-category">
|
||||
<h4 class="section-title">
|
||||
<a href="{{ $category->url() }}" title="{{ $category->name }}">
|
||||
{{ $category->name }}
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
@if ($category->items->isNotEmpty())
|
||||
<ul class="list-inline single-category-list">
|
||||
@foreach ($category->items as $subCategory)
|
||||
<li>
|
||||
<a href="{{ $subCategory->url() }}" title="{{ $subCategory->name }}">
|
||||
{{ $subCategory->name }}
|
||||
</a>
|
||||
|
||||
@include('public.categories.index.sub_category_items')
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
</div>
|
||||
@empty
|
||||
@include('public.categories.index.empty_category')
|
||||
@endforelse
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@@ -0,0 +1,36 @@
|
||||
<div class="empty-message">
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 500 500"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<g>
|
||||
<path d="M490.4,313.21c-16.64-73.08-90.89-123.02-164.6-110.58c-8.98,1.52-17.81,3.9-27.13,5.97v-36.17c0-2.13-1.73-3.86-3.86-3.86
|
||||
H171.93c-2.13,0-3.86,1.73-3.86,3.86v28.1h-64.6v-65.22h28.07c2.15,0,3.89-1.74,3.89-3.89V9.38c0-2.15-1.74-3.89-3.89-3.89H9.57
|
||||
c-2.15,0-3.89,1.74-3.89,3.89V131.9c0,2.15,1.74,3.89,3.89,3.89h61.06v257.94c0,1.67,1.35,3.02,3.02,3.02h94.69v61.45
|
||||
c0,1.96,1.59,3.55,3.55,3.55h2.49c25.3,0,50.61-0.1,75.91,0.14c3.08,0.03,6.65,1.22,9.15,3.04c34.64,25.11,73.07,34.88,115.09,26.8
|
||||
C458.1,475.67,509.31,396.24,490.4,313.21z M201.24,331.16h-29.12c-1.96,0-3.55,1.59-3.55,3.55v28.86h-62.15
|
||||
c-1.67,0-3.02-1.35-3.02-3.02V233.69h64.67v60.89c0,2.13,1.73,3.86,3.86,3.86h36.89C206.2,309.74,203.76,320.25,201.24,331.16z
|
||||
M348.81,474.19c-70.79,0.6-128.3-56.91-127.69-127.71c0.58-67.67,57.84-124.93,125.51-125.5c70.8-0.59,128.3,56.93,127.69,127.73
|
||||
C473.73,416.37,416.47,473.62,348.81,474.19z"/>
|
||||
<g>
|
||||
<path d="M411.25,399.01l-12.08,12.08c-1.31,1.31-3.27,1.48-4.37,0.38L283.81,300.48c-1.1-1.1-0.93-3.06,0.38-4.37l12.08-12.08
|
||||
c1.31-1.31,3.27-1.48,4.37-0.38l110.99,110.99C412.73,395.74,412.56,397.7,411.25,399.01z"/>
|
||||
<path d="M399.21,284.07l11.99,11.99c1.38,1.38,1.56,3.42,0.42,4.57L300.79,411.46c-1.15,1.15-3.19,0.96-4.57-0.42l-11.99-11.99
|
||||
c-1.38-1.38-1.56-3.42-0.42-4.57l110.83-110.83C395.79,282.51,397.84,282.7,399.21,284.07z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill: #ffffff" d="M347.72,200.95c80.97,0,146.61,65.64,146.61,146.61s-65.64,146.61-146.61,146.61s-146.61-65.64-146.61-146.61
|
||||
S266.75,200.95,347.72,200.95 M347.72,191.95c-41.56,0-80.64,16.19-110.03,45.58c-29.39,29.39-45.58,68.47-45.58,110.03
|
||||
c0,41.56,16.19,80.64,45.58,110.03s68.47,45.58,110.03,45.58s80.64-16.19,110.03-45.58s45.58-68.47,45.58-110.03
|
||||
c0-41.56-16.19-80.64-45.58-110.03C428.36,208.14,389.28,191.95,347.72,191.95L347.72,191.95z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M347.72,222.76c68.92,0,124.8,55.87,124.8,124.8s-55.87,124.8-124.8,124.8s-124.8-55.87-124.8-124.8
|
||||
S278.79,222.76,347.72,222.76 M347.72,213.76c-35.74,0-69.34,13.92-94.61,39.19c-25.27,25.27-39.19,58.87-39.19,94.61
|
||||
s13.92,69.34,39.19,94.61c25.27,25.27,58.87,39.19,94.61,39.19s69.34-13.92,94.61-39.19c25.27-25.27,39.19-58.87,39.19-94.61
|
||||
s-13.92-69.34-39.19-94.61C417.05,227.68,383.45,213.76,347.72,213.76L347.72,213.76z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
<h2>{{ trans('storefront::categories.no_category_found') }}</h2>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
@if ($subCategory->items->isNotEmpty())
|
||||
<ul class="list-inline sub-category-list">
|
||||
@foreach ($subCategory->items as $subCategoryItem)
|
||||
<li>
|
||||
<a href="{{ $subCategoryItem->url() }}" title="{{ $subCategoryItem->name }}">
|
||||
{{ $subCategoryItem->name }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
@@ -0,0 +1,19 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('content')
|
||||
<section class="order-complete-wrap">
|
||||
<div class="container">
|
||||
<div class="order-complete-wrap-inner">
|
||||
<div class="order-complete">
|
||||
<svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
|
||||
<circle class="checkmark-circle" cx="26" cy="26" r="25" fill="none"/>
|
||||
<path class="checkmark-check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
|
||||
</svg>
|
||||
|
||||
<h2>{{ trans('storefront::order_complete.order_placed') }}</h2>
|
||||
<span>{!! trans('storefront::order_complete.your_order_has_been_placed', ['id' => $order->id]) !!}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
89
Themes/Storefront/views/public/checkout/create.blade.php
Normal file
89
Themes/Storefront/views/public/checkout/create.blade.php
Normal file
@@ -0,0 +1,89 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('storefront::checkout.checkout'))
|
||||
|
||||
@section('content')
|
||||
<checkout-create customer-email="{{ auth()->user()->email ?? null }}"
|
||||
customer-phone="{{ auth()->user()->phone ?? null }}" :addresses="{{ $addresses }}"
|
||||
:default-address="{{ $defaultAddress }}" :gateways="{{ $gateways }}" :countries="{{ json_encode($countries) }}"
|
||||
inline-template>
|
||||
<section class="checkout-wrap">
|
||||
<div class="container">
|
||||
<template v-if="cartIsNotEmpty">
|
||||
@include('public.cart.index.steps')
|
||||
|
||||
<form @submit.prevent="placeOrder" @input="errors.clear($event.target.name)">
|
||||
<div class="checkout">
|
||||
<div class="checkout-inner">
|
||||
<div class="checkout-left">
|
||||
<div class="checkout-form">
|
||||
@include('public.checkout.create.form.account_details')
|
||||
@include('public.checkout.create.form.billing_details')
|
||||
@include('public.checkout.create.form.shipping_details')
|
||||
@include('public.checkout.create.form.order_note')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="checkout-right">
|
||||
@include('public.checkout.create.payment')
|
||||
@include('public.checkout.create.coupon')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('public.checkout.create.order_summary')
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@if (setting('authorizenet_enabled'))
|
||||
<form ref="authorizeNetForm" method="post"
|
||||
action="{{ setting('authorizenet_test_mode') ? 'https://test.authorize.net/payment/payment' : 'https://accept.authorize.net/payment/payment' }}"
|
||||
v-if="authorizeNetToken">
|
||||
<input type="hidden" name="token" :value="authorizeNetToken" />
|
||||
<button type="submit"></button>
|
||||
</form>
|
||||
@endif
|
||||
</template>
|
||||
|
||||
@include('public.cart.index.empty_cart')
|
||||
</div>
|
||||
</section>
|
||||
</checkout-create>
|
||||
@endsection
|
||||
|
||||
@push('pre-scripts')
|
||||
@if (setting('paypal_enabled'))
|
||||
<script
|
||||
src="https://www.paypal.com/sdk/js?client-id={{ setting('paypal_client_id') }}¤cy={{ setting('default_currency') }}&disable-funding=credit,card,venmo,sepa,bancontact,eps,giropay,ideal,mybank,p24,p24">
|
||||
</script>
|
||||
@endif
|
||||
|
||||
@if (setting('stripe_enabled'))
|
||||
<script src="https://js.stripe.com/v3/"></script>
|
||||
@endif
|
||||
|
||||
@if (setting('paytm_enabled'))
|
||||
@if (setting('paytm_test_mode'))
|
||||
<script src="https://securegw-stage.paytm.in/merchantpgpui/checkoutjs/merchants/{{ setting('paytm_merchant_id') }}.js">
|
||||
</script>
|
||||
@else
|
||||
<script src="https://securegw.paytm.in/merchantpgpui/checkoutjs/merchants/{{ setting('paytm_merchant_id') }}.js">
|
||||
</script>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (setting('razorpay_enabled'))
|
||||
<script src="https://checkout.razorpay.com/v1/checkout.js"></script>
|
||||
@endif
|
||||
|
||||
@if (setting('mercadopago_enabled'))
|
||||
<script src="https://sdk.mercadopago.com/js/v2"></script>
|
||||
@endif
|
||||
|
||||
@if (setting('flutterwave_enabled'))
|
||||
<script src="https://checkout.flutterwave.com/v3.js"></script>
|
||||
@endif
|
||||
|
||||
@if (setting('paystack_enabled'))
|
||||
<script src="https://js.paystack.co/v1/inline.js"></script>
|
||||
@endif
|
||||
@endpush
|
||||
@@ -0,0 +1,36 @@
|
||||
<div class="coupon-wrap">
|
||||
<div class="form-group">
|
||||
<div class="form-input">
|
||||
<input
|
||||
type="text"
|
||||
v-model="couponCode"
|
||||
placeholder="{{ trans('storefront::cart.enter_coupon_code') }}"
|
||||
class="form-control"
|
||||
@input="couponError = null"
|
||||
>
|
||||
|
||||
<span
|
||||
class="error-message"
|
||||
v-if="couponError"
|
||||
v-text="couponError"
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-primary btn-apply-coupon"
|
||||
:class="{ 'btn-loading': applyingCoupon }"
|
||||
@click.prevent="applyCoupon"
|
||||
>
|
||||
{{ trans('storefront::cart.apply_coupon') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<span
|
||||
class="error-message"
|
||||
v-if="couponError"
|
||||
v-text="couponError"
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
@@ -0,0 +1,101 @@
|
||||
@guest
|
||||
<div class="account-details">
|
||||
<h4 class="section-title">{{ trans('storefront::checkout.account_details') }}</h4>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="email">
|
||||
{{ trans('checkout::attributes.customer_email') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
name="customer_email"
|
||||
v-model="form.customer_email"
|
||||
id="email"
|
||||
class="form-control"
|
||||
>
|
||||
|
||||
<span
|
||||
class="error-message"
|
||||
v-if="errors.has('customer_email')"
|
||||
v-text="errors.get('customer_email')"
|
||||
></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="phone">
|
||||
{{ trans('checkout::attributes.customer_phone') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
name="customer_phone"
|
||||
v-model="form.customer_phone"
|
||||
id="phone"
|
||||
class="form-control"
|
||||
>
|
||||
|
||||
<span
|
||||
class="error-message"
|
||||
v-if="errors.has('customer_phone')"
|
||||
v-text="errors.get('customer_phone')"
|
||||
></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-18">
|
||||
<div class="form-group create-an-account-label">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="checkbox"
|
||||
name="create_an_account"
|
||||
v-model="form.create_an_account"
|
||||
id="create-an-account"
|
||||
>
|
||||
|
||||
<label for="create-an-account" class="form-check-label">
|
||||
{{ trans('checkout::attributes.create_an_account') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="create-an-account-form" v-show="form.create_an_account" v-cloak>
|
||||
<span class="helper-text">
|
||||
{{ trans('storefront::checkout.create_an_account_by_entering_the_information_below') }}
|
||||
</span>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="password">
|
||||
{{ trans('checkout::attributes.password') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input
|
||||
type="password"
|
||||
name="password"
|
||||
v-model="form.password"
|
||||
id="password"
|
||||
class="form-control"
|
||||
>
|
||||
|
||||
<span
|
||||
class="error-message"
|
||||
v-if="errors.has('billing.password')"
|
||||
v-text="errors.get('billing.password')"
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<input type="hidden" name="customer_email" v-model="form.customer_email">
|
||||
@endguest
|
||||
@@ -0,0 +1,157 @@
|
||||
<div class="billing-details">
|
||||
<h4 class="section-title">{{ trans('storefront::checkout.billing_details') }}</h4>
|
||||
|
||||
<div class="select-address" v-if="hasAddress" v-cloak>
|
||||
<div class="form-group">
|
||||
<div class="form-radio" v-for="address in addresses">
|
||||
<input type="radio" v-model="form.billingAddressId" :value="address.id"
|
||||
:id="'billing-address-' + address.id">
|
||||
|
||||
<label :for="'billing-address-' + address.id">
|
||||
<span v-text="address.full_name"></span>
|
||||
<span v-text="address.address_1"></span>
|
||||
<span v-if="address.address_2" v-text="address.address_2"></span>
|
||||
<span>@{{ address.city }}, @{{ address.state_name }} @{{ address.zip }}</span>
|
||||
<span v-text="address.country_name"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<span class="error-message" v-if="! form.newBillingAddress && errors.has('billing.address_1')">
|
||||
{{ trans('storefront::checkout.you_must_select_an_address') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="add-new-address-wrap" v-cloak>
|
||||
<button v-if="hasAddress" type="button" class="btn btn-add-new-address" @click="addNewBillingAddress">
|
||||
{{ trans('storefront::checkout.add_new_address') }}
|
||||
</button>
|
||||
|
||||
<div class="add-new-address-form" v-show="! hasAddress || form.newBillingAddress">
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="billing-first-name">
|
||||
{{ trans('checkout::attributes.billing.first_name') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="billing[first_name]" v-model="form.billing.first_name"
|
||||
id="billing-first-name" class="form-control">
|
||||
|
||||
<span class="error-message" v-if="errors.has('billing.first_name')"
|
||||
v-text="errors.get('billing.first_name')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="billing-last-name">
|
||||
{{ trans('checkout::attributes.billing.last_name') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="billing[last_name]" v-model="form.billing.last_name"
|
||||
id="billing-last-name" class="form-control">
|
||||
|
||||
<span class="error-message" v-if="errors.has('billing.last_name')"
|
||||
v-text="errors.get('billing.last_name')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-18">
|
||||
<div class="form-group">
|
||||
<label for="billing-address-1">
|
||||
{{ trans('checkout::attributes.street_address') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="billing[address_1]" v-model="form.billing.address_1"
|
||||
id="billing-address-1" class="form-control"
|
||||
placeholder="{{ trans('checkout::attributes.billing.address_1') }}">
|
||||
|
||||
<span class="error-message" v-if="errors.has('billing.address_1')"
|
||||
v-text="errors.get('billing.address_1')">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<input type="text" name="billing[address_2]" v-model="form.billing.address_2"
|
||||
class="form-control" placeholder="{{ trans('checkout::attributes.billing.address_2') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="billing-city">
|
||||
{{ trans('checkout::attributes.billing.city') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="billing[city]" :value="form.billing.city" id="billing-city"
|
||||
class="form-control" @change="changeBillingCity($event.target.value)">
|
||||
|
||||
<span class="error-message" v-if="errors.has('billing.city')"
|
||||
v-text="errors.get('billing.city')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="billing-zip">
|
||||
{{ trans('checkout::attributes.billing.zip') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="billing[zip]" :value="form.billing.zip" id="billing-zip"
|
||||
class="form-control" @change="changeBillingZip($event.target.value)">
|
||||
|
||||
<span class="error-message" v-if="errors.has('billing.zip')" v-text="errors.get('billing.zip')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="billing-country">
|
||||
{{ trans('checkout::attributes.billing.country') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<select name="billing[country]" id="billing-country" class="form-control arrow-black"
|
||||
@change="changeBillingCountry($event.target.value)">
|
||||
<option value="">{{ trans('storefront::checkout.please_select') }}</option>
|
||||
|
||||
<option v-for="(name, code) in countries" :value="code" v-text="name">
|
||||
</option>
|
||||
</select>
|
||||
|
||||
<span class="error-message" v-if="errors.has('billing.country')"
|
||||
v-text="errors.get('billing.country')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="billing-state">
|
||||
{{ trans('checkout::attributes.billing.state') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="billing[state]" id="billing-state" class="form-control"
|
||||
v-if="! hasBillingStates" v-model="form.billing.state">
|
||||
|
||||
<select name="billing[state]" id="billing-state" class="form-control arrow-black"
|
||||
@change="changeBillingState($event.target.value)" v-else>
|
||||
<option value="">{{ trans('storefront::checkout.please_select') }}</option>
|
||||
|
||||
<option v-for="(name, code) in states.billing" :value="code" v-html="name">
|
||||
</option>
|
||||
</select>
|
||||
|
||||
<span class="error-message" v-if="errors.has('billing.state')"
|
||||
v-text="errors.get('billing.state')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,19 @@
|
||||
<div class="row">
|
||||
<div class="col-md-18">
|
||||
<div class="form-group order-notes">
|
||||
<label for="order-note">
|
||||
{{ trans('checkout::attributes.order_note') }}
|
||||
</label>
|
||||
|
||||
<textarea
|
||||
name="order_note"
|
||||
v-model="form.order_note"
|
||||
cols="30"
|
||||
rows="4"
|
||||
id="order-note"
|
||||
class="form-control"
|
||||
placeholder="{{ trans('storefront::checkout.special_note_for_delivery') }}"
|
||||
></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,187 @@
|
||||
<div class="shipping-details">
|
||||
<div class="row">
|
||||
<div class="col-md-18">
|
||||
<div class="form-group ship-to-different-address-label">
|
||||
<div class="form-check">
|
||||
<input type="checkbox" name="ship_to_a_different_address" v-model="form.ship_to_a_different_address"
|
||||
id="ship-to-different-address">
|
||||
|
||||
<label for="ship-to-different-address" class="form-check-label">
|
||||
{{ trans('checkout::attributes.ship_to_a_different_address') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ship-to-different-address-form" v-show="form.ship_to_a_different_address" v-cloak>
|
||||
<h4 class="section-title">{{ trans('storefront::checkout.shipping_details') }}</h4>
|
||||
|
||||
<div class="select-address" v-if="hasAddress">
|
||||
<div class="form-group">
|
||||
<div class="form-radio" v-for="address in addresses">
|
||||
<input type="radio" v-model="form.shippingAddressId" :value="address.id"
|
||||
:id="'shipping-address-' + address.id">
|
||||
|
||||
<label :for="'shipping-address-' + address.id">
|
||||
<span v-text="address.full_name"></span>
|
||||
<span v-text="address.address_1"></span>
|
||||
<span v-if="address.address_2" v-text="address.address_2"></span>
|
||||
<span>@{{ address.city }}, @{{ address.state_name }} @{{ address.zip }}</span>
|
||||
<span v-text="address.country_name"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<span class="error-message"
|
||||
v-if="! form.newShippingAddress && errors.has('shipping.address_1')">
|
||||
{{ trans('storefront::checkout.you_must_select_an_address') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="add-new-address-wrap">
|
||||
<button v-if="hasAddress" type="button" class="btn btn-add-new-address"
|
||||
@click="addNewShippingAddress">
|
||||
{{ trans('storefront::checkout.add_new_address') }}
|
||||
</button>
|
||||
|
||||
<div class="add-new-address-form" v-show="! hasAddress || form.newShippingAddress">
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="shipping-first-name">
|
||||
{{ trans('checkout::attributes.shipping.first_name') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="shipping[first_name]" v-model="form.shipping.first_name"
|
||||
id="shipping-first-name" class="form-control">
|
||||
|
||||
<span class="error-message" v-if="errors.has('shipping.first_name')"
|
||||
v-text="errors.get('shipping.first_name')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="shipping-last-name">
|
||||
{{ trans('checkout::attributes.shipping.last_name') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="shipping[last_name]" v-model="form.shipping.last_name"
|
||||
id="shipping-last-name" class="form-control">
|
||||
|
||||
<span class="error-message" v-if="errors.has('shipping.last_name')"
|
||||
v-text="errors.get('shipping.last_name')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-18">
|
||||
<div class="form-group">
|
||||
<label for="shipping-address-1">
|
||||
{{ trans('checkout::attributes.street_address') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="shipping[address_1]" v-model="form.shipping.address_1"
|
||||
id="shipping-address-1" class="form-control"
|
||||
placeholder="{{ trans('checkout::attributes.shipping.address_1') }}">
|
||||
|
||||
<span class="error-message" v-if="errors.has('shipping.address_1')"
|
||||
v-text="errors.get('shipping.address_1')">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<input type="text" name="shipping[address_2]" v-model="form.shipping.address_2"
|
||||
class="form-control"
|
||||
placeholder="{{ trans('checkout::attributes.shipping.address_2') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="shipping-city">
|
||||
{{ trans('checkout::attributes.shipping.city') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="shipping[city]" :value="form.shipping.city"
|
||||
id="shipping-city" class="form-control"
|
||||
@change="changeShippingCity($event.target.value)">
|
||||
|
||||
<span class="error-message" v-if="errors.has('shipping.city')"
|
||||
v-text="errors.get('shipping.city')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="shipping-zip">
|
||||
{{ trans('checkout::attributes.shipping.zip') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="shipping[zip]" :value="form.shipping.zip"
|
||||
id="shipping-zip" class="form-control"
|
||||
@change="changeShippingZip($event.target.value)">
|
||||
|
||||
<span class="error-message" v-if="errors.has('shipping.zip')"
|
||||
v-text="errors.get('shipping.zip')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="shipping-country">
|
||||
{{ trans('checkout::attributes.shipping.country') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<select name="shipping[country]" id="shipping-country"
|
||||
class="form-control arrow-black"
|
||||
@change="changeShippingCountry($event.target.value)">
|
||||
<option value="">{{ trans('storefront::checkout.please_select') }}
|
||||
</option>
|
||||
|
||||
<option v-for="(name, code) in countries" :value="code"
|
||||
v-text="name">
|
||||
</option>
|
||||
</select>
|
||||
|
||||
<span class="error-message" v-if="errors.has('shipping.country')"
|
||||
v-text="errors.get('shipping.country')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="shipping-state">
|
||||
{{ trans('checkout::attributes.shipping.state') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="shipping[state]" id="shipping-state"
|
||||
class="form-control" v-if="! hasShippingStates"
|
||||
v-model="form.shipping.state">
|
||||
|
||||
<select name="shipping[state]" id="shipping-state"
|
||||
class="form-control arrow-black"
|
||||
@change="changeShippingState($event.target.value)" v-else v-cloak>
|
||||
<option value="">{{ trans('storefront::checkout.please_select') }}
|
||||
</option>
|
||||
|
||||
<option v-for="(name, code) in states.shipping" :value="code"
|
||||
v-html="name">
|
||||
</option>
|
||||
</select>
|
||||
|
||||
<span class="error-message" v-if="errors.has('shipping.state')"
|
||||
v-text="errors.get('shipping.state')">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,99 @@
|
||||
<aside class="order-summary-wrap">
|
||||
<div class="order-summary">
|
||||
<div class="order-summary-top">
|
||||
<h3 class="section-title">{{ trans('storefront::cart.order_summary') }}</h3>
|
||||
|
||||
<ul class="list-inline cart-item">
|
||||
<li v-for="cartItem in cart.items">
|
||||
<label>
|
||||
<a :href="productUrl(cartItem.product)" class="product-name" v-text="cartItem.product.name"></a>
|
||||
<span class="product-quantity" v-text="'x' + cartItem.qty"></span>
|
||||
</label>
|
||||
|
||||
<span class="price-amount" v-html="cartItem.unitPrice.inCurrentCurrency.formatted"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="order-summary-middle" :class="{ loading: loadingOrderSummary }">
|
||||
<ul class="list-inline order-summary-list">
|
||||
<li>
|
||||
<label>{{ trans('storefront::cart.subtotal') }}</label>
|
||||
|
||||
<span class="price-amount" v-html="cart.subTotal.inCurrentCurrency.formatted">
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li v-for="tax in cart.taxes">
|
||||
<label v-text="tax.name"></label>
|
||||
|
||||
<span class="price-amount" v-html="tax.amount.inCurrentCurrency.formatted">
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li v-if="hasCoupon" v-cloak>
|
||||
<label>
|
||||
{{ trans('storefront::cart.coupon') }}
|
||||
|
||||
<span class="coupon-code">
|
||||
[@{{ cart.coupon.code }}]
|
||||
<span class="btn-remove-coupon" @click="removeCoupon">
|
||||
<i class="las la-times"></i>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
|
||||
<span class="price-amount" v-html="'-' + cart.coupon.value.inCurrentCurrency.formatted">
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="shipping-methods" v-if="hasShippingMethod" v-cloak>
|
||||
<h6>{{ trans('storefront::cart.shipping_method') }}</h6>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="form-radio" v-for="shippingMethod in cart.availableShippingMethods">
|
||||
<input type="radio" name="shipping_method" v-model="form.shipping_method"
|
||||
:value="shippingMethod.name" :id="shippingMethod.name"
|
||||
@change="updateShippingMethod(shippingMethod.name)">
|
||||
|
||||
<label :for="shippingMethod.name" v-text="shippingMethod.label"></label>
|
||||
|
||||
<span class="price-amount" v-html="shippingMethod.cost.inCurrentCurrency.formatted">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="order-summary-total">
|
||||
<label>{{ trans('storefront::cart.total') }}</label>
|
||||
<span class="total-price" v-html="cart.total.inCurrentCurrency.formatted"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="order-summary-bottom">
|
||||
<div class="form-group checkout-terms-and-conditions">
|
||||
<div class="form-check">
|
||||
<input type="checkbox" v-model="form.terms_and_conditions" id="terms-and-conditions">
|
||||
|
||||
<label for="terms-and-conditions" class="form-check-label">
|
||||
{{ trans('storefront::checkout.i_agree_to_the') }}
|
||||
<a href="{{ $termsPageURL }}">
|
||||
{{ trans('storefront::checkout.terms_&_conditions') }}
|
||||
</a>
|
||||
</label>
|
||||
|
||||
<span class="error-message" v-if="errors.has('terms_and_conditions')"
|
||||
v-text="errors.get('terms_and_conditions')"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="paypal-button-container" v-if="form.payment_method === 'paypal'"></div>
|
||||
|
||||
<button type="submit" class="btn btn-primary btn-place-order" :class="{ 'btn-loading': placingOrder }"
|
||||
:disabled="!form.terms_and_conditions" v-else v-cloak>
|
||||
{{ trans('storefront::checkout.place_order') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
@@ -0,0 +1,36 @@
|
||||
<div class="payment-method" v-cloak>
|
||||
<h4 class="title">{{ trans('storefront::checkout.payment_method') }}</h4>
|
||||
|
||||
<div class="payment-method-form">
|
||||
<div class="form-group">
|
||||
<div class="form-radio" v-for="(gateway, name) in gateways">
|
||||
<input
|
||||
type="radio"
|
||||
name="form.payment_method"
|
||||
v-model="form.payment_method"
|
||||
:value="name"
|
||||
:id="name"
|
||||
>
|
||||
|
||||
<label :for="name" v-text="gateway.label"></label>
|
||||
<span class="helper-text" v-text="gateway.description"></span>
|
||||
</div>
|
||||
|
||||
<span class="error-message" v-if="hasNoPaymentMethod">
|
||||
{{ trans('storefront::checkout.no_payment_method') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="stripe-card-element" v-show="form.payment_method === 'stripe'" v-cloak>
|
||||
{{-- A Stripe Element will be mounted here dynamically. --}}
|
||||
</div>
|
||||
|
||||
<span class="error-message" v-if="stripeError" v-text="stripeError"></span>
|
||||
|
||||
<div class="payment-instructions" v-if="shouldShowPaymentInstructions" v-cloak>
|
||||
<h4 class="title">{{ trans('storefront::checkout.payment_instructions') }}</h4>
|
||||
|
||||
<p v-html="paymentInstructions"></p>
|
||||
</div>
|
||||
139
Themes/Storefront/views/public/compare/index.blade.php
Normal file
139
Themes/Storefront/views/public/compare/index.blade.php
Normal file
@@ -0,0 +1,139 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('storefront::compare.compare'))
|
||||
|
||||
@section('content')
|
||||
<compare-index :compare="{{ $compare }}" inline-template>
|
||||
<div>
|
||||
<section class="compare-wrap">
|
||||
<div class="container" v-cloak>
|
||||
<div class="table-responsive" v-if="hasAnyProduct">
|
||||
<table class="table table-bordered compare-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ trans('storefront::compare.product_overview') }}</td>
|
||||
|
||||
<td v-for="product in products">
|
||||
<a :href="productUrl(product)" class="product-image">
|
||||
<img :src="baseImage(product)" :class="{ 'image-placeholder': ! hasBaseImage(product) }" alt="product image">
|
||||
</a>
|
||||
|
||||
<a :href="productUrl(product)" v-text="product.name" class="product-name"></a>
|
||||
|
||||
<button class="btn btn-remove" @click="remove(product)">
|
||||
<i class="las la-times"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ trans('storefront::compare.description') }}</td>
|
||||
|
||||
<td v-for="product in products" v-text="product.short_description || '-'"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ trans('storefront::compare.rating') }}</td>
|
||||
|
||||
<td v-for="product in products">
|
||||
<product-rating :rating-percent="product.rating_percent" :review-count="product.reviews.length"></product-rating>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ trans('storefront::compare.price') }}</td>
|
||||
|
||||
<td v-for="product in products">
|
||||
<span class="product-price" v-html="product.formatted_price"></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ trans('storefront::compare.availability') }}</td>
|
||||
|
||||
<td v-for="product in products">
|
||||
<span class="badge badge-success" v-if="product.is_in_stock">
|
||||
{{ trans('storefront::compare.in_stock') }}
|
||||
</span>
|
||||
|
||||
<span class="badge badge-danger" v-else>
|
||||
{{ trans('storefront::compare.out_of_stock') }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-for="attribute in attributes">
|
||||
<td v-text="attribute.name"></td>
|
||||
|
||||
<td v-for="product in products">
|
||||
<template v-if="hasAttribute(product, attribute)">
|
||||
@{{ attributeValues(product, attribute) }}
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
–
|
||||
</template>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{ trans('storefront::compare.actions') }}</td>
|
||||
|
||||
<td v-for="product in products">
|
||||
<button
|
||||
title="{{ trans('storefront::product_card.wishlist') }}"
|
||||
class="btn btn-wishlist"
|
||||
:class="{ 'added': inWishlist(product) }"
|
||||
@click="syncWishlist(product)"
|
||||
>
|
||||
<i class="la-heart" :class="inWishlist(product) ? 'las' : 'lar'"></i>
|
||||
</button>
|
||||
|
||||
<button
|
||||
title="{{ trans('storefront::compare.add_to_cart') }}"
|
||||
class="btn btn-add-to-cart"
|
||||
:disabled="product.is_out_of_stock"
|
||||
@click="addToCart(product)"
|
||||
>
|
||||
<i class="las la-shopping-cart"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="empty-message" v-else>
|
||||
<svg version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 500 500"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<g>
|
||||
<path d="M250,26.72c-74.8,0-135.42,60.62-135.42,135.42c0,33.9,12.44,64.84,33.01,88.56c16.47,19.06,38.19,33.49,62.92,40.97
|
||||
c12.47,3.85,25.76,5.88,39.49,5.88c13.73,0,27.02-2.04,39.49-5.88c24.72-7.48,46.45-21.91,62.92-40.97
|
||||
c20.58-23.72,33.01-54.66,33.01-88.56C385.41,87.34,324.79,26.72,250,26.72z M308.73,202.41c1.52,1.52,1.52,4,0,5.51l-12.92,12.92
|
||||
c-1.55,1.55-4.03,1.55-5.55,0L250,180.57l-40.27,40.27c-1.52,1.55-4,1.55-5.51,0l-12.95-12.92c-1.52-1.52-1.52-4,0-5.51
|
||||
l40.27-40.27l-40.27-40.27c-1.52-1.52-1.52-4,0-5.55l12.95-12.92c1.52-1.52,4-1.52,5.51,0L250,143.67l40.27-40.27
|
||||
c1.52-1.52,4-1.52,5.55,0l12.92,12.92c1.52,1.55,1.52,4.03,0,5.55l-40.27,40.27L308.73,202.41z"/>
|
||||
<path d="M68.59,491.26H5.68V209.21c0-1.1,0.89-1.99,1.99-1.99H66.6c1.1,0,1.99,0.89,1.99,1.99V491.26z"/>
|
||||
<path d="M147.6,291.47c18.25,14.47,39.64,25.17,62.92,30.9v168.88H147.6V291.47z"/>
|
||||
<path d="M289.49,322.38c23.28-5.74,44.67-16.43,62.92-30.9v199.78h-62.92V322.38z"/>
|
||||
<path d="M494.32,491.26h-62.92V10.75c0-1.11,0.9-2.01,2.01-2.01h58.89c1.11,0,2.01,0.9,2.01,2.01V491.26z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
<h3>{{ trans('storefront::compare.no_product') }}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<landscape-products
|
||||
title="{{ trans('storefront::product.related_products') }}"
|
||||
v-if="hasAnyRelatedProduct"
|
||||
:products="relatedProducts"
|
||||
:class="{ loading: fetchingRelatedProducts }"
|
||||
>
|
||||
</landscape-products>
|
||||
</div>
|
||||
</compare-index>
|
||||
@endsection
|
||||
166
Themes/Storefront/views/public/contact/create.blade.php
Normal file
166
Themes/Storefront/views/public/contact/create.blade.php
Normal file
@@ -0,0 +1,166 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', trans('storefront::contact.contact'))
|
||||
|
||||
@section('content')
|
||||
<section class="contact-wrap">
|
||||
<div class="container">
|
||||
<div class="map-canvas">
|
||||
<iframe
|
||||
width="600"
|
||||
height="500"
|
||||
src="https://maps.google.com/maps?q={{ setting('storefront_address') }}&t=&z=13&ie=UTF8&iwloc=&output=embed"
|
||||
frameborder="0"
|
||||
scrolling="no"
|
||||
marginheight="0"
|
||||
marginwidth="0">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="contact-form-wrap">
|
||||
<div class="contact-form-inner">
|
||||
<div class="contact-form-left">
|
||||
<h3 class="title">{{ trans('storefront::contact.contact') }}</h3>
|
||||
|
||||
<ul class="list-inline contact-info">
|
||||
@if (setting('store_phone') && ! setting('store_phone_hide'))
|
||||
<li>
|
||||
<i class="las la-phone"></i>
|
||||
<span>{{ setting('store_phone') }}</span>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if(! setting('store_email_hide'))
|
||||
<li>
|
||||
<i class="las la-envelope"></i>
|
||||
<span>{{ setting('store_email') }}</span>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_address'))
|
||||
<li>
|
||||
<i class="las la-map"></i>
|
||||
<span>{{ setting('storefront_address') }}</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
@if (social_links()->isNotEmpty())
|
||||
<ul class="list-inline social-links">
|
||||
@foreach (social_links() as $icon => $socialLink)
|
||||
<li>
|
||||
<a href="{{ $socialLink }}">
|
||||
<i class="{{ $icon }}"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 512.000000 512.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
|
||||
fill="#ffffff" stroke="none">
|
||||
<path d="M2521 5003 c-7 -3 -118 -81 -245 -174 l-231 -169 -457 0 c-266 0
|
||||
-467 -4 -482 -10 -14 -5 -33 -21 -43 -37 -16 -24 -19 -61 -23 -357 l-5 -330
|
||||
-410 -297 c-226 -164 -420 -310 -432 -324 l-23 -26 0 -1551 0 -1550 34 -34 34
|
||||
-34 2311 0 c1724 0 2316 3 2335 12 14 6 34 23 43 37 17 25 18 114 21 1568 l2
|
||||
1543 -34 37 c-19 21 -214 169 -435 328 l-400 290 -1 327 c0 213 -4 335 -11
|
||||
351 -26 57 -26 57 -528 57 l-461 0 -224 164 c-123 91 -233 169 -245 175 -21
|
||||
11 -66 13 -90 4z m123 -283 l79 -60 -163 0 c-101 0 -160 4 -154 9 16 16 148
|
||||
111 154 111 3 0 41 -27 84 -60z m1226 -1164 l0 -883 -650 -474 c-358 -261
|
||||
-654 -475 -658 -477 -4 -1 -300 211 -657 471 l-650 474 -3 886 -2 887 1310 0
|
||||
1310 0 0 -884z m-2834 -723 c-4 -5 -570 405 -573 415 -1 4 127 100 285 215
|
||||
l287 207 3 -416 c1 -230 0 -419 -2 -421z m3597 427 c18 -16 7 -26 -254 -216
|
||||
-150 -109 -278 -203 -286 -207 -11 -7 -13 63 -13 412 l0 421 268 -197 c147
|
||||
-107 275 -203 285 -213z m-3208 -974 c352 -258 644 -471 648 -475 6 -6 -1630
|
||||
-1335 -1679 -1364 -12 -7 -14 201 -14 1297 l0 1306 203 -149 c111 -81 490
|
||||
-358 842 -615z m3313 -1189 l-3 -655 -850 682 -851 681 851 622 850 621 3
|
||||
-648 c1 -357 1 -943 0 -1303z m-2349 483 c67 -49 131 -92 142 -95 37 -12 71 5
|
||||
196 96 68 50 127 89 132 87 4 -2 385 -304 845 -673 l837 -670 -990 -3 c-545
|
||||
-1 -1436 -1 -1979 0 l-989 3 836 673 c459 369 838 672 841 672 4 0 61 -40 129
|
||||
-90z"/>
|
||||
<path d="M1860 3835 l0 -105 705 0 705 0 0 105 0 105 -705 0 -705 0 0 -105z"/>
|
||||
<path d="M1860 3205 l0 -105 705 0 705 0 0 105 0 105 -705 0 -705 0 0 -105z"/>
|
||||
<path d="M1860 2565 l0 -105 705 0 705 0 0 105 0 105 -705 0 -705 0 0 -105z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<div class="contact-form-right">
|
||||
<h3 class="title">{{ trans('storefront::contact.leave_a_message') }}</h3>
|
||||
|
||||
<div class="contact-form">
|
||||
<form method="POST" action="{{ route('contact.store') }}">
|
||||
@csrf
|
||||
@honeypot
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="email">
|
||||
{{ trans('contact::attributes.email') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="email" value="{{ old('email') }}" id="email" class="form-control">
|
||||
|
||||
@error('email')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="form-group">
|
||||
<label for="subject">
|
||||
{{ trans('contact::attributes.subject') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<input type="text" name="subject" value="{{ old('subject') }}" id="subject" class="form-control">
|
||||
|
||||
@error('subject')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-18">
|
||||
<div class="form-group">
|
||||
<label for="message">
|
||||
{{ trans('contact::attributes.message') }}<span>*</span>
|
||||
</label>
|
||||
|
||||
<textarea rows="5" name="message" id="message" class="form-control">{{ old('message') }}</textarea>
|
||||
|
||||
@error('message')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-18">
|
||||
<div class="form-group p-t-5">
|
||||
@captcha
|
||||
<input type="text" name="captcha" class="captcha-input" placeholder="{{ trans('storefront::layout.enter_captcha_code') }}">
|
||||
|
||||
@error('captcha')
|
||||
<span class="error-message">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-18">
|
||||
<button type="submit" class="btn btn-lg btn-primary" data-loading>
|
||||
{{ trans('storefront::contact.send_message') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
53
Themes/Storefront/views/public/home/index.blade.php
Normal file
53
Themes/Storefront/views/public/home/index.blade.php
Normal file
@@ -0,0 +1,53 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', setting('store_tagline'))
|
||||
|
||||
@section('content')
|
||||
@includeUnless(is_null($slider), 'public.home.sections.slider')
|
||||
|
||||
@if (setting('storefront_features_section_enabled'))
|
||||
<home-features :features="{{ json_encode($features) }}"></home-features>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_featured_categories_section_enabled'))
|
||||
<featured-categories :data="{{ json_encode($featuredCategories) }}"></featured-categories>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_three_column_full_width_banners_enabled'))
|
||||
<banner-three-column-full-width :data="{{ json_encode($threeColumnFullWidthBanners) }}">
|
||||
</banner-three-column-full-width>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_product_tabs_1_section_enabled'))
|
||||
<product-tabs-one :data="{{ json_encode($productTabsOne) }}"></product-tabs-one>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_top_brands_section_enabled') && $topBrands->isNotEmpty())
|
||||
<top-brands :top-brands="{{ json_encode($topBrands) }}"></top-brands>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_flash_sale_and_vertical_products_section_enabled'))
|
||||
<flash-sale-and-vertical-products :data="{{ json_encode($flashSaleAndVerticalProducts) }}">
|
||||
</flash-sale-and-vertical-products>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_two_column_banners_enabled'))
|
||||
<banner-two-column :data="{{ json_encode($twoColumnBanners) }}"></banner-two-column>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_product_grid_section_enabled'))
|
||||
<product-grid :data="{{ json_encode($productGrid) }}"></product-grid>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_three_column_banners_enabled'))
|
||||
<banner-three-column :data="{{ json_encode($threeColumnBanners) }}"></banner-three-column>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_product_tabs_2_section_enabled'))
|
||||
<product-tabs-two :data="{{ json_encode($tabProductsTwo) }}"></product-tabs-two>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_one_column_banner_enabled'))
|
||||
<banner-one-column :banner="{{ json_encode($oneColumnBanner) }}"></banner-one-column>
|
||||
@endif
|
||||
@endsection
|
||||
@@ -0,0 +1,59 @@
|
||||
<section class="home-section-wrap">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="home-section-inner">
|
||||
<div class="home-slider-wrap">
|
||||
<div
|
||||
class="home-slider"
|
||||
data-speed="{{ $slider->speed ?? '1000' }}"
|
||||
data-autoplay="{{ $slider->autoplay ?? 'false' }}"
|
||||
data-autoplay-speed="{{ $slider->autoplay_speed ?? '5000' }}"
|
||||
data-fade="{{ $slider->fade ?? 'false' }}"
|
||||
data-dots="{{ $slider->dots ?? 'true' }}"
|
||||
data-arrows="{{ $slider->arrows ?? 'true' }}"
|
||||
>
|
||||
@foreach ($slider->slides as $slide)
|
||||
<div class="slide">
|
||||
<img src="{{ $slide->file->path }}" data-animation-in="zoomInImage" class="slider-image animated">
|
||||
|
||||
<div class="slide-content {{ $slide->isAlignedLeft() ? 'align-left' : 'align-right' }}">
|
||||
<div class="captions">
|
||||
<span
|
||||
class="caption caption-1"
|
||||
data-animation-in="{{ data_get($slide->options, 'caption_1.effect', 'fadeInRight') }}"
|
||||
data-delay-in="{{ data_get($slide->options, 'caption_1.delay', '0') }}"
|
||||
>
|
||||
{!! $slide->caption_1 !!}
|
||||
</span>
|
||||
|
||||
<span
|
||||
class="caption caption-2"
|
||||
data-animation-in="{{ data_get($slide->options, 'caption_2.effect', 'fadeInRight') }}"
|
||||
data-delay-in="{{ data_get($slide->options, 'caption_2.delay', '0.3') }}"
|
||||
>
|
||||
{!! $slide->caption_2 !!}
|
||||
</span>
|
||||
|
||||
@if ($slide->call_to_action_text)
|
||||
<a
|
||||
href="{{ $slide->call_to_action_url }}"
|
||||
class="btn btn-primary btn-slider"
|
||||
data-animation-in="{{ data_get($slide->options, 'call_to_action.effect', 'fadeInRight') }}"
|
||||
data-delay-in="{{ data_get($slide->options, 'call_to_action.delay', '0.7') }}"
|
||||
target="{{ $slide->open_in_new_window ? '_blank' : '_self' }}"
|
||||
>
|
||||
{!! $slide->call_to_action_text !!}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('public.home.sections.slider_banners')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,15 @@
|
||||
<div class="home-banner-wrap">
|
||||
<a href="{{ $sliderBanners['banner_1']->call_to_action_url }}"
|
||||
class="banner"
|
||||
target="{{ $sliderBanners['banner_1']->open_in_new_window ? '_blank' : '_self' }}"
|
||||
>
|
||||
<img src="{{ $sliderBanners['banner_1']->image->path }}" alt="banner">
|
||||
</a>
|
||||
|
||||
<a href="{{ $sliderBanners['banner_2']->call_to_action_url }}"
|
||||
class="banner m-t-30"
|
||||
target="{{ $sliderBanners['banner_2']->open_in_new_window ? '_blank' : '_self' }}"
|
||||
>
|
||||
<img src="{{ $sliderBanners['banner_2']->image->path }}" alt="banner">
|
||||
</a>
|
||||
</div>
|
||||
@@ -0,0 +1,62 @@
|
||||
@if (setting('newsletter_enabled'))
|
||||
<newsletter-subscription inline-template>
|
||||
<section class="subscribe-wrap d-flex justify-content-center">
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-xl-14 col-lg-18">
|
||||
<div class="subscribe">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-lg-9 col-md-18">
|
||||
<div class="subscribe-text">
|
||||
<span class="title">
|
||||
{{ trans('storefront::layout.subscribe_to_our_newsletter') }}
|
||||
</span>
|
||||
|
||||
<span class="sub-title">
|
||||
{{ trans('storefront::layout.subscribe_to_our_newsletter_subtitle') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-9 col-md-18">
|
||||
<div class="subscribe-field">
|
||||
<form @submit.prevent="subscribe">
|
||||
<div class="form-group">
|
||||
<input
|
||||
type="text"
|
||||
v-model="email"
|
||||
class="form-control"
|
||||
placeholder="{{ trans('storefront::layout.enter_your_email_address') }}"
|
||||
>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-primary btn-subscribe"
|
||||
v-if="subscribed"
|
||||
v-cloak
|
||||
>
|
||||
<i class="las la-check"></i>
|
||||
{{ trans('storefront::layout.subscribed') }}
|
||||
</button>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-primary btn-subscribe"
|
||||
:class="{ 'btn-loading': subscribing }"
|
||||
v-else
|
||||
v-cloak
|
||||
>
|
||||
{{ trans('storefront::layout.subscribe') }}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</newsletter-subscription>
|
||||
@endif
|
||||
117
Themes/Storefront/views/public/layout.blade.php
Normal file
117
Themes/Storefront/views/public/layout.blade.php
Normal file
@@ -0,0 +1,117 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ locale() }}">
|
||||
|
||||
<head>
|
||||
<base href="{{ config('app.url') }}">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
||||
|
||||
<title>
|
||||
@hasSection('title')
|
||||
@yield('title') - {{ setting('store_name') }}
|
||||
@else
|
||||
{{ setting('store_name') }}
|
||||
@endif
|
||||
</title>
|
||||
|
||||
@stack('meta')
|
||||
|
||||
<link href="https://fonts.googleapis.com/css?family=Rubik:300,400,500&display=swap" rel="stylesheet">
|
||||
|
||||
@if (is_rtl())
|
||||
<link rel="stylesheet" href="{{ v(Theme::url('public/css/app.rtl.css')) }}">
|
||||
@else
|
||||
<link rel="stylesheet" href="{{ v(Theme::url('public/css/app.css')) }}">
|
||||
@endif
|
||||
|
||||
<link rel="shortcut icon" href="{{ $favicon }}" type="image/x-icon">
|
||||
|
||||
@stack('styles')
|
||||
|
||||
{!! setting('custom_header_assets') !!}
|
||||
|
||||
<script>
|
||||
window.FleetCart = {
|
||||
baseUrl: '{{ config('app.url') }}',
|
||||
rtl: {{ is_rtl() ? 'true' : 'false' }},
|
||||
storeName: '{{ setting('store_name') }}',
|
||||
storeLogo: '{{ $logo }}',
|
||||
loggedIn: {{ auth()->check() ? 'true' : 'false' }},
|
||||
csrfToken: '{{ csrf_token() }}',
|
||||
stripePublishableKey: '{{ setting('stripe_publishable_key') }}',
|
||||
razorpayKeyId: '{{ setting('razorpay_key_id') }}',
|
||||
cart: {!! $cart !!},
|
||||
wishlist: {!! $wishlist !!},
|
||||
compareList: {!! $compareList !!},
|
||||
langs: {
|
||||
'storefront::layout.next': '{{ trans('storefront::layout.next') }}',
|
||||
'storefront::layout.prev': '{{ trans('storefront::layout.prev') }}',
|
||||
'storefront::layout.search_for_products': '{{ trans('storefront::layout.search_for_products') }}',
|
||||
'storefront::layout.all_categories': '{{ trans('storefront::layout.all_categories') }}',
|
||||
'storefront::layout.most_searched': '{{ trans('storefront::layout.most_searched') }}',
|
||||
'storefront::layout.search_for_products': '{{ trans('storefront::layout.search_for_products') }}',
|
||||
'storefront::layout.category_suggestions': '{{ trans('storefront::layout.category_suggestions') }}',
|
||||
'storefront::layout.product_suggestions': '{{ trans('storefront::layout.product_suggestions') }}',
|
||||
'storefront::layout.product_suggestions': '{{ trans('storefront::layout.product_suggestions') }}',
|
||||
'storefront::layout.more_results': '{{ trans('storefront::layout.more_results') }}',
|
||||
'storefront::product_card.out_of_stock': '{{ trans('storefront::product_card.out_of_stock') }}',
|
||||
'storefront::product_card.new': '{{ trans('storefront::product_card.new') }}',
|
||||
'storefront::product_card.add_to_cart': '{{ trans('storefront::product_card.add_to_cart') }}',
|
||||
'storefront::product_card.view_options': '{{ trans('storefront::product_card.view_options') }}',
|
||||
'storefront::product_card.compare': '{{ trans('storefront::product_card.compare') }}',
|
||||
'storefront::product_card.wishlist': '{{ trans('storefront::product_card.wishlist') }}',
|
||||
'storefront::product_card.available': '{{ trans('storefront::product_card.available') }}',
|
||||
'storefront::product_card.sold': '{{ trans('storefront::product_card.sold') }}',
|
||||
'storefront::product_card.years': '{{ trans('storefront::product_card.years') }}',
|
||||
'storefront::product_card.months': '{{ trans('storefront::product_card.months') }}',
|
||||
'storefront::product_card.weeks': '{{ trans('storefront::product_card.weeks') }}',
|
||||
'storefront::product_card.days': '{{ trans('storefront::product_card.days') }}',
|
||||
'storefront::product_card.hours': '{{ trans('storefront::product_card.hours') }}',
|
||||
'storefront::product_card.minutes': '{{ trans('storefront::product_card.minutes') }}',
|
||||
'storefront::product_card.seconds': '{{ trans('storefront::product_card.seconds') }}'
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
{!! $schemaMarkup->toScript() !!}
|
||||
|
||||
@stack('globals')
|
||||
|
||||
@routes
|
||||
</head>
|
||||
|
||||
<body class="page-template {{ is_rtl() ? 'rtl' : 'ltr' }}" data-theme-color="#{{ $themeColor->getHex() }}"
|
||||
style="--color-primary: #{{ $themeColor->getHex() }};
|
||||
--color-primary-hover: #{{ $themeColor->darken(8) }};
|
||||
--color-primary-transparent: {{ color2rgba($themeColor, 0.8) }};
|
||||
--color-primary-transparent-lite: {{ color2rgba($themeColor, 0.3) }};">
|
||||
<div class="wrapper" id="app">
|
||||
@include('public.layout.top_nav')
|
||||
@include('public.layout.header')
|
||||
@include('public.layout.navigation')
|
||||
@include('public.layout.breadcrumb')
|
||||
|
||||
@yield('content')
|
||||
|
||||
@include('public.home.sections.subscribe')
|
||||
@include('public.layout.footer')
|
||||
|
||||
<div class="overlay"></div>
|
||||
|
||||
@include('public.layout.sidebar_menu')
|
||||
@include('public.layout.sidebar_cart')
|
||||
@include('public.layout.alert')
|
||||
@include('public.layout.newsletter_popup')
|
||||
@include('public.layout.cookie_bar')
|
||||
</div>
|
||||
|
||||
@stack('pre-scripts')
|
||||
|
||||
<script src="{{ v(Theme::url('public/js/app.js')) }}"></script>
|
||||
|
||||
@stack('scripts')
|
||||
|
||||
{!! setting('custom_footer_assets') !!}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
23
Themes/Storefront/views/public/layout/alert.blade.php
Normal file
23
Themes/Storefront/views/public/layout/alert.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@if(session()->has('success'))
|
||||
<div class="alert alert-success alert-dismissible fade show">
|
||||
<button type="button" data-dismiss="alert" class="close">
|
||||
<i class="las la-times"></i>
|
||||
</button>
|
||||
|
||||
<i class="las la-check-circle"></i>
|
||||
|
||||
{{ session('success') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if(session()->has('error'))
|
||||
<div class="alert alert-danger alert-dismissible fade show">
|
||||
<button type="button" data-dismiss="alert" class="close">
|
||||
<i class="las la-times"></i>
|
||||
</button>
|
||||
|
||||
<i class="las la-check-circle"></i>
|
||||
|
||||
{{ session('error') }}
|
||||
</div>
|
||||
@endif
|
||||
13
Themes/Storefront/views/public/layout/breadcrumb.blade.php
Normal file
13
Themes/Storefront/views/public/layout/breadcrumb.blade.php
Normal file
@@ -0,0 +1,13 @@
|
||||
@hasSection('breadcrumb')
|
||||
<div class="container">
|
||||
<div class="breadcrumb">
|
||||
<ul class="list-inline">
|
||||
<li>
|
||||
<a href="{{ route('home') }}">{{ trans('storefront::layout.home') }}</a>
|
||||
</li>
|
||||
|
||||
@yield('breadcrumb')
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
23
Themes/Storefront/views/public/layout/cookie_bar.blade.php
Normal file
23
Themes/Storefront/views/public/layout/cookie_bar.blade.php
Normal file
@@ -0,0 +1,23 @@
|
||||
@if (setting('cookie_bar_enabled') && json_decode(Cookie::get('show_cookie_bar', true)))
|
||||
<cookie-bar inline-template>
|
||||
<div class="cookie-bar-wrap" :class="{ show: show }">
|
||||
<div class="container d-flex justify-content-center">
|
||||
<div class="col-xl-10 col-lg-12">
|
||||
<div class="row justify-content-center">
|
||||
<div class="cookie-bar">
|
||||
<div class="cookie-bar-text">
|
||||
{!! trans('storefront::layout.the_website_uses_cookies') !!}
|
||||
</div>
|
||||
|
||||
<div class="cookie-bar-action">
|
||||
<button class="btn btn-primary btn-accept" @click="accept">
|
||||
{{ trans('storefront::layout.got_it') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</cookie-bar>
|
||||
@endif
|
||||
162
Themes/Storefront/views/public/layout/footer.blade.php
Normal file
162
Themes/Storefront/views/public/layout/footer.blade.php
Normal file
@@ -0,0 +1,162 @@
|
||||
<footer class="footer-wrap">
|
||||
<div class="container">
|
||||
<div class="footer">
|
||||
<div class="footer-top">
|
||||
<div class="row">
|
||||
<div class="col-lg-5 col-md-8">
|
||||
<div class="contact-us">
|
||||
<h4 class="title">{{ trans('storefront::layout.contact_us') }}</h4>
|
||||
|
||||
<ul class="list-inline contact-info">
|
||||
@if (setting('store_phone') && ! setting('store_phone_hide'))
|
||||
<li>
|
||||
<i class="las la-phone"></i>
|
||||
<span>{{ setting('store_phone') }}</span>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (setting('store_email') && ! setting('store_email_hide'))
|
||||
<li>
|
||||
<i class="las la-envelope"></i>
|
||||
<span>{{ setting('store_email') }}</span>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (setting('storefront_address'))
|
||||
<li>
|
||||
<i class="las la-map"></i>
|
||||
<span>{{ setting('storefront_address') }}</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
@if (social_links()->isNotEmpty())
|
||||
<ul class="list-inline social-links">
|
||||
@foreach (social_links() as $icon => $socialLink)
|
||||
<li>
|
||||
<a href="{{ $socialLink }}">
|
||||
<i class="{{ $icon }}"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 col-md-5">
|
||||
<div class="footer-links">
|
||||
<h4 class="title">{{ trans('storefront::layout.my_account') }}</h4>
|
||||
|
||||
<ul class="list-inline">
|
||||
<li>
|
||||
<a href="{{ route('account.dashboard.index') }}">
|
||||
{{ trans('storefront::account.pages.dashboard') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="{{ route('account.orders.index') }}">
|
||||
{{ trans('storefront::account.pages.my_orders') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="{{ route('account.reviews.index') }}">
|
||||
{{ trans('storefront::account.pages.my_reviews') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="{{ route('account.profile.edit') }}">
|
||||
{{ trans('storefront::account.pages.my_profile') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@auth
|
||||
<li>
|
||||
<a href="{{ route('logout') }}">
|
||||
{{ trans('storefront::account.pages.logout') }}
|
||||
</a>
|
||||
</li>
|
||||
@endauth
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if ($footerMenuOne->isNotEmpty())
|
||||
<div class="col-lg-3 col-md-5">
|
||||
<div class="footer-links">
|
||||
<h4 class="title">{{ setting('storefront_footer_menu_one_title') }}</h4>
|
||||
|
||||
<ul class="list-inline">
|
||||
@foreach ($footerMenuOne as $menuItem)
|
||||
<li>
|
||||
<a href="{{ $menuItem->url() }}" target="{{ $menuItem->target }}">
|
||||
{{ $menuItem->name }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($footerMenuTwo->isNotEmpty())
|
||||
<div class="col-lg-3 col-md-5">
|
||||
<div class="footer-links">
|
||||
<h4 class="title">{{ setting('storefront_footer_menu_two_title') }}</h4>
|
||||
|
||||
<ul class="list-inline">
|
||||
@foreach ($footerMenuTwo as $menuItem)
|
||||
<li>
|
||||
<a href="{{ $menuItem->url() }}" target="{{ $menuItem->target }}">
|
||||
{{ $menuItem->name }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($footerTags->isNotEmpty())
|
||||
<div class="col-lg-4 col-md-7">
|
||||
<div class="footer-links footer-tags">
|
||||
<h4 class="title">{{ trans('storefront::layout.tags') }}</h4>
|
||||
|
||||
<ul class="list-inline">
|
||||
@foreach ($footerTags as $footerTag)
|
||||
<li>
|
||||
<a href="{{ $footerTag->url() }}">
|
||||
{{ $footerTag->name }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer-bottom">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-md-9 col-sm-18">
|
||||
<div class="footer-text">
|
||||
{!! $copyrightText !!}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if ($acceptedPaymentMethodsImage->exists)
|
||||
<div class="col-md-9 col-sm-18">
|
||||
<div class="footer-payment">
|
||||
<img src="{{ $acceptedPaymentMethodsImage->path }}" alt="accepted payment methods">
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
50
Themes/Storefront/views/public/layout/header.blade.php
Normal file
50
Themes/Storefront/views/public/layout/header.blade.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<header class="header-wrap">
|
||||
<div class="header-wrap-inner">
|
||||
<div class="container">
|
||||
<div class="row flex-nowrap justify-content-between position-relative">
|
||||
<div class="header-column-left">
|
||||
<div class="sidebar-menu-icon-wrap">
|
||||
<div class="sidebar-menu-icon">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a href="{{ route('home') }}" class="header-logo">
|
||||
@if (is_null($logo))
|
||||
<h3>{{ setting('store_name') }}</h3>
|
||||
@else
|
||||
<img src="{{ $logo }}" alt="logo">
|
||||
@endif
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<header-search :categories="{{ $categories }}" :most-searched-keywords="{{ $mostSearchedKeywords }}"
|
||||
is-most-searched-keywords-enabled="{{ setting('storefront_most_searched_keywords_enabled') }}"
|
||||
initial-query="{{ request('query') }}" initial-category="{{ request('category') }}">
|
||||
</header-search>
|
||||
|
||||
<div class="header-column-right d-flex">
|
||||
<a href="{{ route('account.wishlist.index') }}" class="header-wishlist">
|
||||
<div class="icon-wrap">
|
||||
<i class="lar la-heart"></i>
|
||||
<div class="count" v-text="wishlistCount"></div>
|
||||
</div>
|
||||
|
||||
<span>{{ trans('storefront::layout.favorites') }}</span>
|
||||
</a>
|
||||
|
||||
<div class="header-cart">
|
||||
<div class="icon-wrap">
|
||||
<i class="las la-cart-arrow-down"></i>
|
||||
<div class="count" v-text="cart.quantity"></div>
|
||||
</div>
|
||||
|
||||
<span v-html="cart.subTotal.inCurrentCurrency.formatted"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
12
Themes/Storefront/views/public/layout/navigation.blade.php
Normal file
12
Themes/Storefront/views/public/layout/navigation.blade.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<section class="navigation-wrap">
|
||||
<div class="container">
|
||||
<div class="navigation-inner">
|
||||
@include('public.layout.navigation.category_menu')
|
||||
@include('public.layout.navigation.primary_menu')
|
||||
|
||||
<span class="navigation-text">
|
||||
{{ setting('storefront_navbar_text') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,28 @@
|
||||
<div class="category-nav {{ request()->routeIs('home') ? 'show' : '' }}">
|
||||
<div class="category-nav-inner">
|
||||
{{ trans('storefront::layout.all_categories_header') }}
|
||||
<i class="las la-bars"></i>
|
||||
</div>
|
||||
|
||||
@if ($categoryMenu->menus()->isNotEmpty())
|
||||
<div class="category-dropdown-wrap">
|
||||
<div class="category-dropdown">
|
||||
<ul class="list-inline mega-menu vertical-megamenu">
|
||||
@foreach ($categoryMenu->menus() as $menu)
|
||||
@include('public.layout.navigation.menu', ['type' => 'category_menu'])
|
||||
@endforeach
|
||||
|
||||
<li class="more-categories">
|
||||
<a href="{{ route('categories.index') }}" class="menu-item">
|
||||
<span class="menu-item-icon">
|
||||
<i class="las la-plus-square"></i>
|
||||
</span>
|
||||
|
||||
{{ trans('storefront::layout.all_categories') }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@@ -0,0 +1,15 @@
|
||||
@if ($subMenus->isNotEmpty())
|
||||
<ul class="list-inline sub-menu">
|
||||
@foreach ($subMenus as $subMenu)
|
||||
<li class="{{ $subMenu->hasItems() ? 'dropdown' : '' }}">
|
||||
<a href="{{ $subMenu->url() }}" target="{{ $subMenu->target() }}">
|
||||
{{ $subMenu->name() }}
|
||||
</a>
|
||||
|
||||
@if ($subMenu->hasItems())
|
||||
@include('public.layout.navigation.dropdown', ['subMenus' => $subMenu->items()])
|
||||
@endif
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
@@ -0,0 +1,31 @@
|
||||
<ul
|
||||
class="list-inline fluid-menu-wrap"
|
||||
|
||||
@if ($menu->hasBackgroundImage())
|
||||
style="background-image: url({{ $menu->backgroundImage() }});"
|
||||
@endif
|
||||
>
|
||||
<li>
|
||||
<div class="fluid-menu-content">
|
||||
@foreach ($subMenus as $subMenu)
|
||||
<div class="fluid-menu-list">
|
||||
<h5 class="fluid-menu-title">
|
||||
<a href="{{ $subMenu->url() }}" target="{{ $subMenu->target() }}">
|
||||
{{ $subMenu->name() }}
|
||||
</a>
|
||||
</h5>
|
||||
|
||||
<ul class="list-inline fluid-sub-menu-list">
|
||||
@foreach ($subMenu->items() as $item)
|
||||
<li>
|
||||
<a href="{{ $item->url() }}" target="{{ $subMenu->target() }}">
|
||||
{{ $item->name() }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,17 @@
|
||||
<li class="{{ mega_menu_classes($menu, $type) }}">
|
||||
<a href="{{ $menu->url() }}" class="nav-link menu-item" target="{{ $menu->target() }}" data-text="{{ $menu->name() }}">
|
||||
@if ($type === 'category_menu' && $menu->hasIcon())
|
||||
<span class="menu-item-icon">
|
||||
<i class="{{ $menu->icon() }}"></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
{{ $menu->name() }}
|
||||
</a>
|
||||
|
||||
@if ($menu->isFluid())
|
||||
@include('public.layout.navigation.fluid', ['subMenus' => $menu->subMenus()])
|
||||
@else
|
||||
@include('public.layout.navigation.dropdown', ['subMenus' => $menu->subMenus()])
|
||||
@endif
|
||||
</li>
|
||||
@@ -0,0 +1,7 @@
|
||||
<nav class="navbar navbar-expand-sm">
|
||||
<ul class="navbar-nav mega-menu horizontal-megamenu">
|
||||
@foreach ($primaryMenu->menus() as $menu)
|
||||
@include('public.layout.navigation.menu', ['type' => 'primary_menu'])
|
||||
@endforeach
|
||||
</ul>
|
||||
</nav>
|
||||
@@ -0,0 +1,71 @@
|
||||
@if (setting('newsletter_enabled') && json_decode(Cookie::get('show_newsletter_popup', true)))
|
||||
<newsletter-popup inline-template>
|
||||
<div class="modal newsletter-wrap fade">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="newsletter-inner">
|
||||
<div class="newsletter-left">
|
||||
<h1 class="title">
|
||||
{{ trans('storefront::layout.subscribe_to_our_newsletter') }}
|
||||
</h1>
|
||||
|
||||
<p class="sub-title">
|
||||
{{ trans('storefront::layout.subscribe_to_our_newsletter_subtitle') }}
|
||||
</p>
|
||||
|
||||
<form @submit.prevent="subscribe" class="newsletter-form">
|
||||
<div class="form-group">
|
||||
<input
|
||||
type="text"
|
||||
v-model="email"
|
||||
class="form-control"
|
||||
placeholder="{{ trans('storefront::layout.enter_your_email_address') }}"
|
||||
>
|
||||
|
||||
<span class="error-message" v-if="error" v-text="error"></span>
|
||||
|
||||
<button class="btn btn-primary btn-subscribe" v-if="subscribed">
|
||||
<i class="las la-check"></i>
|
||||
{{ trans('storefront::layout.subscribed') }}
|
||||
</button>
|
||||
|
||||
<button
|
||||
class="btn btn-primary btn-subscribe"
|
||||
:class="{ 'btn-loading': subscribing }"
|
||||
v-else
|
||||
>
|
||||
{{ trans('storefront::layout.subscribe') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<span class="error-message" v-if="error" v-text="error"></span>
|
||||
</form>
|
||||
|
||||
<p class="info-text">
|
||||
{{ trans('storefront::layout.by_subscribing') }} <a href="{{ $privacyPageUrl }}">{{ trans('storefront::layout.privacy_policy') }}</a>
|
||||
</p>
|
||||
|
||||
<div class="form-group newsletter-checkbox">
|
||||
<div class="form-check">
|
||||
<input type="checkbox" v-model="disable_popup" id="do_not_show_popup_again">
|
||||
|
||||
<label for="do_not_show_popup_again" class="form-check-label">
|
||||
{{ trans('storefront::layout.don\'t_show_this_popup_again') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="newsletter-right" style="background-image: url({{ $newsletterBgImage }})"></div>
|
||||
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<i class="las la-times"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</newsletter-popup>
|
||||
@endif
|
||||
45
Themes/Storefront/views/public/layout/sidebar_cart.blade.php
Normal file
45
Themes/Storefront/views/public/layout/sidebar_cart.blade.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<sidebar-cart inline-template>
|
||||
<aside class="sidebar-cart-wrap">
|
||||
<div class="sidebar-cart-top">
|
||||
<h3 class="title">{{ trans('storefront::layout.shopping_cart') }}</h3>
|
||||
|
||||
<div class="sidebar-cart-close">
|
||||
<i class="las la-times"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sidebar-cart-middle" :class="{ 'custom-scrollbar': cartIsNotEmpty, empty: cartIsEmpty }">
|
||||
<div class="sidebar-cart-items-wrap">
|
||||
<sidebar-cart-item
|
||||
v-for="cartItem in cart.items"
|
||||
:key="cartItem.id"
|
||||
:cart-item="cartItem"
|
||||
>
|
||||
</sidebar-cart-item>
|
||||
</div>
|
||||
|
||||
<div class="empty-message" v-if="cartIsEmpty">
|
||||
@include('public.layout.sidebar_cart.empty_logo')
|
||||
|
||||
<h4>{{ trans('storefront::cart.your_cart_is_empty') }}</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sidebar-cart-bottom" v-if="cartIsNotEmpty">
|
||||
<h5 class="sidebar-cart-subtotal">
|
||||
{{ trans('storefront::layout.subtotal') }}
|
||||
<span v-html="cart.subTotal.inCurrentCurrency.formatted"></span>
|
||||
</h5>
|
||||
|
||||
<div class="sidebar-cart-actions">
|
||||
<a href="{{ route('cart.index') }}" class="btn btn-default btn-view-cart">
|
||||
{{ trans('storefront::layout.view_cart') }}
|
||||
</a>
|
||||
|
||||
<a href="{{ route('checkout.create') }}" class="btn btn-primary btn-checkout">
|
||||
{{ trans('storefront::layout.checkout') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</sidebar-cart>
|
||||
@@ -0,0 +1,84 @@
|
||||
<svg version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 500 500"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<g>
|
||||
<path d="M477.52,135.43c3.72-20.13-6.84-37.6-26.3-43.52c-90.6-27.43-180.44-54.64-267.05-80.8
|
||||
c-5.18-1.57-10.17-2.36-14.82-2.36c-15.49,0-27.41,8.74-34.46,25.26l-22.12,51.7c-12.92,30.19-25.82,60.37-38.74,90.56
|
||||
c-0.44,1.04-0.92,2.06-1.46,3.14l-3.03-0.9c-3.42-1.04-6.68-2.03-9.92-2.98c-2.89-0.86-5.59-1.29-8-1.29
|
||||
c-8.27,0-13.96,4.97-16.94,14.77c-3.79,12.5-7.58,25.03-11.33,37.54c-4.35,14.4-0.09,22.37,14.17,26.7l27.25,8.25
|
||||
c52.7,15.97,107.2,32.47,160.77,48.86c1.8,0.53,3.95,2.33,4.9,4.07c8.71,15.9,17.4,32.15,25.79,47.87
|
||||
c2.66,4.95,5.29,9.89,7.93,14.84l13.61,25.42c12.37,23.11,25.17,47.03,37.81,70.54c6.12,11.37,16.85,18.17,28.68,18.17
|
||||
c2.15,0,4.32-0.21,6.45-0.67c10.38-2.17,18.79-8.69,23.09-17.89c4.41-9.41,3.98-20.36-1.2-30.07
|
||||
c-19.28-36.24-38.99-73.04-58.04-108.61l-10.82-20.18c-0.23-0.44-0.44-0.88-0.67-1.32c-1.34-2.75-3.21-6.49-7.56-6.49
|
||||
c-1.13,0-2.33,0.28-3.68,0.83c-1.99,0.86-3.33,2.15-3.93,3.84c-0.9,2.54-0.18,5.69,2.4,10.49l17.75,33.19
|
||||
c16.99,31.71,33.95,63.4,50.89,95.13c5.11,9.57,2.5,19.65-6.33,24.52c-2.57,1.41-5.25,2.1-8.02,2.1c-6.4,0-12.32-3.88-15.83-10.42
|
||||
c-32.06-59.82-63.33-118.29-92.96-173.81c-4.95-9.29-2.91-17.66,5.73-23.6c6.1-4.16,5.22-8.44,3.42-11.28
|
||||
c-1.9-2.94-4.32-3.56-6.03-3.56c-1.8,0-3.74,0.67-5.8,2.03c-10.42,6.86-15.44,16.48-14.93,28.57c0.12,2.8,0.67,5.55,1.2,8.21
|
||||
c0.02,0.12,0.05,0.23,0.07,0.35c-18.95-5.76-37.91-11.53-56.86-17.29c-40.93-12.46-81.87-24.92-122.82-37.35
|
||||
c-1.39-0.42-2.27-0.97-2.61-1.59c-0.39-0.74-0.3-1.99,0.28-3.84c2.45-7.93,4.88-16.02,7.21-23.85c1.32-4.39,2.63-8.78,3.95-13.17
|
||||
c1.78-5.85,2.22-6.08,3.14-6.08c1.23,0,3.35,0.62,6.01,1.43l29.58,8.97c40.66,12.32,81.29,24.64,121.94,36.93
|
||||
c3.04,0.92,6.09,1.85,9.13,2.77c3.06,0.93,6.11,1.85,9.17,2.78c3.06,0.93,6.11,1.85,9.17,2.78c3.06,0.93,6.11,1.85,9.17,2.78
|
||||
c3.06,0.93,6.12,1.85,9.17,2.78c1.13,0.34,2.28,0.65,3.39,1.03c-0.8-0.32-1.58-0.33-2.41-0.07c-1.3,0.42-2.39,1.28-3.42,2.14
|
||||
c-0.94,0.78-1.86,1.68-2.22,2.88c-0.11,0.37-0.16,0.75-0.15,1.14c0.05,2.98,2.08,7.12,4.9,8.32c5.2,2.2,8.85,5.73,11.46,11.09
|
||||
c0.32,0.62,0.62,1.27,0.92,1.92c1.53,3.21,3.1,6.52,5.45,9.29c1.59,1.87,4.67,2.7,6.98,2.7c0.95,0,1.78-0.14,2.5-0.39
|
||||
c1.18-0.42,2.15-1.53,2.89-3.31c0.25-0.62,1.5-3.84,0.46-6.08c-3.19-6.91-6.7-13.2-10.45-18.74c-3.1-4.55-7.56-7.84-13.59-9.92
|
||||
c36.22,11,72.46,21.96,108.68,32.94l85.08,25.75c1.62,0.51,4.62,1.41,5.06,2.24c0.44,0.86-0.49,3.91-0.97,5.57
|
||||
c-1.55,5.11-3.07,10.24-4.62,15.37c-2.1,7.05-4.23,14.12-6.36,21.17c-1.48,4.9-2.03,4.9-2.89,4.9c-1.09,0-2.87-0.49-4.6-1.02
|
||||
l-13.54-4.09c-31.36-9.48-62.73-18.95-94.07-28.45c-1.8-0.55-3.24-0.81-4.51-0.81c-3.4,0-5.82,1.87-6.86,5.29
|
||||
c-2.17,7.21,4.74,9.31,7.03,9.98c15.37,4.65,30.74,9.31,46.11,13.98c21.31,6.45,42.62,12.92,63.95,19.35
|
||||
c2.2,0.67,4.37,0.99,6.43,0.99c7.9,0,14.15-4.95,16.73-13.22c3.79-12.3,7.81-25.63,12.62-42.02c3.14-10.77-1.55-19.58-12.25-23.02
|
||||
c-3.58-1.13-7.17-2.22-10.93-3.37c-1.16-0.35-2.33-0.69-3.54-1.06c0.02-0.37,0.05-0.69,0.09-0.95
|
||||
C458.17,239.95,467.83,187.66,477.52,135.43z M438.92,261.3l-4.78,25.86c-0.09,0.53-0.25,1.06-0.46,1.66l-200.41-60.72
|
||||
L87.39,183.92c0.28-0.76,0.55-1.48,0.86-2.17l6.73-15.72c18.07-42.37,36.15-84.71,54.25-127.05c4.25-9.94,11.33-15.21,20.5-15.21
|
||||
c2.8,0,5.82,0.49,8.97,1.46c88.85,26.86,177.67,53.76,266.49,80.69c14.03,4.23,19.81,13.68,17.17,28.04
|
||||
C454.61,176.41,446.64,219.56,438.92,261.3z"/>
|
||||
<path d="M193,311.18c0-2.33,0.02-9.41-7.47-9.64h-0.35c-3.63,0-5.41,1.8-6.24,3.33c-1.04,1.87-1.16,4.21-1.16,6.03
|
||||
c0.02,27,0.02,53.97,0,80.94c0,1.83,0.12,4.18,1.18,6.06c0.83,1.53,2.61,3.33,6.24,3.33h0.32c7.49-0.21,7.47-7.3,7.47-9.64
|
||||
c-0.02-9.75-0.02-19.51-0.02-29.26v-22.07C192.97,330.57,192.97,320.86,193,311.18z"/>
|
||||
<path d="M125.84,370.79c-0.07-1.02-0.16-2.05-0.27-3.07c-0.3-2.78-0.93-5.86-3.24-7.43c-2.42-1.64-6.8-1.21-9.02,0.6
|
||||
c-2.46,2.02-2.74,5.1-2.73,8.11c0.03,6.85,0.06,13.7,0.1,20.55c0.04,7.64-0.06,15.77-4.21,22.18c-3.96,6.14-11.15,9.67-18.39,10.62
|
||||
c-2.53,0.33-5.31,0.47-7.18,2.21c-1.47,1.36-2.05,3.47-2.03,5.47c0.02,2.01,0.63,4.1,2.08,5.48c1.85,1.76,4.64,2.05,7.19,1.98
|
||||
c7.61-0.2,15.14-2.74,21.3-7.2c6.17-4.46,10.94-10.81,13.51-17.97c2.32-6.47,2.85-13.43,3.08-20.3c0.15-4.48,0.19-8.95,0.11-13.43
|
||||
C126.11,375.99,126.02,373.38,125.84,370.79z"/>
|
||||
<path d="M220.11,462.08c-1.62,0-3.33,0.51-5.59,1.62c-2.43,1.2-4.9,1.8-7.35,1.8c-8.07,0-13.98-6.4-14.1-15.25
|
||||
c-0.07-5.69-0.07-11.74,0-18.51c0.07-7.81-4.62-9.11-7.44-9.18l-0.3-0.02c-2.2,0-3.95,0.67-5.25,1.99
|
||||
c-1.53,1.55-2.24,3.84-2.2,6.96c0.05,2.47,0.05,5.02,0.02,7.47v5.62h0.02v0.95c-0.02,2.33-0.05,4.76,0.05,7.16
|
||||
c0.67,15.81,13.73,28.17,29.75,28.17c4.74,0,9.27-1.13,13.52-3.35c2.08-1.11,8.41-4.44,5.11-11.12
|
||||
C224.59,462.85,221.98,462.08,220.11,462.08z"/>
|
||||
<path d="M447.44,404.04c-0.56-0.14-1.12-0.2-1.68-0.18c-2.22,0.05-4.44,1.14-6.63,1.81
|
||||
c-4.65,1.44-10.07,0.9-13.83-2.18c-3.13-2.57-4.8-6.58-5.3-10.6c-0.29-2.29-0.27-4.73-1.46-6.71c-1.17-1.93-3.41-3.1-5.66-3.21
|
||||
c-1.81-0.08-3.61,0.47-5.15,1.42c-0.38,0.23-0.75,0.48-1.09,0.77c-0.29,0.24-0.48,0.7-0.65,1.04c-0.4,0.77-0.71,1.59-0.93,2.44
|
||||
c-0.44,1.72-0.54,3.51-0.43,5.27c0.04,0.68,0.12,1.36,0.22,2.04c0.97,6.45,4.08,12.56,8.68,17.18c4.6,4.63,10.66,7.77,17.09,8.92
|
||||
c1.36,0.24,2.75,0.4,4.12,0.25c0.96-0.11,1.9-0.37,2.84-0.63c1.94-0.54,3.89-1.08,5.83-1.62c1.83-0.51,3.67-1.02,5.32-1.95
|
||||
c1.65-0.93,3.11-2.33,3.73-4.13c0.54-1.57,0.38-3.32-0.15-4.89C451.53,406.77,449.8,404.64,447.44,404.04z"/>
|
||||
<path d="M153.01,332.44h-0.07c-4.78,0-7.65,3.14-7.67,8.39c-0.05,9.18-0.05,18.84,0,30.39
|
||||
c0.02,5.36,2.77,8.48,7.56,8.53h0.14c4.69,0,7.53-3.12,7.58-8.39c0.05-3.54,0.05-7.1,0.02-10.63v-9.08
|
||||
c0.02-3.56,0.02-7.12-0.02-10.68C160.48,333.3,155.25,332.44,153.01,332.44z"/>
|
||||
<path d="M111.69,315.61c0.79,1.52,2.01,2.79,3.43,3.74c0.81,0.54,1.72,1,2.7,1.02c1.06,0.03,2.07-0.46,3-0.96
|
||||
c1.32-0.71,2.65-1.51,3.51-2.74c0.9-1.3,1.18-2.92,1.33-4.49c0.27-2.84,0.21-5.7,0.21-8.55c0-2.36,0.02-4.79-0.85-6.98
|
||||
c-0.8-2.01-2.38-3.73-4.39-4.54c-2.03-0.82-4.58-0.68-6.28,0.74c-1.83,1.53-2.95,3.38-3.44,5.73c-0.48,2.28-0.39,4.64-0.43,6.97
|
||||
c-0.05,2.83-0.26,5.79,0.56,8.44C111.21,314.55,111.42,315.09,111.69,315.61z"/>
|
||||
<g>
|
||||
<path d="M244.57,72.74c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62
|
||||
c8.33,2.49,17.13-2.25,19.62-10.58l29.95-100.01C257.64,84.03,252.89,75.23,244.57,72.74z M213.7,188.93
|
||||
c-0.6,1.99-2.7,3.12-4.69,2.53s-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69
|
||||
L213.7,188.93z"/>
|
||||
<path d="M303.62,90.42c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62
|
||||
c8.33,2.49,17.13-2.25,19.62-10.58l29.95-100.01C316.69,101.72,311.95,92.92,303.62,90.42z M272.75,206.62
|
||||
c-0.6,1.99-2.7,3.12-4.69,2.53c-1.99-0.6-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53s3.12,2.7,2.53,4.69
|
||||
L272.75,206.62z"/>
|
||||
<path d="M362.67,108.11c-8.33-2.49-17.13,2.25-19.62,10.58L313.09,218.7c-2.49,8.33,2.25,17.13,10.58,19.62
|
||||
s17.13-2.25,19.62-10.58l29.95-100.01C375.74,119.4,371,110.6,362.67,108.11z M331.8,224.3c-0.6,1.99-2.7,3.12-4.69,2.53
|
||||
c-1.99-0.6-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69L331.8,224.3z"/>
|
||||
<path d="M421.72,125.79c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62
|
||||
c8.33,2.49,17.13-2.25,19.62-10.58l29.95-100.01C434.79,137.09,430.05,128.29,421.72,125.79z M390.85,241.98
|
||||
c-0.6,1.99-2.7,3.12-4.69,2.53s-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69
|
||||
L390.85,241.98z"/>
|
||||
<path d="M185.52,55.05c-8.33-2.49-17.13,2.25-19.62,10.58l-29.95,100.01c-2.49,8.33,2.25,17.13,10.58,19.62
|
||||
c8.33,2.49,17.13-2.25,19.62-10.58L196.1,74.68C198.59,66.35,193.84,57.55,185.52,55.05z M154.65,171.25
|
||||
c-0.6,1.99-2.7,3.12-4.69,2.53s-3.12-2.7-2.53-4.69l29.95-100.01c0.6-1.99,2.7-3.12,4.69-2.53c1.99,0.6,3.12,2.7,2.53,4.69
|
||||
L154.65,171.25z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.6 KiB |
33
Themes/Storefront/views/public/layout/sidebar_menu.blade.php
Normal file
33
Themes/Storefront/views/public/layout/sidebar_menu.blade.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<aside class="sidebar-menu-wrap">
|
||||
<div class="sidebar-menu-header">
|
||||
<h4>{{ trans('storefront::layout.navigation') }}</h4>
|
||||
|
||||
<div class="sidebar-menu-close">
|
||||
<i class="las la-times"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="nav nav-tabs sidebar-menu-tab" role="tablist">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" data-toggle="tab" href="#main-menu">
|
||||
{{ trans('storefront::layout.menu') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#category-menu">
|
||||
{{ trans('storefront::layout.categories') }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content custom-scrollbar">
|
||||
<div id="main-menu" class="tab-pane active">
|
||||
@include('public.layout.sidebar_menu.menu', ['type' => 'primary_menu', 'menu' => $primaryMenu])
|
||||
</div>
|
||||
|
||||
<div id="category-menu" class="tab-pane">
|
||||
@include('public.layout.sidebar_menu.menu', ['type' => 'category_menu', 'menu' => $categoryMenu])
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
@@ -0,0 +1,13 @@
|
||||
<ul class="list-inline">
|
||||
@foreach ($subMenus as $subMenu)
|
||||
<li class="{{ $subMenu->hasItems() ? 'dropdown sub-menu' : '' }}">
|
||||
<a href="{{ $subMenu->url() }}" target="{{ $subMenu->target() }}">
|
||||
{{ $subMenu->name() }}
|
||||
</a>
|
||||
|
||||
@if ($subMenu->hasItems())
|
||||
@include('public.layout.sidebar_menu.dropdown', ['subMenus' => $subMenu->items()])
|
||||
@endif
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@@ -0,0 +1,31 @@
|
||||
<ul class="list-inline sidebar-menu">
|
||||
@foreach ($menu->menus() as $menu)
|
||||
<li class="{{ $menu->hasSubMenus() ? 'dropdown multi-level' : '' }}">
|
||||
<a href="{{ $menu->url() }}" class="menu-item" target="{{ $menu->target() }}">
|
||||
@if ($type === 'category_menu' && $menu->hasIcon())
|
||||
<span class="menu-item-icon">
|
||||
<i class="{{ $menu->icon() }}"></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
{{ $menu->name() }}
|
||||
</a>
|
||||
|
||||
@if ($menu->hasSubMenus())
|
||||
@include('public.layout.sidebar_menu.dropdown', ['subMenus' => $menu->subMenus()])
|
||||
@endif
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
@if ($type === 'category_menu')
|
||||
<li class="more-categories">
|
||||
<a href="{{ route('categories.index') }}" class="menu-item">
|
||||
<span class="menu-item-icon">
|
||||
<i class="las la-plus-square"></i>
|
||||
</span>
|
||||
|
||||
{{ trans('storefront::layout.all_categories') }}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
74
Themes/Storefront/views/public/layout/top_nav.blade.php
Normal file
74
Themes/Storefront/views/public/layout/top_nav.blade.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<section class="top-nav-wrap">
|
||||
<div class="container">
|
||||
<div class="top-nav">
|
||||
<div class="row justify-content-between">
|
||||
<div class="top-nav-left d-none d-lg-block">
|
||||
<span>{{ setting('storefront_welcome_text') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="top-nav-right">
|
||||
<ul class="list-inline top-nav-right-list">
|
||||
<li>
|
||||
<a href="{{ route('contact.create') }}">
|
||||
<i class="las la-phone"></i>
|
||||
{{ trans('storefront::layout.contact') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="{{ route('compare.index') }}">
|
||||
<i class="las la-random"></i>
|
||||
{{ trans('storefront::layout.compare') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@if (is_multilingual())
|
||||
<li>
|
||||
<i class="las la-language"></i>
|
||||
<select class="custom-select-option arrow-black" onchange="location = this.value">
|
||||
@foreach (supported_locales() as $locale => $language)
|
||||
<option value="{{ localized_url($locale) }}" {{ locale() === $locale ? 'selected' : '' }}>
|
||||
{{ $language['name'] }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if (is_multi_currency())
|
||||
<li>
|
||||
<i class="las la-money-bill"></i>
|
||||
<select class="custom-select-option arrow-black" onchange="location = this.value">
|
||||
@foreach (setting('supported_currencies') as $currency)
|
||||
<option
|
||||
value="{{ route('current_currency.store', ['code' => $currency]) }}"
|
||||
{{ currency() === $currency ? 'selected' : '' }}
|
||||
>
|
||||
{{ $currency }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@auth
|
||||
<li>
|
||||
<a href="{{ route('account.dashboard.index') }}">
|
||||
<i class="las la-user"></i>
|
||||
{{ trans('storefront::layout.account') }}
|
||||
</a>
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<a href="{{ route('login') }}">
|
||||
<i class="las la-sign-in-alt"></i>
|
||||
{{ trans('storefront::layout.login') }}
|
||||
</a>
|
||||
</li>
|
||||
@endauth
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
28
Themes/Storefront/views/public/pages/show.blade.php
Normal file
28
Themes/Storefront/views/public/pages/show.blade.php
Normal file
@@ -0,0 +1,28 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title', $page->name)
|
||||
|
||||
@push('meta')
|
||||
<meta name="title" content="{{ $page->meta->meta_title ?: $page->name }}">
|
||||
<meta name="description" content="{{ $page->meta->meta_description }}">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta property="og:url" content="{{ url()->current() }}">
|
||||
<meta property="og:title" content="{{ $page->meta->meta_title ?: $page->name }}">
|
||||
<meta property="og:description" content="{{ $page->meta->meta_description }}">
|
||||
<meta property="og:image" content="{{ $logo }}">
|
||||
<meta property="og:locale" content="{{ locale() }}">
|
||||
|
||||
@foreach (supported_locale_keys() as $code)
|
||||
<meta property="og:locale:alternate" content="{{ $code }}">
|
||||
@endforeach
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<section class="custom-page-wrap clearfix">
|
||||
<div class="container">
|
||||
<div class="custom-page-content clearfix">
|
||||
{!! $page->body !!}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
52
Themes/Storefront/views/public/pagination.blade.php
Normal file
52
Themes/Storefront/views/public/pagination.blade.php
Normal file
@@ -0,0 +1,52 @@
|
||||
@if ($paginator->hasPages())
|
||||
<ul class="pagination">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="page-item disabled" aria-disabled="true" aria-label="Previous">
|
||||
<span class="page-link" aria-hidden="true">
|
||||
<i class="las la-angle-left"></i>
|
||||
</span>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="Previous">
|
||||
<i class="las la-angle-left"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Pagination Elements --}}
|
||||
@foreach ($elements as $element)
|
||||
{{-- "Three Dots" Separator --}}
|
||||
@if (is_string($element))
|
||||
<li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span></li>
|
||||
@endif
|
||||
|
||||
{{-- Array Of Links --}}
|
||||
@if (is_array($element))
|
||||
@foreach ($element as $page => $url)
|
||||
@if ($page == $paginator->currentPage())
|
||||
<li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
|
||||
@else
|
||||
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="Next">
|
||||
<i class="las la-angle-right"></i>
|
||||
</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item disabled" aria-disabled="true" aria-label="Next">
|
||||
<span class="page-link" aria-hidden="true">
|
||||
<i class="las la-angle-right"></i>
|
||||
</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
@endif
|
||||
176
Themes/Storefront/views/public/products/index.blade.php
Normal file
176
Themes/Storefront/views/public/products/index.blade.php
Normal file
@@ -0,0 +1,176 @@
|
||||
@extends('public.layout')
|
||||
|
||||
@section('title')
|
||||
@if (request()->has('query'))
|
||||
{{ trans('storefront::products.search_results_for') }}: "{{ request('query') }}"
|
||||
@else
|
||||
{{ trans('storefront::products.shop') }}
|
||||
@endif
|
||||
@endsection
|
||||
|
||||
@push('globals')
|
||||
<script>
|
||||
FleetCart.langs['storefront::products.showing_results'] = '{{ trans("storefront::products.showing_results") }}';
|
||||
FleetCart.langs['storefront::products.show_more'] = '{{ trans("storefront::products.show_more") }}';
|
||||
FleetCart.langs['storefront::products.show_less'] = '{{ trans("storefront::products.show_less") }}';
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<product-index
|
||||
initial-query="{{ request('query') }}"
|
||||
initial-brand-name="{{ $brandName ?? '' }}"
|
||||
initial-brand-banner="{{ $brandBanner ?? '' }}"
|
||||
initial-brand-slug="{{ request('brand') }}"
|
||||
initial-category-name="{{ $categoryName ?? '' }}"
|
||||
initial-category-banner="{{ $categoryBanner ?? '' }}"
|
||||
initial-category-slug="{{ request('category') }}"
|
||||
initial-tag-name="{{ $tagName ?? '' }}"
|
||||
initial-tag-slug="{{ request('tag') }}"
|
||||
:initial-attribute="{{ json_encode(request('attribute', [])) }}"
|
||||
:max-price="{{ $maxPrice }}"
|
||||
initial-sort="{{ request('sort', 'latest') }}"
|
||||
:initial-per-page="{{ request('perPage', 30) }}"
|
||||
:initial-page="{{ request('page', 1) }}"
|
||||
initial-view-mode="{{ request('viewMode', 'grid') }}"
|
||||
inline-template
|
||||
>
|
||||
<section class="product-search-wrap">
|
||||
<div class="container">
|
||||
<div class="product-search">
|
||||
<div class="product-search-left">
|
||||
@if ($categories->isNotEmpty())
|
||||
<div class="d-none d-lg-block browse-categories-wrap">
|
||||
<h4 class="section-title">
|
||||
{{ trans('storefront::products.browse_categories') }}
|
||||
</h4>
|
||||
|
||||
@include('public.products.index.browse_categories')
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@include('public.products.index.filter')
|
||||
@include('public.products.index.latest_products')
|
||||
</div>
|
||||
|
||||
<div class="product-search-right" v-cloak>
|
||||
<div class="d-none d-lg-block categories-banner" v-if="brandBanner">
|
||||
<img :src="brandBanner" alt="Brand banner">
|
||||
</div>
|
||||
|
||||
<div class="d-none d-lg-block categories-banner" v-else-if="categoryBanner">
|
||||
<img :src="categoryBanner" alt="Category banner">
|
||||
</div>
|
||||
|
||||
<div class="search-result">
|
||||
<div class="search-result-top">
|
||||
<div class="content-left">
|
||||
<h4 v-if="queryParams.query">
|
||||
{{ trans('storefront::products.search_results_for') }} <span>"@{{ queryParams.query }}"</span>
|
||||
</h4>
|
||||
<h4 v-else-if="queryParams.brand" v-text="initialBrandName"></h4>
|
||||
<h4 v-else-if="queryParams.category" v-text="categoryName"></h4>
|
||||
<h4 v-else-if="queryParams.tag" v-text="initialTagName"></h4>
|
||||
<h4 v-else>{{ trans('storefront::products.shop') }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="content-right">
|
||||
<div class="mobile-view-filter">
|
||||
<i class="las la-sliders-h"></i>
|
||||
{{ trans('storefront::products.filters') }}
|
||||
</div>
|
||||
|
||||
<div class="sorting-bar">
|
||||
<div class="view-type">
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-grid-view"
|
||||
:class="{ active: viewMode === 'grid' }"
|
||||
title="{{ trans('storefront::products.grid_view') }}"
|
||||
@click="viewMode = 'grid'"
|
||||
>
|
||||
<i class="las la-th-large"></i>
|
||||
</button>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-list-view"
|
||||
:class="{ active: viewMode === 'list' }"
|
||||
title="{{ trans('storefront::products.list_view') }}"
|
||||
@click="viewMode = 'list'"
|
||||
>
|
||||
<i class="las la-list"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="form-group m-r-20">
|
||||
<select
|
||||
class="form-control custom-select-option right arrow-black"
|
||||
v-model="queryParams.sort"
|
||||
ref="sortSelect"
|
||||
>
|
||||
@foreach (trans('storefront::products.sort_options') as $key => $value)
|
||||
<option
|
||||
value="{{ $key }}"
|
||||
{{ request('sort', 'latest') === $key ? 'selected' : '' }}
|
||||
>
|
||||
{{ $value }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<select
|
||||
class="form-control custom-select-option right arrow-black"
|
||||
v-model="queryParams.perPage"
|
||||
ref="perPageSelect"
|
||||
>
|
||||
@foreach (trans('storefront::products.per_page_options') as $key => $value)
|
||||
<option
|
||||
value="{{ $key }}"
|
||||
{{ request('perPage', 30) == $key ? 'selected' : '' }}
|
||||
>
|
||||
{{ $value }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-result-middle" :class="{ empty: emptyProducts, loading: fetchingProducts }">
|
||||
<div class="grid-view-products" v-if="viewMode === 'grid'">
|
||||
<product-card-grid-view v-for="product in products.data" :key="product.id" :product="product"></product-card-grid-view>
|
||||
</div>
|
||||
|
||||
<div class="list-view-products" v-if="viewMode === 'list'">
|
||||
<product-card-list-view v-for="product in products.data" :key="product.id" :product="product"></product-card-list-view>
|
||||
</div>
|
||||
|
||||
<div class="empty-message" v-if="! fetchingProducts && emptyProducts">
|
||||
@include('public.products.index.empty_results_logo')
|
||||
|
||||
<h2>{{ trans('storefront::products.no_product_found') }}</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-result-bottom" v-if="! emptyProducts">
|
||||
<span class="showing-results" v-text="showingResults"></span>
|
||||
|
||||
<v-pagination
|
||||
:total-page="totalPage"
|
||||
:current-page="queryParams.page"
|
||||
@page-changed="changePage"
|
||||
v-if="products.total > queryParams.perPage"
|
||||
>
|
||||
</v-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</product-index>
|
||||
@endsection
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user