Merge branch 'master' into issue-4119

Merged
This commit is contained in:
devansh bawari 2020-11-20 10:27:34 +05:30
commit 561d598ae8
50 changed files with 229 additions and 103 deletions

View File

@ -168,17 +168,13 @@ class CheckoutController extends Controller
*/
public function checkMinimumOrder()
{
$cart = Cart::getCart();
$cartBaseSubTotal = (float) $cart->base_sub_total;
$minimumOrderAmount = (float) core()->getConfigData('sales.orderSettings.minimum-order.minimum_order_amount') ?? 0;
$status = $cartBaseSubTotal > $minimumOrderAmount;
$status = Cart::checkMinimumOrder();
return response()->json([
'status' => ! $status ? false : true,
'message' => ! $status ? trans('shop::app.checkout.cart.minimum-order-message', ['amount' => $minimumOrderAmount]) : 'Success',
'message' => ! $status ? trans('shop::app.checkout.cart.minimum-order-message', ['amount' => core()->currency($minimumOrderAmount)]) : 'Success',
'data' => [
'cart' => new CartResource($cart),
]

View File

@ -0,0 +1,52 @@
<?php
namespace Webkul\Admin\Http\Middleware;
use Webkul\Core\Repositories\LocaleRepository;
use Closure;
class Locale
{
/**
* @var LocaleRepository
*/
protected $locale;
/**
* @param \Webkul\Core\Repositories\LocaleRepository $locale
*/
public function __construct(LocaleRepository $locale)
{
$this->locale = $locale;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$locale = request()->get('admin_locale');
if ($locale) {
if ($this->locale->findOneByField('code', $locale)) {
app()->setLocale($locale);
session()->put('admin_locale', $locale);
}
} else {
if ($locale = session()->get('admin_locale')) {
app()->setLocale($locale);
} else {
app()->setLocale(app()->getLocale());
}
}
unset($request['admin_locale']);
return $next($request);
}
}

View File

@ -1,6 +1,6 @@
<?php
Route::group(['middleware' => ['web']], function () {
Route::group(['middleware' => ['web', 'admin_locale']], function () {
Route::prefix(config('app.admin_url'))->group(function () {
Route::get('/', 'Webkul\Admin\Http\Controllers\Controller@redirectToLogin');

View File

@ -3,6 +3,8 @@
namespace Webkul\Admin\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Routing\Router;
use Webkul\Admin\Http\Middleware\Locale;
use Webkul\Core\Tree;
class AdminServiceProvider extends ServiceProvider
@ -12,7 +14,7 @@ class AdminServiceProvider extends ServiceProvider
*
* @return void
*/
public function boot()
public function boot(Router $router)
{
$this->loadRoutesFrom(__DIR__ . '/../Http/routes.php');
@ -29,6 +31,8 @@ class AdminServiceProvider extends ServiceProvider
$this->registerACL();
$router->aliasMiddleware('admin_locale', Locale::class);
$this->app->register(EventServiceProvider::class);
}

View File

@ -16,6 +16,42 @@
<span class="avatar">
</span>
<?php $locale = request()->get('admin_locale') ?: app()->getLocale();?>
<div class="profile-info">
<div class="dropdown-toggle">
<div style="display: inline-block; vertical-align: middle;">
<span class="name">
{{ __('admin::app.datagrid.locale') }}
</span>
@foreach (core()->getAllLocales() as $localeModel)
@if ($localeModel->code == $locale)
<span class="role">
{{ $localeModel->name }}
</span>
@endif
@endforeach
</div>
<i class="icon arrow-down-icon active"></i>
</div>
<div class="dropdown-list bottom-right">
<div class="control-group">
<select class="control" id="locale-switcher" onChange="window.location.href = this.value" style="margin-left: 30px;">
@foreach (core()->getAllLocales() as $localeModel)
<option value="{{ '?admin_locale=' . $localeModel->code }}" {{ ($localeModel->code) == $locale ? 'selected' : '' }}>
{{ $localeModel->name }}
</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="profile-info">
<div class="dropdown-toggle">
<div style="display: inline-block; vertical-align: middle;">

View File

@ -2,9 +2,9 @@
namespace Webkul\Attribute\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\Attribute\Models\Attribute::class,

View File

@ -2,9 +2,9 @@
namespace Webkul\BookingProduct\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\BookingProduct\Models\BookingProduct::class,

View File

@ -2,9 +2,9 @@
namespace Webkul\CMS\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\CMS\Models\CmsPage::class,

View File

@ -2,9 +2,9 @@
namespace Webkul\CartRule\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\CartRule\Models\CartRule::class,

View File

@ -2,9 +2,9 @@
namespace Webkul\CatalogRule\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\CatalogRule\Models\CatalogRule::class,

View File

@ -2,9 +2,9 @@
namespace Webkul\Category\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\Category\Models\Category::class,

View File

@ -293,7 +293,7 @@ class Cart
public function getItemByProduct($data)
{
$items = $this->getCart()->all_items;
foreach ($items as $item) {
if ($item->product->getTypeInstance()->compareOptions($item->additional, $data['additional'])) {
if (isset($data['additional']['parent_id'])) {
@ -577,6 +577,8 @@ class Cart
$cart->items_count = $cart->items->count();
$cart->items_qty = $quantities;
$cart->cart_currency_code = core()->getCurrentCurrencyCode();
$cart->save();
@ -607,7 +609,7 @@ class Cart
if ($validationResult->isItemInactive()) {
$this->removeItem($item->id);
$isInvalid = true;
session()->flash('info', __('shop::app.checkout.cart.item.inactive'));
@ -708,7 +710,7 @@ class Cart
$item->save();
}
Event::dispatch('checkout.cart.calculate.items.tax.after', $cart);
}
@ -1275,4 +1277,20 @@ class Cart
}
}
}
/**
* Check minimum order.
*
* @return boolean
*/
public function checkMinimumOrder(): bool
{
$cart = $this->getCart();
if (! $cart) {
return false;
}
return $cart->checkMinimumOrder();
}
}

View File

@ -3,7 +3,6 @@
namespace Webkul\Checkout\Models;
use Illuminate\Database\Eloquent\Model;
use Webkul\Product\Models\ProductProxy;
use Webkul\Checkout\Contracts\Cart as CartContract;
class Cart extends Model implements CartContract
@ -169,4 +168,18 @@ class Cart extends Model implements CartContract
return true;
}
/**
* Check minimum order.
*
* @return boolean
*/
public function checkMinimumOrder(): bool
{
$minimumOrderAmount = (float) core()->getConfigData('sales.orderSettings.minimum-order.minimum_order_amount') ?? 0;
$cartBaseSubTotal = (float) $this->base_sub_total;
return $cartBaseSubTotal >= $minimumOrderAmount;
}
}

View File

@ -2,9 +2,9 @@
namespace Webkul\Checkout\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\Checkout\Models\Cart::class,

View File

@ -0,0 +1,29 @@
<?php
namespace Webkul\Core\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
class CoreModuleServiceProvider extends BaseModuleServiceProvider
{
public function boot()
{
if ($this->areMigrationsEnabled()) {
$this->registerMigrations();
}
if ($this->areModelsEnabled()) {
$this->registerModels();
$this->registerEnums();
$this->registerRequestTypes();
}
if ($this->areViewsEnabled()) {
$this->registerViews();
}
if ($routes = $this->config('routes', true)) {
$this->registerRoutes($routes);
}
}
}

View File

@ -2,9 +2,7 @@
namespace Webkul\Core\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\Core\Models\Channel::class,

View File

@ -2,9 +2,9 @@
namespace Webkul\Customer\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\Customer\Models\Customer::class,

View File

@ -2,9 +2,9 @@
namespace Webkul\Inventory\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\Inventory\Models\InventorySource::class,

View File

@ -15,7 +15,7 @@ class EventServiceProvider extends ServiceProvider
* @return void
*/
public function boot()
{
{
Event::listen('bagisto.shop.layout.body.after', static function(ViewRenderEventManager $viewRenderEventManager) {
$viewRenderEventManager->addTemplate('paypal::checkout.onepage.paypal-smart-button');
});

View File

@ -1,4 +1,4 @@
@if (request()->route()->getName() == 'shop.checkout.onepage.index')
@if (request()->route()->getName() == 'shop.checkout.onepage.index' && core()->getConfigData('sales.paymentmethods.paypal_smart_button.active'))
<script src="https://www.paypal.com/sdk/js?client-id={{core()->getConfigData('sales.paymentmethods.paypal_smart_button.client_id')}}" data-partner-attribution-id="Bagisto_Cart"></script>
<style>

View File

@ -2,9 +2,9 @@
namespace Webkul\Product\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\Product\Models\Product::class,

View File

@ -2,9 +2,9 @@
namespace Webkul\Sales\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\Sales\Models\Order::class,

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/js/shop.js": "/js/shop.js?id=f9b25f1c2f22de85711d",
"/js/shop.js": "/js/shop.js?id=fd3e9e2c897df46dd84c",
"/css/shop.css": "/css/shop.css?id=45a1e46876af32f30871"
}

View File

@ -230,8 +230,8 @@ class OnepageController extends Controller
$minimumOrderAmount = (int) core()->getConfigData('sales.orderSettings.minimum-order.minimum_order_amount') ?? 0;
if (! ($cart->base_sub_total > $minimumOrderAmount)) {
throw new \Exception(trans('shop::app.checkout.cart.minimum-order-message', ['amount' => $minimumOrderAmount]));
if (! $cart->checkMinimumOrder()) {
throw new \Exception(trans('shop::app.checkout.cart.minimum-order-message', ['amount' => core()->currency($minimumOrderAmount)]));
}
if ($cart->haveStockableItems() && ! $cart->shipping_address) {

View File

@ -9,24 +9,17 @@ export default {
'addClass',
'text',
'cartDetails',
'minimumOrderAmount',
'isMinimumOrderCompleted',
'minimumOrderMessage'
],
methods: {
checkMinimumOrder: function (e) {
let base_sub_total = parseFloat(this.getCartDetails().base_sub_total);
let minimumOrderAmount = parseFloat(this.minimumOrderAmount);
if (! (base_sub_total > minimumOrderAmount)) {
if (! this.isMinimumOrderCompleted) {
e.preventDefault();
window.flashMessages = [{'type': 'alert-warning', 'message': this.minimumOrderMessage}];
this.$root.addFlashMessages();
}
},
getCartDetails: function () {
return JSON.parse(this.cartDetails);
}
}
}

View File

@ -498,7 +498,7 @@ return [
'event' => [
'expired' => 'This event has been expired.'
],
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -492,7 +492,7 @@ return [
'cart-remove-action' => 'Wollen Sie dies wirklich tun?',
'partial-cart-update' => 'Nur einige der Produkte wurden aktualisiert',
'link-missing' => '',
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -498,7 +498,7 @@ return [
'event' => [
'expired' => 'This event has been expired.'
],
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -464,7 +464,7 @@ return [
'event' => [
'expired' => 'This event has been expired.'
],
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -497,7 +497,7 @@ return [
'event' => [
'expired' => 'This event has been expired.'
],
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -17,7 +17,7 @@ return [
'common' => [
'error' => 'Qualcosa è andato storto, per favore prova ancora più tardi.',
'image-upload-limit' => 'La dimensione massima di caricamento dell\'immagine è 2 MB',
'image-upload-limit' => 'La dimensione massima di caricamento dell\'immagine è 2 MB',
'no-result-found' => 'Non abbiamo trovato risultati.'
],
@ -495,7 +495,7 @@ return [
'event' => [
'expired' => 'Questo evento è terminato.'
],
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -16,7 +16,7 @@ return [
'common' => [
'error' => 'エラーが発生しました。しばらく待ってから、再度アクセスしてください。',
'image-upload-limit' => '画像の最大アップロードサイズは2MBです',
'image-upload-limit' => '画像の最大アップロードサイズは2MBです',
],
'home' => [
@ -456,7 +456,7 @@ return [
'cart-remove-action' => '手続きを進めますか。',
'partial-cart-update' => 'Only some of the product(s) were updated',
'link-missing' => '',
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -17,7 +17,7 @@ return [
'common' => [
'error' => 'Something went wrong, please try again later.',
'image-upload-limit' => 'De maximale uploadgrootte van de afbeelding is 2 MB',
'image-upload-limit' => 'De maximale uploadgrootte van de afbeelding is 2 MB',
'no-result-found' => 'We could not find any records.'
],
@ -502,7 +502,7 @@ return [
'event' => [
'expired' => 'This event has been expired.'
],
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -17,7 +17,7 @@ return [
'common' => [
'error' => 'Coś poszło nie tak. Proszę spróbować później.',
'image-upload-limit' => 'Maksymalny rozmiar przesyłanego obrazu to 2 MB',
'image-upload-limit' => 'Maksymalny rozmiar przesyłanego obrazu to 2 MB',
'no-result-found' => 'Nie znaleźliśmy żadnych zapisów.'
],
@ -494,7 +494,7 @@ return [
'event' => [
'expired' => 'To wydarzenie wygasło.'
],
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -487,7 +487,7 @@ return [
'event' => [
'expired' => 'This event has been expired.'
],
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -495,7 +495,7 @@ return [
'event' => [
'expired' => 'Bu eylemin geçerliliği sona erdi.'
],
'minimum-order-message' => 'Your order should be greater than :amount'
'minimum-order-message' => 'Minimum order amount is :amount'
],
'onepage' => [

View File

@ -138,9 +138,8 @@
href="{{ route('shop.checkout.onepage.index') }}"
add-class="btn btn-lg btn-primary"
text="{{ __('shop::app.checkout.cart.proceed-to-checkout') }}"
cart-details="{{ $cart }}"
minimum-order-amount="{{ $minimumOrderAmount }}"
minimum-order-message="{{ __('shop::app.checkout.cart.minimum-order-message', ['amount' => $minimumOrderAmount]) }}">
is-minimum-order-completed="{{ $cart->checkMinimumOrder() }}"
minimum-order-message="{{ __('shop::app.checkout.cart.minimum-order-message', ['amount' => core()->currency($minimumOrderAmount)]) }}">
</proceed-to-checkout>
@endif
</div>

View File

@ -96,9 +96,8 @@
href="{{ route('shop.checkout.onepage.index') }}"
add-class="btn btn-primary btn-lg"
text="{{ __('shop::app.minicart.checkout') }}"
cart-details="{{ $cart }}"
minimum-order-amount="{{ $minimumOrderAmount }}"
minimum-order-message="{{ __('shop::app.checkout.cart.minimum-order-message', ['amount' => $minimumOrderAmount]) }}"
is-minimum-order-completed="{{ $cart->checkMinimumOrder() }}"
minimum-order-message="{{ __('shop::app.checkout.cart.minimum-order-message', ['amount' => core()->currency($minimumOrderAmount)]) }}"
style="color: white;">
</proceed-to-checkout>
</div>

View File

@ -2,9 +2,9 @@
namespace Webkul\SocialLogin\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\SocialLogin\Models\CustomerSocialAccount::class,

View File

@ -2,9 +2,9 @@
namespace Webkul\Tax\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\Tax\Models\TaxCategory::class,

View File

@ -2,9 +2,9 @@
namespace Webkul\User\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\User\Models\Admin::class,

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
{
"/js/velocity.js": "/js/velocity.js?id=1b8afaddd07cc3f668b1",
"/js/velocity.js": "/js/velocity.js?id=4ac9d3094b2372ee0b3e",
"/css/velocity-admin.css": "/css/velocity-admin.css?id=4322502d80a0e4a0affd",
"/css/velocity.css": "/css/velocity.css?id=d1461e1147981876a7fd"
}

View File

@ -1,6 +1,6 @@
<?php
Route::group(['middleware' => ['web']], function () {
Route::group(['middleware' => ['web', 'admin_locale']], function () {
Route::prefix(config('app.admin_url') . '/velocity')->group(function () {
Route::group(['middleware' => ['admin']], function () {
Route::namespace('Webkul\Velocity\Http\Controllers\Admin')->group(function () {

View File

@ -2,9 +2,9 @@
namespace Webkul\Velocity\Providers;
use Konekt\Concord\BaseModuleServiceProvider;
use Webkul\Core\Providers\CoreModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
class ModuleServiceProvider extends CoreModuleServiceProvider
{
protected $models = [
\Webkul\Velocity\Models\Category::class,

View File

@ -74,7 +74,7 @@
'checkoutUrl',
'checkoutText',
'subtotalText',
'minimumOrderAmount',
'isMinimumOrderCompleted',
'minimumOrderMessage'
],
@ -122,10 +122,7 @@
},
checkMinimumOrder: function (e) {
let base_sub_total = parseFloat(this.cartInformation.raw.base_sub_total);
let minimumOrderAmount = parseFloat(this.minimumOrderAmount);
if (! (base_sub_total > minimumOrderAmount)) {
if (! this.isMinimumOrderCompleted) {
e.preventDefault();
window.showAlert(`alert-warning`, 'Warning', this.minimumOrderMessage);
}

View File

@ -9,23 +9,16 @@ export default {
'addClass',
'text',
'cartDetails',
'minimumOrderAmount',
'isMinimumOrderCompleted',
'minimumOrderMessage'
],
methods: {
checkMinimumOrder: function (e) {
let base_sub_total = parseFloat(this.getCartDetails().base_sub_total);
let minimumOrderAmount = parseFloat(this.minimumOrderAmount);
if (! (base_sub_total > minimumOrderAmount)) {
if (! this.isMinimumOrderCompleted) {
e.preventDefault();
window.showAlert(`alert-warning`, 'Warning', this.minimumOrderMessage);
}
},
getCartDetails: function () {
return JSON.parse(this.cartDetails);
}
}
}

View File

@ -9,7 +9,7 @@
checkout-text="{{ __('shop::app.minicart.checkout') }}"
checkout-url="{{ route('shop.checkout.onepage.index') }}"
subtotal-text="{{ __('shop::app.checkout.cart.cart-subtotal') }}"
minimum-order-amount="{{ $minimumOrderAmount }}"
minimum-order-message="{{ __('shop::app.checkout.cart.minimum-order-message', ['amount' => $minimumOrderAmount]) }}">
is-minimum-order-completed="{{ Cart::checkMinimumOrder() }}"
minimum-order-message="{{ __('shop::app.checkout.cart.minimum-order-message', ['amount' => core()->currency($minimumOrderAmount)]) }}">
</mini-cart>
</div>

View File

@ -53,9 +53,8 @@
href="{{ route('shop.checkout.onepage.index') }}"
add-class="theme-btn text-uppercase col-12 remove-decoration fw6 text-center"
text="{{ __('velocity::app.checkout.proceed') }}"
cart-details="{{ $cart }}"
minimum-order-amount="{{ $minimumOrderAmount }}"
minimum-order-message="{{ __('shop::app.checkout.cart.minimum-order-message', ['amount' => $minimumOrderAmount]) }}">
is-minimum-order-completed="{{ $cart->checkMinimumOrder() }}"
minimum-order-message="{{ __('shop::app.checkout.cart.minimum-order-message', ['amount' => core()->currency($minimumOrderAmount)]) }}">
</proceed-to-checkout>
</div>
</div>