Merge branch 'bagisto/master' into improve-have-product-faker

This commit is contained in:
Herbert Maschke 2020-03-30 14:43:30 +02:00
commit 613b3ea523
126 changed files with 6106 additions and 2657 deletions

View File

@ -1,13 +1,13 @@
APP_NAME=Bagisto
APP_ENV=local
APP_VERSION=1.0.0
APP_VERSION=1.1.0
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
APP_TIMEZONE=Asia/Kolkata
APP_TIMEZONE=
APP_LOCALE=en
LOG_CHANNEL=stack
APP_CURRENCY=USD
APP_CURRENCY=
DB_CONNECTION=mysql
DB_HOST=127.0.0.1

View File

@ -1,6 +1,6 @@
APP_NAME=Laravel
APP_ENV=local
APP_VERSION=1.0.0
APP_VERSION=1.1.0
APP_KEY=base64:G4KY3tUsTaY9ONo1n/QyJvVLQZdJDgbIkSJswFK01HE=
APP_DEBUG=true
APP_URL=http://localhost

View File

@ -2,6 +2,199 @@
#### This changelog consists the bug & security fixes and new features being included in the releases listed below.
## **v1.1.0 (24th of March 2020)** - *Release*
* [feature] Added new booking type product.
* [feature] Impletment compare product feature.
* [feature] Impletment compare product feature.
* #2525 [fixed] - Add more settings to the installers
* #2541 [fixed] - Showing product's price with the price including tax
* #2552 [fixed] - error mysql 8
* #2556 [fixed] - Logo and favicon broken
* #2562 [fixed] - error catalog/categories/create
* #2563 [fixed] - error add in cart
* #2567 [fixed] - Error 404 found when click on compare product image
* #2568 [fixed] - Getting exception when update to default theme from the comparison page
* #2572 [fixed] - custom attribute values are not show in comparison product
* #2573 [fixed] - Add to wishlist icon is missing with each product in comparison page
* #2574 [fixed] - Quick view popup should be closed when click add to compare
* #2575 [fixed] - compare feature is not working from the product page for logged In customer
* #2576 [fixed] - Compare icon is missing for new products
* #2577 [fixed] - GUI installer stuck at Migration & Seed
* #2578 [fixed] - Impossible to create the root directory
* #2579 [fixed] - error menu mobile
* #2580 [fixed] - error recently viewed products in mobile
* #2581 [fixed] - admin/configuration/general/design
* #2583 [fixed] - Display 3D product preivew image
* #2584 [fixed] - Not getting root category name, in categories.
* #2585 [fixed] - Product name , description and short description gets removed on editing the product.
* #2586 [fixed] - APP_TIMEZONE and APP_LOCALE values should be available in env file.
* #2587 [fixed] - Getting some warning during installation.
* #2589 [fixed] - Getting exception on editing header content on php 7.4.
* #2596 [fixed] - Allow Email Verification field is given twice, once in Configure->Customers->Setting and in Configure->Admin->Email.Currently if field is enable from any one grid and disable from other grid, then its not working.
* #2597 [fixed] - Not getting email for "Send Inventory Source Notification E-mail".
* #2599 [fixed] - login required when add compare product from the category page
* #2601 [fixed] - all comparable product remove from list only when single product remove
* #2602 [fixed] - Catalog default image height should be equal to the original image in Velocity
* #2604 [fixed] - Not able to make product as comparable from the category page as logged In user
* #2605 [fixed] - Attribute is comparable (yes/no) option is missing when add new attribute
* #2606 [fixed] - custom attributes are not Visible on Product View Page on Front-end
* #2607 [fixed] - Getting exception on editing category for pt_BR locale in php 7.4
* #2608 [fixed] - Getting exception on creating category.
* #2609 [fixed] - product removed from comparison page when update product by name
* #2611 [fixed] - installer error
* #2612 [fixed] - available slots are not showing for current date even if slot time is not expired
* #2613 [fixed] - Propaganistas/Laravel-Intl is abandoned
* #2614 [fixed] - table booking slot time is expired still exist in cart
* #2619 [fixed] - Issue when category slug & product slug are same
* #2621 [fixed] - i create a site and it is up kind of noting works
* #2626 [fixed] - Tax rates zipcode is still required when enable zip range is disabled
* #2630 [fixed] - Error exception when add booking product
* #2634 [fixed] - console error when select slots in default booking
* #2635 [fixed] - Default Booking details remove from edit page for many booking of one day
* #2636 [fixed] - Error alert when add to cart a simple product from the home page
* #2638 [fixed] - customer status is not translated in customer list
* #2639 [fixed] - category slug field should show warning if saved blank header content
* #2643 [fixed] - Getting exception when add appointment booking
* #2645 [fixed] - Error on adding product to cart
* #2649 [fixed] - Incorrect slot time for one booking many days in product page
* #2650 [fixed] - remove slot duration from the booking product page
* #2654 [fixed] - warning should be removed once slot field is selected
* #2658 [fixed] - slot, duration, break time are not saved for appointment booking
* #2660 [fixed] - guest capacity value is not saved in table booking
* #2661 [fixed] - Charged_per drop down value is not updating for table booking
* #2284 [fixed] - Layout issue in pt_BR locale.
* #2468 [fixed] - Guest user is able to checkout if guest checkout is disabled.
* #2517 [fixed] - Product description text gets selected if click on drop down icon on product page
* #2549 [fixed] - Invoices aren't legally valid.
* #2571 [fixed] - compare icon should classify the total compare product added in the comparison page
* #2592 [fixed] - No menu for the logged in user when clicking over comparison
* #2593 [fixed] - Cannot read property 'disabled' of undefined" on filter price
* #2594 [fixed] - After refund quantity of product increases.
* #2595 [fixed] - Category image size issue in velocity theme.
* #2610 [fixed] - some of the attribute values aren't visible in comparison page
* #2616 [fixed] - Tiny Bug on Admin Pages
* #2637 [fixed] - blank admin page if username contains whitespaces in email configuration
* #2640 [fixed] - product moved to cart still showing in wishlist
* #2641 [fixed] - Issue on wishlist page for guest user
* #2644 [fixed] - Add an option to set encryption to none during installation
* #2646 [fixed] - error missing wishlist or compare icon on mobile view
* #2666 [fixed] - fix the UI for booking product in cart page
* #2667 [fixed] - By default wishlist option is selected in cart
* #2670 [fixed] - Booking product should be removed from the cart when selected slot time expired
* #2669 [fixed] - Browser compatibility issue
* #2671 [fixed] - Error on moving booking product to wishlist
* #2672 [fixed] - wrong price calculated in cart for rental booking
* #2674 [fixed] - Rental booking added to cart without selecting date in velocity
* #2677 [fixed] - error on cart when rental booking update from backend
* #2678 [fixed] - UI issue in rental booking product page
* #2693 [fixed] - Booking product page - add to cart button js error
* #2704 [fixed] - product's assigned category can't be removed
* #2707 [fixed] - Getting exception when generate invoice in appointment booking
* #2715 [fixed] - Error message should throw if "To" time is less than "From".
* #2716 [fixed] - After saving the default booking time product selected time for date range changes to 00:00:00 ,because of which not able to book appointment on frontend.
* #2717 [fixed] - Getting error message on adding rental product in cart if rental booking is not available for that day.
* #2722 [fixed] - warning showing when update event booking cart quantity from the product page
* #2723 [fixed] - Compare product icon on header showing counts of compare product but there are no product in compare list.
* #2724 [fixed] - table bookings quantity should update in existing booking added in cart for same slot/date
* #2726 [fixed] - is shop.js the vue framework ??
* #2732 [fixed] - missing product's quick view in category page
## **v1.0.0 (24th of February 2020)** - *Release*
* #2377 [fixed] - Getting exception on creating a new category under any other category.

View File

@ -153,7 +153,7 @@ return [
/*
Application Version
*/
'version' => env('APP_VERSION', '0.1.6'),
'version' => env('APP_VERSION', '1.1.0'),
/**
* Blacklisting attributes while debugging

View File

@ -16,6 +16,9 @@ class CustomerAddress extends JsonResource
{
return [
'id' => $this->id,
'first_name' => $this->first_name,
'last_name' => $this->last_name,
'company_name' => $this->company_name,
'address1' => explode(PHP_EOL, $this->address1),
'country' => $this->country,
'country_name' => core()->country_name($this->country),
@ -27,4 +30,4 @@ class CustomerAddress extends JsonResource
'updated_at' => $this->updated_at,
];
}
}
}

View File

@ -30,6 +30,37 @@ return [
'channel_based' => true,
],
],
], [
'key' => 'general.general.email_settings',
'name' => 'admin::app.admin.system.email-settings',
'sort' => 1,
'fields' => [
[
'name' => 'sender_name',
'title' => 'admin::app.admin.system.email-sender-name',
'type' => 'text',
'validation' => 'required|max:50',
'channel_based' => true,
], [
'name' => 'shop_email_from',
'title' => 'admin::app.admin.system.shop-email-from',
'type' => 'text',
'validation' => 'required|email',
'channel_based' => true,
], [
'name' => 'admin_name',
'title' => 'admin::app.admin.system.admin-name',
'type' => 'text',
'validation' => 'required|max:50',
'channel_based' => true,
], [
'name' => 'admin_email',
'title' => 'admin::app.admin.system.admin-email',
'type' => 'text',
'validation' => 'required|email',
'channel_based' => true,
],
],
], [
'key' => 'general.content',
'name' => 'admin::app.admin.system.content',

View File

@ -13,6 +13,7 @@ class AddressDataGrid extends DataGrid
*/
public $index = 'address_id';
/**
* @var string
*/
@ -168,4 +169,4 @@ class AddressDataGrid extends DataGrid
'method' => 'DELETE',
]);
}
}
}

View File

@ -27,7 +27,8 @@ class CancelOrderNotification extends Mailable
public function build()
{
return $this->to($this->order->customer_email, $this->order->customer_full_name)
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to($this->order->customer_email, $this->order->customer_full_name)
->subject(trans('shop::app.mail.order.cancel.subject'))
->view('shop::emails.sales.order-cancel');
}

View File

@ -36,7 +36,8 @@ class NewAdminNotification extends Mailable
*/
public function build()
{
return $this->to(config('mail.admin.address'))
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to(core()->getAdminEmailDetails()['email'])
->subject(trans('shop::app.mail.order.subject'))
->view('shop::emails.sales.new-admin-order');
}

View File

@ -49,7 +49,8 @@ class NewCustomerNotification extends Mailable
*/
public function build()
{
return $this->to($this->customer->email)
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to($this->customer->email)
->subject(trans('shop::app.mail.customer.new.subject'))
->view('shop::emails.customer.new-customer')->with(['customer' => $this->customer, 'password' => $this->password]);
}

View File

@ -40,7 +40,8 @@ class NewInventorySourceNotification extends Mailable
$inventory = $this->shipment->inventory_source;
return $this->to($inventory->contact_email, $inventory->name)
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to($inventory->contact_email, $inventory->name)
->subject(trans('shop::app.mail.shipment.subject', ['order_id' => $order->increment_id]))
->view('shop::emails.sales.new-inventorysource-shipment');
}

View File

@ -38,7 +38,8 @@ class NewInvoiceNotification extends Mailable
{
$order = $this->invoice->order;
return $this->to($order->customer_email, $order->customer_full_name)
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to($order->customer_email, $order->customer_full_name)
->subject(trans('shop::app.mail.invoice.subject', ['order_id' => $order->increment_id]))
->view('shop::emails.sales.new-invoice');
}

View File

@ -36,7 +36,8 @@ class NewOrderNotification extends Mailable
*/
public function build()
{
return $this->to($this->order->customer_email, $this->order->customer_full_name)
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to($this->order->customer_email, $this->order->customer_full_name)
->subject(trans('shop::app.mail.order.subject'))
->view('shop::emails.sales.new-order');
}

View File

@ -38,7 +38,8 @@ class NewRefundNotification extends Mailable
{
$order = $this->refund->order;
return $this->to($order->customer_email, $order->customer_full_name)
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to($order->customer_email, $order->customer_full_name)
->subject(trans('shop::app.mail.refund.subject', ['order_id' => $order->increment_id]))
->view('shop::emails.sales.new-refund');
}

View File

@ -38,7 +38,8 @@ class NewShipmentNotification extends Mailable
{
$order = $this->shipment->order;
return $this->to($order->customer_email, $order->customer_full_name)
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to($order->customer_email, $order->customer_full_name)
->subject(trans('shop::app.mail.shipment.subject', ['order_id' => $order->increment_id]))
->view('shop::emails.sales.new-shipment');
}

File diff suppressed because it is too large Load Diff

View File

@ -1286,6 +1286,11 @@ return [
'footer-toggle' => 'Toggle footer',
'locale-options' => 'Unit Options',
'weight-unit' => 'Weight Unit',
'email-settings' => 'Email Settings',
'email-sender-name' => 'Email Sender Name',
'shop-email-from' => 'Shop Email Address [For sending emails]',
'admin-name' => 'Admin Name',
'admin-email' => 'Admin Email',
'admin-page-limit' => 'Default Items Per Page (Admin)',
'design' => 'Design',
'admin-logo' => 'Admin Logo',

View File

@ -1,8 +1,40 @@
<?php
return [
'save' => 'صرفه جویی',
'create' => 'ايجاد كردن',
'update' => 'به روز رسانی',
'delete' => 'حذف',
'failed' => 'ناموفق',
'store' => 'فروشگاه',
'image' => 'تصویر',
'no result' => 'نتیجه ای نداره',
'product' => 'تولید - محصول',
'attribute' => 'صفت',
'actions' => 'اقدامات',
'id' => 'ID',
'action' => 'عمل',
'yes' => 'آره',
'no' => 'نه',
'true' => 'درست است، واقعی',
'false' => 'غلط',
'apply' => 'درخواست دادن',
'action' => 'عمل',
'label' => 'برچسب',
'name' => 'نام',
'title' => 'عنوان',
'code' => 'کد',
'type' => 'تایپ کنید',
'required' => 'ضروری',
'unique' => 'منحصر بفرد',
'locale-based' => 'محلی مبتنی بر',
'channel-based' => 'مبتنی بر کانال',
'status' => 'وضعیت',
'select-option' => 'گزینه را انتخاب کنید',
'category' => 'دسته بندی',
'common' => [
'no-result-found' => 'We could not find any records.',
'no-result-found' => 'ما هیچ سابقه ای پیدا نکردیم.',
'country' => 'کشور',
'state' => 'استان',
'true' => 'صحیح',
@ -42,7 +74,8 @@ return [
'tax-categories' => 'دسته بندی مالیات',
'tax-rates' => 'نرخ مالیات',
'promotion' => 'تبلیغات',
'discount' => 'تخفیف'
'discount' => 'تخفیف',
'cms' => 'CMS'
],
'acl' => [
@ -77,7 +110,8 @@ return [
'create' => 'افزودن',
'delete' => 'حذف',
'promotion' => 'تبلیغات',
'cart-rules' => 'قوانین سبد خرید'
'cart-rules' => 'قوانین سبد خرید',
'catalog-rules' => 'قوانین فهرست',
],
'dashboard' => [
@ -92,22 +126,23 @@ return [
'decreased' => ':progress%',
'sales' => 'فروش ها',
'top-performing-categories' => 'دسته بندی های برتر',
'product-count' => ':count تا محصول',
'product-count' => 'تا محصول :count',
'top-selling-products' => 'محصولات فروش بالا',
'sale-count' => ':count تا فروش',
'sale-count' => ' تا فروش :count',
'customer-with-most-sales' => 'مشتری با بیش‌ترین فروش',
'order-count' => ':count تا سفارش',
'revenue' => 'درآمد :total',
'order-count' => 'سفارش :count',
'revenue' => ':total درآمد',
'stock-threshold' => 'تعداد کالای موجود',
'qty-left' => ':qty موجود',
'qty-left' => ':qty سمت چپ',
],
'datagrid' => [
'mass-ops' => [
'method-error' => 'خطا! روش اشتباه تشخیص داده شد، لطفاً پیکربندی کنش جمعی را بررسی کنید',
'delete-success' => 'مورد انتخاب شده :resource با موفقیت حذف شد',
'partial-action' => 'برخی از اقدامات به دلیل محدودیت های سیستم انجام نشد :resource',
'update-success' => 'مورد انتخاب شده :با موفقیت به روزرسانی شد updated',
'delete-success' => 'با موفقیت حذف شد :resource انتخاب',
'partial-action' => ' انجام نشده است :resource برخی از اقدامات به دلیل محدودیت سیستم محدود در',
'update-success' => 'با موفقیت به روز شد :resource انتخاب',
'no-resource' => 'این منبع برای عملکرد کافی نبوده است'
],
'id' => 'شناسه',
@ -116,6 +151,7 @@ return [
'admin-name' => 'نام',
'name' => 'نام',
'fullname' => 'نام کامل',
'direction' => 'جهت',
'type' => 'نوع',
'required' => 'ضروری',
'unique' => 'یکتا',
@ -126,7 +162,11 @@ return [
'hostname' => 'نام میزبان',
'email' => 'پست الکترونیک',
'group' => 'گروه',
'phone' => 'تلفن',
'gender' => 'جنسیت',
'title' => 'عنوان',
'layout' => 'چیدمان',
'url-key' => 'کلید URL',
'comment' => 'نظر',
'product-name' => 'محصول',
'currency-name' => 'نام ارز',
@ -156,34 +196,34 @@ return [
'role' => 'نقش',
'sub-total' => 'زیر مجموع',
'no-of-products' => 'تعداد محصولات',
'attribute-family' => 'Attribute Family',
'starts-from' => 'Starts From',
'ends-till' => 'Ends Till',
'per-cust' => 'Per Customer',
'usage-throttle' => 'Usage Times',
'for-guest' => 'For Guest',
'order_number' => 'Order Number',
'refund-date' => 'Refund Date',
'refunded' => 'Refunded',
'start' => 'Start',
'end' => 'End',
'active' => 'Active',
'inactive' => 'Inactive',
'true' => 'True',
'false' => 'False',
'approved' => 'Approved',
'pending' => 'Pending',
'disapproved' => 'Disapproved',
'coupon-code' => 'Coupon Code',
'times-used' => 'Times Used',
'created-date' => 'Created Date',
'expiration-date' => 'Expiration Date',
'edit' => 'Edit',
'delete' => 'Delete',
'view' => 'View',
'attribute-family' => 'خانواده ویژگی',
'starts-from' => 'از شروع می شود',
'ends-till' => 'تا پایان می یابد',
'per-cust' => 'به ازای هر مشتری',
'usage-throttle' => 'بار استفاده',
'for-guest' => 'برای مهمان',
'order_number' => 'شماره سفارش',
'refund-date' => 'تاریخ بازپرداخت',
'refunded' => 'بازپرداخت',
'start' => 'شروع کنید',
'end' => 'پایان',
'active' => 'فعال',
'inactive' => 'غیر فعال',
'true' => 'واقعی',
'false' => 'غلط',
'approved' => 'تایید شده',
'pending' => 'در انتظار',
'disapproved' => 'رد شد',
'coupon-code' => 'کد کوپن',
'times-used' => 'بار استفاده شده است',
'created-date' => 'تاریخ ایجاد شده',
'expiration-date' => 'تاریخ ایجاد شده',
'edit' => 'ویرایش کنید',
'delete' => 'حذف',
'view' => 'چشم انداز',
'rtl' => 'RTL',
'ltr' => 'LTR',
'update-status' => 'Update Status'
'update-status' => 'وضعیت به روز رسانی'
],
'account' => [
@ -271,7 +311,7 @@ return [
'sales' => [
'orders' => [
'title' => 'سفارشات',
'view-title' => 'سفارش #:order_id',
'view-title' => '#:order_id سفارش',
'cancel-btn-title' => 'لغو',
'shipment-btn-title' => 'کشتی',
'invoice-btn-title' => 'صورت حساب',
@ -282,6 +322,13 @@ return [
'order-info' => 'اطلاعات سفارش',
'order-date' => 'تاریخ سفارش',
'order-status' => 'وضعیت سفارش',
'order-status-canceled' => 'لغو شد',
'order-status-closed' => 'بسته شد',
'order-status-fraud' => 'تقلب',
'order-status-pending' => 'در انتظار',
'order-status-pending-payment' => 'در انتظار پرداخت',
'order-status-processing' => 'در حال پردازش',
'order-status-success' => 'تکمیل شد',
'channel' => 'کانال',
'customer-name' => 'نام مشتری',
'email' => 'پست الکترونیگ',
@ -302,11 +349,11 @@ return [
'product-name' => 'نام محصول',
'qty' => 'مقدار',
'item-status' => 'وضعیت مورد',
'item-ordered' => 'سفارش (:qty_ordered)',
'item-invoice' => 'صورت حساب (:qty_invoiced)',
'item-shipped' => 'حمل شده (:qty_shipped)',
'item-canceled' => 'لغو شده (:qty_canceled)',
'item-refunded' => 'Refunded (:qty_refunded)',
'item-ordered' => '(:qty_ordered) سفارش',
'item-invoice' => '(:qty_invoiced) صورت حساب',
'item-shipped' => '(:qty_shipped) حمل شده',
'item-canceled' => '(:qty_canceled) لغو شده',
'item-refunded' => '(:qty_refunded) بازپرداخت',
'price' => 'قیمت',
'total' => 'کل',
'subtotal' => 'فرعی',
@ -321,8 +368,9 @@ return [
'total-refunded' => 'بازپرداخت کل',
'total-due' => 'بدهی کل',
'cancel-confirm-msg' => 'مطمئن هستید که می خواهید این سفارش را لغو کنید ؟',
'refunds' => 'Refunds',
'refunded' => 'Refunded'
'refunds' => 'بازپرداخت',
'refund-btn-title' => 'بازپرداخت',
'refunded' => 'بازپرداخت'
],
'invoices' => [
@ -340,7 +388,7 @@ return [
'qty' => 'مقدار',
'qty-ordered' => 'سفارش داده شده',
'qty-to-invoice' => 'مقدار به فاکتور',
'view-title' => 'صورت حساب #:invoice_id',
'view-title' => '#:invoice_id صورت حساب',
'bill-to' => 'صورت حساب به',
'ship-to' => 'حمل به',
'print' => 'چاپ',
@ -369,33 +417,34 @@ return [
'inventory-source' => 'منبع موجودی',
'carrier-title' => 'عنوان حامل',
'tracking-number' => 'شماره پیگیری',
'view-title' => 'حمل و نقل #:shipment_id',
'view-title' => '#:shipment_id حمل و نقل',
'creation-error' => 'حمل و نقل برای این سفارش ایجاد نمی شود.',
'order-error' => 'ایجاد محموله سفارش مجاز نیست.',
'quantity-invalid' => 'مقدار درخواستی نامعتبر است یا در دسترس نیست.',
],
'refunds' => [
'title' => 'Refunds',
'title' => 'بازپرداخت',
'id' => 'Id',
'add-title' => 'Create Refund',
'save-btn-title' => 'Refund',
'order-id' => 'Order Id',
'qty-ordered' => 'Qty Ordered',
'qty-to-refund' => 'Qty To Refund',
'refund-shipping' => 'Refund Shipping',
'adjustment-refund' => 'Adjustment Refund',
'adjustment-fee' => 'Adjustment Fee',
'update-qty' => 'Update Quantities',
'invalid-qty' => 'Found invalid quantity for return items.',
'refund-limit-error' => 'The most money available to refund is :amount.',
'refunded' => 'Refunded',
'date' => 'Refund Date',
'customer-name' => 'Customer Name',
'status' => 'Status',
'action' => 'Action',
'view-title' => 'Refund #:refund_id',
'invalid-refund-amount-error' => 'Refund amount should be non zero.'
'add-title' => 'بازپرداخت ایجاد کنید',
'save-btn-title' => 'بازپرداخت',
'order-id' => 'شماره سفارش',
'qty-ordered' => 'تعداد سفارشات',
'qty-to-refund' => 'مقدار برای بازپرداخت',
'refund-shipping' => 'ارسال بازپرداخت',
'adjustment-refund' => 'بازپرداخت تنظیم',
'adjustment-fee' => 'هزینه تنظیم',
'update-qty' => 'مقادیر را به روز کنید',
'invalid-qty' => 'مقدار نامعتبر برای موارد برگشتی یافت شد',
'refund-limit-error' => ' دلار است :amount بیشترین پول برای بازپرداخت ',
'refunded' => 'بازپرداخت',
'date' => 'تاریخ بازپرداخت',
'customer-name' => 'نام مشتری',
'status' => 'وضعیت',
'action' => 'عمل',
'view-title' => ' #:refund_id بازپرداخت',
'invalid-refund-amount-error' => 'مبلغ بازپرداخت باید صفر نباشد.'
]
],
@ -425,6 +474,8 @@ return [
'price' => 'قیمت',
'weight' => 'وزن',
'status' => 'وضعیت',
'enabled' => 'فعال شده است',
'disabled' => 'معلول',
'add-variant-title' => 'افزودن نوع',
'variant-already-exist-message' => 'گزینه های مختلف با همان ویژگی های موجود در حال حاضر وجود دارد.',
'add-image-btn-title' => 'افزودن تصویثر',
@ -435,6 +486,18 @@ return [
'images' => 'تصاویر',
'inventories' => 'موجودی ها',
'variations' => 'تغییرات',
'downloadable' => 'اطلاعات قابل بارگیری',
'links' => 'پیوندها',
'add-link-btn-title' => 'پیوند را اضافه کنید',
'samples' => 'نمونه ها',
'add-sample-btn-title' => 'نمونه را اضافه کنید',
'downloads' => 'بارگیری مجاز',
'file' => 'فایل',
'sample' => 'نمونه',
'upload-file' => 'آپلود فایل',
'url' => 'Url',
'sort-order' => 'ترتیب مرتب سازی',
'browse-file' => 'پرونده را مرور کنید',
'product-link' => 'محصولات مرتبط',
'cross-selling' => 'فروش متقابل',
'up-selling' => 'فروش بالا',
@ -442,9 +505,13 @@ return [
'product-search-hint' => 'شروع به تایپ نام محصول کنید',
'no-result-found' => 'محصولاتی با همین نام یافت نشد',
'searching' => 'جست و جو ...',
'bundle-items' => 'Bundle Items',
'add-option-btn-title' => 'Add Option',
'option-title' => 'Option Title',
'grouped-products' => 'محصولات گروه بندی شده',
'search-products' => 'جستجوی محصولات',
'no-result-found' => 'محصولاتی با همین نام یافت نشد',
'channel' => 'کانالها',
'bundle-items' => 'موارد بسته بندی',
'add-option-btn-title' => 'گزینه را اضافه کنید',
'option-title' => 'عنوان گزینه',
'input-type' => 'Input Type',
'is-required' => 'Is Required',
'select' => 'Select',
@ -471,25 +538,26 @@ return [
'multiselect' => 'Multiselect',
'datetime' => 'Datetime',
'date' => 'Date',
'label' => 'Label',
'admin' => 'Admin',
'options' => 'Options',
'label' => 'برچسب',
'admin' => 'مدیر',
'options' => 'گزینه ها',
'position' => 'موقعیت',
'add-option-btn-title' => 'افزودن گزینه',
'validations' => 'اعتبار سنجی ها',
'input_validation' => 'اعتبار سنجی ورودی',
'is_required' => 'Is Required',
'is_unique' => 'Is Unique',
'number' => 'Number',
'decimal' => 'Decimal',
'email' => 'Email',
'is_required' => 'مورد نیاز است',
'is_unique' => 'منحصر به فرد است',
'number' => 'عدد',
'decimal' => 'اعشار',
'email' => 'پست الکترونیک',
'url' => 'URL',
'configuration' => 'Configuration',
'status' => 'Status',
'configuration' => 'پیکربندی',
'status' => 'وضعیت',
'yes' => 'بله',
'no' => 'خیر',
'value_per_locale' => 'مقدار در هر ممحل',
'value_per_channel' => 'مقدار در هر کانال',
'value_per_channel' => 'مقدار در هر کانال',
'is_filterable' => 'استفاده در Navigation Layered',
'is_configurable' => 'برای ایجاد یک محصول قابل تنظیم استفاده کنید',
'admin_name' => 'نام مدیر',
@ -501,7 +569,11 @@ return [
'text-swatch' => 'متن Swatch',
'swatch' => 'Swatch',
'image' => 'تصویر',
'file' => 'فایل'
'file' => 'فایل',
'checkbox' => 'Checkbox',
'use_in_flat' => "در جدول تخت محصول ایجاد کنید",
'is_comparable' => "ویژگی قابل مقایسه است",
'default_null_option' => 'گزینه پیش فرض خالی ایجاد کنید',
],
'families' => [
'title' => 'خانواده ها',
@ -545,6 +617,8 @@ return [
'meta_description' => 'توضیحات متا',
'meta_keywords' => 'کلیدواژه ها متا',
'image' => 'تصویر',
'filterable-attributes' => 'ویژگی های فیلتر',
'attributes' => 'ویژگی های',
]
],
@ -592,6 +666,7 @@ return [
'edit-button-title' => 'ویرایش نرخ'
],
'zip_code' => 'کد پستی',
'is_zip' => 'محدوده Zip را فعال کنید',
],
'sales' => [
@ -610,10 +685,12 @@ return [
'title' => 'محل ها',
'add-title' => 'افزودن محل',
'edit-title' => 'ویرایش محل',
'add-title' => 'محل را اضافه کنید',
'save-btn-title' => 'ذخیره محل',
'general' => 'عمومی',
'code' => 'کد',
'name' => 'نام',
'direction' => 'جهت',
'create-success' => 'محل با موفقیت ایجاد شد',
'update-success' => 'محل با موفقیت به روز شد.',
'delete-success' => 'محل با موفقیت حذف شد.',
@ -650,6 +727,8 @@ return [
'source_currency' => 'منبع ارز',
'target_currency' => 'هدف ارز',
'rate' => 'نرخ',
'exchange-class-not-found' => 'کلاس نرخ ارز :service یافت نشد',
'update-rates' => ' به روز کنید :service نرخ ها را با استفاده از',
'create-success' => 'نرخ ارز با موفقیت ایجاد شد.',
'update-success' => 'نرخ ارز با موفقیت به روز شد.',
'delete-success' => 'نرخ ارز با موفقیت حذف شد.',
@ -712,10 +791,16 @@ return [
'update-success' => 'کانال با موفقیت به روز شد.',
'delete-success' => 'کانال با موفقیت حذف شد.',
'last-delete-error' => 'حداقل یک کانال مورد نیاز است.',
'seo' => 'SEO صفحه اصلی',
'seo-title' => 'عنوان Meta',
'seo-description' => 'شرح Meta',
'seo-keywords' => 'کلید واژه ها Meta',
],
'sliders' => [
'title' => 'عنوان',
'name' => 'Name',
'name' => 'نام',
'add-title' => 'افزودن اسلاید',
'edit-title' => 'ویرایش اسلایدر',
'save-btn-title' => 'ذخیره اسلایدر',
@ -730,6 +815,7 @@ return [
'delete-success' => 'آخرین اسلایدر حذف نمی شود',
'delete-fail' => 'اسلایدر با موفقیت حذف شد'
],
'tax-categories' => [
'title' => 'دسته بندی های مالیات',
'add-title' => 'افزودن دسته بندی مالیات',
@ -752,6 +838,7 @@ return [
'atleast-one' => 'آخرین دسته مالیاتی را نمی توان حذف کرد',
'delete' => 'دسته بندی مالیات با موفقیت حذف شد'
],
'tax-rates' => [
'title' => 'نرخ مالیات',
'add-title' => 'افزودن نرخ مالیات',
@ -771,6 +858,7 @@ return [
'edit-button-title' => 'ویرایش نرخ'
],
'zip_code' => 'کد پستی',
'is_zip' => ' را فعال کنید Zip محدوده',
'create-success' => 'نرخ مالیات با موفقیت ایجاد شد',
'create-error' => 'نمی توان نرخ مالیات ایجاد کرد',
'update-success' => 'نرخ مالیات با موفقیت به روز شد',
@ -789,12 +877,43 @@ return [
'edit-title' => 'ویرایش گروه',
'save-btn-title' => 'ذخیره گروه',
'title' => 'گروه ها',
'save-btn-title' => 'ذخیره گروه',
'code' => 'کد',
'name' => 'نام',
'is_user_defined' => 'تعریف شده توسط کاربر',
'yes' => 'بله'
],
'addresses' => [
'title' => ':customer_name لیست آدرس های ',
'vat_id' => 'id وات',
'create-title' => 'آدرس مشتری را ایجاد کنید',
'edit-title' => 'آدرس مشتری را به روز کنید',
'title-orders' => ':customer_name لیست سفارشات ',
'address-list' => 'لیست آدرس',
'order-list' => 'لیست سفارشات',
'address-id' => 'ID نشانی',
'address-1' => 'آدرس 1',
'city' => 'شهر',
'state-name' => 'دولت',
'country-name' => 'کشور',
'postcode' => 'کد پستی',
'default-address' => 'آدرس پیش فرض',
'yes' => 'آره',
'not-approved' => 'مورد تایید نیست',
'no' => 'نه',
'dash' => '-',
'delete' => 'حذف',
'create-btn-title' => 'اضافه کردن آدرس',
'save-btn-title' => 'ذخیره آدرس',
'general' => 'عمومی',
'success-create' => 'آدرس مشتری با موفقیت ایجاد شد Success:',
'success-update' => 'آدرس مشتری با موفقیت به روز شد Success:',
'success-delete' => 'آدرس مشتری با موفقیت حذف شد Success:',
'success-mass-delete' => 'آدرس های انتخاب شده با موفقیت حذف شدند Success:',
'error-create' => 'آدرس مشتری ایجاد نشده است Error:',
],
'note' => [
'title' => 'افزودن یادداشت',
'save-note' => 'ذخیره یادداشت',
@ -818,13 +937,14 @@ return [
'state' => 'استان',
'select-state' => 'یک منطقه ، ایالت یا استان را انتخاب کنید.',
'country' => 'کشور',
'other' => 'Other',
'other' => 'دیگر',
'male' => 'مرد',
'female' => 'زن',
'phone' => 'تلفن',
'group-default' => 'نمی توان گروه پیش فرض را حذف کرد.',
'edit-help-title' => 'ویرایش مشتری',
'delete-help-title' => 'حذف مشتری',
'addresses' => 'Addresses',
'addresses' => 'آدرس ها',
'mass-destroy-success' => 'مشتریان با موفقیت حذف شدند',
'mass-update-success' => 'مشتریان با موفقیت به روز شدند',
'status' => 'وضعیت',
@ -857,91 +977,137 @@ return [
],
'promotion' => [
'catalog-rule' => 'قوانین کاتالوگ',
'cart-rule' => 'قوانین سبد خرید',
'add-catalog-rule' => 'افزودن قانون کاتالوگ',
'add-cart-rule' => 'افزودن قانون سبد خرید',
'edit-cart-rule' => 'ویرایش قانون کاتالوگ',
'edit-catalog-rule' => 'ویرایش قانون سبد خرید',
'create-catalog-rule' => 'ایجاد قانون کاتالوگ',
'create-cart-rule' => 'ایجاد قانون سبد خرید',
'save-btn-title' => 'ایجاد',
'edit-btn-title' => 'ویرایش',
'save' => 'ذخیره',
'select-attr' => 'انتخاب ویژگی',
'select-attr-fam' => 'انتخاب خانواده ویژگی',
'select-cart-attr' => 'انتخاب ویژگی سبد خرید',
'add_condition' => 'افزودن شرط',
'global_labels' => 'برچسب های جهانی',
'general-info' => [
'name' => 'نام نقش',
'description' => 'توضیحات',
'starts-from' => 'شروع',
'ends-till' => 'پایان',
'channels' => 'کانال ها',
'channels-req' => 'کانال ها',
'cust-groups' => 'گروه های مشتری',
'priority' => 'اولویت',
'add-condition' => 'افزودن شرایط',
'disc_amt' => 'مقدار تخفیف',
'disc_percent' => 'درصد تخفیف',
'is-coupon' => 'از کوپن استفاده کنید',
'is-coupon-yes' => 'بله',
'is-coupon-no' => 'خیر',
'uses-per-cust' => 'استفاده می شود برای هر مشتری',
'all' => 'همه',
'any' => 'هیچ',
'end-other-rules' => 'پایان قوانین دیگر',
'status' => 'فعال است',
'all-conditions-true' => 'به فرض همه شرایط صحیح است',
'assuming' => 'با فرض اینکه',
'conditions' => 'شرایط',
'apply' => 'درخواست دادن',
'are' => 'هستند',
'true' => 'صحیح',
'false' => 'غلط',
'limit' => 'محدودیت استفاده',
'specific-coupon' => 'کوپن خاص (چک) / خودکار تولید شده (بررسی نشده)',
'free-shipping' => 'ارسال رایگان',
'is-guest' => 'برای مهمانان',
'disc_qty' => 'حداکثر. مقدار مجاز برای تخفیف',
'test-mode' => 'انتخاب کنید چگونه شرایط را آزمایش کنیم',
'labels' => 'برچسب',
'information' => 'اطلاعات',
'actions' => 'عملیات',
'coupons' => 'کوپن ها'
],
'status' => [
'success' => 'موفقیت! قانون ایجاد شده است',
'success-coupon' => 'موفقیت! قانون به همراه کوپن ایجاد شده است',
'failed' => 'خطا! نتوانست قانون را ایجاد کند',
'update-success' => 'موفقیت! قانون به روز شد',
'update-coupon-success' => 'موفقیت! قانون به همراه کوپن به روز شد',
'update-failed' => 'خطا! نمی توان بروزرسانی کرد',
'delete-success' => 'موفق! قانون حذف شد',
'delete-failed' => 'خطا! حذف نمی شود',
'coupon-applied' => 'کوپن مورد استفاده',
'coupon-failed' => 'کوپن نتوانست اعمال شود',
'no-coupon' => '* کوپن قابل استفاده نیست',
'coupon-removed' => 'کوپن با موفقیت حذف شد',
'coupon-remove-failed' => 'حذف کوپن انجام نشد',
'duplicate-coupon' => 'کوپن قبلاً وجود دارد ، لطفاً با یک کوپن دیگر دوباره امتحان کنید'
],
'catalog' => [
'cart-rules' => [
'title' => 'قوانین سبد خرید',
'add-title' => 'قانون سبد خرید را اضافه کنید',
'edit-title' => 'تنظیم قانون سبد خرید',
'save-btn-title' => 'صرفه جویی در قانون سبد خرید',
'rule-information' => 'اطلاعات قانون',
'name' => 'نام',
'description' => 'توضیحات',
'apply-percent' => 'به عنوان درصد اعمال شود',
'apply-fixed' => 'به عنوان مقدار ثابت اعمال شود',
'adjust-to-percent' => 'تنظیم به درصد',
'adjust-to-value' => 'مقدار تخفیف را تنظیم کنید',
'condition-missing' => 'لطفا شرایط را بررسی کنید ، برخی از مقادیر ممکن است وجود نداشته باشد'
'description' => 'شرح',
'status' => 'وضعیت',
'is-active' => 'قاعده سبد خرید فعال است',
'channels' => 'کانالها',
'customer-groups' => 'گروه های مشتری',
'coupon-type' => 'نوع کوپن',
'no-coupon' => 'بدون کوپن',
'specific-coupon' => 'کوپن خاص',
'auto-generate-coupon' => 'تولید کوپن خودکار',
'no' => 'نه',
'yes' => 'آره',
'coupon-code' => 'کد کوپن',
'uses-per-coupon' => 'از هر کوپن استفاده می کند',
'uses-per-customer' => 'از هر مشتری استفاده می کند',
'uses-per-customer-control-info' => 'فقط برای ورود به سیستم در مشتریان استفاده می شود',
'from' => 'از جانب',
'to' => 'به',
'priority' => 'اولویت',
'conditions' => 'شرایط',
'condition-type' => 'نوع وضعیت',
'all-conditions-true' => 'همه شرایط صحیح است',
'any-condition-true' => 'هر شرایطی درست است',
'add-condition' => 'شرط را اضافه کنید',
'choose-condition-to-add' => 'شرطی را برای اضافه کردن انتخاب کنید',
'cart-attribute' => 'ویژگی سبد خرید',
'subtotal' => 'فرعی',
'total-items-qty' => 'تعداد کل موارد',
'total-weight' => 'وزن کل',
'payment-method' => 'روش پرداخت',
'shipping-method' => 'روش حمل و نقل',
'shipping-postcode' => 'حمل و نقل پستی / کد پستی',
'shipping-state' => 'کشور حمل و نقل',
'shipping-country' => 'کشور حمل و نقل',
'cart-item-attribute' => 'ویژگی مورد سبد خرید',
'price-in-cart' => 'قیمت در سبد خرید',
'qty-in-cart' => 'کمیت در سبد خرید',
'product-attribute' => 'ویژگی محصول',
'attribute-name-children-only' => '(فقط کودکان) :attribute_name',
'attribute-name-parent-only' => '(فقط والدین) :attribute_name' ,
'is-equal-to' => 'برابر است با',
'is-not-equal-to' => 'مساوی نیست',
'equals-or-greater-than' => 'برابر یا بیشتر از',
'equals-or-less-than' => 'برابر یا کمتر از',
'greater-than' => 'بزرگتر از',
'less-than' => 'کمتر از',
'contain' => 'حاوی',
'contains' => 'حاوی',
'does-not-contain' => 'شامل نمی شود',
'actions' => 'اقدامات',
'action-type' => 'نوع عمل',
'percentage-product-price' => 'درصد قیمت محصول',
'fixed-amount' => 'مقدار ثابت',
'fixed-amount-whole-cart' => 'مقدار ثابت به سبد خرید',
'buy-x-get-y-free' => 'خرید X دریافت Y رایگان',
'discount-amount' => 'مقدار تخفیف',
'discount-quantity' => 'حداکثر مقدار مجاز برای تخفیف',
'discount-step' => 'مقدار X را بخرید',
'free-shipping' => 'ارسال رایگان',
'apply-to-shipping' => 'ارسال به حمل و نقل',
'coupon-codes' => 'کدهای کوپن',
'coupon-qty' => 'QTY کوپن',
'code-length' => 'طول کد',
'code-format' => 'قالب کد',
'alphanumeric' => 'الفبایی',
'alphabetical' => 'الفبایی',
'numeric' => 'عددی',
'code-prefix' => 'پیشوند کد',
'code-suffix' => 'کد سوفیکس',
'generate' => 'تولید می کنند',
'cart-rule-not-defind-error' => 'قانون سبد خرید تعریف نشده است',
'mass-delete-success' => 'همه کوپن های انتخاب شده با موفقیت حذف شدند.',
'end-other-rules' => 'قوانین دیگر را پایان دهید',
'children-categories' => '(دسته بندی ها (فقط کودکان',
'parent-categories' => '(دسته ها (فقط والدین',
'categories' => 'دسته بندی ها',
'attribute_family' => 'خانواده ویژگی'
],
'cart' => [
'buy-atleast' => 'حداقل بخرید',
'apply-to-shipping' => 'درخواست حمل و نقل'
'catalog-rules' => [
'title' => 'قوانین فهرست',
'add-title' => 'قانون کاتالوگ را اضافه کنید',
'edit-title' => 'تنظیم قانون کاتالوگ',
'save-btn-title' => 'ذخیره قانون کاتالوگ',
'rule-information' => 'اطلاعات قانون',
'name' => 'نام',
'description' => 'شرح',
'status' => 'وضعیت',
'is-active' => 'قانون کاتالوگ فعال است',
'channels' => 'کانالها',
'customer-groups' => 'گروه های مشتری',
'no' => 'نه',
'yes' => 'آره',
'from' => 'از جانب',
'to' => 'به',
'priority' => 'اولویت',
'conditions' => 'شرایط',
'condition-type' => 'نوع وضعیت',
'all-conditions-true' => 'همه شرایط صحیح است',
'any-condition-true' => 'هر شرایطی درست است',
'add-condition' => 'شرط را اضافه کنید',
'choose-condition-to-add' => 'شرطی را برای اضافه کردن انتخاب کنید',
'product-attribute' => 'ویژگی محصول',
'attribute-name-children-only' => ' (فقط کودکان) :attribute_name',
'attribute-name-parent-only' => '(فقط والدین) :attribute_name',
'is-equal-to' => 'برابر است با',
'is-not-equal-to' => 'مساوی نیست',
'equals-or-greater-than' => 'برابر یا بیشتر از',
'equals-or-less-than' => 'برابر یا کمتر از',
'greater-than' => 'بزرگتر از',
'less-than' => 'کمتر از',
'contain' => 'حاوی',
'contains' => 'حاوی',
'does-not-contain' => 'شامل نمی شود',
'actions' => 'اقدامات',
'action-type' => 'نوع عمل',
'percentage-product-price' => 'درصد قیمت محصول',
'fixed-amount' => 'مقدار ثابت',
'fixed-amount-whole-cart' => 'مقدار ثابت به فهرست کامل',
'buy-x-get-y-free' => 'خرید X دریافت Y رایگان',
'discount-amount' => 'مقدار تخفیف',
'mass-delete-success' => 'همه فهرست انتخابی کوپن ها با موفقیت حذف شدند',
'end-other-rules' => 'قوانین دیگر را پایان دهید',
'categories' => 'دسته بندی ها',
'attribute_family' => 'خانواده ویژگی'
]
],
@ -985,7 +1151,7 @@ return [
'csv' => 'CSV',
'xls' => 'XLS',
'file' => 'File',
'upload-error' => 'پرونده باید یک نوع از نوع ها باشد: xls, xlsx, csv.',
'upload-error' => ':xls, xlsx, csv. پرونده باید یک نوع از نوع ها باشد',
'duplicate-error' => 'شناسه باید شناسه منحصر به فرد ، شناسه تکراری :identifier در سطر :position.',
'enough-row-error' => 'ردیف پرونده کافی نیست',
'allowed-type' => 'نوع مجاز :',
@ -994,25 +1160,60 @@ return [
'illegal-format' => 'خطا! این نوع قالب یا پشتیبانی نمی شود یا فرمت غیرقانونی آن است'
],
'cms' => [
'pages' => [
'general' => 'عمومی',
'seo' => 'SEO',
'pages' => 'صفحات',
'title' => 'صفحات',
'add-title' => 'اضافه کردن صفحه',
'content' => 'محتوا',
'url-key' => 'کلید URL',
'channel' => 'کانالها',
'locale' => 'محل های محلی',
'create-btn-title' => 'صفحه را ذخیره کن',
'edit-title' => 'ویرایش صفحه',
'edit-btn-title' => 'صفحه را ذخیره کن',
'create-success' => 'صفحه با موفقیت ایجاد شد',
'create-partial' => 'برخی از صفحات درخواست شده در حال حاضر وجود دارد',
'create-failure' => 'تمام صفحات درخواست شده در حال حاضر وجود دارد',
'update-success' => 'صفحه با موفقیت به روز شد',
'update-failure' => 'صفحه نمی تواند به روز شود',
'page-title' => 'عنوان صفحه',
'layout' => 'چیدمان',
'meta_keywords' => 'کلید واژه ها Meta',
'meta_description' => 'شرح Meta',
'meta_title' => 'عنوان Meta',
'delete-success' => 'صفحه CMS با موفقیت حذف شد',
'delete-failure' => 'صفحه CMS حذف نمی شود',
'preview' => 'پیش نمایش',
'one-col' => '<div class="mt-10">Use class: <b>"static-container one-column"</b> برای یک طرح ستون</div>',
'two-col' => '<div class="mt-10">Use class: <b>"static-container two-column"</b> برای طرح دو ستون</div>',
'three-col' => '<div class="mt-10">Use class: <b>"static-container three-column"</b> برای طرح سه ستون</div>',
'helper-classes' => 'کلاسهای یاور'
]
],
'response' => [
'being-used' => 'این منبع :name استفاده می شود در منبع :source',
'being-used' => ' مورد استفاده قرار می گیرد :source در :name این منبع',
'cannot-delete-default' => 'کانال پیش فرض حذف نمی شود',
'create-success' => ':name با موفقیت ایجاد شد',
'update-success' => ':name با موفقیت به روز شد.',
'delete-success' => ':name با موفقیت حذف شد',
'create-success' => ' با موفقیت ایجاد شد :name',
'update-success' => ' با موفقیت به روز شد :name',
'delete-success' => 'با موفقیت حذف شد :name',
'delete-failed' => 'هنگام حذف :name خطایی روی داد.',
'last-delete-error' => 'حداقل یک :name لازم است.',
'user-define-error' => 'نمی توان :name سیستم را حذف کرد.',
'attribute-error' => ':name در محصولات قابل تنظیم استفاده می شود.',
'attribute-product-error' => ':name در محصولات استفاده می شود.',
'customer-associate' => ':name نمی توان حذف کرد زیرا مشتری با این گروه در ارتباط است.',
'attribute-error' => 'در محصولات قابل تنظیم استفاده می شود :name ' ,
'attribute-product-error' => ' در محصولات استفاده می شود :name',
'customer-associate' => ' نمی توان حذف کرد زیرا مشتری با این گروه در ارتباط است :name',
'currency-delete-error' => 'این ارز به عنوان ارز پایه کانال تنظیم شده است بنابراین نمی توان آن را حذف کرد.',
'upload-success' => ':name با موفقیت بارگذاری شد.',
'upload-success' => ' با موفقیت بارگذاری شد :name',
'delete-category-root' => 'نمی توان دسته اصلی را حذف کرد',
'create-root-failure' => 'طبقه بندی با ریشه نام در حال حاضر وجود دارد',
'cancel-success' => ':name با موفقیت لغو شد.',
'cancel-error' => ':name قابل لغو نیست.',
'already-taken' => ':name قبلا گرفته شده.'
'cancel-success' => ' با موفقیت لغو شد :name',
'cancel-error' => ' قابل لغو نیست :name',
'already-taken' => ' قبلا گرفته شده :name',
'order-pending' => 'حساب حذف نمی شود زیرا برخی از سفارش ها حالت معلق یا در حال پردازش هستند'
],
'footer' => [
@ -1020,9 +1221,29 @@ return [
],
'admin' => [
'emails' => [
'email' => 'پست الکترونیک',
'notification_label' => 'اطلاعیه',
'notifications' => [
'verification' => 'خدمات ارائه شده بفرست',
'registration' => 'ثبت نام از طریق ایمیل',
'customer' => 'ارسال ایمیل به مشتری',
'new-order' => 'ارسال تأییدیه سفارش ایمیل',
'new-admin' => 'ارسال ایمیل دعوت نامه به مدیر',
'new-invoice' => 'ارسال نامه الکترونیکی برای تأیید فاکتور',
'new-refund' => 'ارسال نامه الکترونیکی اعلان بازپرداخت',
'new-shipment' => 'ارسال نامه الکترونیکی اعلان حمل و نقل',
'new-inventory-source' => 'ارسال نامه الکترونیکی اعلان منبع موجودی',
'cancel-order' => 'ارسال نامه لغو اعلان سفارش پست الکترونیکی',
],
],
'system' => [
'catalog' => 'کاتالوگ',
'products' => 'محصولات',
'guest-checkout' => 'وارسی میهمان',
'allow-guest-checkout' => 'مجاز به پرداخت مهمان',
'allow-guest-checkout-hint' => 'نکته: در صورت روشن بودن ، این گزینه به طور خاص برای هر محصول قابل تنظیم است',
'review' => 'بررسی',
'allow-guest-review' => 'اجازه دادن به کاربر مهمان برای بررسی',
'inventory' => 'موجودی',
@ -1062,14 +1283,30 @@ return [
'footer' => 'فوتر',
'content' => 'محتوا',
'footer-content' => 'متن فوتر',
'footer-toggle' => 'پایین صفحه را تغییر دهید',
'locale-options' => 'گزینه های واحد',
'weight-unit' => 'واحد وزن',
'admin-page-limit' => 'موارد پیش فرض در هر صفحه (مدیر)',
'email-settings' => 'Email Settings',
'email-sender-name' => 'Email Sender Name',
'shop-email-from' => 'Shop Email Address [For sending emails]',
'admin-name' => 'Admin Name',
'admin-email' => 'Admin Email',
'design' => 'طراحی',
'admin-logo' => 'لوگو مدیر',
'logo-image' => 'تصویر لوگو',
'credit-max' => 'اعتبار مشتری حداکثر',
'credit-max-value' => 'حداکثر میزان اعتبار',
'use-credit-max' => 'استفاده از حداکثر اعتبار',
'order-settings' => 'تنظیمات سفارش دهید',
'orderNumber' => 'تنظیمات شماره سفارش دهید',
'order-number-prefix' => 'پیش شماره شماره سفارش',
'order-number-length' => 'طول شماره سفارش',
'order-number-suffix' => 'تعداد کافی شماره سفارش',
'default' => 'پیش فرض',
'sandbox' => 'Sandbox',
'all-channels' => 'همه',
'all-locales' => 'همه',
'sandbox' => 'Sandbox',
'invoice-slip-design' => 'Invoice Slip Design',
'logo' => 'logo'

View File

@ -426,24 +426,24 @@ return [
'refunds' => [
'title' => 'Terugbetalingen',
'id' => 'Id',
'add-title' => 'Create Refund',
'add-title' => 'Maak een terugbetaling',
'save-btn-title' => 'Opslaan',
'order-id' => 'Order Id',
'qty-ordered' => 'Qty Ordered',
'qty-to-refund' => 'Qty To Refund',
'refund-shipping' => 'Refund Shipping',
'adjustment-refund' => 'Adjustment Refund',
'adjustment-fee' => 'Adjustment Fee',
'update-qty' => 'Update Quantities',
'invalid-qty' => 'We found an invalid quantity to refund items.',
'refund-limit-error' => 'The most money available to refund is :amount.',
'order-id' => 'Bestellen Id',
'qty-ordered' => 'Hoeveelheid besteld',
'qty-to-refund' => 'Te restitueren hoeveelheid',
'refund-shipping' => 'Verzending terugbetalen',
'adjustment-refund' => 'Aanpassing restitutie',
'adjustment-fee' => 'Aanpassingskosten',
'update-qty' => 'Hoeveelheden bijwerken',
'invalid-qty' => 'We hebben een ongeldige hoeveelheid gevonden om artikelen terug te betalen.',
'refund-limit-error' => 'Het meeste geld dat terugbetaald kan worden is :amount.',
'refunded' => 'Teruggestort',
'date' => 'Refund Date',
'customer-name' => 'Customer Name',
'status' => 'Status',
'customer-name' => 'klantnaam',
'status' => 'Toestand',
'action' => 'Actie',
'view-title' => 'Refund #:refund_id',
'invalid-refund-amount-error' => 'Refund amount should be non zero.'
'view-title' => 'Terugbetaling #:refund_id',
'invalid-refund-amount-error' => 'Het restitutiebedrag mag niet nul zijn.'
]
],
@ -572,6 +572,7 @@ return [
'file' => 'Bestand',
'checkbox' => 'Checkbox',
'use_in_flat' => "Create in Product Flat Table",
'is_comparable' => "Attribuut is vergelijkbaar ",
'default_null_option' => 'Create default empty option',
],
'families' => [
@ -595,29 +596,29 @@ return [
'categories' => [
'title' => 'Categorieën',
'add-title' => 'Categorie toevoegen',
'edit-title' => 'Edit Category',
'save-btn-title' => 'Save Category',
'edit-title' => 'Categorie bewerken',
'save-btn-title' => 'Categorie opslaan',
'general' => 'Algemeen',
'name' => 'Naam',
'visible-in-menu' => 'Visible In Menu',
'visible-in-menu' => 'Zichtbaar in menu',
'yes' => 'Ja',
'no' => 'Nee',
'position' => 'Position',
'display-mode' => 'Display Mode',
'products-and-description' => 'Products and Description',
'products-only' => 'Products Only',
'description-only' => 'Description Only',
'description-and-images' => 'Description and Images',
'description' => 'Description',
'parent-category' => 'Parent Category',
'seo' => 'Search Engine Optimization',
'position' => 'Positie',
'display-mode' => 'Weergavemodus',
'products-and-description' => 'Producten en beschrijving',
'products-only' => 'Alleen producten',
'description-only' => 'Alleen beschrijving',
'description-and-images' => 'Beschrijving en afbeeldingen',
'description' => 'Beschrijving',
'parent-category' => 'Bovenliggende categorie',
'seo' => 'zoek machine optimalisatie',
'slug' => 'Slug',
'meta_title' => 'Meta Title',
'meta_description' => 'Meta Description',
'meta_title' => 'Metatitel',
'meta_description' => 'Meta omschrijving',
'meta_keywords' => 'Meta trefwoorden',
'image' => 'Afbeelding',
'filterable-attributes' => 'Filterable Attributes',
'attributes' => 'Attributes',
'filterable-attributes' => 'Filtreerbare kenmerken',
'attributes' => 'Attributen',
]
],
@ -649,32 +650,32 @@ return [
'tax-rates' => [
'title' => 'BTW-tarieven',
'add-title' => 'BTW toevoegen',
'edit-title' => 'Edit Tax Rate',
'save-btn-title' => 'Save Tax Rate',
'general' => 'Tax Rate',
'identifier' => 'Identifier',
'is_zip' => 'Enable Zip Range',
'zip_from' => 'Zip From',
'edit-title' => 'Btw-tarief bewerken',
'save-btn-title' => 'Belastingtarief opslaan',
'general' => 'Belastingtarief',
'identifier' => 'Identificatie',
'is_zip' => 'Zip-bereik inschakelen',
'zip_from' => 'Zip van',
'zip_to' => 'Zip To',
'state' => 'Staat/Provincie',
'select-state' => 'Select a region, state or province.',
'select-state' => 'Selecteer een regio, staat of provincie.',
'country' => 'Land',
'tax_rate' => 'Rate',
'tax_rate' => 'Tarief',
'edit' => [
'title' => 'Edit Tax Rate',
'edit-button-title' => 'Edit Rate'
'title' => 'Btw-tarief bewerken',
'edit-button-title' => 'Tarief bewerken'
],
'zip_code' => 'Zip Code',
'is_zip' => 'Enable Zip Range',
'zip_code' => 'Postcode',
'is_zip' => 'Zip-bereik inschakelen',
],
'sales' => [
'shipping-method' => [
'title' => 'Shipping Methods',
'title' => 'Verzendmethoden',
'save-btn-title' => 'Opslaan',
'description' => 'Description',
'active' => 'Actief',
'status' => 'Status'
'status' => 'Toestand'
]
]
],
@ -684,6 +685,7 @@ return [
'title' => 'Landinstellingen',
'add-title' => 'Landinstelling toevoegen',
'edit-title' => 'Landinstelling wijzigen',
'add-title' => 'Landinstelling toevoegen',
'save-btn-title' => 'Landinstelling opslaan',
'general' => 'Algemeen',
'code' => 'Code',
@ -725,8 +727,8 @@ return [
'source_currency' => 'Valuta bron',
'target_currency' => 'Valuta doel',
'rate' => 'Tarief',
'exchange-class-not-found' => ':service exchange rate class not found',
'update-rates' => 'Update rates using :service',
'exchange-class-not-found' => ':service wisselkoersklasse niet gevonden',
'update-rates' => 'Tarieven bijwerken met :service',
'create-success' => 'Wisselkoers succesvol aangemaakt.',
'update-success' => 'Wisselkoers succesvol bijgewerkt.',
'delete-success' => 'Wisselkoers succesvol verwijderd.',
@ -741,8 +743,8 @@ return [
'code' => 'Code',
'name' => 'Naam',
'description' => 'Omschrijving',
'source-is-active' => 'Source is Active',
'contact-info' => 'Contact Information',
'source-is-active' => 'Bron is actief',
'contact-info' => 'Contactgegevens',
'contact_name' => 'Naam',
'contact_email' => 'Email',
'contact_number' => 'Contact nummer',
@ -757,10 +759,10 @@ return [
'latitude' => 'Latitude',
'longitude' => 'Longitude',
'status' => 'Status',
'create-success' => 'Inventory source created successfully.',
'update-success' => 'Inventory source updated successfully.',
'delete-success' => 'Inventory source deleted successfully.',
'last-delete-error' => 'At least one Inventory source is required.',
'create-success' => 'Voorraadbron succesvol aangemaakt.',
'update-success' => 'Voorraadbron succesvol bijgewerkt.',
'delete-success' => 'Voorraadbron verwijderd.',
'last-delete-error' => 'Er is ten minste één voorraadbron vereist.',
],
'channels' => [
'title' => 'Kanalen',
@ -772,16 +774,16 @@ return [
'name' => 'Naam',
'description' => 'Omschrijving',
'hostname' => 'Hostnaam',
'currencies-and-locales' => 'Currencies and Locales',
'currencies-and-locales' => 'Valuta en landinstellingen',
'locales' => 'Landinstellingen',
'default-locale' => 'Default Locale',
'default-locale' => 'Standaardlocale',
'currencies' => 'Valuta\'s',
'base-currency' => 'Standaard valuta',
'root-category' => 'Hoofdcategorie',
'inventory_sources' => 'Standaard bron',
'design' => 'Design',
'design' => 'Ontwerp',
'theme' => 'Thema',
'home_page_content' => 'Home Page Content',
'home_page_content' => 'Startpagina-inhoud',
'footer_content' => 'Onderschrift inhoud',
'logo' => 'Logo',
'favicon' => 'Favicon',
@ -806,12 +808,12 @@ return [
'image' => 'Afbeelding',
'content' => 'Inhoud',
'channels' => 'Kanaal',
'created-success' => 'Slider item created successfully',
'created-fault' => 'Error in creating slider item',
'update-success' => 'Slider item successfully updated',
'update-fail' => 'Slider cannot be updated',
'delete-success' => 'Cannot delete last llider item',
'delete-fail' => 'Slider item successfully deleted'
'created-success' => 'Slideritem met succes gemaakt',
'created-fault' => 'Fout bij het maken van een schuifitem',
'update-success' => 'Schuifitem is bijgewerkt',
'update-fail' => 'Schuifregelaar kan niet worden bijgewerkt',
'delete-success' => 'Kan laatste llider-item niet verwijderen',
'delete-fail' => 'Schuifitem is verwijderd'
],
'tax-categories' => [
@ -824,45 +826,45 @@ return [
'name' => 'Naam',
'code' => 'Code',
'description' => 'Omschrijving',
'select-taxrates' => 'Select Tax Rates',
'select-taxrates' => 'Selecteer Belastingtarieven',
'edit' => [
'title' => 'Edit Tax Category',
'edit-button-title' => 'Edit Tax Category'
'title' => 'Belastingcategorie bewerken',
'edit-button-title' => 'Belastingcategorie bewerken'
],
'create-success' => 'New Tax Category Created',
'create-error' => 'Error, While Creating Tax Category',
'update-success' => 'Successfully Updated Tax Category',
'update-error' => 'Error While Updating Tax Category',
'atleast-one' => 'Cannot Delete The Last Tax Category',
'delete' => 'Tax Category Successfully Deleted'
'create-success' => 'Nieuwe belastingcategorie gemaakt',
'create-error' => 'Fout bij het maken van belastingcategorie',
'update-success' => 'Belastingcategorie is bijgewerkt',
'update-error' => 'Fout bij bijwerken van belastingcategorie',
'atleast-one' => 'Kan de laatste belastingcategorie niet verwijderen',
'delete' => 'Belastingcategorie is verwijderd'
],
'tax-rates' => [
'title' => 'BTW-tarieven',
'add-title' => 'Create Tax Rate',
'edit-title' => 'Edit Tax Rate',
'save-btn-title' => 'Save Tax Rate',
'general' => 'Tax Rate',
'identifier' => 'Identifier',
'is_zip' => 'Enable Zip Range',
'zip_from' => 'Zip From',
'add-title' => 'Maak belastingtarief',
'edit-title' => 'Btw-tarief bewerken',
'save-btn-title' => 'Belastingtarief opslaan',
'general' => 'Belastingtarief',
'identifier' => 'Identificatie',
'is_zip' => 'Zip-bereik inschakelen',
'zip_from' => 'Zip van',
'zip_to' => 'Zip To',
'state' => 'Staat/Provincie',
'select-state' => 'Select a region, state or province.',
'select-state' => 'Selecteer een regio, staat of provincie.',
'country' => 'Land',
'tax_rate' => 'Rate',
'tax_rate' => 'Tarief',
'edit' => [
'title' => 'Edit Tax Rate',
'edit-button-title' => 'Edit Rate'
'title' => 'Btw-tarief bewerken',
'edit-button-title' => 'Tarief bewerken'
],
'zip_code' => 'Postcode',
'is_zip' => 'Enable Zip Range',
'is_zip' => 'Zip-bereik inschakelen',
'create-success' => 'Belastingtarief succesvol aangemaakt',
'create-error' => 'Cannot Create Tax Rate',
'update-success' => 'Tax Rate Updated Successfully',
'update-error' => 'Error! Tax Rate Cannot Be Updated',
'create-error' => 'Kan geen belastingtarief maken',
'update-success' => 'Belastingtarief succesvol bijgewerkt',
'update-error' => 'Fout! Belastingtarief kan niet worden bijgewerkt',
'delete' => 'Het BTW-tarief is verwijderd',
'atleast-one' => 'Cannot Delete Last Tax Rate'
'atleast-one' => 'Kan laatste belastingtarief niet verwijderen'
],
'development' => [
'title' => 'Ontwikkeling',
@ -873,9 +875,9 @@ return [
'groups' =>[
'add-title' => 'Groep toevoegen',
'edit-title' => 'Groep wijzigen',
'save-btn-title' => 'Save Group',
'save-btn-title' => 'Groep opslaan',
'title' => 'Groepen',
'save-btn-title' => 'Save Group',
'save-btn-title' => 'Groep opslaan',
'code' => 'Code',
'name' => 'Naam',
'is_user_defined' => 'Door de gebruiker gedefinieerd',
@ -885,13 +887,13 @@ return [
'addresses' => [
'title' => ':customer_name\'s Addresses List',
'vat_id' => 'BTW nummer',
'create-title' => 'Create Customer\'s Address',
'edit-title' => 'Update Customer\'s Address',
'title-orders' => ':customer_name\'s Orders List',
'address-list' => 'Address\'s List',
'order-list' => 'Order\'s List',
'address-id' => 'Address ID',
'address-1' => 'Address 1',
'create-title' => 'Maak het adres van de klant',
'edit-title' => 'Werk het adres van de klant bij',
'title-orders' => ':customer_name van de klant',
'address-list' => 'Adreslijst',
'order-list' => 'Lijst van de bestelling',
'address-id' => 'Adres ID',
'address-1' => 'Adres 1',
'city' => 'Woonplaats',
'state-name' => 'Staat',
'country-name' => 'Land',
@ -905,18 +907,18 @@ return [
'create-btn-title' => 'Adres toevoegen',
'save-btn-title' => 'Bewaar adres',
'general' => 'Algemeen',
'success-create' => 'Success: Customer address created successfully.',
'success-update' => 'Success: Customer address updated successfully.',
'success-delete' => 'Success: Customer address deleted successfully.',
'success-mass-delete' => 'Success: selected addresses deleted successfully.',
'error-create' => 'Error: Customer address not created.',
'success-create' => 'Success: Klantadres succesvol aangemaakt.',
'success-update' => 'Success: Klantadres succesvol bijgewerkt.',
'success-delete' => 'Success: Klantadres succesvol verwijderd.',
'success-mass-delete' => 'Success: geselecteerde adressen zijn succesvol verwijderd.',
'error-create' => 'Error: Klantadres niet aangemaakt.',
],
'note' => [
'title' => 'Add Note',
'save-note' => 'Save Note',
'enter-note' => 'Enter Note',
'help-title' => 'Add Note On This Customer'
'title' => 'Notitie toevoegen',
'save-note' => 'Notitie opslaan',
'enter-note' => 'Notitie invoeren',
'help-title' => 'Opmerking over deze klant toevoegen'
],
'customers' => [
@ -938,26 +940,27 @@ return [
'other' => 'Anders',
'male' => 'Man',
'female' => 'Vrouw',
'group-default' => 'Cannot delete the default group.',
'phone' => 'Telefoon',
'group-default' => 'Kan de standaardgroep niet verwijderen.',
'edit-help-title' => 'Wijzig klant',
'delete-help-title' => 'Klant verwijderen',
'addresses' => 'Addresses',
'mass-destroy-success' => 'Customers deleted successfully',
'mass-update-success' => 'Customers updated successfully',
'status' => 'Status',
'mass-destroy-success' => 'Klanten zijn succesvol verwijderd',
'mass-update-success' => 'Klanten succesvol bijgewerkt',
'status' => 'Toestand',
'active' => 'Actief',
'inactive' => 'Niet geactiveerd'
],
'reviews' => [
'title' => 'Reviews',
'edit-title' => 'Edit Review',
'rating' => 'Rating',
'status' => 'Status',
'comment' => 'Comment',
'pending' => 'Pending',
'approved' => 'Approve',
'disapproved' => 'Disapprove'
'title' => 'Recensies',
'edit-title' => 'Review bewerken',
'rating' => 'Beoordeling',
'status' => 'Toestand',
'comment' => 'Commentaar',
'pending' => 'In afwachting',
'approved' => 'Goedkeuren',
'disapproved' => 'Afkeuren'
],
'subscribers' => [
@ -975,167 +978,167 @@ return [
'promotions' => [
'cart-rules' => [
'title' => 'Cart Rules',
'add-title' => 'Add Cart Rule',
'edit-title' => 'Edit Cart Rule',
'save-btn-title' => 'Save Cart Rule',
'rule-information' => 'Rule Information',
'title' => 'Winkelwagenregels',
'add-title' => 'Winkelwagenregel toevoegen',
'edit-title' => 'Winkelwagenregel bewerken',
'save-btn-title' => 'Bewaar winkelwagen regel',
'rule-information' => 'Regelinformatie',
'name' => 'Naam',
'description' => 'Description',
'status' => 'Status',
'is-active' => 'Cart Rule is Active',
'description' => 'Beschrijving',
'status' => 'Toestand',
'is-active' => 'Winkelwagenregel is actief',
'channels' => 'Kanalen',
'customer-groups' => 'Customer Groups',
'coupon-type' => 'Coupon Type',
'no-coupon' => 'No Coupon',
'specific-coupon' => 'Specific Coupon',
'auto-generate-coupon' => 'Auto Generate Coupon',
'customer-groups' => 'Klantengroepen',
'coupon-type' => 'Coupontype',
'no-coupon' => 'Geen coupon',
'specific-coupon' => 'Specifieke coupon',
'auto-generate-coupon' => 'Coupon automatisch genereren',
'no' => 'Nee',
'yes' => 'Ja',
'coupon-code' => 'Coupon Code',
'uses-per-coupon' => 'Uses Per Coupon',
'uses-per-customer' => 'Uses Per Customer',
'uses-per-customer-control-info' => 'Will be used for logged in customers only.',
'from' => 'From',
'to' => 'To',
'priority' => 'Priority',
'conditions' => 'Conditions',
'condition-type' => 'Condition Type',
'all-conditions-true' => 'All Conditions are True',
'any-condition-true' => 'Any Condition is True',
'add-condition' => 'Add Condition',
'choose-condition-to-add' => 'Choose a condition to add',
'cart-attribute' => 'Cart Attribute',
'coupon-code' => 'coupon code',
'uses-per-coupon' => 'Gebruikt per coupon',
'uses-per-customer' => 'Gebruik per klant',
'uses-per-customer-control-info' => 'Wordt alleen gebruikt voor ingelogde klanten.',
'from' => 'Van',
'to' => 'Naar',
'priority' => 'Prioriteit',
'conditions' => 'Voorwaarden',
'condition-type' => 'Conditietype',
'all-conditions-true' => 'Alle voorwaarden zijn waar',
'any-condition-true' => 'Elke voorwaarde is waar',
'add-condition' => 'Conditie toevoegen',
'choose-condition-to-add' => 'Conditie toevoegen',
'cart-attribute' => 'Winkelwagenattribuut',
'subtotal' => 'Subtotaal',
'total-items-qty' => 'Total Items Qty',
'total-weight' => 'Total Weight',
'total-items-qty' => 'Totaal aantal artikelen',
'total-weight' => 'Totale gewicht',
'payment-method' => 'Betaalmethode',
'shipping-method' => 'Shipping Method',
'shipping-postcode' => 'Shipping Zip/Postcode',
'shipping-state' => 'Shipping State',
'shipping-country' => 'Shipping Country',
'cart-item-attribute' => 'Cart Item Attribute',
'price-in-cart' => 'Price in Cart',
'qty-in-cart' => 'Qty in Cart',
'product-attribute' => 'Product Attribute',
'attribute-name-children-only' => ':attribute_name (Children Only)',
'attribute-name-parent-only' => ':attribute_name (Parent Only)',
'is-equal-to' => 'Is equal to',
'is-not-equal-to' => 'Is not equal to',
'equals-or-greater-than' => 'Equals or greater than',
'equals-or-less-than' => 'Equals or less than',
'greater-than' => 'Greater than',
'less-than' => 'Less than',
'contain' => 'Contain',
'contains' => 'Contains',
'does-not-contain' => 'Does not contain',
'shipping-method' => 'Verzendmethode',
'shipping-postcode' => 'Verzenden Zip / Postcode',
'shipping-state' => 'Verzenden Zip / Postcode',
'shipping-country' => 'Land van verzending',
'cart-item-attribute' => 'Land van verzending',
'price-in-cart' => 'Prijs in winkelwagen',
'qty-in-cart' => 'Aantal in winkelwagen',
'product-attribute' => 'Productkenmerk',
'attribute-name-children-only' => ':attribute_name (alleen kinderen)',
'attribute-name-parent-only' => ':attribute_name (alleen voor ouders)',
'is-equal-to' => 'Is gelijk aan',
'is-not-equal-to' => 'Is niet gelijk aan',
'equals-or-greater-than' => 'Is gelijk aan of groter dan',
'equals-or-less-than' => 'Is gelijk aan of kleiner dan',
'greater-than' => 'Groter dan',
'less-than' => 'Minder dan',
'contain' => 'Bevatten',
'contains' => 'Bevat',
'does-not-contain' => 'Bevat geen',
'actions' => 'Acties',
'action-type' => 'Action Type',
'percentage-product-price' => 'Percentage of Product Price',
'fixed-amount' => 'Fixed Amount',
'fixed-amount-whole-cart' => 'Fixed Amount to Whole Cart',
'buy-x-get-y-free' => 'Buy X Get Y Free',
'discount-amount' => 'Discount Amount',
'discount-quantity' => 'Maximum Quantity Allowed to be Discounted',
'discount-step' => 'Buy X Quantity',
'free-shipping' => 'Free Shipping',
'apply-to-shipping' => 'Apply to Shipping',
'coupon-codes' => 'Coupon Codes',
'coupon-qty' => 'Coupon Qty',
'code-length' => 'Code Length',
'code-format' => 'Code Format',
'alphanumeric' => 'Alphanumeric',
'alphabetical' => 'Alphabetical',
'numeric' => 'Numeric',
'code-prefix' => 'Code Prefix',
'code-suffix' => 'Code Suffix',
'generate' => 'Generate',
'cart-rule-not-defind-error' => 'Cart rule is not defined',
'mass-delete-success' => 'All the selected coupons have been deleted successfully.',
'end-other-rules' => 'End Other Rules',
'children-categories' => 'Categories (Children Only)',
'parent-categories' => 'Categories (Parent Only)',
'action-type' => 'actie type',
'percentage-product-price' => 'Percentage van productprijs',
'fixed-amount' => 'Vaste hoeveelheid',
'fixed-amount-whole-cart' => 'Vast bedrag voor hele winkelwagen',
'buy-x-get-y-free' => 'Koop X Krijg Y gratis',
'discount-amount' => 'Korting hoeveelheid',
'discount-quantity' => 'Maximaal toegestane hoeveelheid',
'discount-step' => 'Koop X hoeveelheid',
'free-shipping' => 'Geen verzendkosten',
'apply-to-shipping' => 'Toepassen op verzending',
'coupon-codes' => 'Kortingscodes',
'coupon-qty' => 'Aantal coupons',
'code-length' => 'Code Lengte',
'code-format' => 'Code formaat',
'alphanumeric' => 'Alfanumeriek',
'alphabetical' => 'Alfabetisch',
'numeric' => 'Numeriek',
'code-prefix' => 'Codevoorvoegsel',
'code-suffix' => 'Code achtervoegsel',
'generate' => 'Genereer',
'cart-rule-not-defind-error' => 'De winkelwagenregel is niet gedefinieerd',
'mass-delete-success' => 'Alle geselecteerde coupons zijn succesvol verwijderd.',
'end-other-rules' => 'Beëindig andere regels',
'children-categories' => 'Categorieën (Alleen kinderen)',
'parent-categories' => 'Categorieën (Alleen ouder)',
'categories' => 'Categorieën',
'attribute_family' => 'Attribute Family'
'attribute_family' => 'Kenmerk Familie'
],
'catalog-rules' => [
'title' => 'Catalog Rules',
'add-title' => 'Add Catalog Rule',
'edit-title' => 'Edit Catalog Rule',
'save-btn-title' => 'Save Catalog Rule',
'rule-information' => 'Rule Information',
'title' => 'Catalogusregels',
'add-title' => 'Catalogusregel toevoegen',
'edit-title' => 'Catalogusregel bewerken',
'save-btn-title' => 'Bewaar catalogusregel',
'rule-information' => 'Regelinformatie',
'name' => 'Naam',
'description' => 'Description',
'status' => 'Status',
'is-active' => 'Catalog Rule is Active',
'description' => 'Beschrijving',
'status' => 'Toestand',
'is-active' => 'Catalogusregel is actief',
'channels' => 'Kanalen',
'customer-groups' => 'Customer Groups',
'customer-groups' => 'Klantengroepen',
'no' => 'Nee',
'yes' => 'Ja',
'from' => 'From',
'to' => 'To',
'priority' => 'Priority',
'conditions' => 'Conditions',
'condition-type' => 'Condition Type',
'all-conditions-true' => 'All Conditions are True',
'any-condition-true' => 'Any Condition is True',
'add-condition' => 'Add Condition',
'choose-condition-to-add' => 'Choose a condition to add',
'product-attribute' => 'Product Attribute',
'attribute-name-children-only' => ':attribute_name (Children Only)',
'attribute-name-parent-only' => ':attribute_name (Parent Only)',
'is-equal-to' => 'Is equal to',
'is-not-equal-to' => 'Is not equal to',
'equals-or-greater-than' => 'Equals or greater than',
'equals-or-less-than' => 'Equals or less than',
'greater-than' => 'Greater than',
'less-than' => 'Less than',
'contain' => 'Contain',
'contains' => 'Contains',
'does-not-contain' => 'Does not contain',
'from' => 'Van',
'to' => 'Naar',
'priority' => 'Prioriteit',
'conditions' => 'Voorwaarden',
'condition-type' => 'Conditietype',
'all-conditions-true' => 'Alle voorwaarden zijn waar',
'any-condition-true' => 'Elke voorwaarde is waar',
'add-condition' => 'Conditie toevoegen',
'choose-condition-to-add' => 'Kies een voorwaarde om toe te voegen',
'product-attribute' => 'Productkenmerk',
'attribute-name-children-only' => ':attribute_name (Alleen kinderen)',
'attribute-name-parent-only' => ':attribute_name (Alleen ouder)',
'is-equal-to' => 'Is gelijk aan',
'is-not-equal-to' => 'Is niet gelijk aan',
'equals-or-greater-than' => 'Is gelijk aan of groter dan',
'equals-or-less-than' => 'Is gelijk aan of kleiner dan',
'greater-than' => 'Groter dan',
'less-than' => 'Minder dan',
'contain' => 'Minder dan',
'contains' => 'Bevat',
'does-not-contain' => 'Bevat geen',
'actions' => 'Acties',
'action-type' => 'Action Type',
'percentage-product-price' => 'Percentage of Product Price',
'fixed-amount' => 'Fixed Amount',
'fixed-amount-whole-cart' => 'Fixed Amount to Whole Catalog',
'buy-x-get-y-free' => 'Buy X Get Y Free',
'discount-amount' => 'Discount Amount',
'mass-delete-success' => 'All the selected index of coupons have been deleted successfully.',
'end-other-rules' => 'End Other Rules',
'action-type' => 'actie type',
'percentage-product-price' => 'Percentage van productprijs',
'fixed-amount' => 'Vaste hoeveelheid',
'fixed-amount-whole-cart' => 'Vast bedrag voor hele catalogus',
'buy-x-get-y-free' => 'Koop X Krijg Y gratis',
'discount-amount' => 'Korting hoeveelheid',
'mass-delete-success' => 'Alle geselecteerde indexcoupons zijn met succes verwijderd.',
'end-other-rules' => 'Beëindig andere regels',
'categories' => 'Categorieën',
'attribute_family' => 'Attribute Family'
'attribute_family' => 'Kenmerk Familie'
]
],
'error' => [
'go-to-home' => 'GO TO HOME',
'in-maitainace' => 'In Maintenance',
'right-back' => 'Be Right Back',
'go-to-home' => 'GA NAAR HUIS',
'in-maitainace' => 'In onderhoud',
'right-back' => 'Ben zo terug',
'404' => [
'page-title' => '404 Page not found',
'page-title' => '404 Pagina niet gevonden',
'name' => '404',
'title' => 'Page Not found',
'message' => 'The Page you are looking for does not exist or have been moved. Navigate using sidemenu.'
'title' => 'Pagina niet gevonden',
'message' => 'De pagina die u zoekt bestaat niet of is verplaatst. Navigeer met behulp van zijmenu.'
],
'403' => [
'page-title' => '403 forbidden Error',
'page-title' => '403 verboden fout',
'name' => '403',
'title' => 'Forbidden error',
'message' => 'You do not have permission to access this page'
'title' => 'Verboden fout',
'message' => 'U heeft geen toestemming om deze pagina te openen'
],
'500' => [
'page-title' => '500 Internal Server Error',
'page-title' => '500 Interne Server Fout',
'name' => '500',
'title' => 'Internal Server Error',
'message' => 'The Server Encountered an internal error.'
'title' => 'Interne Server Fout',
'message' => 'De server heeft een interne fout aangetroffen.'
],
'401' => [
'page-title' => '401 Unauthorized Error',
'page-title' => '401 Ongeautoriseerde fout',
'name' => '401',
'title' => 'Unauthorized Error',
'message' => 'The request has not been applied because it lacks valid authentication credentials for the target resource.'
'title' => 'Ongeautoriseerde fout',
'message' => 'Het verzoek is niet toegepast omdat het geen geldige verificatiereferenties heeft voor de doelresource.'
],
],
@ -1148,73 +1151,73 @@ return [
'csv' => 'CSV',
'xls' => 'XLS',
'file' => 'File',
'upload-error' => 'The file must be a file of type: xls, xlsx, csv.',
'duplicate-error' => 'Identifier must be unique, duplicate identifier :identifier at row :position.',
'enough-row-error' => 'file has not enough rows',
'allowed-type' => 'Allowed Type :',
'upload-error' => 'Het bestand moet een bestandstype zijn: xls, xlsx, csv.',
'duplicate-error' => 'Identifier moet uniek zijn, dubbele identifier :identifier op rij :position.',
'enough-row-error' => 'bestand heeft niet genoeg rijen',
'allowed-type' => 'Toegestaan type:',
'file-type' => 'csv, xls, xlsx.',
'no-records' => 'Nothing to export',
'illegal-format' => 'Error! This type of format is either not supported or its illegal format'
'no-records' => 'Niets om te exporteren',
'illegal-format' => 'Fout! Dit type formaat wordt niet ondersteund of het is illegaal'
],
'cms' => [
'pages' => [
'general' => 'Algemeen',
'seo' => 'SEO',
'pages' => 'Pages',
'title' => 'Pages',
'pages' => 'Pagina\'s',
'title' => 'Pagina\'s',
'add-title' => 'Pagina toevoegen',
'content' => 'Content',
'url-key' => 'URL Key',
'content' => 'Inhoud',
'url-key' => 'URL Sleutel',
'channel' => 'Kanalen',
'locale' => 'Landinstelling',
'create-btn-title' => 'Pagina opslaan',
'edit-title' => 'Pagina aanpassen',
'edit-btn-title' => 'Save Page',
'edit-btn-title' => 'Sla pagina op',
'create-success' => 'Pagina succesvol aangemaakt.',
'create-partial' => 'Some of the pages requested already exists.',
'create-failure' => 'All pages requested already exists.',
'create-partial' => 'Sommige van de opgevraagde pagina\'s bestaan al.',
'create-failure' => 'Alle opgevraagde pagina\'s bestaan al.',
'update-success' => 'Pagina succesvol bijgewerkt.',
'update-failure' => 'Pagina kan niet worden bijgewerkt.',
'page-title' => 'Pagina titel',
'layout' => 'Layout',
'layout' => 'Indeling',
'meta_keywords' => 'Meta trefwoorden',
'meta_description' => 'Meta omschrijving',
'meta_title' => 'Meta Titel',
'delete-success' => 'CMS page deleted successfully',
'delete-failure' => 'CMS page cannot be deleted',
'delete-success' => 'CMS-pagina succesvol verwijderd',
'delete-failure' => 'CMS-pagina kan niet worden verwijderd',
'preview' => 'Voorbeeld',
'one-col' => '<div class="mt-10">Use class: <b>"static-container one-column"</b> for one column layout.</div>',
'two-col' => '<div class="mt-10">Use class: <b>"static-container two-column"</b> for two column layout.</div>',
'three-col' => '<div class="mt-10">Use class: <b>"static-container three-column"</b> for three column layout.</div>',
'one-col' => '<div class="mt-10">Use class: <b>"static-container one-column"</b> voor één kolomlay-out.</div>',
'two-col' => '<div class="mt-10">Use class: <b>"static-container two-column"</b> voor lay-out met twee kolommen.</div>',
'three-col' => '<div class="mt-10">Use class: <b>"static-container three-column"</b> voor lay-out met drie kolommen.</div>',
'helper-classes' => 'Helper Classes'
]
],
'response' => [
'being-used' => 'This resource :name is getting used in :source',
'cannot-delete-default' => 'Cannot delete the default channel',
'create-success' => ':name created successfully.',
'update-success' => ':name updated successfully.',
'delete-success' => ':name deleted successfully.',
'delete-failed' => 'Error encountered while deleting :name.',
'last-delete-error' => 'At least one :name is required.',
'user-define-error' => 'Can not delete system :name',
'attribute-error' => ':name is used in configurable products.',
'attribute-product-error' => ':name is used in products.',
'customer-associate' => ':name can not be deleted because customer is associated with this group.',
'currency-delete-error' => 'This currency is set as channel base currency so it can not be deleted.',
'upload-success' => ':name uploaded successfully.',
'delete-category-root' => 'Cannot delete the root category',
'create-root-failure' => 'Category with name root already exists',
'cancel-success' => ':name canceled successfully.',
'cancel-error' => ':name can not be canceled.',
'already-taken' => 'The :name has already been taken.',
'order-pending' => 'Cannot delete account because some Order(s) are pending or processing state.'
'being-used' => 'Deze bron :name is wennen :source',
'cannot-delete-default' => 'Kan het standaardkanaal niet verwijderen',
'create-success' => ':name succesvol gemaakt.',
'update-success' => ':name succesvol geupdatet.',
'delete-success' => ':name met succes verwijderd.',
'delete-failed' => 'Er is een fout opgetreden bij het verwijderen :name.',
'last-delete-error' => 'Minstens een :name Is benodigd.',
'user-define-error' => 'Kan systeem niet verwijderen :name',
'attribute-error' => ':name wordt gebruikt in configureerbare producten.',
'attribute-product-error' => ':name wordt gebruikt in producten.',
'customer-associate' => ':name kan niet worden verwijderd omdat de klant aan deze groep is gekoppeld.',
'currency-delete-error' => 'Deze valuta is ingesteld als kanaalbasisvaluta en kan dus niet worden verwijderd.',
'upload-success' => ':name succesvol geüpload.',
'delete-category-root' => 'Kan de rootcategorie niet verwijderen',
'create-root-failure' => 'Er bestaat al een categorie met de naam root',
'cancel-success' => ':name succesvol geannuleerd.',
'cancel-error' => ':name kan niet worden geannuleerd.',
'already-taken' => 'The :name is al bezet.',
'order-pending' => 'Kan account niet verwijderen omdat sommige bestelling (en) in behandeling of in behandeling zijn.'
],
'footer' => [
'copy-right' => 'Powered by <a href="https://bagisto.com/" target="_blank">Bagisto</a>, A Community Project by <a href="https://webkul.com/" target="_blank">Webkul</a>',
'copy-right' => 'Aangedreven door <a href="https://bagisto.com/" target="_blank">Bagisto</a>, Een gemeenschapsproject door <a href="https://webkul.com/" target="_blank">Webkul</a>',
],
'admin' => [
@ -1222,16 +1225,16 @@ return [
'email' => 'Email',
'notification_label' => 'Notificaties',
'notifications' => [
'verification' => 'Send verification E-mail',
'registration' => 'Send registration E-mail',
'customer' => 'Send customer E-mail',
'new-order' => 'Send Order Confirmation E-mail',
'new-admin' => 'Send Admin Invitation E-mail',
'new-invoice' => 'Send Invoice Confirmation E-mail',
'new-refund' => 'Send Refund Notification E-mail',
'new-shipment' => 'Send Shipment Notification E-mail',
'new-inventory-source' => 'Send Inventory Source Notification E-mail',
'cancel-order' => 'Send cancel Order Notification E-mail',
'verification' => 'Stuur verificatie E-mail',
'registration' => 'Verzend registratie E-mail',
'customer' => 'Stuur klant e-mail',
'new-order' => 'Stuur een e-mail ter bevestiging van de bestelling',
'new-admin' => 'Stuur een e-mail met de beheerdersuitnodiging',
'new-invoice' => 'Stuur een e-mail ter bevestiging van de factuur',
'new-refund' => 'Stuur een terugbetalingsmelding per e-mail',
'new-shipment' => 'Verzendbericht per e-mail verzenden',
'new-inventory-source' => 'E-mail met bronvermelding voor inventaris verzenden',
'cancel-order' => 'Verzenden annuleren Bestellingskennisgeving E-mail',
],
],
@ -1240,11 +1243,11 @@ return [
'products' => 'Producten',
'guest-checkout' => 'Gast afrekenen',
'allow-guest-checkout' => 'Gast afrekenen toestaan',
'allow-guest-checkout-hint' => 'Hint: If turned on, this option can be configured for each product specifically.',
'review' => 'Review',
'allow-guest-checkout-hint' => 'Tip: indien ingeschakeld, kan deze optie specifiek voor elk product worden geconfigureerd.',
'review' => 'Recensie',
'allow-guest-review' => 'Gastbeoordeling toestaan',
'inventory' => 'Voorraad',
'stock-options' => 'Stock Options',
'stock-options' => 'Aandelenopties',
'allow-backorders' => 'Backorders toestaan',
'customer' => 'Klant',
'settings' => 'Instellingen',
@ -1264,37 +1267,42 @@ return [
'title' => 'Titel',
'description' => 'Omschrijving',
'rate' => 'Tarief',
'status' => 'Status',
'status' => 'Toestand',
'type' => 'Type',
'payment-methods' => 'Betaalmethodes',
'cash-on-delivery' => 'Rembours',
'money-transfer' => 'Overschrijving',
'paypal-standard' => 'Paypal Standard',
'business-account' => 'Business Account',
'business-account' => 'Zakelijk account',
'newsletter' => 'Nieuwsbrief',
'newsletter-subscription' => 'Abonnement op Nieuwsbrief toestaan',
'email' => 'Email verificatie',
'email-verification' => 'E-mailverificatie toestaan',
'sort_order' => 'Sort Order',
'sort_order' => 'sorteervolgorde',
'general' => 'Algemeen',
'footer' => 'Footer',
'footer' => 'Voettekst',
'content' => 'Inhoud',
'footer-content' => 'Footer Text',
'footer-toggle' => 'Toggle footer',
'footer-content' => 'Voettekst',
'footer-toggle' => 'Voettekst in- / uitschakelen',
'locale-options' => 'Eenheid opties',
'weight-unit' => 'Gewichtseenheid',
'email-settings' => 'Email Settings',
'email-sender-name' => 'Email Sender Name',
'shop-email-from' => 'Shop Email Address [For sending emails]',
'admin-name' => 'Admin Name',
'admin-email' => 'Admin Email',
'admin-page-limit' => 'Standaarditems per pagina (Admin)',
'design' => 'Ontwerp',
'admin-logo' => 'Admin Logo',
'logo-image' => 'Logo Afbeelding',
'credit-max' => 'Customer Credit Max',
'credit-max-value' => 'Credit Max Value',
'use-credit-max' => 'Use Credit Max',
'credit-max' => 'Klantenkrediet Max',
'credit-max-value' => 'Maximale kredietwaarde',
'use-credit-max' => 'Gebruik krediet max',
'order-settings' => 'Bestel instellingen',
'orderNumber' => 'Order Number Settings',
'order-number-prefix' => 'Order Number Prefix',
'order-number-length' => 'Order Number Length',
'order-number-suffix' => 'Order Number Suffix',
'orderNumber' => 'Instellingen voor bestelnummers',
'order-number-prefix' => 'Bestelnummer prefix',
'order-number-length' => 'Bestelnummer Lengte',
'order-number-suffix' => 'Achtervoegsel bestelnummer',
'default' => 'Standaard',
'sandbox' => 'Sandbox',
'all-channels' => 'Alles',
@ -1303,4 +1311,4 @@ return [
'logo' => 'logo'
]
]
];
];

View File

@ -1,5 +1,38 @@
<?php
return [
'save' => 'Salvar',
'create' => 'Criar',
'update' => 'Atualizar',
'delete' => 'Excluir',
'failed' => 'Falhou',
'store' => 'Loja',
'image' => 'Imagem',
'no result' => 'Nenhum resultado',
'product' => 'produtos',
'attribute' => 'Atributo',
'actions' => 'Ações',
'id' => 'ID',
'action' => 'açao',
'yes' => 'sim',
'no' => 'Não',
'true' => 'Verdade',
'false' => 'Falso',
'apply' => 'Aplique',
'action' => 'Açao',
'label' => 'Rótulo',
'name' => 'Nome',
'title' => 'Título',
'code' => 'Código',
'type' => 'Tipo',
'required' => 'Requeridos',
'unique' => 'Único',
'locale-based' => 'Com base na localidade',
'channel-based' => 'Baseado em canal',
'status' => 'Status',
'select-option' => 'Selecionar opção',
'category' => 'Categoria',
'common' => [
'no-result-found' => 'Não conseguimos encontrar nenhum registro.',
'country' => 'Pais',
@ -7,15 +40,17 @@ return [
'true' => 'Verdadeiro',
'false' => 'Falso'
],
'layouts' => [
'my-account' => 'Minha Conta',
'logout' => 'Sair',
'visit-shop' => 'Visitar Loja',
'dashboard' => 'Dashboard',
'dashboard' => 'painel de controle',
'sales' => 'Vendas',
'orders' => 'Pedido',
'shipments' => 'Envíos',
'invoices' => 'Faturas',
'refunds' => 'Reembolsos',
'catalog' => 'Catálogo',
'products' => 'Produtos',
'categories' => 'Categorias',
@ -29,7 +64,7 @@ return [
'settings' => 'Opções',
'locales' => 'Idiomas',
'currencies' => 'Moedas',
'exchange-rates' => 'Impostos de Câmbios',
'exchange-rates' => 'Taxas de Câmbios',
'inventory-sources' => 'Fontes de Inventários',
'channels' => 'Canais (Lojas)',
'users' => 'Usuários',
@ -39,8 +74,10 @@ return [
'tax-categories' => 'Categorias de Impostos',
'tax-rates' => 'Impostos de Impostos',
'promotion' => 'Promoções',
'discount' => 'Desconto'
'discount' => 'Desconto',
'cms' => 'CMS'
],
'acl' => [
'dashboard' => 'Dashboard',
'sales' => 'Vendas',
@ -56,12 +93,12 @@ return [
'groups' => 'Grupos',
'reviews' => 'Avaliações',
'newsletter-subscriptions' => 'Inscrições de Newsletter',
'configure' => 'Configure',
'configure' => 'Configurar',
'settings' => 'Configurações',
'locales' => 'Idiomas',
'currencies' => 'Moedas',
'exchange-rates' => 'Impostos de Câmbios',
'inventory-sources' => 'Fontes de Inventários',
'inventory-sources' => 'Origens de Estoque',
'channels' => 'Canais (Lojas)',
'users' => 'Usuários',
'roles' => 'Funções',
@ -73,8 +110,10 @@ return [
'create' => 'Add',
'delete' => 'Delete',
'promotions' => 'Promoções',
'cart-rules' => 'Regras do Carrinho'
'cart-rules' => 'Regras do Carrinho',
'catalog-rules' => 'Regras do Catálogo',
],
'dashboard' => [
'title' => 'Dashboard',
'from' => 'De',
@ -96,18 +135,22 @@ return [
'stock-threshold' => 'Limite de Estoque',
'qty-left' => ':qty Restante',
],
'datagrid' => [
'mass-ops' => [
'method-error' => 'Erro! Método errado detectado, por favor, verifique a configuração de ação em massa',
'delete-success' => 'O índice selecionado de :resource foi excluído com sucesso',
'partial-action' => 'Algumas ações não foram executadas devido a restrições restritas do sistema em :resource',
'update-success' => 'O índice selecionado :resource foram atualizados com sucesso',
'no-resource' => 'O recurso fornecido insuficiente para a ação'
],
'id' => 'ID',
'status' => 'Status',
'code' => 'Código',
'admin-name' => 'Nome',
'name' => 'Nome',
'direction' => 'Direção',
'fullname' => 'Nome Completo',
'type' => 'Tipo',
'required' => 'Obrigatório',
@ -116,10 +159,14 @@ return [
'per-channel' => 'Por Canal (Loja)',
'position' => 'Posição',
'locale' => 'Idioma',
'hostname' => 'Hostname',
'email' => 'Email',
'hostname' => 'nome de anfitrião',
'email' => 'O email',
'group' => 'Grupo',
'phone' => 'telefone',
'gender' => 'Gênero',
'title' => 'Título',
'layout' => 'Layout',
'url-key' => 'URL Chave',
'comment' => 'Comentário',
'product-name' => 'Produto',
'currency-name' => 'Nome da Moéda',
@ -155,29 +202,30 @@ return [
'per-cust' => 'Por cliente',
'usage-throttle' => 'Tempos de uso',
'for-guest' => 'Para convidados',
'order_number' => 'Order Number',
'refund-date' => 'Refund Date',
'refunded' => 'Refunded',
'start' => 'Start',
'end' => 'End',
'active' => 'Active',
'inactive' => 'Inactive',
'true' => 'True',
'false' => 'False',
'approved' => 'Approved',
'pending' => 'Pending',
'disapproved' => 'Disapproved',
'coupon-code' => 'Coupon Code',
'times-used' => 'Times Used',
'created-date' => 'Created Date',
'expiration-date' => 'Expiration Date',
'edit' => 'Edit',
'delete' => 'Delete',
'view' => 'View',
'order_number' => 'Número do pedido',
'refund-date' => 'Data do reembolso',
'refunded' => 'Devolveu',
'start' => 'Começar',
'end' => 'Fim',
'active' => 'Ativo',
'inactive' => 'Inativo',
'true' => 'Verdade',
'false' => 'Falso',
'approved' => 'Aprovado',
'pending' => 'Pendente',
'disapproved' => 'Reprovado',
'coupon-code' => 'Código do cupom',
'times-used' => 'Vezes Utilizado',
'created-date' => 'Data de criação',
'expiration-date' => 'Data de validade',
'edit' => 'Editar',
'delete' => 'Excluir',
'view' => 'Visão',
'rtl' => 'RTL',
'ltr' => 'LTR',
'update-status' => 'Update Status'
'update-status' => 'Atualizar o status'
],
'account' => [
'title' => 'Minha Conta',
'save-btn-title' => 'Salvar',
@ -189,6 +237,7 @@ return [
'change-password' => 'Mudar Senha da Conta',
'current-password' => 'Senha Atual'
],
'users' => [
'forget-password' => [
'title' => 'Esqueci Minha Senha',
@ -199,6 +248,7 @@ return [
'back-link-title' => 'Voltar para Login',
'submit-btn-title' => 'Link do E-mail para Recuperar Senha'
],
'reset-password' => [
'title' => 'Resetar Senha',
'email' => 'E-mail Registrado',
@ -207,6 +257,7 @@ return [
'back-link-title' => 'Voltar para Login',
'submit-btn-title' => 'Resetar Senha'
],
'roles' => [
'title' => 'Funções',
'add-role-title' => 'Add Função',
@ -220,6 +271,7 @@ return [
'custom' => 'Personalizado',
'all' => 'Tudo'
],
'users' => [
'title' => 'Usuário',
'add-user-title' => 'Add Usuário',
@ -245,6 +297,7 @@ return [
'login-error' => 'Por favor, verifique suas credenciais e tente novamente.',
'activate-warning' => 'Sua conta ainda está para ser ativada, entre em contato com o administrador.'
],
'sessions' => [
'title' => 'Entrar',
'email' => 'Email',
@ -254,6 +307,7 @@ return [
'submit-btn-title' => 'Entrar'
]
],
'sales' => [
'orders' => [
'title' => 'Pedidos',
@ -268,9 +322,16 @@ return [
'order-info' => 'Informação do Pedido',
'order-date' => 'Data do Pedido',
'order-status' => 'Status do Pedido',
'order-status-canceled' => 'Cancelado',
'order-status-closed' => 'Fechados',
'order-status-fraud' => 'Fraude',
'order-status-pending' => 'Pendente',
'order-status-pending-payment' => 'Pagamento Pendente',
'order-status-processing' => 'Em processamento',
'order-status-success' => 'Concluído',
'channel' => 'Canal (Loja)',
'customer-name' => 'Nome do Cliente',
'email' => 'Email',
'email' => 'O email',
'contact-number' => 'Número de Contato',
'account-info' => 'Informação da Conta',
'address' => 'Endereço',
@ -292,7 +353,7 @@ return [
'item-invoice' => 'Faturado(s) (:qty_invoiced)',
'item-shipped' => 'Enviado(s) (:qty_shipped)',
'item-canceled' => 'Cancelado(s) (:qty_canceled)',
'item-refunded' => 'Refunded (:qty_refunded)',
'item-refunded' => 'Devolveu (:qty_refunded)',
'price' => 'Preço',
'total' => 'Total',
'subtotal' => 'Subtotal',
@ -311,6 +372,7 @@ return [
'refunds' => 'Refunds',
'refunded' => 'Refunded'
],
'invoices' => [
'title' => 'Faturas',
'id' => 'Id',
@ -362,28 +424,30 @@ return [
],
'refunds' => [
'title' => 'Refunds',
'title' => 'Reembolsos',
'id' => 'Id',
'add-title' => 'Create Refund',
'save-btn-title' => 'Refund',
'order-id' => 'Order Id',
'qty-ordered' => 'Qty Ordered',
'qty-to-refund' => 'Qty To Refund',
'refund-shipping' => 'Refund Shipping',
'adjustment-refund' => 'Adjustment Refund',
'adjustment-fee' => 'Adjustment Fee',
'update-qty' => 'Update Quantities',
'invalid-qty' => 'Found invalid quantity for return items.',
'refund-limit-error' => 'The most money available to refund is :amount.',
'refunded' => 'Refunded',
'date' => 'Refund Date',
'customer-name' => 'Customer Name',
'add-title' => 'Criar reembolso',
'save-btn-title' => 'Reembolso',
'order-id' => 'Ordem Id',
'qty-ordered' => 'Qty Encomendado',
'qty-to-refund' => 'Qty To Reembolso',
'refund-shipping' => 'Envio de reembolso',
'adjustment-refund' => 'Reembolso de ajuste',
'adjustment-fee' => 'Taxa de ajuste',
'update-qty' => 'Quantidades de atualização',
'invalid-qty' => 'Encontramos uma quantidade inválida para reembolsar itens.',
'refund-limit-error' => 'O máximo de dinheiro disponível para reembolso :amount.',
'refunded' => 'Devolveu',
'date' => 'Data do reembolso',
'customer-name' => 'nome do cliente',
'status' => 'Status',
'action' => 'Action',
'view-title' => 'Refund #:refund_id',
'action' => 'Açao',
'view-title' => 'Reembolso #:refund_id',
'invalid-refund-amount-error' => 'Refund amount should be non zero.'
]
],
'catalog' => [
'products' => [
'title' => 'Produtos',
@ -410,28 +474,30 @@ return [
'price' => 'Preço',
'weight' => 'Peso',
'status' => 'Status',
'enabled' => 'Ativado',
'disabled' => 'Desativado',
'add-variant-title' => 'Add Variação',
'variant-already-exist-message' => 'Variante com as mesmas opções de atributo já existe.',
'add-image-btn-title' => 'Add Imagem',
'mass-delete-success' => 'Todos os índices de produtos selecionados foram excluídos com sucesso',
'mass-update-success' => 'Todo o índice selecionado de produtos foi atualizado com sucesso',
'downloadable' => 'Downloadable Information',
'links' => 'Links',
'add-link-btn-title' => 'Add Link',
'samples' => 'Samples',
'add-sample-btn-title' => 'Add Sample',
'downloads' => 'Download Allowed',
'file' => 'File',
'sample' => 'Sample',
'upload-file' => 'Upload File',
'url' => 'Url',
'sort-order' => 'Sort Order',
'browse-file' => 'Browse File',
'configurable-error' => 'Por favor, selecione pelo menos um atributo configurável.',
'configurable-error' => 'Selecione pelo menos um atributo configurável.',
'categories' => 'Categorias',
'images' => 'Imagens',
'inventories' => 'Os inventários',
'variations' => 'Variações',
'downloadable' => 'Informações para Download',
'links' => 'Ligações',
'add-link-btn-title' => 'Adicionar Link',
'samples' => 'Amostras',
'add-sample-btn-title' => 'Adicionar amostra',
'downloads' => 'Download permitido',
'file' => 'Arquivo',
'sample' => 'Amostra',
'upload-file' => 'Subir arquivo',
'url' => 'Url',
'sort-order' => 'Ordem de classificação',
'browse-file' => 'Procurar arquivo',
'product-link' => 'Produtos Vinculados',
'cross-selling' => 'Venda cruzada',
'up-selling' => 'Acima de vender',
@ -439,12 +505,13 @@ return [
'product-search-hint' => 'Comece a digitar o nome do produto',
'no-result-found' => 'Produtos não encontrados com o mesmo nome.',
'searching' => 'Procurando ...',
'grouped-products' => 'Grouped Products',
'search-products' => 'Search Products',
'no-result-found' => 'Products not found with same name.',
'bundle-items' => 'Bundle Items',
'add-option-btn-title' => 'Add Option',
'option-title' => 'Option Title',
'grouped-products' => 'Produtos Agrupados',
'search-products' => 'procurar produtos',
'no-result-found' => 'Produtos não encontrados com o mesmo nome.',
'channel' => 'Canais',
'bundle-items' => 'Itens do pacote',
'add-option-btn-title' => 'Adicionar opção',
'option-title' => 'Título da opção',
'input-type' => 'Input Type',
'is-required' => 'Is Required',
'select' => 'Select',
@ -454,6 +521,7 @@ return [
'new-option' => 'New Option',
'is-default' => 'Is Default'
],
'attributes' => [
'title' => 'Atributos',
'add-title' => 'Add Atributo',
@ -489,6 +557,7 @@ return [
'no' => 'Não',
'value_per_locale' => 'Valor Por Idioma',
'value_per_channel' => 'Valor Por Canal (Loja)',
'value_per_channel' => 'Valor Por Canal (Loja)',
'is_filterable' => 'Usar na navegação em camadas',
'is_configurable' => 'Usar para Criar Produtos Configuráveis',
'admin_name' => 'Admin Nome',
@ -500,7 +569,11 @@ return [
'text-swatch' => 'Amostra de texto',
'swatch' => 'Swatch',
'image' => 'Imagem',
'file' => 'Arquivo'
'file' => 'Arquivo',
'checkbox' => 'Checkbox',
'use_in_flat' => "Criar na tabela plana do produto",
'is_comparable' => "O atributo é comparável",
'default_null_option' => 'Criar opção vazia padrão',
],
'families' => [
'title' => 'Famílias',
@ -531,10 +604,10 @@ return [
'yes' => 'Sim',
'no' => 'Não',
'position' => 'Posição',
'display-mode' => 'Display Mode',
'products-and-description' => 'Products and Description',
'products-only' => 'Products Only',
'description-only' => 'Description Only',
'display-mode' => 'Modo de exibição',
'products-and-description' => 'Produtos e Descrição',
'products-only' => 'Apenas produtos',
'description-only' => 'Apenas descrição',
'description-and-images' => 'Descrição e Imagens',
'description' => 'Descrição',
'parent-category' => 'Categoria Pai',
@ -544,8 +617,11 @@ return [
'meta_description' => 'Meta Descrição',
'meta_keywords' => 'Meta Keywords',
'image' => 'Imagem',
'filterable-attributes' => 'Atributos filtráveis',
'attributes' => 'Atributos',
]
],
'configuration' => [
'title' => 'Configuração',
'save-btn-title' => 'Salvar',
@ -553,6 +629,7 @@ return [
'yes' => 'Sim',
'no' => 'Não',
'delete' => 'Deletar',
'tax-categories' => [
'title' => 'Categorias de Imposto',
'add-title' => 'Add Categorias de Imposto',
@ -569,6 +646,7 @@ return [
'edit-button-title' => 'Editar Categorias de Imposto'
]
],
'tax-rates' => [
'title' => 'Taxas de Impostos',
'add-title' => 'Add Taxas de Imposto',
@ -590,6 +668,7 @@ return [
'zip_code' => 'CEP',
'is_zip' => 'Ativar intervalo de CEP'
],
'sales' => [
'shipping-method' => [
'title' => 'Método de Entregas',
@ -600,15 +679,18 @@ return [
]
]
],
'settings' => [
'locales' => [
'title' => 'Idiomas',
'add-title' => 'Add Idioma',
'edit-title' => 'Editar Idioma',
'add-title' => 'Add Idioma',
'save-btn-title' => 'Salvar Idioma',
'general' => 'Geral',
'code' => 'Código',
'name' => 'Nome',
'direction' => 'Direção',
'create-success' => 'Local criado com sucesso.',
'update-success' => 'Localidade atualizada com sucesso.',
'delete-success' => 'Locale excluído com sucesso.',
@ -645,6 +727,8 @@ return [
'source_currency' => 'Moeda de Origem',
'target_currency' => 'Moeda Alvo',
'rate' => 'Taxa',
'exchange-class-not-found' => ':service de taxa de câmbio de serviço não encontrada',
'rate' => 'Taxa',
'create-success' => 'Taxa de Câmbio criada com sucesso.',
'update-success' => 'Taxa de Câmbio atualizada com sucesso.',
'delete-success' => 'Taxa de Câmbio excluída com sucesso.',
@ -706,8 +790,14 @@ return [
'create-success' => 'Canal criado com sucesso.',
'update-success' => 'Canal atualizado com sucesso.',
'delete-success' => 'Canal excluído com sucesso.',
'last-delete-error' => 'Pelo menos um canal é necessário.'
'last-delete-error' => 'Pelo menos um canal é necessário.',
'seo' => 'Página inicial SEO',
'seo-title' => 'Meta título',
'seo-description' => 'Meta Descrição',
'seo-keywords' => 'Meta palavras-chave',
],
'sliders' => [
'title' => 'Sliders',
'name' => 'Name',
@ -725,6 +815,7 @@ return [
'delete-success' => 'Não foi possível excluir o slider',
'delete-fail' => 'Slider excluído com sucesso'
],
'tax-categories' => [
'title' => 'Categorias de Imposto',
'add-title' => 'Criar Categoria de Imposto',
@ -747,6 +838,7 @@ return [
'atleast-one' => 'Não é possível excluir a última Categoria de Imposto',
'delete' => 'Categoria de Imposto excluída com sucesso'
],
'tax-rates' => [
'title' => 'Taxas de Impostos',
'add-title' => 'Criar Taxas de Impostos',
@ -778,6 +870,7 @@ return [
'title' => 'Desenvolvimento',
]
],
'customers' => [
'groups' =>[
'add-title' => 'Add Grupo',
@ -790,12 +883,44 @@ return [
'is_user_defined' => 'Usuário Definido',
'yes' => 'Sim'
],
'note' => [
'title' => 'Add Note',
'save-note' => 'Save Note',
'enter-note' => 'Enter Note',
'help-title' => 'Add Note On This Customer'
'addresses' => [
'title' => 'Lista de Endereços de :customer_name',
'vat_id' => 'Vat id',
'create-title' => 'Criar endereço do cliente',
'edit-title' => 'Atualizar endereço do cliente',
'title-orders' => 'Lista de pedidos :customer_name ',
'address-list' => 'Lista de Endereços',
'order-list' => 'Lista de pedidos',
'address-id' => 'Endereço ID',
'address-1' => 'Endereço 1',
'city' => 'Cidade',
'state-name' => 'Estado',
'country-name' => 'País',
'postcode' => 'Código postal',
'default-address' => 'Endereço padrão',
'yes' => 'sim',
'not-approved' => 'Não aprovado',
'no' => 'Não',
'dash' => '-',
'delete' => 'Excluir',
'create-btn-title' => 'Adicionar endereço',
'save-btn-title' => 'Salvar endereço',
'general' => 'Geral',
'success-create' => 'Success: Endereço do cliente criado com sucesso.',
'success-update' => 'Success: Endereço do cliente atualizado com sucesso.',
'success-delete' => 'Success: Endereço do cliente excluído com sucesso.',
'success-mass-delete' => 'Success: endereços selecionados excluídos com sucesso.',
'error-create' => 'Error: Endereço do cliente não criado.',
],
'note' => [
'title' => 'Adicionar nota',
'save-note' => 'Salvar nota',
'enter-note' => 'Inserir nota',
'help-title' => 'Adicionar nota sobre este cliente'
],
'customers' => [
'add-title' => 'Add Cliente',
'edit-title' => 'Editar Cliente',
@ -826,6 +951,7 @@ return [
'active' => 'Ativo (a)',
'inactive' => 'Inativo (a)'
],
'reviews' => [
'title' => 'Avaliações',
'edit-title' => 'Editar Avaliação',
@ -836,6 +962,7 @@ return [
'approved' => 'Aprovado',
'disapproved' => 'Desaprovar'
],
'subscribers' => [
'title' => 'Assinantes de Newletter',
'title-edit' => 'Editar Assinante',
@ -848,93 +975,147 @@ return [
'delete-failed' => 'Erro! Você não pode excluir a inscrição desse usuário',
]
],
'promotion' => [
'catalog-rule' => 'Regras de Catálogo',
'cart-rule' => 'Regras do Carrinho',
'add-catalog-rule' => 'Adicionar regra de catálogo',
'add-cart-rule' => 'Adicionar Regra do Carrinho',
'edit-cart-rule' => 'Editar regra do carrinho',
'edit-catalog-rule' => 'Editar regra do catálogo',
'create-catalog-rule' => 'Criar regra de catálogo',
'create-cart-rule' => 'Criar regra de carrinho',
'save-btn-title' => 'Criar',
'edit-btn-title' => 'Editar',
'save' => 'Salve',
'select-attr' => 'Selecione o atributo',
'select-attr-fam' => 'Selecione a Família de Atributos',
'select-cart-attr' => 'Selecione o atributo Carrinho',
'general-info' => [
'name' => 'Nome da regra',
'description' => 'Descrição',
'starts-from' => 'Começar',
'ends-till' => 'Fim',
'channels' => 'Canais',
'channels-req' => 'Canais',
'cust-groups' => 'Grupos de clientes',
'priority' => 'Prioridade',
'add-condition' => 'Adicionar condições',
'disc_amt' => 'Valor de desconto',
'disc_percent' => 'Porcentagem de desconto',
'is-coupon' => 'Use cupom',
'is-coupon-yes' => 'Sim',
'is-coupon-no' => 'Não',
'uses-per-cust' => 'Usos por cliente',
'all' => 'Todos (a)',
'any' => 'Qualquer',
'end-other-rules' => 'Acabar com outras regras',
'status' => 'Está ativo',
'all-conditions-true' => 'Assumindo que todas as condições sejam verdadeiras',
'assuming' => 'Assumindo',
'any' => 'Qualquer',
'all' => 'Todos (a)',
'conditions' => 'Condições',
'apply' => 'Aplique',
'are' => 'está',
'true' => 'verdade',
'false' => 'falso (a)',
'limit' => 'Limite de uso',
'specific-coupon' => 'Cupom Específico (Cheque) / Gerado Automaticamente (Desmarque)',
'free-shipping' => 'Frete grátis',
'is-guest' => 'Para os hóspedes',
'disc_qty' => 'Max. Quantidade permitida para ser descontado',
'test-mode' => 'Escolha como testar as condições',
'labels' => 'Rótulos'
],
'status' => [
'success' => 'Sucesso! regra criada',
'success-coupon' => 'Sucesso! regra criada junto com o cupom',
'failed' => 'Erro! não conseguiu criar regra',
'update-success' => 'Sucesso! regra atualizada',
'update-coupon-success' => 'Sucesso! regra atualizada junto com cupom',
'update-failed' => 'Erro! não pode atualizar',
'delete-success' => 'Sucesso! regra excluída',
'delete-failed' => 'Erro! não pode apagar',
'coupon-applied' => 'Cupom Usado',
'coupon-failed' => 'O cupom não foi aplicado',
'no-coupon' => '* Cupom não aplicável',
'coupon-removed' => 'Cupom removido com sucesso',
'coupon-remove-failed' => 'Remoção de cupons falhou',
'duplicate-coupon' => 'O cupom já existe, por favor tente novamente com um cupom diferente'
],
'catalog' => [
'cart-rules' => [
'title' => 'Regras do carrinho',
'add-title' => 'Adicionar regra de carrinho',
'edit-title' => 'Editar regra do carrinho',
'save-btn-title' => 'Regra Salvar carrinho',
'rule-information' => 'Informações sobre regras',
'name' => 'Nome',
'description' => 'Descrição',
'apply-percent' => 'Aplique como porcentagem',
'apply-fixed' => 'Aplicar como quantia fixa',
'adjust-to-percent' => 'Ajuste para porcentagem',
'adjust-to-value' => 'Ajustar ao valor de desconto',
'condition-missing' => 'Por favor, verifique condições, alguns valores podem estar faltando'
'status' => 'Status',
'is-active' => 'A regra do carrinho está ativa',
'channels' => 'Canais',
'customer-groups' => 'Grupos de Clientes',
'coupon-type' => 'Tipo de cupom',
'no-coupon' => 'Sem Cupom',
'specific-coupon' => 'Cupom específico',
'auto-generate-coupon' => 'Gerar cupom automaticamente',
'no' => 'Não',
'yes' => 'sim',
'coupon-code' => 'Código do cupom',
'uses-per-coupon' => 'Usos por cupom',
'uses-per-customer' => 'Usos por cliente',
'uses-per-customer-control-info' => 'Será usado apenas para clientes logados.',
'from' => 'A partir de',
'to' => 'Para',
'priority' => 'Prioridade',
'conditions' => 'Condições',
'condition-type' => 'Tipo de condição',
'all-conditions-true' => 'Todas as condições são verdadeiras',
'any-condition-true' => 'Qualquer condição é verdadeira',
'add-condition' => 'Adicionar Condição',
'choose-condition-to-add' => 'Escolha uma condição para adicionar',
'cart-attribute' => 'Atributo do carrinho',
'subtotal' => 'Subtotal',
'total-items-qty' => 'Quantidade total de itens',
'total-weight' => 'Peso total',
'payment-method' => 'Forma de pagamento',
'shipping-method' => 'método de envio',
'shipping-postcode' => 'CEP / código postal',
'shipping-state' => 'Estado de envio',
'shipping-country' => 'País de envio',
'cart-item-attribute' => 'Atributo do item do carrinho',
'price-in-cart' => 'Preço no carrinho',
'qty-in-cart' => 'Quantidade no carrinho',
'product-attribute' => 'Atributo do produto',
'attribute-name-children-only' => ':attribute_name (somente filhos)',
'attribute-name-parent-only' => ':attribute_name (somente pai)',
'is-equal-to' => 'É igual a',
'is-not-equal-to' => 'Não é igual a',
'equals-or-greater-than' => 'Igual ou superior a',
'equals-or-less-than' => 'Igual ou menor que',
'greater-than' => 'Maior que',
'less-than' => 'Menor que',
'contain' => 'Conter',
'contains' => 'Contém',
'does-not-contain' => 'Não contém',
'actions' => 'Ações',
'action-type' => 'Tipo de acão',
'percentage-product-price' => 'Porcentagem do preço do produto',
'fixed-amount' => 'Quantia fixa',
'fixed-amount-whole-cart' => 'Montante fixo ao carrinho inteiro',
'buy-x-get-y-free' => 'Compre o X Get Y grátis',
'discount-amount' => 'Valor do desconto',
'discount-quantity' => 'Quantidade máxima permitida para desconto',
'discount-step' => 'Comprar X Quantidade',
'free-shipping' => 'Envio Grátis',
'apply-to-shipping' => 'Aplicar ao envio',
'coupon-codes' => 'Códigos de cupom',
'coupon-qty' => 'Quantidade do Cupom',
'code-length' => 'Comprimento do código',
'code-format' => 'Formato do código',
'alphanumeric' => 'Alfanumérica',
'alphabetical' => 'Alfabética',
'numeric' => 'Numérico',
'code-prefix' => 'Prefixo do código',
'code-suffix' => 'Sufixo de código',
'generate' => 'Gerar',
'cart-rule-not-defind-error' => 'A regra do carrinho não está definida',
'mass-delete-success' => 'Todos os cupons selecionados foram excluídos com sucesso.',
'end-other-rules' => 'Terminar outras regras',
'children-categories' => 'Categorias (Somente Crianças)',
'parent-categories' => 'Categorias (somente pai)',
'categories' => 'Categorias',
'attribute_family' => 'Família de Atributos'
],
'cart' => [
'buy-atleast' => 'Compre Atleast',
'apply-to-shipping' => 'Aplicar ao envio'
'catalog-rules' => [
'title' => 'Regras do Catálogo',
'add-title' => 'Adicionar regra de catálogo',
'edit-title' => 'Editar regra do catálogo',
'save-btn-title' => 'Salvar regra de catálogo',
'rule-information' => 'Informações sobre regras',
'name' => 'Nome',
'description' => 'Descrição',
'status' => 'Status',
'is-active' => 'A regra do catálogo está ativa',
'channels' => 'Canais',
'customer-groups' => 'Grupos de Clientes',
'no' => 'Não',
'yes' => 'sim',
'from' => 'A partir de',
'to' => 'Para',
'priority' => 'Prioridade',
'conditions' => 'Condições',
'condition-type' => 'Tipo de condição',
'all-conditions-true' => 'Todas as condições são verdadeiras',
'any-condition-true' => 'Qualquer condição é verdadeira',
'add-condition' => 'Adicionar Condição',
'choose-condition-to-add' => 'Escolha uma condição para adicionar',
'product-attribute' => 'Atributo do produto',
'attribute-name-children-only' => ':attribute_name (somente filhos)',
'attribute-name-parent-only' => ': attribute_name (somente pai)',
'is-equal-to' => 'É igual a',
'is-not-equal-to' => 'Não é igual a',
'equals-or-greater-than' => 'Igual ou superior a',
'equals-or-less-than' => 'Igual ou menor que',
'greater-than' => 'Maior que',
'less-than' => 'Menor que',
'contain' => 'Conter',
'contains' => 'Contém',
'does-not-contain' => 'Não contém',
'actions' => 'Ações',
'action-type' => 'Tipo de acão',
'percentage-product-price' => 'Porcentagem do preço do produto',
'fixed-amount' => 'Quantia fixa',
'fixed-amount-whole-cart' => 'Montante fixo ao catálogo inteiro',
'buy-x-get-y-free' => 'Compre o X Get Y grátis',
'discount-amount' => 'Valor do desconto',
'mass-delete-success' => 'Todo o índice selecionado de cupons foi excluído com sucesso.',
'end-other-rules' => 'Terminar outras regras',
'categories' => 'Categorias',
'attribute_family' => 'Família de Atributos'
]
],
'error' => [
'go-to-home' => 'IR PARA PÁGINA INICIAL',
'in-maitainace' => 'In Maintenance',
'right-back' => 'Be Right Back',
'in-maitainace' => 'Em manutenção',
'right-back' => 'Volto logo',
'404' => [
'page-title' => '404 Página não Encontrada',
'name' => '404',
@ -978,12 +1159,48 @@ return [
'no-records' => 'Nada para exportar',
'illegal-format' => 'Erro! Este tipo de formato não é suportado ou seu formato ilegal'
],
'cms' => [
'pages' => [
'general' => 'Geral',
'seo' => 'SEO',
'pages' => 'Páginas',
'title' => 'Páginas',
'add-title' => 'Adicionar Página',
'content' => 'Conteúdo',
'url-key' => 'Chave de URL',
'channel' => 'Canais',
'locale' => 'Localidades',
'create-btn-title' => 'Salvar pagina',
'edit-title' => 'Editar Página',
'edit-btn-title' => 'Salvar pagina',
'create-success' => 'Página criada com sucesso',
'create-partial' => 'Algumas das páginas solicitadas já existem',
'create-failure' => 'Todas as páginas solicitadas já existem',
'update-success' => 'Página atualizada com sucesso',
'update-failure' => 'A página não pode ser atualizada',
'page-title' => 'Título da página',
'layout' => 'Layout',
'meta_keywords' => 'Meta Palavras-chave',
'meta_description' => 'Meta Descrição',
'meta_title' => 'Meta Título',
'delete-success' => 'Página CMS excluída com sucesso',
'delete-failure' => 'A página do CMS não pode ser excluída',
'preview' => 'Pré-visualização',
'one-col' => '<div class="mt-10">Use class: <b>"static-container one-column"</b> para um layout de coluna.</div>',
'two-col' => '<div class="mt-10">Use class: <b>"static-container two-column"</b> para layout de duas colunas.</div>',
'three-col' => '<div class="mt-10">Use class: <b>"static-container three-column"</b> para layout de três colunas.</div>',
'helper-classes' => 'Helper Classes'
]
],
'response' => [
'being-used' => 'Este recurso :name está sendo usado em :source',
'cannot-delete-default' => 'Não é possível excluir o canal padrão',
'create-success' => ':name criado com sucesso.',
'update-success' => ':name atualizaco com sucesso.',
'delete-success' => ':name excluído com sucesso.',
'delete-failed' => 'Erro encontrado ao excluir :name.',
'last-delete-error' => 'Ao menos um :name é obrigatório.',
'user-define-error' => 'Não pode excluir o sistema :name',
'attribute-error' => ':name é usado em produtos configuráveis.',
@ -995,7 +1212,8 @@ return [
'create-root-failure' => 'A categoria com nome root já existe',
'cancel-success' => ':name cancelado com sucesso.',
'cancel-error' => ':name não pode ser cancelado.',
'already-taken' => 'O :name já foi tomada.'
'already-taken' => 'O :name já foi tomada.',
'order-pending' => 'Não é possível excluir a conta porque alguns pedidos estão em estado pendente ou em processamento.'
],
'footer' => [
@ -1003,14 +1221,34 @@ return [
],
'admin' => [
'emails' => [
'email' => 'O email',
'notification_label' => 'Notificações',
'notifications' => [
'verification' => 'Enviar email de verificação',
'registration' => 'Enviar registro E-mail',
'customer' => 'Enviar e-mail do cliente',
'new-order' => 'Enviar E-mail de Confirmação de Pedido',
'new-admin' => 'Enviar email de convite de administrador',
'new-invoice' => 'Enviar e-mail de confirmação da fatura',
'new-refund' => 'Enviar email de notificação de reembolso',
'new-shipment' => 'Enviar email de notificação de remessa',
'new-inventory-source' => 'Enviar email de notificação de origem de inventário',
'cancel-order' => 'Enviar cancelar E-mail de notificação de pedido',
],
],
'system' => [
'catalog' => 'Catálogo',
'products' => 'Produtos',
'guest-checkout' => 'Saída do hóspede',
'allow-guest-checkout' => 'Permitir saída do hóspede',
'allow-guest-checkout-hint' => 'Dica: se ativada, esta opção pode ser configurada para cada produto especificamente.',
'review' => 'Reveja',
'allow-guest-review' => 'Permitir comentário de convidado',
'inventory' => 'Inventário',
'stock-options' => 'Opções de ações',
'allow-backorders' => 'Permitir atrasos',
'allow-backorders' => 'Permitir Pedidos por Admin',
'customer' => 'Cliente',
'settings' => 'Definições',
'address' => 'Endereço',
@ -1045,22 +1283,35 @@ return [
'footer' => 'Rodapé',
'content' => 'Conteúdo',
'footer-content' => 'Texto de rodapé',
'footer-toggle' => 'Alternar rodapé',
'locale-options' => 'Opções de unidade',
'weight-unit' => 'Unidade de peso',
'admin-page-limit' => 'Itens padrão por página (administrador)',
'design' => 'Design',
'email-settings' => 'Configurações de Email',
'email-sender-name' => 'Nome do Email da Loja',
'shop-email-from' => 'Endereço de Email da Loja [Para enviar emails]',
'admin-name' => 'Admin Nome',
'admin-email' => 'Admin Email',
'admin-page-limit' => 'Quantidade Padrão de Itens por Página (Admin)',
'design' => 'Design',
'admin-logo' => 'Admin Logo',
'logo-image' => 'Logo Imagem',
'credit-max' => 'Máximo de crédito do cliente',
'credit-max-value' => 'Valor Máximo de Crédito',
'use-credit-max' => 'Use o máximo de crédito',
'order-settings' => 'Order Settings',
'orderNumber' => 'Order Number Settings',
'order-number-prefix' => 'Order Number Prefix',
'order-number-length' => 'Order Number Length',
'order-number-suffix' => 'Order Number Suffix',
'order-settings' => 'Configurações do Pedido',
'orderNumber' => 'Configuração do Número do Pedido',
'order-number-prefix' => 'Prefixo do Número do Pedido',
'order-number-length' => 'Tamanho do Número do Pedido',
'order-number-suffix' => 'Sufixo do Número de Pedido',
'default' => 'Padrão',
'sandbox' => 'Sandbox',
'invoice-slip-design' => 'Invoice Slip Design',
'all-channels' => 'Todos',
'all-locales' => 'Todos',
'sandbox' => 'Sandbox',
'invoice-slip-design' => 'Design da Nota do Pedido',
'logo' => 'logo'
]
]
];
];

View File

@ -52,7 +52,7 @@
<div class="control-group" :class="[errors.has('{{$locale}}[name]') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.catalog.categories.name') }}</label>
<input type="text" v-validate="'required'" class="control" id="name" name="{{$locale}}[name]" value="{{ old($locale)['name'] ?? $category->translate($locale)['name'] }}" data-vv-as="&quot;{{ __('admin::app.catalog.categories.name') }}&quot;" v-slugify-target="'slug'"/>
<input type="text" v-validate="'required'" class="control" id="name" name="{{$locale}}[name]" value="{{ old($locale)['name'] ?? ($category->translate($locale)['name'] ?? '') }}" data-vv-as="&quot;{{ __('admin::app.catalog.categories.name') }}&quot;" v-slugify-target="'slug'"/>
<span class="control-error" v-if="errors.has('{{$locale}}[name]')">@{{ errors.first('{!!$locale!!}[name]') }}</span>
</div>
@ -180,23 +180,23 @@
<div class="control-group">
<label for="meta_title">{{ __('admin::app.catalog.categories.meta_title') }}</label>
<input type="text" class="control" id="meta_title" name="{{$locale}}[meta_title]" value="{{ old($locale)['meta_title'] ?? $category->translate($locale)['meta_title'] }}"/>
<input type="text" class="control" id="meta_title" name="{{$locale}}[meta_title]" value="{{ old($locale)['meta_title'] ?? ($category->translate($locale)['meta_title'] ?? '') }}"/>
</div>
<div class="control-group" :class="[errors.has('{{$locale}}[slug]') ? 'has-error' : '']">
<label for="slug" class="required">{{ __('admin::app.catalog.categories.slug') }}</label>
<input type="text" v-validate="'required'" class="control" id="slug" name="{{$locale}}[slug]" value="{{ old($locale)['slug'] ?? $category->translate($locale)['slug'] }}" data-vv-as="&quot;{{ __('admin::app.catalog.categories.slug') }}&quot;" v-slugify/>
<input type="text" v-validate="'required'" class="control" id="slug" name="{{$locale}}[slug]" value="{{ old($locale)['slug'] ?? ($category->translate($locale)['slug'] ?? '') }}" data-vv-as="&quot;{{ __('admin::app.catalog.categories.slug') }}&quot;" v-slugify/>
<span class="control-error" v-if="errors.has('{{$locale}}[slug]')">@{{ errors.first('{!!$locale!!}[slug]') }}</span>
</div>
<div class="control-group">
<label for="meta_description">{{ __('admin::app.catalog.categories.meta_description') }}</label>
<textarea class="control" id="meta_description" name="{{$locale}}[meta_description]">{{ old($locale)['meta_description'] ?? $category->translate($locale)['meta_description'] }}</textarea>
<textarea class="control" id="meta_description" name="{{$locale}}[meta_description]">{{ old($locale)['meta_description'] ?? ($category->translate($locale)['meta_description'] ?? '') }}</textarea>
</div>
<div class="control-group">
<label for="meta_keywords">{{ __('admin::app.catalog.categories.meta_keywords') }}</label>
<textarea class="control" id="meta_keywords" name="{{$locale}}[meta_keywords]">{{ old($locale)['meta_keywords'] ?? $category->translate($locale)['meta_keywords'] }}</textarea>
<textarea class="control" id="meta_keywords" name="{{$locale}}[meta_keywords]">{{ old($locale)['meta_keywords'] ?? ($category->translate($locale)['meta_keywords'] ?? '') }}</textarea>
</div>
{!! view_render_event('bagisto.admin.catalog.category.edit_form_accordian.seo.controls.after', ['category' => $category]) !!}
@ -220,7 +220,7 @@
<div class="control-group" :class="[errors.has('{{$locale}}[description]') ? 'has-error' : '']">
<label for="description" :class="isRequired ? 'required' : ''">{{ __('admin::app.catalog.categories.description') }}</label>
<textarea v-validate="isRequired ? 'required' : ''" class="control" id="description" name="{{$locale}}[description]" data-vv-as="&quot;{{ __('admin::app.catalog.categories.description') }}&quot;">{{ old($locale)['description'] ?? $category->translate($locale)['description'] }}</textarea>
<textarea v-validate="isRequired ? 'required' : ''" class="control" id="description" name="{{$locale}}[description]" data-vv-as="&quot;{{ __('admin::app.catalog.categories.description') }}&quot;">{{ old($locale)['description'] ?? ($category->translate($locale)['description'] ?? '') }}</textarea>
<span class="control-error" v-if="errors.has('{{$locale}}[description]')">@{{ errors.first('{!!$locale!!}[description]') }}</span>
</div>

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterBookingProductsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('booking_products', function (Blueprint $table) {
$table->datetime('available_from')->change();
$table->datetime('available_to')->change();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

View File

@ -178,7 +178,7 @@ class Booking
$availableFrom = ! $bookingProduct->available_from && $bookingProduct->available_from
? Carbon::createFromTimeString($bookingProduct->available_from)
: clone $currentTime;
: Carbon::createFromTimeString($currentTime->format('Y-m-d 00:00:00'));
$availableTo = ! $bookingProduct->available_from && $bookingProduct->available_to
? Carbon::createFromTimeString($bookingProduct->available_to)
@ -254,13 +254,13 @@ class Booking
return [];
}
$requestedDate = Carbon::createFromTimeString($date . " 00:00:00");
$currentTime = Carbon::now();
$requestedDate = Carbon::createFromTimeString($date . " 00:00:00");
$availableFrom = ! $bookingProduct->available_every_week && $bookingProduct->available_from
? Carbon::createFromTimeString($bookingProduct->available_from)
: Carbon::createFromTimeString($currentTime);
: Carbon::createFromTimeString($currentTime->format('Y-m-d 00:00:00'));
$availableTo = ! $bookingProduct->available_every_week && $bookingProduct->available_from
? Carbon::createFromTimeString($bookingProduct->available_to)
@ -270,8 +270,7 @@ class Booking
? $bookingProductSlot->slots
: ($bookingProductSlot->slots[$requestedDate->format('w')] ?? []);
if ($requestedDate < $currentTime
|| $requestedDate < $availableFrom
if ($requestedDate < $availableFrom
|| $requestedDate > $availableTo
) {
return [];

View File

@ -32,14 +32,13 @@ class DefaultSlot extends Booking
$availableFrom = $bookingProduct->available_from
? Carbon::createFromTimeString($bookingProduct->available_from)
: clone $currentTime;
: Carbon::createFromTimeString($currentTime->format('Y-m-d 00:00:00'));
$availableTo = $bookingProduct->available_to
? Carbon::createFromTimeString($bookingProduct->available_to)
: Carbon::createFromTimeString('2080-01-01 00:00:00');
if ($requestedDate < $currentTime
|| $requestedDate < $availableFrom
if ($requestedDate < $availableFrom
|| $requestedDate > $availableTo
) {
return [];
@ -101,7 +100,7 @@ class DefaultSlot extends Booking
$availableFrom = $bookingProduct->available_from
? Carbon::createFromTimeString($bookingProduct->available_from)
: clone $currentTime;
: Carbon::createFromTimeString($currentTime->format('Y-m-d 00:00:00'));
$availableTo = $bookingProduct->available_to
? Carbon::createFromTimeString($bookingProduct->available_to)

View File

@ -29,7 +29,7 @@ class RentalSlot extends Booking
$availableFrom = ! $bookingProduct->available_every_week && $bookingProduct->available_from
? Carbon::createFromTimeString($bookingProduct->available_from)
: Carbon::createFromTimeString($currentTime);
: Carbon::createFromTimeString($currentTime->format('Y-m-d 00:00:00'));
$availableTo = ! $bookingProduct->available_every_week && $bookingProduct->available_from
? Carbon::createFromTimeString($bookingProduct->available_to)
@ -37,10 +37,9 @@ class RentalSlot extends Booking
$timeDurations = $bookingProductSlot->same_slot_all_days
? $bookingProductSlot->slots
: $bookingProductSlot->slots[$requestedDate->format('w')];
: $bookingProductSlot->slots[$requestedDate->format('w')] ?? [];
if ($requestedDate < $currentTime
|| $requestedDate < $availableFrom
if ($requestedDate < $availableFrom
|| $requestedDate > $availableTo
) {
return [];
@ -141,24 +140,48 @@ class RentalSlot extends Booking
public function isSlotExpired($cartItem)
{
$bookingProduct = $this->bookingProductRepository->findOneByField('product_id', $cartItem['product_id']);
$typeHelper = app($this->typeHelpers[$bookingProduct->type]);
$timeIntervals = $typeHelper->getSlotsByDate($bookingProduct, $cartItem['additional']['booking']['date']);
if (isset($cartItem['additional']['booking']['date'])) {
$timeIntervals = $this->getSlotsByDate($bookingProduct, $cartItem['additional']['booking']['date']);
$isExpired = true;
$isExpired = true;
foreach ($timeIntervals as $timeInterval) {
foreach ($timeInterval['slots'] as $slot) {
if ($slot['from_timestamp'] == $cartItem['additional']['booking']['slot']['from']
&& $slot['to_timestamp'] == $cartItem['additional']['booking']['slot']['to']
) {
$isExpired = false;
foreach ($timeIntervals as $timeInterval) {
foreach ($timeInterval['slots'] as $slot) {
if ($slot['from_timestamp'] == $cartItem['additional']['booking']['slot']['from']
&& $slot['to_timestamp'] == $cartItem['additional']['booking']['slot']['to']
) {
$isExpired = false;
}
}
}
}
return $isExpired;
return $isExpired;
} else {
$currentTime = Carbon::now();
$requestedFromDate = Carbon::createFromTimeString($cartItem['additional']['booking']['date_from'] . " 00:00:00");
$requestedToDate = Carbon::createFromTimeString($cartItem['additional']['booking']['date_to'] . " 23:59:59");
$availableFrom = ! $bookingProduct->available_every_week && $bookingProduct->available_from
? Carbon::createFromTimeString($bookingProduct->available_from->format('Y-m-d') . ' 00:00:00')
: Carbon::createFromTimeString($currentTime->format('Y-m-d 00:00:00'));
$availableTo = ! $bookingProduct->available_every_week && $bookingProduct->available_from
? Carbon::createFromTimeString($bookingProduct->available_to->format('Y-m-d') . ' 23:59:59')
: Carbon::createFromTimeString('2080-01-01 00:00:00');
if ($requestedFromDate < $availableFrom
|| $requestedFromDate > $availableTo
|| $requestedToDate < $availableFrom
|| $requestedToDate > $availableTo
) {
return true;
}
return false;
}
}
/**

View File

@ -22,7 +22,7 @@ class TableSlot extends Booking
$bookedQty *= $bookingProduct->table_slot->guest_limit;
}
if ($bookingProduct->qty - $bookedQty < $requestedQty) {
if ($bookingProduct->qty - $bookedQty < $requestedQty || $this->isSlotExpired($cartItem)) {
return false;
}

View File

@ -174,6 +174,12 @@ class BookingProductRepository extends Repository
$to = Carbon::createFromTimeString($timeInterval['to'])->getTimestamp();
if ($from > $to) {
unset($slots[$key]);
continue;
}
$isOverLapping = false;
foreach ($tempSlots as $slot) {

View File

@ -0,0 +1,125 @@
<?php
return [
'admin' => [
'catalog' => [
'products' => [
'booking' => 'معلومات الحجز',
'booking-type' => 'نوع الحجز',
'default' => 'إفتراضي',
'appointment-booking' => 'حجز موعد',
'event-booking' => 'حجز الحدث',
'rental-booking' => 'حجز الإيجار',
'table-booking' => 'حجز طاولة',
'slot-duration' => '(مدة الفتحة (دقائق',
'break-time' => '(استراحة بين الفتحات (دقائق',
'available-every-week' => 'متوفر كل أسبوع',
'yes' => 'نعم',
'no' => 'لا',
'available-from' => 'متاح من',
'available-to' => 'متاحة لل',
'same-slot-all-days' => 'نفس الفتحة طوال الأيام',
'slot-has-quantity' => 'تحتوي الفتحة على الكمية',
'slots' => 'فتحات',
'from' => 'من عند',
'to' => 'إلى',
'qty' => 'كمية',
'add-slot' => 'أضف فتحة',
'sunday' => 'الأحد',
'monday' => 'الإثنين',
'tuesday' => 'الثلاثاء',
'wednesday' => 'الأربعاء',
'thursday' => 'الخميس',
'friday' => 'يوم الجمعة',
'saturday' => 'يوم السبت',
'renting-type' => 'نوع التأجير',
'daily' => 'الأساس اليومي',
'hourly' => 'بالساعة',
'daily-hourly' => '(كلاهما (يومي وأساس للساعة',
'daily-price' => 'السعر اليومي',
'hourly-price' => 'سعر الساعة',
'location' => 'موقعك',
'show-location' => 'إظهار الموقع',
'event-start-date' => 'تاريخ بدء الحدث',
'event-end-date' => 'تاريخ انتهاء الحدث',
'tickets' => 'التذاكر',
'add-ticket' => 'أضف تذكرة',
'name' => 'اسم',
'price' => 'السعر',
'quantity' => 'كمية',
'description' => 'وصف',
'charged-per' => 'اتهم لكل',
'guest' => 'زائر',
'table' => 'الطاولة',
'prevent-scheduling-before' => 'منع الجدولة قبل',
'guest-limit' => 'حد الضيف لكل جدول',
'guest-capacity' => 'سعة الضيف',
'type' => 'Type',
'many-bookings-for-one-day' => 'العديد من الحجوزات ليوم واحد',
'one-booking-for-many-days' => 'حجز واحد لعدة أيام',
'day' => 'يوم',
'status' => 'الحالة',
'open' => 'افتح',
'close' => 'غلق'
]
]
],
'shop' => [
'products' => [
'location' => 'موقعك',
'contact' => 'مكالمة',
'email' => 'البريد الإلكتروني',
'slot-duration' => 'مدة الفتحة',
'slot-duration-in-minutes' => 'دقائق دقائق:',
'today-availability' => 'توفر اليوم',
'slots-for-all-days' => 'إظهار لجميع الأيام',
'sunday' => 'الأحد',
'monday' => 'الإثنين',
'tuesday' => 'الثلاثاء',
'wednesday' => 'الأربعاء',
'thursday' => 'الخميس',
'friday' => 'يوم الجمعة',
'saturday' => 'يوم السبت',
'closed' => 'مغلق',
'book-an-appointment' => 'حجز موعد',
'date' => 'تاريخ',
'slot' => 'فتحة',
'rent-an-item' => 'استئجار عنصر',
'choose-rent-option' => 'اختر خيار الإيجار',
'daily-basis' => 'الأساس اليومي',
'hourly-basis' => 'بالساعة',
'select-time-slot'=> 'حدد الفترة الزمنية',
'select-slot' => 'حدد فتحة',
'select-date' => 'حدد تاريخ',
'select-rent-time' => 'حدد وقت الإيجار',
'from' => 'من عند',
'to' => 'إلى',
'book-a-table' => 'احجز طاولة',
'special-notes' => 'طلب / ملاحظات خاصة',
'event-on' => 'الحدث قيد التشغيل',
'book-your-ticket' => 'احجز تذكرتك',
'per-ticket-price' => 'سعر التذكرة:',
'number-of-tickets' => 'عدد التذاكر',
'total-tickets' => 'إجمالي التذاكر',
'base-price' => 'السعر الأساسي',
'total-price' => 'السعر الكلي',
'base-price-info' => '(سيتم تطبيق ذلك على كل نوع من أنواع التذاكر لكل كمية)'
],
'cart' => [
'renting_type' => 'نوع الإيجار',
'daily' => 'اليومي',
'hourly' => 'ساعيا',
'event-ticket' => 'تذكرة الحدث',
'event-from' => 'حدث من',
'event-till' => 'الحدث حتى',
'rent-type' => 'نوع الإيجار',
'rent-from' => 'الإيجار من',
'rent-till' => 'إيجار حتى',
'booking-from' => 'الحجز من',
'booking-till' => 'الحجز حتى',
'special-note' => 'طلب / ملاحظات خاصة',
]
]
];

View File

@ -0,0 +1,125 @@
<?php
return [
'admin' => [
'catalog' => [
'products' => [
'booking' => 'اطلاعات رزرو',
'booking-type' => 'نوع رزرو',
'default' => 'پیش فرض',
'appointment-booking' => 'رزرو قرار ملاقات',
'event-booking' => 'رزرو رویداد',
'rental-booking' => 'رزرو اجاره',
'table-booking' => 'رزرو جدول',
'slot-duration' => '(مدت زمان حافظه (دقیقه',
'break-time' => '(فاصله بین شکافها (دقیقه',
'available-every-week' => 'هر هفته در دسترس است',
'yes' => 'آره',
'no' => 'نه',
'available-from' => 'موجود از',
'available-to' => 'در دسترس است برای',
'same-slot-all-days' => 'همان شکاف همه روزها',
'slot-has-quantity' => 'اسلات مقدار زیادی دارد',
'slots' => 'شکافها',
'from' => 'از جانب',
'to' => 'به',
'qty' => 'تعداد',
'add-slot' => 'شکاف را اضافه کنید',
'sunday' => 'یکشنبه',
'monday' => 'دوشنبه',
'tuesday' => 'سهشنبه',
'wednesday' => 'چهار شنبه',
'thursday' => 'پنج شنبه',
'friday' => 'جمعه',
'saturday' => 'شنبه',
'renting-type' => 'نوع اجاره',
'daily' => 'به صورت روزانه',
'hourly' => 'مبانی ساعتی',
'daily-hourly' => '(هر دو(مبانی روزانه و ساعتی',
'daily-price' => 'قیمت روزانه',
'hourly-price' => 'قیمت ساعتی',
'location' => 'مکان',
'show-location' => 'نمایش موقعیت مکانی',
'event-start-date' => 'تاریخ شروع رویداد',
'event-end-date' => 'تاریخ پایان رویداد',
'tickets' => 'بلیط',
'add-ticket' => 'بلیط را اضافه کنید',
'name' => 'نام',
'price' => 'قیمت',
'quantity' => 'تعداد',
'description' => 'شرح',
'charged-per' => 'به اتهام در هر',
'guest' => 'مهمان',
'table' => 'جدول',
'prevent-scheduling-before' => 'قبل از برنامه ریزی جلوگیری کنید',
'guest-limit' => 'محدودیت مهمان در هر جدول',
'guest-capacity' => 'ظرفیت مهمان',
'type' => 'تایپ کنید',
'many-bookings-for-one-day' => 'بسیاری از رزروها برای یک روز',
'one-booking-for-many-days' => 'یک رزرو برای بسیاری از روزها',
'day' => 'روز',
'status' => 'وضعیت',
'open' => 'باز کن',
'close' => 'بستن'
]
]
],
'shop' => [
'products' => [
'location' => 'مکان',
'contact' => 'مخاطب',
'email' => 'پست الکترونیک',
'slot-duration' => 'مدت زمان حافظه',
'slot-duration-in-minutes' => ':minutes دقایق',
'today-availability' => 'امروز در دسترس بودن',
'slots-for-all-days' => 'نمایش برای تمام روزها',
'sunday' => 'یکشنبه',
'monday' => 'دوشنبه',
'tuesday' => 'سهشنبه',
'wednesday' => 'چهار شنبه',
'thursday' => 'پنج شنبه',
'friday' => 'جمعه',
'saturday' => 'شنبه',
'closed' => 'بسته شد',
'book-an-appointment' => 'قرار ملاقات را رزرو کنید',
'date' => 'تاریخ',
'slot' => 'اسلات',
'rent-an-item' => 'اجاره یک مورد',
'choose-rent-option' => 'گزینه اجاره را انتخاب کنید',
'daily-basis' => 'به صورت روزانه',
'hourly-basis' => 'مبانی ساعتی',
'select-time-slot'=> 'شکاف زمان را انتخاب کنید',
'select-slot' => 'شکاف را انتخاب کنید',
'select-date' => 'تاریخ را انتخاب کنید',
'select-rent-time' => 'زمان اجاره را انتخاب کنید',
'from' => 'از جانب',
'to' => 'به',
'book-a-table' => 'یک جدول رزرو کنید',
'special-notes' => 'درخواست ویژه / یادداشت',
'event-on' => 'رویداد در',
'book-your-ticket' => 'بلیط خود را رزرو کنید',
'per-ticket-price' => ':price برای هر بلیط',
'number-of-tickets' => 'تعداد بلیط ها',
'total-tickets' => 'بلیط های کل',
'base-price' => 'قیمت پایه',
'total-price' => 'قیمت کل',
'base-price-info' => '(این برای هر نوع بلیط برای هر کمیت کاربرد دارد)'
],
'cart' => [
'renting_type' => 'نوع اجاره',
'daily' => 'روزانه',
'hourly' => 'ساعتی',
'event-ticket' => 'بلیط رویداد',
'event-from' => 'رویداد از',
'event-till' => 'رویداد تا زمان',
'rent-type' => 'نوع اجاره',
'rent-from' => 'اجاره از',
'rent-till' => 'اجاره تا زمان',
'booking-from' => 'رزرو از',
'booking-till' => 'تا زمان رزرو',
'special-note' => 'درخواست ویژه / یادداشت',
]
]
];

View File

@ -0,0 +1,125 @@
<?php
return [
'admin' => [
'catalog' => [
'products' => [
'booking' => 'Boekingsinformatie',
'booking-type' => 'Boekingstype',
'default' => 'Standaard',
'appointment-booking' => 'Afspraak boeken',
'event-booking' => 'Evenement boeken',
'rental-booking' => 'Verhuur boeken',
'table-booking' => 'Tafel reserveren',
'slot-duration' => 'Slotduur (minuten)',
'break-time' => 'Break Time b/w Slots (minuten)',
'available-every-week' => 'Elke week beschikbaar',
'yes' => 'Ja',
'no' => 'Nee',
'available-from' => 'Beschikbaar van',
'available-to' => 'Beschikbaar voor',
'same-slot-all-days' => 'Zelfde slot alle dagen',
'slot-has-quantity' => 'Slot heeft hoeveelheid',
'slots' => 'Slots',
'from' => 'Van',
'to' => 'To',
'qty' => 'Qty',
'add-slot' => 'Slot toevoegen',
'sunday' => 'Slot toevoegen',
'monday' => 'maandag',
'tuesday' => 'dinsdag',
'wednesday' => 'woensdag',
'thursday' => 'donderdag',
'friday' => 'vrijdag',
'saturday' => 'zaterdag',
'renting-type' => 'Type verhuur',
'daily' => 'Dagelijks',
'hourly' => 'Uurbasis',
'daily-hourly' => 'Beide (dagelijkse en uurbasis)',
'daily-price' => 'Dagelijkse prijs',
'hourly-price' => 'Prijs per uur',
'location' => 'Plaats',
'show-location' => 'Locatie tonen',
'event-start-date' => 'Begindatum evenement',
'event-end-date' => 'Einddatum evenement',
'tickets' => 'Kaartjes',
'add-ticket' => 'Ticket toevoegen',
'name' => 'Naam',
'price' => 'Prijs',
'quantity' => 'Aantal stuks',
'description' => 'Beschrijving',
'charged-per' => 'In rekening gebracht per',
'guest' => 'Gast',
'table' => 'Tafel',
'prevent-scheduling-before' => 'Voorkom plannen voor',
'guest-limit' => 'Gastlimiet per tafel',
'guest-capacity' => 'Gastcapaciteit',
'type' => 'Type',
'many-bookings-for-one-day' => 'Veel boekingen voor één dag',
'one-booking-for-many-days' => 'Eén boeking voor vele dagen',
'day' => 'Dag',
'status' => 'Toestand',
'open' => 'Open',
'close' => 'Dichtbij'
]
]
],
'shop' => [
'products' => [
'location' => 'Plaats',
'contact' => 'Contact',
'email' => 'Email',
'slot-duration' => 'Slot Duur',
'slot-duration-in-minutes' => ':minutes Minutes',
'today-availability' => 'Beschikbaarheid vandaag',
'slots-for-all-days' => 'Show voor alle dagen',
'sunday' => 'Sunday',
'monday' => 'maandag',
'tuesday' => 'dinsdag',
'wednesday' => 'woensdag',
'thursday' => 'donderdag',
'friday' => 'vrijdag',
'saturday' => 'zaterdag',
'closed' => 'Gesloten',
'book-an-appointment' => 'Een afspraak maken',
'date' => 'Datum',
'slot' => 'Sleuf',
'rent-an-item' => 'Huur een item',
'choose-rent-option' => 'Kies Huuroptie',
'daily-basis' => 'Dagelijks',
'hourly-basis' => 'Uurbasis',
'select-time-slot'=> 'Selecteer tijdslot',
'select-slot' => 'Selecteer Slot',
'select-date' => 'Selecteer een datum',
'select-rent-time' => 'Selecteer Huurtijd',
'from' => 'Van',
'to' => 'Naar',
'book-a-table' => 'Een tafel reserveren',
'special-notes' => 'Speciaal verzoek / opmerkingen',
'event-on' => 'Evenement aan',
'book-your-ticket' => 'Boek uw ticket',
'per-ticket-price' => ':price Per Ticket',
'number-of-tickets' => 'Aantal tickets',
'total-tickets' => 'Totaal aantal tickets',
'base-price' => 'Basisprijs',
'total-price' => 'Totale prijs',
'base-price-info' => '(Dit is van toepassing op elk type ticket voor elke hoeveelheid)'
],
'cart' => [
'renting_type' => 'Huurtype',
'daily' => 'Dagelijks',
'hourly' => 'Elk uur',
'event-ticket' => 'Evenement Ticket',
'event-from' => 'Evenement van',
'event-till' => 'Evenement tot',
'rent-type' => 'Huurtype',
'rent-from' => 'Huur van',
'rent-till' => 'Huur tot',
'booking-from' => 'Boeking van',
'booking-till' => 'Boeking tot',
'special-note' => 'Speciaal verzoek / opmerkingen',
]
]
];

View File

@ -0,0 +1,125 @@
<?php
return [
'admin' => [
'catalog' => [
'products' => [
'booking' => 'Informações de reserva',
'booking-type' => 'Tipo de Reserva',
'default' => 'Padrão',
'appointment-booking' => 'Marcação de consultas',
'event-booking' => 'Reserva de Eventos',
'rental-booking' => 'Reserva de Locação',
'table-booking' => 'Reserva de mesa',
'slot-duration' => 'Duração do slot (minutos)',
'break-time' => 'Tempo de intervalo entre slots (minutos)',
'available-every-week' => 'Disponível todas as semanas',
'yes' => 'sim',
'no' => 'Não',
'available-from' => 'Disponível a partir de',
'available-to' => 'Disponível para',
'same-slot-all-days' => 'Mesmo slot todos os dias',
'slot-has-quantity' => 'O slot tem quantidade',
'slots' => 'Slots',
'from' => 'A partir de',
'to' => 'Para',
'qty' => 'Quantidade',
'add-slot' => 'Adicionar slot',
'sunday' => 'domingo',
'monday' => 'Segunda-feira',
'tuesday' => 'terça',
'wednesday' => 'Quarta-feira',
'thursday' => 'Quinta-feira',
'friday' => 'Sexta-feira',
'saturday' => 'sábado',
'renting-type' => 'Tipo de locação',
'daily' => 'Diariamente',
'hourly' => 'Base horária',
'daily-hourly' => 'Ambos (base diária e horária)',
'daily-price' => 'Preço Diário',
'hourly-price' => 'Preço por Hora',
'location' => 'Localização',
'show-location' => 'Mostrar Localização',
'event-start-date' => 'Data de início do evento',
'event-end-date' => 'Data de término do evento',
'tickets' => 'Ingressos',
'add-ticket' => 'Adicionar ticket',
'name' => 'Nome',
'price' => 'Preço',
'quantity' => 'Quantidade',
'description' => 'Descrição',
'charged-per' => 'Cobrado por',
'guest' => 'Hóspede',
'table' => 'Mesa',
'prevent-scheduling-before' => 'Impedir agendamento antes',
'guest-limit' => 'Limite de convidados por tabela',
'guest-capacity' => 'Capacidade de Convidado',
'type' => 'Tipo',
'many-bookings-for-one-day' => 'Muitas reservas para um dia',
'one-booking-for-many-days' => 'Uma reserva por muitos dias',
'day' => 'Dia',
'status' => 'Status',
'open' => 'Aberto',
'close' => 'Fechar'
]
]
],
'shop' => [
'products' => [
'location' => 'Localização',
'contact' => 'Contato',
'email' => 'O email',
'slot-duration' => 'Duração do slot',
'slot-duration-in-minutes' => ':minutes Minutos',
'today-availability' => 'Disponibilidade Hoje',
'slots-for-all-days' => 'Mostrar para todos os dias',
'sunday' => 'domingo',
'monday' => 'Segunda-feira',
'tuesday' => 'terça',
'wednesday' => 'Quarta-feira',
'thursday' => 'Quinta-feira',
'friday' => 'Sexta-feira',
'saturday' => 'sábado',
'closed' => 'Closed',
'book-an-appointment' => 'Marque uma consulta',
'date' => 'Date',
'slot' => 'Slot',
'rent-an-item' => 'Alugar um item',
'choose-rent-option' => 'Escolha a opção de aluguel',
'daily-basis' => 'Diariamente',
'hourly-basis' => 'Base horária',
'select-time-slot'=> 'Selecionar horário',
'select-slot' => 'Selecionar slot',
'select-date' => 'Selecione a data',
'select-rent-time' => 'Selecione o tempo de aluguel',
'from' => 'A partir de',
'to' => 'Para',
'book-a-table' => 'Reservar uma mesa',
'special-notes' => 'Pedido / Notas Especiais',
'event-on' => 'Evento ativado',
'book-your-ticket' => 'Reserve seu ingresso',
'per-ticket-price' => ':price Por Bilhete',
'number-of-tickets' => 'Número de Bilhetes',
'total-tickets' => 'Total de ingressos',
'base-price' => 'Preço base',
'total-price' => 'Preço total',
'base-price-info' => '(Isso será aplicado a cada tipo de ticket para cada quantidade)'
],
'cart' => [
'renting_type' => 'Tipo de Aluguel',
'daily' => 'Diariamente',
'hourly' => 'Por hora',
'event-ticket' => 'Bilhete de evento',
'event-from' => 'Evento de',
'event-till' => 'Evento Até',
'rent-type' => 'Tipo de Aluguel',
'rent-from' => 'Alugar de',
'rent-till' => 'Aluguel Até',
'booking-from' => 'Reserva de',
'booking-till' => 'Reserva até',
'special-note' => 'Pedido / Notas Especiais',
]
]
];

View File

@ -57,21 +57,21 @@
</div>
<div v-if="! parseInt(booking.available_every_week)">
<div class="control-group" :class="[errors.has('booking[available_from]') ? 'has-error' : '']">
<div class="control-group date" :class="[errors.has('booking[available_from]') ? 'has-error' : '']">
<label class="required">{{ __('bookingproduct::app.admin.catalog.products.available-from') }}</label>
<datetime>
<input type="text" v-validate="'required'" name="booking[available_from]" v-model="booking.available_from" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.available-from') }}&quot;"/>
<input type="text" v-validate="'required|date_format:yyyy-MM-dd HH:mm:ss|after:{{\Carbon\Carbon::yesterday()->format('Y-m-d 23:59:59')}}'" name="booking[available_from]" v-model="booking.available_from" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.available-from') }}&quot;" ref="available_from"/>
</datetime>
<span class="control-error" v-if="errors.has('booking[available_from]')">@{{ errors.first('booking[available_from]') }}</span>
</div>
<div class="control-group" :class="[errors.has('booking[available_to]') ? 'has-error' : '']">
<div class="control-group date" :class="[errors.has('booking[available_to]') ? 'has-error' : '']">
<label class="required">{{ __('bookingproduct::app.admin.catalog.products.available-to') }}</label>
<datetime>
<input type="text" v-validate="'required'" name="booking[available_to]" v-model="booking.available_to" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.available-to') }}&quot;"/>
<input type="text" v-validate="'required|date_format:yyyy-MM-dd HH:mm:ss|after:available_from'" name="booking[available_to]" v-model="booking.available_to" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.available-to') }}&quot;" ref="available_to"/>
</datetime>
<span class="control-error" v-if="errors.has('booking[available_to]')">@{{ errors.first('booking[available_to]') }}</span>

View File

@ -157,7 +157,7 @@
<script type="text/x-template" id="default-slot-item-template">
<tr>
<td class="has-control-group">
<div class="control-group" :class="[errors.has(controlName + '[from_day]') ? 'has-error' : '']">
<div class="control-group date" :class="[errors.has(controlName + '[from_day]') ? 'has-error' : '']">
<select v-validate="'required'" :name="controlName + '[from_day]'" v-model="slotItem.from_day" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.day') }}&quot;">
<option v-for="(day, index) in $parent.days" :value="index">@{{ day }}</option>
</select>
@ -165,7 +165,7 @@
<span class="control-error" v-if="errors.has(controlName + '[from_day]')">@{{ errors.first(controlName + '[from_day]') }}</span>
</div>
<div class="control-group" :class="[errors.has(controlName + '[from]') ? 'has-error' : '']">
<div class="control-group date" :class="[errors.has(controlName + '[from]') ? 'has-error' : '']">
<time-component>
<input type="text" v-validate="'required'" :name="controlName + '[from]'" v-model="slotItem.from" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.from') }}&quot;">
</time-component>
@ -177,7 +177,7 @@
</td>
<td class="has-control-group">
<div class="control-group" :class="[errors.has(controlName + '[to_day]') ? 'has-error' : '']">
<div class="control-group date" :class="[errors.has(controlName + '[to_day]') ? 'has-error' : '']">
<select v-validate="'required'" :name="controlName + '[to_day]'" v-model="slotItem.to_day" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.day') }}&quot;">
<option v-for="(day, index) in $parent.days" :value="index">@{{ day }}</option>
</select>
@ -185,7 +185,7 @@
<span class="control-error" v-if="errors.has(controlName + '[to_day]')">@{{ errors.first(controlName + '[to_day]') }}</span>
</div>
<div class="control-group" :class="[errors.has(controlName + '[to]') ? 'has-error' : '']">
<div class="control-group date" :class="[errors.has(controlName + '[to]') ? 'has-error' : '']">
<time-component>
<input type="text" v-validate="'required'" :name="controlName + '[to]'" v-model="slotItem.to" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.to') }}&quot;">
</time-component>

View File

@ -71,7 +71,7 @@
<script type="text/x-template" id="slot-item-template">
<tr>
<td>
<div class="control-group" :class="[errors.has(controlName + '[from]') ? 'has-error' : '']">
<div class="control-group date" :class="[errors.has(controlName + '[from]') ? 'has-error' : '']">
<time-component>
<input type="text" v-validate="'required'" :name="controlName + '[from]'" v-model="slotItem.from" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.from') }}&quot;">
</time-component>
@ -83,7 +83,7 @@
</td>
<td>
<div class="control-group" :class="[errors.has(controlName + '[to]') ? 'has-error' : '']">
<div class="control-group date" :class="[errors.has(controlName + '[to]') ? 'has-error' : '']">
<time-component>
<input type="text" v-validate="'required'" :name="controlName + '[to]'" v-model="slotItem.to" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.to') }}&quot;">
</time-component>

View File

@ -86,7 +86,7 @@
<div class="control-group-container">
<div class="control-group date" :class="[errors.has('booking[date_from]') ? 'has-error' : '']">
<date @onChange="dateSelected($event)">
<input type="text" v-validate="'required'" name="booking[date_from]" v-model="date_from" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.shop.products.from') }}&quot;" placeholder="{{ __('bookingproduct::app.shop.products.from') }}" data-min-date="today"/>
<input type="text" v-validate="'required|date_format:yyyy-MM-dd|before_or_equal:date_to'" name="booking[date_from]" v-model="date_from" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.shop.products.from') }}&quot;" placeholder="{{ __('bookingproduct::app.shop.products.from') }}" ref="date_from" data-min-date="today"/>
</date>
<span class="control-error" v-if="errors.has('booking[date_from]')">@{{ errors.first('booking[date_from]') }}</span>
@ -94,7 +94,7 @@
<div class="control-group date" :class="[errors.has('booking[date_to]') ? 'has-error' : '']">
<date @onChange="dateSelected($event)">
<input type="text" v-validate="'required'" name="booking[date_to]" v-model="date_to" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.shop.products.to') }}&quot;" placeholder="{{ __('bookingproduct::app.shop.products.to') }}"/>
<input type="text" v-validate="'required|date_format:yyyy-MM-dd|after_or_equal:date_from'" name="booking[date_to]" v-model="date_to" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.shop.products.to') }}&quot;" placeholder="{{ __('bookingproduct::app.shop.products.to') }}" ref="date_to" data-min-date="today"/>
</date>
<span class="control-error" v-if="errors.has('booking[date_to]')">@{{ errors.first('booking[date_to]') }}</span>
@ -131,6 +131,46 @@
}
},
created: function() {
var self = this;
this.$validator.extend('after_or_equal', {
getMessage(field, val) {
return 'The "To" must be equal or after "From"';
},
validate(value, field) {
if (! self.date_from) {
return true;
}
var from = new Date(self.date_from);
var to = new Date(self.date_to);
return from <= to;
}
});
this.$validator.extend('before_or_equal', {
getMessage(field, val) {
return 'The "From must be equal or before "To"';
},
validate(value, field) {
if (! self.date_to) {
return true;
}
var from = new Date(self.date_from);
var to = new Date(self.date_to);
return from <= to;
}
});
},
methods: {
dateSelected: function(date) {
var this_this = this;

View File

@ -86,7 +86,7 @@
<div class="control-group-container">
<div class="form-group date" :class="[errors.has('booking[date_from]') ? 'has-error' : '']">
<date @onChange="dateSelected($event)">
<input type="text" v-validate="'required'" name="booking[date_from]" v-model="date_from" class="form-style" data-vv-as="&quot;{{ __('bookingproduct::app.shop.products.from') }}&quot;" placeholder="{{ __('bookingproduct::app.shop.products.from') }}" data-min-date="today"/>
<input type="text" v-validate="'required|date_format:yyyy-MM-dd|before_or_equal:date_to'" name="booking[date_from]" v-model="date_from" class="form-style" data-vv-as="&quot;{{ __('bookingproduct::app.shop.products.from') }}&quot;" placeholder="{{ __('bookingproduct::app.shop.products.from') }}" ref="date_from" data-min-date="today"/>
</date>
<span class="control-error" v-if="errors.has('booking[date_from]')">@{{ errors.first('booking[date_from]') }}</span>
@ -94,7 +94,7 @@
<div class="form-group date" :class="[errors.has('booking[date_to]') ? 'has-error' : '']">
<date @onChange="dateSelected($event)">
<input type="text" v-validate="'required'" name="booking[date_to]" v-model="date_to" class="form-style" data-vv-as="&quot;{{ __('bookingproduct::app.shop.products.to') }}&quot;" placeholder="{{ __('bookingproduct::app.shop.products.to') }}"/>
<input type="text" v-validate="'required|date_format:yyyy-MM-dd|after_or_equal:date_from'" name="booking[date_to]" v-model="date_to" class="form-style" data-vv-as="&quot;{{ __('bookingproduct::app.shop.products.to') }}&quot;" placeholder="{{ __('bookingproduct::app.shop.products.to') }}" ref="date_to" data-min-date="today"/>
</date>
<span class="control-error" v-if="errors.has('booking[date_to]')">@{{ errors.first('booking[date_to]') }}</span>
@ -131,6 +131,46 @@
}
},
created: function() {
var self = this;
this.$validator.extend('after_or_equal', {
getMessage(field, val) {
return 'The "To" must be equal or after "From"';
},
validate(value, field) {
if (! self.date_from) {
return true;
}
var from = new Date(self.date_from);
var to = new Date(self.date_to);
return from <= to;
}
});
this.$validator.extend('before_or_equal', {
getMessage(field, val) {
return 'The "From must be equal or before "To"';
},
validate(value, field) {
if (! self.date_to) {
return true;
}
var from = new Date(self.date_from);
var to = new Date(self.date_to);
return from <= to;
}
});
},
methods: {
dateSelected: function(date) {
var this_this = this;

View File

@ -2,6 +2,7 @@
namespace Webkul\BookingProduct\Type;
use Illuminate\Support\Arr;
use Webkul\Attribute\Repositories\AttributeRepository;
use Webkul\Product\Repositories\ProductRepository;
use Webkul\Product\Repositories\ProductAttributeValueRepository;
@ -128,6 +129,10 @@ class Booking extends Virtual
{
$bookingProduct = $this->getBookingProduct($this->product->id);
if (! $bookingProduct) {
return false;
}
if (in_array($bookingProduct->type, ['default', 'rental', 'table'])) {
return true;
}
@ -163,6 +168,14 @@ class Booking extends Virtual
$bookingProduct = $this->getBookingProduct($data['product_id']);
if ($bookingProduct->type == 'event') {
$filtered = Arr::where($data['booking']['qty'], function ($qty, $key) {
return $qty != 0;
});
if (! count($filtered)) {
return trans('shop::app.checkout.cart.integrity.missing_options');
}
foreach ($data['booking']['qty'] as $ticketId => $qty) {
if (! $qty) {
continue;
@ -210,7 +223,7 @@ class Booking extends Virtual
}
if (isset($options1['booking']) && isset($options2['booking'])) {
return $options1['booking'] === $options2['booking'];
return $options1['booking'] == $options2['booking'];
} elseif (! isset($options1['booking'])) {
return false;
} elseif (! isset($options2['booking'])) {

View File

@ -165,9 +165,9 @@ class Cart
'cart_id' => $cart->id
]));
} else {
if ($cartItem->product->getTypeInstance()->showQuantityBox() === false) {
return ['warning' => __('shop::app.checkout.cart.integrity.qty_impossible')];
}
// if ($cartItem->product->getTypeInstance()->showQuantityBox() === false) {
// return ['warning' => __('shop::app.checkout.cart.integrity.qty_impossible')];
// }
$cartItem = $this->cartItemRepository->update($cartProduct, $cartItem->id);
}
@ -464,7 +464,7 @@ class Cart
if ($cart->haveStockableItems()) {
$data['shipping_address'] = $cart->shipping_address->toArray();
$data['selected_shipping_rate'] = $cart->selected_shipping_rate->toArray();
$data['selected_shipping_rate'] = $cart->selected_shipping_rate ? $cart->selected_shipping_rate->toArray() : 0.0;
}
$data['payment'] = $cart->payment->toArray();
@ -567,6 +567,7 @@ class Cart
Event::dispatch('checkout.cart.collect.totals.before', $cart);
$this->calculateItemsTax();
$cart->refresh();
$cart->grand_total = $cart->base_grand_total = 0;
$cart->sub_total = $cart->base_sub_total = 0;
@ -657,6 +658,8 @@ class Cart
if (! $cart = $this->getCart()) {
return;
}
Event::dispatch('checkout.cart.calculate.items.tax.before', $cart);
foreach ($cart->items()->get() as $item) {
$taxCategory = $this->taxCategoryRepository->find($item->product->tax_category_id);
@ -725,6 +728,7 @@ class Cart
$item->save();
}
Event::dispatch('checkout.cart.calculate.items.tax.after', $cart);
}
/**

View File

@ -1047,4 +1047,38 @@ class Core
{
return str_replace('.', '_', (string)$taxRate);
}
/**
* Get Shop email sender details
*
* @return array
*/
public function getSenderEmailDetails()
{
$sender_name = core()->getConfigData('general.general.email_settings.sender_name') ? core()->getConfigData('general.general.email_settings.sender_name') : config('mail.from.name');
$sender_email = core()->getConfigData('general.general.email_settings.shop_email_from') ? core()->getConfigData('general.general.email_settings.shop_email_from') : config('mail.from.address');
return [
'name' => $sender_name,
'email' => $sender_email,
];
}
/**
* Get Admin email details
*
* @return array
*/
public function getAdminEmailDetails()
{
$admin_name = core()->getConfigData('general.general.email_settings.admin_name') ? core()->getConfigData('general.general.email_settings.admin_name') : config('mail.admin.name');
$admin_email = core()->getConfigData('general.general.email_settings.admin_email') ? core()->getConfigData('general.general.email_settings.admin_email') : config('mail.admin.address');
return [
'name' => $admin_name,
'email' => $admin_email,
];
}
}

View File

@ -0,0 +1,20 @@
<?php
/** @var \Illuminate\Database\Eloquent\Factory $factory */
use Faker\Generator as Faker;
use Webkul\CartRule\Models\CartRule;
use Webkul\CartRule\Models\CartRuleCoupon;
$factory->define(CartRuleCoupon::class, function (Faker $faker) {
return [
'code' => $faker->uuid(),
'usage_limit' => 100,
'usage_per_customer' => 100,
'type' => 0,
'is_primary' => 1,
'cart_rule_id' => static function () {
return factory(CartRule::class)->create()->id;
},
];
});

View File

@ -5,8 +5,16 @@ use Webkul\Core\Models\Locale;
/** @var \Illuminate\Database\Eloquent\Factory $factory */
$factory->define(Locale::class, function (Faker $faker, array $attributes) {
$languageCode = $faker->languageCode;
$locale = Locale::query()->firstWhere('code', $languageCode);
if ($locale !== null) {
return $locale->id;
}
return [
'code' => $faker->languageCode,
'code' => $languageCode,
'name' => $faker->country,
'direction' => 'ltr',
];

View File

@ -64,6 +64,10 @@ class ForgotPasswordController extends Controller
->withErrors([
'email' => trans($response),
]);
} catch (\Swift_RfcComplianceException $e) {
session()->flash('success', trans('customer::app.forget_password.reset_link_sent'));
return redirect()->back();
} catch (\Exception $e) {
report($e);
session()->flash('error', trans($e->getMessage()));

View File

@ -34,8 +34,9 @@ class RegistrationEmail extends Mailable
*/
public function build()
{
return $this->to($this->data['email'])
->subject(trans('shop::app.mail.customer.registration.customer-registration'))
->view('shop::emails.customer.registration')->with('data', $this->data);
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to($this->data['email'])
->subject(trans('shop::app.mail.customer.registration.customer-registration'))
->view('shop::emails.customer.registration')->with('data', $this->data);
}
}

View File

@ -34,13 +34,14 @@ class VerificationEmail extends Mailable
*/
public function build()
{
return $this->to($this->verificationData['email'])
->subject(trans('shop::app.mail.customer.verification.subject'))
->view('shop::emails.customer.verification-email')
->with('data', [
'email' => $this->verificationData['email'],
'token' => $this->verificationData['token'],
]
);
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to($this->verificationData['email'])
->subject(trans('shop::app.mail.customer.verification.subject'))
->view('shop::emails.customer.verification-email')
->with('data', [
'email' => $this->verificationData['email'],
'token' => $this->verificationData['token'],
]
);
}
}

View File

@ -21,10 +21,11 @@ class CustomerResetPassword extends ResetPassword
}
return (new MailMessage)
->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->subject(__('shop::app.mail.forget-password.subject') )
->view('shop::emails.customer.forget-password', [
'user_name' => $notifiable->name,
'token' => $this->token,
'user_name' => $notifiable->name,
'token' => $this->token,
]
);
}

View File

@ -13,5 +13,8 @@ return [
],
'reviews' => [
'empty' => 'You have not reviewed any of product yet'
],
'forget_password' => [
'reset_link_sent' => 'We have e-mailed your reset password link.'
]
];

View File

@ -226,10 +226,12 @@ abstract class AbstractType
$route = request()->route() ? request()->route()->getName() : "";
if ($route != 'admin.catalog.products.massupdate') {
if (isset($data['categories'])) {
$product->categories()->sync($data['categories']);
if (! isset($data['categories'])) {
$data['categories'] = [];
}
$product->categories()->sync($data['categories']);
$product->up_sells()->sync($data['up_sell'] ?? []);
$product->cross_sells()->sync($data['cross_sell'] ?? []);

View File

@ -2,6 +2,7 @@
namespace Webkul\Sales\Models;
use Webkul\Checkout\Models\CartProxy;
use Illuminate\Database\Eloquent\Model;
use Webkul\Sales\Contracts\Order as OrderContract;
@ -61,6 +62,15 @@ class Order extends Model implements OrderContract
return $this->grand_total - $this->grand_total_invoiced;
}
/**
* Get the associated cart that was used to create this order.
*/
public function cart()
{
return $this->belongsTo(CartProxy::modelClass());
}
/**
* Get the order items record associated with the order.
*/

View File

@ -135,7 +135,7 @@ class OrderItem extends Model implements OrderItemContract
}
/**
* Get the order record associated with the order item.
* Get the product record associated with the order item.
*/
public function product()
{

View File

@ -49,8 +49,8 @@ class RefundItemRepository extends Repository
if ($orderItem->parent) {
$shippedQty = $orderItem->qty_ordered
? ($orderItem->qty_ordered / $orderItem->parent->qty_ordered) * $shipmentItem->qty
: $orderItem->parent->qty_ordered;
? ($orderItem->qty_ordered / $orderItem->parent->qty_ordered) * $shipmentItem->qty
: $orderItem->parent->qty_ordered;
} else {
$shippedQty = $shipmentItem->qty;
}
@ -69,7 +69,9 @@ class RefundItemRepository extends Repository
$quantity -= $totalShippedQtyToRefund;
}
} elseif ($orderItem->getTypeInstance()->showQuantityBox()) {
} elseif (! $orderItem->getTypeInstance()->isStockable()
&& $orderItem->getTypeInstance()->showQuantityBox()
) {
$inventory = $orderItem->product->inventories()
// ->where('vendor_id', $data['vendor_id'])
->whereIn('inventory_source_id', $orderItem->order->channel->inventory_sources()->pluck('id'))

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

View File

@ -1,4 +1,4 @@
{
"/js/shop.js": "/js/shop.js?id=6bb928c2e527b045a56b",
"/css/shop.css": "/css/shop.css?id=ccf417b825955d8bd301"
"/css/shop.css": "/css/shop.css?id=d1c42d10589004fac3f8"
}

View File

@ -26,16 +26,21 @@ return [
'name' => 'shop::app.layouts.wishlist',
'route' =>'customer.wishlist.index',
'sort' => 4,
], [
'key' => 'account.compare',
'name' => 'velocity::app.customer.compare.text',
'route' =>'velocity.customer.product.compare',
'sort' => 5,
], [
'key' => 'account.orders',
'name' => 'shop::app.layouts.orders',
'route' =>'customer.orders.index',
'sort' => 5,
'sort' => 6,
], [
'key' => 'account.downloadables',
'name' => 'shop::app.layouts.downloadable-products',
'route' =>'customer.downloadable_products.index',
'sort' => 6,
'sort' => 7,
]
];

View File

@ -30,14 +30,14 @@ class SubscriptionEmail extends Mailable
*/
public function build()
{
return $this->to($this->subscriptionData['email'])
->subject(trans('shop::app.mail.customer.subscription.subject'))
->view('shop::emails.customer.subscription-email')
->with('data', [
'content' => 'You Are Subscribed',
'token' => $this->subscriptionData['token'],
]
);
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->to($this->subscriptionData['email'])
->subject(trans('shop::app.mail.customer.subscription.subject'))
->view('shop::emails.customer.subscription-email')
->with('data', [
'content' => 'You Are Subscribed',
'token' => $this->subscriptionData['token'],
]
);
}
}

View File

@ -785,6 +785,7 @@ section.slider-block {
border-bottom-right-radius: 0px;
padding-left: 12px;
font-size: 14px;
-webkit-appearance: none;
}
.search-icon-wrapper {
@ -794,11 +795,13 @@ section.slider-block {
border: 2px solid $border-color;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
margin-left: -2px;
button {
background: $btn-background-color;
border: 0;
padding: 3px 5px;
margin: 0px;
}
}
}
@ -3832,6 +3835,7 @@ section.review {
border-radius: 2px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
-webkit-appearance: none;
}
.search-icon-wrapper {
@ -3840,6 +3844,7 @@ section.review {
border-radius: 2px;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
margin-left: -2px;
}
}
}

View File

@ -1,6 +1,10 @@
<?php
return [
'invalid_vat_format' => 'معرف ضريبة القيمة المضافة المحدد له تنسيق خاطئ',
'security-warning' => 'تم العثور على نشاط مريب',
'nothing-to-delete' => 'ليس هناك شيء لحذفه',
'layouts' => [
'my-account' => 'حسابي',
'profile' => 'الملف الشخصي',
@ -33,6 +37,7 @@ return [
'cart' => 'عربة التسوق',
'profile' => 'الملف الشخصي',
'wishlist' => 'قائمة الأمنيات',
'cart' => 'عربة التسوق',
'logout' => 'تسجيل الخروج',
'search-text' => 'ابحث عن منتج'
],
@ -59,6 +64,7 @@ return [
'already' => 'أنت مشترك بالفعل في قائمة اشتراكاتنا',
'unsubscribed' => 'تم إلغاء الاشتراك.',
'already-unsub' => 'أنت بالفعل غير مشترك',
'not-subscribed' => 'خطأ! لا يمكن إرسال البريد حاليًا ، يرجى المحاولة مرة أخرى في وقت لاحق.'
],
'search' => [
@ -77,7 +83,7 @@ return [
'rating-reviews' => 'التقييم والمراجعات',
'submit' => 'إرسال',
'delete-all' => 'حذف كل المراجعات',
'ratingreviews' => ':rating تقيمات & :review باء-الاستعراضات',
'ratingreviews' => ' مراجعات :review تقييمات و :rating',
'star' => 'نجم',
'percentage' => ':percentage %',
'id-star' => 'نجم',
@ -105,6 +111,7 @@ return [
'using' => 'باستخدام هذا الموقع',
'agreement' => 'اتفاق',
'success' => 'الحساب أنشئ بنجاح, تم إرسال بريد إلكتروني إلى حسابك للتحقق',
'success-verify' => 'تم إنشاء الحساب بنجاح ، تم إرسال بريد إلكتروني للتحقق',
'success-verify-email-not-sent' => 'الحساب أنشئ بنجاح, لكن البريد الإلكتروني لم يتم إرساله',
'failed' => 'خطأ! لا يمكن إنشاء حسابك ، حاول مرة أخرى لاحقا',
'already-verified' => 'حسابك تم التحقق منه بالفعل أو الرجاء محاولة إرسال بريد إلكتروني جديد للتحقق مرة أخرى',
@ -113,6 +120,7 @@ return [
'verified' => 'تم التحقق من حسابك قم بتسجيل الدخول الآن',
'verify-failed' => 'لا يمكننا التحقق من بريدك الإلكتروني',
'dont-have-account' => 'ليس لديك حساب',
'customer-registration' => 'تم تسجيل العميل بنجاح'
],
'login-text' => [
@ -131,6 +139,7 @@ return [
'footer' => '© 2019 جميع الحقوق محفوظة',
'invalid-creds' => 'الرجاء التحقق من معلومات الدخول',
'verify-first' => 'الرجاء قم بتفعيل حسابك.',
'not-activated' => 'التنشيط الخاص بك يسعى للحصول على موافقة المشرف',
'resend-verification' => 'إعادة إرسال البريد الإلكتروني للتحقق مرة أخرى'
],
@ -207,15 +216,14 @@ return [
'company_name' => 'اسم الشركة',
'first_name' => 'الاسم الاول',
'last_name' => 'الكنية',
// Vat Id num
'vat_id' => 'رقم تعريف الضريبة على القيمة المضافة',
'street-address' => 'عنوان الشارع',
'vat_help_note' => '[INV01234567891 ملاحظة: استخدم رمز البلد مع معرف ضريبة القيمة المضافة مثل ]',
'title' => 'أضف العنوان',
'address1' => 'العنوان سطر 1',
'street-address' => 'عنوان الشارع',
'country' => 'البلد',
'city' => 'المدينة',
'state' => 'المنطقة/الولاية',
'select-state' => 'اختر منطقة أو ولاية أو مقاطعة',
'city' => 'المدينة',
'postcode' => 'الرمز البريدي',
'phone' => 'الهاتف',
'submit' => 'احفظ العنوان',
@ -225,7 +233,12 @@ return [
'edit' => [
'page-title' => 'تعديل العنوان',
'company_name' => 'اسم الشركة',
'first_name' => 'الاسم الاول',
'last_name' => 'الكنية',
'vat_id' => 'id ضريبة القيمة المضافة',
'title' => 'تعديل العنوان',
'street-address' => 'عنوان الشارع',
'submit' => 'احفظ العنوان',
'success' => 'العنوان تم تحديثه بنجاح.'
],
@ -244,17 +257,18 @@ return [
'date' => 'التاريخ',
'status' => 'الحالة',
'total' => 'المجموع',
'processing' => 'Processing',
'completed' => 'Completed',
'canceled' => 'Canceled',
'closed' => 'Closed',
'pending' => 'Pending',
'pending-payment' => 'Pending Payment',
'fraud' => 'Fraud'
'order_number' => 'رقم الأمر',
'processing' => 'معالجة',
'completed' => 'منجز',
'canceled' => 'ألغيت',
'closed' => 'مغلق',
'pending' => 'قيد الانتظار',
'pending-payment' => 'في انتظار الدفع',
'fraud' => 'تزوير'
],
'view' => [
'page-tile' => 'ترتيب #:order_id',
'page-tile' => '#:order_id اطلب',
'info' => 'معلومات',
'placed-on' => 'وضع على',
'products-ordered' => 'المنتجات المطلوبة',
@ -264,11 +278,11 @@ return [
'product-name' => 'الاسم',
'qty' => 'الكمية',
'item-status' => 'حالة البند',
'item-ordered' => 'أمر(:qty_ordered)',
'item-invoice' => '3-الفواتير(:qty_invoiced)',
'item-shipped' => 'شحنت(:qty_shipped)',
'item-canceled' => 'ملغاة(:qty_canceled)',
'item-refunded' => 'ردها (:qty_refunded)',
'item-ordered' => '(:qty_ordered) أمر',
'item-invoice' => '(:qty_invoiced) مفوتر',
'item-shipped' => '(:qty_shipped) شحنت',
'item-canceled' => '(:qty_canceled) ملغاة',
'item-refunded' => '(:qty_refunded) ردها',
'price' => 'السعر',
'total' => 'المجموع',
'subtotal' => 'المجموع الفرعي',
@ -286,8 +300,8 @@ return [
'billing-address' => 'عنوان الفواتير',
'shipping-method' => 'طريقة الشحن',
'payment-method' => 'طريقة الدفع',
'individual-invoice' => 'فاتورة #:invoice_id',
'individual-shipment' => 'الشحن #:shipment_id',
'individual-invoice' => '#:invoice_id فاتورة',
'individual-shipment' => ' #:shipment_id الشحن',
'print' => 'اطبع',
'invoice-id' => 'رقم الفاتورة',
'order-id' => 'ترتيب ',
@ -296,7 +310,7 @@ return [
'ship-to' => 'يشحن إلى',
'contact' => 'معلومات الإتصال',
'refunds' => 'المسترجع',
'individual-refund' => 'مسترجع #:refund_id',
'individual-refund' => '#:refund_id مسترجع',
'adjustment-refund' => 'تعديلات عملية الإسترجاع',
'adjustment-fee' => 'تكلفة تعديلات عملية الإسترجاع'
]
@ -312,6 +326,7 @@ return [
'add' => 'تم إضافة العنصر بنجاح إلى قائمة الأمنيات',
'remove' => 'تم حذف العنصر بنجاح من قائمة الأمنيات',
'moved' => 'تم نقل البند بنجاح إلى قائمة الأمنيات',
'option-missing' => 'خيارات المنتج مفقودة ، لذلك لا يمكن نقل العنصر إلى قائمة الرغبات.',
'move-error' => 'لا يمكن نقل العنصر إلى قائمة الأمنيات ، رجاء حاول مرة أخرى لاحقا',
'success' => 'البند مضاف بنجاح إلى قائمة الأمنيات',
'failure' => 'لا يمكن إضافة العنصر إلى قائمة الأمنيات ، رجاء حاول مرة أخرى لاحقا',
@ -343,7 +358,7 @@ return [
],
'view' => [
'page-tile' => 'مراجعة #:id',
'page-tile' => '#:id مراجعة',
]
]
]
@ -361,13 +376,15 @@ return [
'cheapest-first' => 'الأرخص أولا',
'expensive-first' => 'الأغلى أولا',
'show' => 'اعرض',
'pager-info' => رض :showing of :total Items',
'pager-info' => نصر :total من :showing عرض',
'description' => 'الوصف',
'specification' => 'مواصفات',
'total-reviews' => ':total المراجعات',
'total-rating' => ':total_rating تقييمات & :total_reviews مراجعات',
'by' => 'من قبل :name',
'total-reviews' => ' المراجعات :total',
'total-rating' => ',تعليق :total_reviews تقييمات و :total_rating',
'by' => ':name من قبل ',
'up-sell-title' => 'وجدنا منتجات أخرى قد ترغب!',
'related-product-title' => 'منتجات ذات صله',
'cross-sell-title' => 'المزيد من الخيارات',
'reviews-title' => 'المراجعات',
'write-review-btn' => 'اكتب مراجعة',
'choose-option' => 'اختر ',
@ -381,14 +398,19 @@ return [
'in-stock' => 'متوفر',
'out-of-stock' => 'غير متوفر',
'view-all' => 'عرض الكل',
'select-above-options' => 'يرجى تحديد الخيارات أعلاه أولاً.',
'less-quantity' => 'لا يمكن أن تكون الكمية أقل من واحدة.',
'samples' => 'عينات',
'links' => 'الروابط',
'sample' => 'عينة',
'name' => 'اسم',
'qty' => 'الكمية',
'starting-at' => 'يبدأ من',
'customize-options' => 'تخصيص الخيارات',
'choose-selection' => 'اختيار اختيار',
'your-customization' => 'التخصيص الخاص بك',
'total-amount' => 'المبلغ الإجمالي',
'none' => 'لا شيء',
'less-quantity' => 'الكمية لايمكن ان تكون أقل من واحد.'
],
// 'reviews' => [
@ -399,14 +421,14 @@ return [
'no-options' => 'رجاء تحديد خيارات قبل شراء هذا المنتج'
],
'checkout' => [
'cart' => [
'integrity' => [
'missing_fields' =>'إنتهاك سلامة نظام العربة ، بعض الحقول المطلوبة مفقودة',
'missing_options' =>'إنتهاك سلامة نظام العربة ، الخيارات مفقودة لمنتج قابل للتهيئة',
'missing_links' => 'الروابط القابلة للتنزيل مفقودة لهذا المنتج.',
'qty_missing' => 'يجب أن يحتوي منتج واحد على الأقل على كمية واحدة.'
'qty_missing' => 'يجب أن يحتوي منتج واحد على الأقل على كمية واحدة.',
'qty_impossible' => 'لا يمكن إضافة أكثر من واحد من هذه المنتجات إلى سلة التسوق'
],
'create-error' => 'صادفت بعض القضايا أثناء صناعة السيارات',
'title' => 'عربة التسوق',
@ -427,6 +449,7 @@ return [
'inventory_warning' => 'الكمية المطلوبة غير متوفرة ، الرجاء المحاولة لاحقا',
'error' => 'لا يستطيع تحديث عنصر s في الوقت الحالي رجاء حاول ثانية لاحقا'
],
'item' => [
'error_remove' => 'لا عناصر لإزالتها من العربة',
'success' => 'تم بنجاح إضافة العنصر إلى العربة',
@ -436,7 +459,8 @@ return [
'quantity-error' => 'الكمية المطلوبة غير متوفرة',
'cart-subtotal' => 'المجموع الفرعي للمشتريات',
'cart-remove-action' => 'هل تريد حقا أن تسمح هذا ؟',
'partial-cart-update' => 'تم تحديث بعض المنتجات.'
'partial-cart-update' => 'تم تحديث بعض المنتجات.',
'link-missing' => ''
],
'onepage' => [
@ -462,13 +486,33 @@ return [
'use_for_shipping' => 'إشحن إلى هذا العنوان',
'continue' => 'إستمرار',
'shipping-method' => 'طريقة الشحن',
'payment-information' => 'معلومات الدفع',
'payment-methods' => 'اختار طريقة الدفع',
'payment-method' => 'طريقة الدفع او السداد',
'payment-method' => 'طريقة الدفع',
'summary' => 'المعلومات',
'price' => 'السعر',
'quantity' => 'الكمية',
'billing-address' => 'عنوان وصول الفواتير',
'shipping-address' => 'عنوان الشحن',
'contact' => 'معلومات الإتصال',
'place-order' => 'إكمال الطلب'
'place-order' => 'إكمال الطلب',
'new-address' => 'أضف عنوان جديد',
'save_as_address' => 'احفظ هذا العنوان',
'apply-coupon' => 'تطبيق القسيمة',
'amt-payable' => 'المبلغ المستحق',
'got' => 'حصلت',
'free' => 'مجانا',
'coupon-used' => 'الكوبون المستخدم',
'applied' => 'التطبيقي',
'back' => 'عودة',
'cash-desc' => 'الدفع عند الاستلام',
'money-desc' => 'حوالة مالية',
'paypal-desc' => 'معيار باي بال',
'free-desc' => 'هذه شحن مجاني',
'flat-desc' => 'هذا سعر ثابت',
'password' => 'كلمه السر',
'login-exist-message' => 'لديك بالفعل حساب لدينا ، تسجيل الدخول أو الاستمرار كضيف.',
'enter-coupon-code' => 'أدخل رمز القسيمة'
],
'total' => [
@ -478,13 +522,22 @@ return [
'delivery-charges' => 'رسوم التسليم',
'tax' => 'الضرائب',
'discount' => 'التخفيض',
'price' => 'السعر '
'price' => 'السعر ',
'disc-amount' => 'المبلغ المخصوم',
'new-grand-total' => 'المجموع الكلي الجديد',
'coupon' => 'Coupon',
'coupon-applied' => 'قسيمة تطبيقية',
'remove-coupon' => 'إزالة القسيمة',
'cannot-apply-coupon' => 'لا يمكن تطبيق القسيمة',
'invalid-coupon' => 'رمز القسيمة غير صالح.',
'success-coupon' => 'تم تطبيق رمز القسيمة بنجاح.',
'coupon-apply-issue' => 'لا يمكن تطبيق رمز القسيمة.'
],
'success' => [
'title' => 'تم الدفع بنجاح',
'thanks' => 'شكرا على طلبك!',
'order-id-info' => 'رقم الطلب هو #:order_id',
'order-id-info' => '#:order_id رقم الطلب هو ',
'info' => 'سنرسل لك بريدا الكترونيا ، تفاصيل طلباتك و معلومات التعقب'
]
],
@ -493,8 +546,10 @@ return [
'order' => [
'subject' => 'تأكيد الطلب الجديد',
'heading' => 'تأكيد الطلب!',
'dear' => 'عزيزي :customer_name',
'greeting' => 'شكرا على طلبك :order_id placed on :created_at',
'dear' => ' :customer_name عزيزي',
'dear-admin' => ':admin_name عزيزي',
'greeting' => ':created_at لعام :order_id شكرًا لطلبك رقم',
'greeting-admin' => ':created_at موضوع في :order_id معرّف الطلب ',
'summary' => 'معلومات الطلب',
'shipping-address' => 'عنوان الشحن',
'billing-address' => 'عنوان الفواتير',
@ -509,38 +564,99 @@ return [
'discount' => 'التخفيض',
'grand-total' => 'المجموع الكلي',
'final-summary' => 'شكرا لإظهارك إهتمامك بمتجرنا سنرسل لك رقم التتبع بمجرد شحنه',
'help' => 'إذا كنت بحاجة إلى أي نوع من المساعدة يرجى الاتصال بنا على: support_email',
'thanks' => 'شكرا!'
'help' => ': support_email إذا كنت بحاجة إلى أي نوع من المساعدة يرجى الاتصال بنا على',
'thanks' => 'شكرا!',
'cancel' => [
'subject' => 'تأكيد إلغاء الأمر',
'heading' => 'تم الغاء الأمر او الطلب',
'dear' => ':customer_name العزيز',
'greeting' => ':created_at والمقدم في #:order_id تم إلغاء الطلب الذي يحمل رقم الطلب',
'summary' => 'ملخص الطلب',
'shipping-address' => 'عنوان الشحن',
'billing-address' => 'عنوان وصول الفواتير',
'contact' => 'اتصل',
'shipping' => 'طريقة الشحن',
'payment' => 'طريقة الدفع او السداد',
'subtotal' => 'المجموع الفرعي',
'shipping-handling' => 'شحن وتسليم',
'tax' => 'ضريبة',
'discount' => 'خصم',
'grand-total' => 'المبلغ الإجمالي',
'final-summary' => 'شكرا لإظهار اهتمامك بمتجرنا',
'help' => ': support_email إذا كنت بحاجة إلى أي نوع من المساعدة ، يرجى الاتصال بنا على',
'thanks' => 'Thanks!',
]
],
'invoice' => [
'heading' => 'فاتورتك #:invoice_id لطلبك #:order_id',
'subject' => 'فاتورة لطلبك #:order_id',
'heading' => '#:order_id للطلب #:invoice_id فاتورتك',
'subject' => '#:order_id فاتورة لطلبك',
'summary' => 'موجز الفاتورة',
],
'shipment' => [
'heading' => 'شحنتك #:shipment_id لطلبك #:order_id',
'subject' => 'شحنة لطلبك #:order_id',
'heading' => '#:order_id للطلب #:shipment_id تم إنشاء الشحنة ' ,
'inventory-heading' => '#:order_id للطلب #:shipment_id تم إنشاء الشحنة الجديدة',
'subject' => '#:order_id شحنة لطلبك',
'inventory-subject' => '#:order_id تم إنشاء شحنة جديدة للطلب',
'summary' => 'موجز الشحن',
'carrier' => 'الناقل',
'tracking-number' => 'رقم التتبع'
'tracking-number' => 'رقم التتبع',
'greeting' => ':created_at في عام :order_id تم تقديم طلب',
],
'refund' => [
'heading' => 'المسترجع #:refund_id لطبلك #:order_id',
'subject' => 'المسترجع لطلبك #:order_id',
'heading' => '#:order_id للطلب #:refund_id أموالك المستردة',
'subject' => '#:order_id المسترجع لطلبك',
'summary' => 'تفاصيل المسترجع',
'adjustment-refund' => 'تعديلات عملية الإسترجاع',
'adjustment-fee' => 'تكلفة تعديلات عملية الإسترجاع'
],
'forget-password' => [
'dear' => 'عزيزي :name',
'subject' => 'إعادة تعيين كلمة مرور العميل',
'dear' => ':name عزيزي',
'info' => 'أنت تستلم هذا البريد الإلكتروني لأننا تلقينا طلب إعادة ضبط كلمة الدخول لحسابك',
'reset-password' => 'أعد ضبط كلمة الدخول',
'final-summary' => 'إذا لم تطلب إعادة تعيين كلمة الدخول ، لا إجراء آخر مطلوب',
'thanks' => 'شكرا!'
],
'customer' => [
'new' => [
'dear' => ':customer_name العزيز',
'username-email' => 'اسم المستخدم / البريد الإلكتروني',
'subject' => 'تسجيل عميل جديد',
'password' => 'كلمه السر',
'summary' => 'لقد تم إنشاء حسابك.
تفاصيل حسابك أدناه: ',
'thanks' => 'شكر',
],
'registration' => [
'subject' => 'تسجيل عميل جديد',
'customer-registration' => 'تم تسجيل العميل بنجاح',
'dear' => ':customer_name العزيز',
'greeting' => 'مرحبا بك وشكرا للتسجيل معنا',
'summary' => 'تم إنشاء حسابك بنجاح الآن ويمكنك تسجيل الدخول باستخدام عنوان بريدك الإلكتروني وبيانات اعتماد كلمة المرور. عند تسجيل الدخول ، ستتمكن من الوصول إلى خدمات أخرى بما في ذلك مراجعة الطلبات السابقة وقوائم الرغبات وتعديل معلومات حسابك.',
'thanks' => '!شكر',
],
'verification' => [
'heading' => ' - تأكيد بواسطة البريد الالكتروني' . config('app.name') ,
'subject' => 'بريد التحقق',
'verify' => 'تحقق من حسابك',
'summary' => 'هذا هو البريد للتحقق من أن عنوان البريد الإلكتروني الذي أدخلته هو لك.
                 يرجى النقر على زر التحقق من حسابك أدناه للتحقق من حسابك.'
],
'subscription' => [
'subject' => 'البريد الإلكتروني للاشتراك',
'greeting' => ' الاشتراك عبر البريد الإلكتروني' . config('app.name'). ' مرحبًا بك في',
'unsubscribe' => 'إلغاء الاشتراك',
'summary' => 'البريد الإلكتروني ، ولا نريد أن نربك بريدك الوارد. إذا كنت لا تزال لا ترغب في تلقي
                 آخر أخبار التسويق عبر البريد الإلكتروني ، ثم انقر على الزر أدناه'. config('app.name') .' لقد مرت فترة طويلة منذ أن قرأت .شكرا لوضعني في صندوق البريد الوارد الخاص بك'
]
]
],
@ -549,9 +665,9 @@ return [
],
'response' => [
'create-success' => ':name إنشء بنجاح.',
'update-success' => ':name تم تعديله بنحاح.',
'delete-success' => ':name تم مسحه بنجاح.',
'submit-success' => ':name تم الإرسال بنجاح.'
'create-success' => 'بنجاح :name تم إنشاء',
'update-success' => 'تم تحديث name: بنجاح',
'delete-success' => 'تم حذف name: بنجاح',
'submit-success' => 'تم تقديم name: بنجاح'
],
];
];

View File

@ -120,16 +120,6 @@ return [
'verified' => 'Your account has been verified, try to login now.',
'verify-failed' => 'We cannot verify your mail account.',
'dont-have-account' => 'You do not have account with us.',
'success' => 'Account Created Successfully',
'success-verify' => 'Account Created Successfully, an e-mail has been sent for verification.',
'success-verify-email-unsent' => 'Account created successfully, but verification e-mail unsent',
'failed' => 'Error! Cannot Create Your Account, Try Again Later',
'already-verified' => 'Your Account is already verified Or Please Try Sending A New Verification Email Again',
'verification-not-sent' => 'Error! Problem In Sending Verification Email, Try Again Later',
'verification-sent' => 'Verification Email Sent',
'verified' => 'Your Account Has Been Verified, Try To Login Now',
'verify-failed' => 'We Cannot Verify Your Mail Account',
'dont-have-account' => 'You Do Not Have Account With Us',
'customer-registration' => 'Customer Registered Successfully'
],

View File

@ -1,7 +1,8 @@
<?php
return [
'security-warning' => 'فعالیت مشکوکی یافت شد !!!',
'security-warning' => '!!!فعالیت مشکوکی یافت شد',
'nothing-to-delete' => 'هیچ چیز برای حذف نیست',
'nothing-to-delete' => 'هیچ چیز برای حذف نیست',
'layouts' => [
@ -119,6 +120,7 @@ return [
'verified' => 'حساب شما تأیید شده است ، سعی کنید هم اکنون وارد سیستم شوید',
'verify-failed' => 'ما نمی توانیم حساب نامه شما را تأیید کنیم',
'dont-have-account' => 'شما با ما حساب ندارید',
'customer-registration' => 'ثبت نام مشتری با موفقیت انجام شد'
],
'login-text' => [
@ -134,7 +136,7 @@ return [
'forgot_pass' => 'رمز عبور را فراموش کرده اید؟',
'button_title' => 'ورود',
'remember' => 'مرا به خاطر بسپار',
'footer' => کپی رایت: نرم افزار Webkul سال ، کلیه حقوق محفوظ است',
'footer' => حقوق النشر :year Webkul Software ، جميع الحقوق محفوظة',
'invalid-creds' => 'لطفا مدارک خود را بررسی کنید و دوباره امتحان کنید',
'verify-first' => 'ابتدا حساب ایمیل خود را تأیید کنید',
'not-activated' => 'فعال سازی شما به دنبال تأیید سرپرست است',
@ -211,6 +213,11 @@ return [
'create' => [
'page-title' => 'مشتری - فرم آدرس را اضافه کنید',
'company_name' => 'نام شرکت',
'first_name' => 'نام کوچک',
'last_name' => 'نام خانوادگی',
'vat_id' => 'id وات',
'vat_help_note' => '[Note: Use Country Code with VAT Id. Eg. INV01234567891]',
'title' => 'اضافه کردن آدرس',
'street-address' => 'آدرس خیابان',
'country' => 'کشور',
@ -226,6 +233,10 @@ return [
'edit' => [
'page-title' => 'مشتری - ویرایش آدرس',
'company_name' => 'نام شرکت',
'first_name' => 'نام کوچک',
'last_name' => 'نام خانوادگی',
'vat_id' => 'id وات',
'title' => 'ویرایش آدرس',
'street-address' => 'آدرس خیابان',
'submit' => 'ذخیره آدرس',
@ -246,17 +257,18 @@ return [
'date' => 'تاریخ',
'status' => 'وضعیت',
'total' => 'جمع',
'processing' => 'Processing',
'completed' => 'Completed',
'canceled' => 'Canceled',
'closed' => 'Closed',
'pending' => 'Pending',
'pending-payment' => 'Pending Payment',
'fraud' => 'Fraud'
'order_number' => 'شماره سفارش',
'processing' => 'در حال پردازش',
'completed' => 'تکمیل شد',
'canceled' => 'لغو شد',
'closed' => 'بسته شد',
'pending' => 'در انتظار',
'pending-payment' => 'در انتظار پرداخت',
'fraud' => 'تقلب'
],
'view' => [
'page-tile' => 'سفارش #:order_id',
'page-tile' => '#:order_id سفارش',
'info' => 'اطلاعات',
'placed-on' => 'قرار داده شده در',
'products-ordered' => 'محصولات سفارش داده شده',
@ -266,11 +278,11 @@ return [
'product-name' => 'نام',
'qty' => 'کمیت',
'item-status' => 'وضعیت مورد',
'item-ordered' => 'سفارش داد (:qty_ordered)',
'item-invoice' => 'صورتحساب (:qty_invoiced)',
'item-shipped' => 'حمل شده (:qty_shipped)',
'item-canceled' => 'لغو شد (:qty_canceled)',
'item-refunded' => 'بازپرداخت (:qty_refunded)',
'item-ordered' => '(:qty_ordered) سفارش داد',
'item-invoice' => '(:qty_invoiced) صورتحساب ',
'item-shipped' => '(:qty_shipped) حمل شده',
'item-canceled' => '(:qty_canceled) لغو شد',
'item-refunded' => '(:qty_refunded) بازپرداخت',
'price' => 'قیمت',
'total' => 'جمع',
'subtotal' => 'فرعی',
@ -288,8 +300,8 @@ return [
'billing-address' => 'آدرس قبض',
'shipping-method' => 'روش حمل و نقل',
'payment-method' => 'روش پرداخت',
'individual-invoice' => 'صورتحساب #:invoice_id',
'individual-shipment' => 'حمل و نقل #:shipment_id',
'individual-invoice' => '#:invoice_id صورتحساب',
'individual-shipment' => '#:shipment_id حمل و نقل',
'print' => 'چاپ',
'invoice-id' => 'شناسه فاکتور',
'order-id' => 'شماره سفارش',
@ -297,8 +309,8 @@ return [
'bill-to' => 'بیل به',
'ship-to' => 'حمل به',
'contact' => 'تماس',
'refunds' => 'Refunds',
'individual-refund' => 'بازپرداخت #:refund_id',
'refunds' => 'بازپرداخت',
'individual-refund' => '#:refund_id بازپرداخت',
'adjustment-refund' => 'بازپرداخت تنظیم',
'adjustment-fee' => 'هزینه تنظیم',
]
@ -314,6 +326,7 @@ return [
'add' => 'مورد با موفقیت به لیست دلخواه اضافه شد',
'remove' => 'مورد با موفقیت از لیست دلخواه حذف شد',
'moved' => 'مورد با موفقیت به سبد خرید منتقل شد',
'option-missing' => 'گزینه های محصول وجود ندارد ، بنابراین مورد را نمی توان به لیست دلخواه منتقل کرد.',
'move-error' => 'مورد را نمی توان به لیست دلخواه منتقل کرد ، لطفا بعداً دوباره امتحان کنید',
'success' => 'مورد با موفقیت به لیست دلخواه اضافه شد',
'failure' => 'مورد را نمی توان به لیست دلخواه اضافه کرد ، لطفا بعداً دوباره امتحان کنید',
@ -345,7 +358,7 @@ return [
],
'view' => [
'page-tile' => 'بررسی #:id',
'page-tile' => '#:id بررسی',
]
]
]
@ -387,6 +400,11 @@ return [
'view-all' => 'مشاهده همه',
'select-above-options' => 'لطفا ابتدا گزینه های بالا را انتخاب کنید',
'less-quantity' => 'کمیت نمی تواند کمتر از یک باشد.',
'samples' => 'نمونه ها',
'links' => 'پیوندها',
'sample' => 'نمونه',
'name' => 'نام',
'qty' => 'کمیت',
'starting-at' => 'شروع از',
'customize-options' => 'گزینه ها را سفارشی کنید',
'choose-selection' => 'انتخابی را انتخاب کنید',
@ -403,16 +421,15 @@ return [
'no-options' => 'لطفا قبل از خرید این محصول گزینه هایی را انتخاب کنید'
],
'checkout' => [
'cart' => [
'integrity' => [
'missing_fields' =>'نقض یکپارچگی سیستم سبد خرید ، برخی از زمینه های لازم وجود ندارد',
'missing_options' =>'نقض یکپارچگی سیستم سبد خرید ، گزینه هایی برای محصول قابل تنظیم وجود ندارد',
'missing_links' => 'لینک های قابل بارگیری برای این محصول وجود ندارد',
'qty_missing' => 'حداقل یک محصول باید بیش از 1 مقدار داشته باشد.'
'qty_missing' => 'حداقل یک محصول باید بیش از 1 مقدار داشته باشد.',
'qty_impossible' => 'نمی توان بیش از یکی از این محصولات را به سبد خرید اضافه کرد'
],
'create-error' => 'هنگام تهیه نمونه سبد خرید ، با برخی از شماره ها روبرو شد',
'title' => 'سبد خرید',
'empty' => 'سبد خرید شما خالی است',
@ -454,6 +471,7 @@ return [
'complete' => 'تکمیل',
'billing-address' => 'آدرس قبض',
'sign-in' => 'ورود',
'company-name' => 'نام شرکت',
'first-name' => 'نام کوچک',
'last-name' => 'نام خانوادگی',
'email' => 'پست الکترونیک',
@ -486,7 +504,15 @@ return [
'free' => 'رایگان',
'coupon-used' => 'کوپن مورد استفاده',
'applied' => 'کاربردی',
'back' => 'بازگشت'
'back' => 'بازگشت',
'cash-desc' => 'پرداخت نقدی هنگام تحویل',
'money-desc' => 'انتقال پول',
'paypal-desc' => 'استاندارد پی پال',
'free-desc' => 'این یک ارسال رایگان است',
'flat-desc' => 'این یک نرخ مسطح است',
'password' => 'کلمه عبور',
'login-exist-message' => 'شما قبلاً با ما حساب کاربری دارید ، وارد شوید یا به عنوان مهمان ادامه دهید',
'enter-coupon-code' => 'شماره کوپن را وارد کنید'
],
'total' => [
@ -498,11 +524,14 @@ return [
'discount' => 'تخفیف',
'price' => 'قیمت',
'disc-amount' => 'مقدار تخفیف',
'new-grand-total' => 'New Grand Total',
'new-grand-total' => 'کل بزرگ عالی',
'coupon' => 'کوپن',
'coupon-applied' => 'کوپن کاربردی',
'remove-coupon' => 'کوپن را بردارید',
'cannot-apply-coupon' => 'کوپن قابل اعمال نیست'
'cannot-apply-coupon' => 'کوپن قابل اعمال نیست',
'invalid-coupon' => 'کد کوپن نامعتبر است',
'success-coupon' => 'کد کوپن با موفقیت اعمال شد',
'coupon-apply-issue' => 'کد کوپن نمی تواند اعمال شود'
],
'success' => [
@ -536,7 +565,27 @@ return [
'grand-total' => 'بزرگ توتال',
'final-summary' => 'با تشکر از علاقه شما به فروشگاه ما ، شماره حمل و نقل را برای شما ارسال می کنیم',
'help' => 'در صورت نیاز به هر نوع کمک ، لطفا با ما تماس بگیرید :support_email',
'thanks' => 'با تشکر!'
'thanks' => 'با تشکر!',
'cancel' => [
'subject' => 'تأیید سفارش را لغو کنید',
'heading' => 'سفارش لغو شد',
'dear' => ':customer_name عزیز',
'greeting' => ':created_at والمقدم في #:order_id تم إلغاء الطلب الذي يحمل رقم الطلب',
'summary' => 'خلاصه سفارش',
'shipping-address' => 'آدرس حمل و نقل',
'billing-address' => 'آدرس قبض',
'contact' => 'مخاطب',
'shipping' => 'روش حمل و نقل',
'payment' => 'روش پرداخت',
'subtotal' => 'فرعی',
'shipping-handling' => 'حمل و نقل و جابجایی',
'tax' => 'مالیات',
'discount' => 'تخفیف',
'grand-total' => 'بزرگ توتال',
'final-summary' => 'با تشکر از علاقه شما به فروشگاه ما',
'help' => ':support_email در صورت نیاز به هر نوع کمک ، لطفا با ما تماس بگیرید',
'thanks' => '!با تشکر',
]
],
'invoice' => [
@ -557,30 +606,68 @@ return [
],
'refund' => [
'heading' => 'Your Refund #:refund_id for Order #:order_id',
'subject' => 'Refund for your order #:order_id',
'heading' => '#:order_id للطلب #:refund_id أموالك المستردة',
'subject' => '#:order_id رد أموال لطلبك',
'summary' => 'خلاصه بازپرداخت',
'adjustment-refund' => 'بازپرداخت تنظیم',
'adjustment-fee' => 'هزینه تنظیم'
],
'forget-password' => [
'dear' => 'عزیز :name',
'subject' => 'بازنشانی گذرواژه مشتری',
'dear' => ':name عزیز',
'info' => 'شما این ایمیل را دریافت می کنید زیرا ما درخواست بازنشانی رمزعبور را برای حساب شما دریافت کردیم',
'reset-password' => 'بازنشانی گذرواژه',
'final-summary' => 'اگر درخواست بازنشانی گذرواژه را نکردید ، دیگر نیازی به اقدامات لازم نیست',
'thanks' => 'با تشکر!'
'thanks' => 'با تشکر'
],
'customer' => [
'new' => [
'dear' => ':customer_name عزیز',
'username-email' => 'نام کاربری / ایمیل',
'subject' => 'ثبت نام مشتری جدید',
'password' => 'ثبت نام مشتری جدیدثبت نام مشتری جدید',
'summary' => 'حساب شما ایجاد شده است
                 جزئیات حساب شما در زیر آمده است',
'thanks' => 'با تشکر'
],
'registration' => [
'subject' => 'ثبت نام مشتری جدید',
'customer-registration' => 'ثبت نام مشتری با موفقیت انجام شد',
'dear' => ':customer_name عزیز',
'greeting' => '! خوش آمديد و از شما ممنونم كه با ما ثبت نام كرديد',
'summary' => 'اکنون حساب شما با موفقیت ایجاد شده است و می توانید با استفاده از آدرس ایمیل و اعتبار نامه خود وارد شوید. پس از ورود به سیستم ، می توانید به سایر خدمات از جمله بررسی سفارشات گذشته ، لیست های آرزو و ویرایش اطلاعات حساب خود دسترسی پیدا کنید.',
'thanks' => 'با تشکر',
],
'verification' => [
'heading' => ' - تأكيد بواسطة البريد الالكتروني' . config('app.name') ,
'subject' => 'نامه تأیید صحت',
'verify' => 'حساب کاربری خودراتایید کنید',
'summary' => 'این نامه برای تأیید اینکه آدرس ایمیلی که وارد کردید مال شماست.
                 برای تأیید حساب خود ، لطفاً روی دکمه تأیید حساب خود در زیر کلیک کنید'
],
'subscription' => [
'subject' => 'ایمیل اشتراک',
'greeting' => ' الاشتراك عبر البريد الإلكتروني' . config('app.name'). ' مرحبًا بك في',
'unsubscribe' => 'لغو اشتراک',
'summary' => 'متشکرم که مرا وارد صندوق ورودی کردید. مدتی است که شما نامه' . config('app.name').' را خوانده اید ، و ما نمی خواهیم صندوق ورودی شما را تحت الشعاع قرار دهیم. اگر هنوز نمی خواهید دریافت کنید
                 آخرین اخبار بازاریابی ایمیل و سپس برای دیدن دکمه زیر کلیک کنید.'
]
]
],
'webkul' => [
'copy-right' => '© کپی رایت: نرم افزار Webkul سال ، کلیه حقوق محفوظ است',
'copy-right' => ' جميع الحقوق محفوظة,:year Webkul Software حقوق الطبع والنشر ©',
],
'response' => [
'create-success' => ':name با موفقیت ایجاد شد',
'update-success' => ':name با موفقیت به روز شد.',
'delete-success' => ':name با موفقیت حذف شد',
'submit-success' => ':name با موفقیت ثبت شد.'
'create-success' => 'تم إنشاء name: بنجاح',
'update-success' => 'تم تحديث name: بنجاح',
'delete-success' => 'تم حذف :name بنجاح',
'submit-success' => 'تم تقديم name: بنجاح'
],
];

View File

@ -237,8 +237,8 @@ return [
],
'edit' => [
'page-title' => 'Edit Address',
'company_name' => 'Company name',
'page-title' => 'verander adres',
'company_name' => 'Bedrijfsnaam',
'first_name' => 'Voornaam',
'last_name' => 'Naam',
'vat_id' => 'BTW nummer',
@ -260,7 +260,7 @@ return [
'title' => 'Bestellingen',
'order_id' => 'Bestelnummer',
'date' => 'Datum',
'status' => 'Status',
'status' => 'Toestand',
'total' => 'Totaal',
'order_number' => 'Bestelnummer',
'processing' => 'Processing',
@ -273,51 +273,51 @@ return [
],
'view' => [
'page-tile' => 'Order #:order_id',
'info' => 'Information',
'placed-on' => 'Placed On',
'products-ordered' => 'Products Ordered',
'page-tile' => 'Bestellen #:order_id',
'info' => 'Informatie',
'placed-on' => 'Geplaatst op',
'products-ordered' => 'Bestelde producten',
'invoices' => 'Facturen',
'shipments' => 'Verzendingen',
'SKU' => 'SKU',
'product-name' => 'Naam',
'qty' => 'Aantal',
'item-status' => 'Item Status',
'item-ordered' => 'Ordered (:qty_ordered)',
'item-invoice' => 'Invoiced (:qty_invoiced)',
'item-shipped' => 'shipped (:qty_shipped)',
'item-canceled' => 'Canceled (:qty_canceled)',
'item-refunded' => 'Refunded (:qty_refunded)',
'item-status' => 'Artikelstatus',
'item-ordered' => 'Besteld (:qty_ordered)',
'item-invoice' => 'Gefactureerd (:qty_invoiced)',
'item-shipped' => 'verzonden (:qty_shipped)',
'item-canceled' => 'Geannuleerd (:qty_canceled)',
'item-refunded' => 'Terugbetaald (:qty_refunded)',
'price' => 'Prijs',
'total' => 'Total',
'subtotal' => 'Subtotal',
'shipping-handling' => 'Shipping & Handling',
'tax' => 'Tax',
'discount' => 'Discount',
'tax-percent' => 'Tax Percent',
'tax-amount' => 'Tax Amount',
'discount-amount' => 'Discount Amount',
'grand-total' => 'Grand Total',
'subtotal' => 'Subtotaal',
'shipping-handling' => 'Verzending en afhandeling',
'tax' => 'Belasting',
'discount' => 'Korting',
'tax-percent' => 'Belastingpercentage',
'tax-amount' => 'Belastingbedrag',
'discount-amount' => 'Korting hoeveelheid',
'grand-total' => 'Eindtotaal',
'total-paid' => 'Totaal betaald',
'total-refunded' => 'Total Refunded',
'total-due' => 'Total Due',
'shipping-address' => 'Shipping Address',
'billing-address' => 'Billing Address',
'shipping-method' => 'Shipping Method',
'payment-method' => 'Payment Method',
'individual-invoice' => 'Invoice #:invoice_id',
'individual-shipment' => 'Shipment #:shipment_id',
'print' => 'Print',
'invoice-id' => 'Invoice Id',
'order-id' => 'Order Id',
'order-date' => 'Order Date',
'bill-to' => 'Bill to',
'ship-to' => 'Ship to',
'total-refunded' => 'Totaal terugbetaald ',
'total-due' => 'Totaal verschuldigd',
'shipping-address' => 'Verzendingsadres',
'billing-address' => 'factuur adres',
'shipping-method' => 'Verzendmethode',
'payment-method' => 'Betalingswijze',
'individual-invoice' => 'Factuur #:invoice_id',
'individual-shipment' => 'Verzending #:shipment_id',
'print' => 'Afdrukken',
'invoice-id' => 'Factuur-id',
'order-id' => 'Order ID',
'order-date' => 'Besteldatum',
'bill-to' => 'Rekening naar',
'ship-to' => 'Verzend naar',
'contact' => 'Contact',
'refunds' => 'Refunds',
'individual-refund' => 'Refund #:refund_id',
'adjustment-refund' => 'Adjustment Refund',
'adjustment-fee' => 'Adjustment Fee',
'refunds' => 'Restituties',
'individual-refund' => 'Terugbetaling #:refund_id',
'adjustment-refund' => 'Aanpassing restitutie',
'adjustment-fee' => 'Aanpassingskosten',
]
],
@ -325,21 +325,21 @@ return [
'page-title' => 'Verlanglijst',
'title' => 'Verlanglijst',
'deleteall' => 'Alles verwijderen',
'moveall' => 'Move All Products To Cart',
'move-to-cart' => 'Move To Cart',
'error' => 'Cannot add product to wishlist due to unknown problems, please checkback later',
'add' => 'Item successfully added to wishlist',
'remove' => 'Item successfully removed from wishlist',
'moved' => 'Item successfully moved To cart',
'option-missing' => 'Product options are missing, so item can not be moved to the wishlist.',
'move-error' => 'Item cannot be moved to wishlist, Please try again later',
'success' => 'Item successfully added to wishlist',
'failure' => 'Item cannot be added to wishlist, Please try again later',
'already' => 'Item already present in your wishlist',
'removed' => 'Item successfully removed from wishlist',
'remove-fail' => 'Item cannot Be removed from wishlist, Please try again later',
'empty' => 'You do not have any items in your wishlist',
'remove-all-success' => 'All the items from your wishlist have been removed',
'moveall' => 'Verplaats alle producten naar winkelwagen',
'move-to-cart' => 'Verplaatsen naar winkelwagen',
'error' => 'Kan product niet toevoegen aan verlanglijstje vanwege onbekende problemen, kom later terug',
'add' => 'Item succesvol toegevoegd aan verlanglijstje',
'remove' => 'Item succesvol verwijderd van verlanglijstje',
'moved' => 'Artikel succesvol verplaatst naar winkelwagen',
'option-missing' => 'Productopties ontbreken, dus item kan niet naar de verlanglijst worden verplaatst.',
'move-error' => 'Item kan niet naar de verlanglijst worden verplaatst. Probeer het later opnieuw',
'success' => 'Item succesvol toegevoegd aan verlanglijstje',
'failure' => 'Item kan niet worden toegevoegd aan verlanglijstje, probeer het later opnieuw',
'already' => 'Item al aanwezig in uw verlanglijstje',
'removed' => 'Item succesvol verwijderd van verlanglijstje',
'remove-fail' => 'Item kan niet van de verlanglijst worden verwijderd. Probeer het later opnieuw',
'empty' => 'U heeft geen artikelen op uw verlanglijstje',
'remove-all-success' => 'Alle items van uw verlanglijst zijn verwijderd',
],
'downloadable_products' => [
@ -358,64 +358,64 @@ return [
'review' => [
'index' => [
'title' => 'Reviews',
'page-title' => 'Reviews'
'title' => 'Recensies',
'page-title' => 'Recensies'
],
'view' => [
'page-tile' => 'Review #:id',
'page-tile' => 'Recensies #:id',
]
]
]
],
'products' => [
'layered-nav-title' => 'Shop per',
'price-label' => 'As low as',
'remove-filter-link-title' => 'Clear All',
'sort-by' => 'Sort By',
'from-a-z' => 'From A-Z',
'from-z-a' => 'From Z-A',
'newest-first' => 'Newest First',
'oldest-first' => 'Oldest First',
'cheapest-first' => 'Cheapest First',
'expensive-first' => 'Expensive First',
'show' => 'Show',
'pager-info' => 'Showing :showing of :total Items',
'description' => 'Description',
'specification' => 'Specification',
'total-reviews' => ':total Reviews',
'total-rating' => ':total_rating Ratings & :total_reviews Reviews',
'by' => 'By :name',
'up-sell-title' => 'We found other products you might like!',
'related-product-title' => 'Related Products',
'cross-sell-title' => 'More choices',
'reviews-title' => 'Ratings & Reviews',
'write-review-btn' => 'Write Review',
'choose-option' => 'Choose an option',
'sale' => 'Sale',
'new' => 'New',
'empty' => 'No products available in this category',
'layered-nav-title' => 'Winkelen per ',
'price-label' => 'Zo laag als',
'remove-filter-link-title' => 'Wis alles',
'sort-by' => 'Sorteer op',
'from-a-z' => 'Van A-Z',
'from-z-a' => 'Van Z-A',
'newest-first' => 'Nieuwste eerst',
'oldest-first' => 'Oudste eerst',
'cheapest-first' => 'Goedkoopste eerst',
'expensive-first' => 'Eerst duur',
'show' => 'Tonen',
'pager-info' => 'Weergegeven :showing van :total Artikelen',
'description' => 'Beschrijving',
'specification' => 'Specificatie',
'total-reviews' => ':total Recensies',
'total-rating' => ':total_rating Waarderingen & :total_reviews Recensies',
'by' => 'Door :name',
'up-sell-title' => 'We hebben andere producten gevonden die je misschien leuk vindt!',
'related-product-title' => 'gerelateerde producten',
'cross-sell-title' => 'Meer keuzes',
'reviews-title' => 'Beoordelingen en recensies',
'write-review-btn' => 'Schrijf recensie',
'choose-option' => 'Kies een optie',
'sale' => 'Uitverkoop',
'new' => 'Nieuw',
'empty' => 'Geen producten beschikbaar in deze categorie',
'add-to-cart' => 'Voeg toe aan winkelkar',
'buy-now' => 'Koop nu',
'whoops' => 'Whoops!',
'quantity' => 'Aantal',
'in-stock' => 'Op voorraad',
'out-of-stock' => 'Niet op voorraad',
'view-all' => 'View All',
'select-above-options' => 'Please select above options first.',
'less-quantity' => 'Quantity can not be less than one.',
'view-all' => 'Bekijk alles',
'select-above-options' => 'Selecteer eerst bovenstaande opties.',
'less-quantity' => 'De hoeveelheid mag niet kleiner zijn dan één.',
'samples' => 'Voorbeelden',
'links' => 'Links',
'sample' => 'Voorbeeld',
'name' => 'Naam',
'qty' => 'Aantal',
'starting-at' => 'Starting at',
'customize-options' => 'Customize Options',
'choose-selection' => 'Choose a selection',
'your-customization' => 'Your Customization',
'total-amount' => 'Total Amount',
'none' => 'None'
'starting-at' => 'Beginnend bij',
'customize-options' => 'Pas opties aan',
'choose-selection' => 'Kies een selectie',
'your-customization' => 'Uw maatwerk',
'total-amount' => 'Totale hoeveelheid',
'none' => 'Geen'
],
// 'reviews' => [
@ -423,101 +423,101 @@ return [
// ]
'buynow' => [
'no-options' => 'Please select options before buying this product.'
'no-options' => 'Selecteer opties voordat u dit product koopt.'
],
'checkout' => [
'cart' => [
'integrity' => [
'missing_fields' => 'Some required fields missing for this product.',
'missing_options' => 'Options are missing for this product.',
'missing_links' => 'Downloadable links are missing for this product.',
'qty_missing' => 'Atleast one product should have more than 1 quantity.',
'qty_impossible' => 'Cannot add more than one of these products to cart.'
'missing_fields' => 'Sommige verplichte velden ontbreken voor dit product.',
'missing_options' => 'Er ontbreken opties voor dit product.',
'missing_links' => 'Downloadbare links ontbreken voor dit product.',
'qty_missing' => 'Minstens één product moet meer dan 1 hoeveelheid bevatten.',
'qty_impossible' => 'Kan niet meer dan één van deze producten toevoegen aan winkelwagen.'
],
'create-error' => 'Encountered some issue while making cart instance.',
'title' => 'Shopping Cart',
'empty' => 'Your shopping cart is empty',
'update-cart' => 'Update Cart',
'continue-shopping' => 'Continue Shopping',
'proceed-to-checkout' => 'Proceed To Checkout',
'remove' => 'Remove',
'remove-link' => 'Remove',
'move-to-wishlist' => 'Move to Wishlist',
'move-to-wishlist-success' => 'Item moved to wishlist successfully.',
'move-to-wishlist-error' => 'Cannot move item to wishlist, please try again later.',
'add-config-warning' => 'Please select option before adding to cart.',
'create-error' => 'Er is een probleem opgetreden bij het maken van een winkelwageninstantie.',
'title' => 'Winkelwagen',
'empty' => 'Uw winkelwagen is leeg',
'update-cart' => 'Winkelwagen bijwerken',
'continue-shopping' => 'Doorgaan met winkelen',
'proceed-to-checkout' => 'Ga naar de kassa',
'remove' => 'Verwijderen',
'remove-link' => 'Verwijderen',
'move-to-wishlist' => 'Verplaats naar wens lijst',
'move-to-wishlist-success' => 'Item is succesvol naar de verlanglijst verplaatst.',
'move-to-wishlist-error' => 'Kan item niet naar verlanglijstje verplaatsen, probeer het later opnieuw.',
'add-config-warning' => 'Selecteer een optie voordat u deze aan de winkelwagen toevoegt.',
'quantity' => [
'quantity' => 'Aantal',
'success' => 'Cart Item(s) successfully updated.',
'illegal' => 'Quantity cannot be lesser than one.',
'inventory_warning' => 'The requested quantity is not available, please try again later.',
'error' => 'Cannot update the item(s) at the moment, please try again later.'
'success' => 'Winkelwagenitem (s) succesvol bijgewerkt.',
'illegal' => 'Hoeveelheid kan niet kleiner zijn dan één.',
'inventory_warning' => 'De gevraagde hoeveelheid is niet beschikbaar, probeer het later opnieuw.',
'error' => 'Kan de item (s) momenteel niet updaten. Probeer het later opnieuw.'
],
'item' => [
'error_remove' => 'No items to remove from the cart.',
'success' => 'Item was successfully added to cart.',
'success-remove' => 'Item was removed successfully from the cart.',
'error-add' => 'Item cannot be added to cart, please try again later.',
'error_remove' => 'Geen items om uit de winkelwagen te verwijderen.',
'success' => 'Artikel is succesvol toegevoegd aan winkelwagen.',
'success-remove' => 'Item is met succes uit de winkelwagen verwijderd.',
'error-add' => 'Item kan niet aan winkelwagen worden toegevoegd. Probeer het later opnieuw.',
],
'quantity-error' => 'Requested quantity is not available.',
'quantity-error' => 'Gevraagde hoeveelheid is niet beschikbaar.',
'cart-subtotal' => 'Subtotaal',
'cart-remove-action' => 'Do you really want to do this ?',
'partial-cart-update' => 'Only some of the product(s) were updated',
'cart-remove-action' => 'Wil je dit echt doen?',
'partial-cart-update' => 'Slechts enkele van de producten zijn bijgewerkt',
'link-missing' => ''
],
'onepage' => [
'title' => 'Checkout',
'title' => 'Uitchecken',
'information' => 'Informatie',
'shipping' => 'Verzending',
'payment' => 'Betaling',
'complete' => 'Complete',
'billing-address' => 'Factuur adres',
'sign-in' => 'Sign In',
'company-name' => 'Company Name',
'first-name' => 'First Name',
'last-name' => 'Last Name',
'email' => 'Email',
'address1' => 'Street Address',
'city' => 'City',
'state' => 'State',
'select-state' => 'Select a region, state or province',
'sign-in' => 'Inloggen',
'company-name' => 'Bedrijfsnaam',
'first-name' => 'Voornaam',
'last-name' => 'Achternaam',
'email' => 'E-mail',
'address1' => 'Woonadres',
'city' => 'stad',
'state' => 'Staat',
'select-state' => 'Selecteer een regio, staat of provincie',
'postcode' => 'Zip/Postcode',
'phone' => 'Telephone',
'country' => 'Country',
'order-summary' => 'Order Summary',
'shipping-address' => 'Shipping Address',
'use_for_shipping' => 'Ship to this address',
'continue' => 'Continue',
'shipping-method' => 'Select Shipping Method',
'payment-methods' => 'Select Payment Method',
'payment-method' => 'Payment Method',
'summary' => 'Order Summary',
'phone' => 'Telefoon',
'country' => 'buiten',
'order-summary' => 'overzicht van de bestelling',
'shipping-address' => 'Verzendingsadres',
'use_for_shipping' => 'Verzenden naar dit adres',
'continue' => 'Doorgaan met',
'shipping-method' => 'selecteer verzendmethode',
'payment-methods' => 'Selecteer betaalmethode',
'payment-method' => 'Betalingswijze',
'summary' => 'overzicht van de bestelling',
'price' => 'Prijs',
'quantity' => 'Aantal',
'billing-address' => 'Billing Address',
'shipping-address' => 'Shipping Address',
'billing-address' => 'factuur adres',
'shipping-address' => 'Verzendingsadres',
'contact' => 'Contact',
'place-order' => 'Place Order',
'new-address' => 'Add New Address',
'save_as_address' => 'Save as Address',
'apply-coupon' => 'Apply Coupon',
'amt-payable' => 'Amount Payable',
'got' => 'Got',
'free' => 'Free',
'coupon-used' => 'Coupon Used',
'applied' => 'Applied',
'back' => 'Back',
'cash-desc' => 'Cash On Delivery',
'money-desc' => 'Money Transfer',
'place-order' => 'Plaats bestelling',
'new-address' => 'Nieuw adres toevoegen',
'save_as_address' => 'Opslaan als adres',
'apply-coupon' => 'gebruik coupon',
'amt-payable' => 'Te betalen bedrag',
'got' => 'Kreeg',
'free' => 'Vrij',
'coupon-used' => 'Coupon gebruikt',
'applied' => 'Toegepast',
'back' => 'Terug',
'cash-desc' => 'Rembours',
'money-desc' => 'Overschrijving',
'paypal-desc' => 'Paypal Standard',
'free-desc' => 'This is a free shipping',
'flat-desc' => 'This is a flat rate',
'free-desc' => 'Dit is een gratis verzending',
'flat-desc' => 'Dit is een vast tarief',
'password' => 'Wachtwoord',
'login-exist-message' => 'You already have an account with us, Sign in or continue as guest.',
'enter-coupon-code' => 'Enter Coupon Code'
'login-exist-message' => 'U heeft al een account bij ons, log in of ga verder als gast.',
'enter-coupon-code' => 'Vul couponcode in'
],
'total' => [
@ -528,139 +528,138 @@ return [
'tax' => 'BTW',
'discount' => 'Korting',
'price' => 'Prijs',
'disc-amount' => 'Amount discounted',
'new-grand-total' => 'New Grand Total',
'disc-amount' => 'Verdisconteerd bedrag',
'new-grand-total' => 'Nieuw eindtotaal',
'coupon' => 'Coupon',
'coupon-applied' => 'Applied Coupon',
'remove-coupon' => 'Remove Coupon',
'cannot-apply-coupon' => 'Cannot Apply Coupon',
'invalid-coupon' => 'Coupon code is invalid.',
'success-coupon' => 'Coupon code applied successfully.',
'coupon-applied' => 'Toegepaste coupon',
'remove-coupon' => 'Coupon verwijderen',
'cannot-apply-coupon' => 'Kan coupon niet toepassen',
'invalid-coupon' => 'Couponcode is ongeldig.',
'success-coupon' => 'Couponcode succesvol toegepast.',
'coupon-apply-issue' => 'Coupon code can\'t be applied.'
],
'success' => [
'title' => 'Order successfully placed',
'thanks' => 'Thank you for your order!',
'order-id-info' => 'Your order id is #:order_id',
'info' => 'We will email you, your order details and tracking information'
'title' => 'Bestelling succesvol geplaatst',
'thanks' => 'Bedankt voor je bestelling!',
'order-id-info' => 'Uw bestellings-ID is #:order_id',
'info' => 'We sturen u een e-mail met uw bestelgegevens en trackinginformatie'
]
],
'mail' => [
'order' => [
'subject' => 'New Order Confirmation',
'heading' => 'Order Confirmation!',
'dear' => 'Dear :customer_name',
'dear-admin' => 'Dear :admin_name',
'greeting' => 'Thanks for your Order :order_id placed on :created_at',
'greeting-admin' => 'Order Id :order_id placed on :created_at',
'summary' => 'Summary of Order',
'shipping-address' => 'Shipping Address',
'billing-address' => 'Billing Address',
'subject' => 'Nieuwe orderbevestiging',
'heading' => 'Order bevestiging!',
'dear' => 'Lieve :customer_name',
'dear-admin' => 'Lieve :admin_name',
'greeting' => 'Bedankt voor je bestelling :order_id geplaatst op :created_at',
'greeting-admin' => 'Order Id :order_id geplaatst op :created_at',
'summary' => 'Samenvatting van de bestelling',
'shipping-address' => 'Verzendingsadres',
'billing-address' => 'factuur adres',
'contact' => 'Contact',
'shipping' => 'Shipping Method',
'payment' => 'Payment Method',
'shipping' => 'Verzendmethode',
'payment' => 'Betalingswijze',
'price' => 'Prijs',
'quantity' => 'Aantal',
'subtotal' => 'Subtotal',
'shipping-handling' => 'Shipping & Handling',
'tax' => 'Tax',
'discount' => 'Discount',
'grand-total' => 'Grand Total',
'final-summary' => 'Thanks for showing your interest in our store we will send you tracking number once it shipped',
'help' => 'If you need any kind of help please contact us at :support_email',
'shipping-handling' => 'Verzending en afhandeling',
'tax' => 'Belasting',
'discount' => 'Korting',
'grand-total' => 'Eindtotaal',
'final-summary' => 'Bedankt voor het tonen van uw interesse in onze winkel.We sturen u een trackingnummer zodra het is verzonden',
'help' => 'Als u hulp nodig heeft, neem dan contact met ons op via :support_email',
'thanks' => 'Thanks!',
'cancel' => [
'subject' => 'Order Cancel Confirmation',
'heading' => 'Order Cancelled',
'dear' => 'Dear :customer_name',
'greeting' => 'You Order with order id #:order_id placed on :created_at has been cancelled',
'summary' => 'Summary of Order',
'shipping-address' => 'Shipping Address',
'billing-address' => 'Billing Address',
'subject' => 'Order Annuleren Bevestiging',
'heading' => 'Bestelling geannuleerd',
'dear' => 'Lieve :customer_name',
'greeting' => 'U bestelt met order-ID #:order_id geplaatst op :created_at is geannuleerd',
'summary' => 'Samenvatting van de bestelling',
'shipping-address' => 'Verzendingsadres',
'billing-address' => 'factuur adres',
'contact' => 'Contact',
'shipping' => 'Shipping Method',
'payment' => 'Payment Method',
'subtotal' => 'Subtotal',
'shipping-handling' => 'Shipping & Handling',
'tax' => 'Tax',
'discount' => 'Discount',
'grand-total' => 'Grand Total',
'final-summary' => 'Thanks for showing your interest in our store',
'help' => 'If you need any kind of help please contact us at :support_email',
'thanks' => 'Thanks!',
'shipping' => 'Verzendmethode',
'payment' => 'Betalingswijze',
'subtotal' => 'Subtotaal',
'shipping-handling' => 'Verzending en afhandeling',
'tax' => 'Belasting',
'discount' => 'Korting',
'grand-total' => 'Eindtotaal',
'final-summary' => 'Bedankt voor het tonen van uw interesse in onze winkel',
'help' => 'Als u hulp nodig heeft, neem dan contact met ons op via :support_email',
'thanks' => 'Bedankt!',
]
],
'invoice' => [
'heading' => 'Your invoice #:invoice_id for Order #:order_id',
'subject' => 'Invoice for your order #:order_id',
'summary' => 'Summary of Invoice',
'heading' => 'Je factuur #:invoice_id voor bestelling #:order_id',
'subject' => 'Factuur voor uw bestelling #:order_id',
'summary' => 'Samenvatting van factuur',
],
'shipment' => [
'heading' => 'Shipment #:shipment_id has been generated for Order #:order_id',
'inventory-heading' => 'New shipment #:shipment_id had been generated for Order #:order_id',
'subject' => 'Shipment for your order #:order_id',
'inventory-subject' => 'New shipment had been generated for Order #:order_id',
'summary' => 'Summary of Shipment',
'carrier' => 'Carrier',
'tracking-number' => 'Tracking Number',
'greeting' => 'An order :order_id has been placed on :created_at',
'heading' => 'Verzending #:shipment_id is gegenereerd voor Order #:order_id',
'inventory-heading' => 'Nieuwe zending #:shipment_id was gegenereerd voor Order #:order_id',
'subject' => 'Verzending voor uw bestelling #:order_id',
'inventory-subject' => 'Er is een nieuwe zending gegenereerd voor de bestelling #:order_id',
'summary' => 'Samenvatting van verzending',
'carrier' => 'Drager',
'tracking-number' => 'Volg nummer',
'greeting' => 'Een bestelling :order_id is geplaatst op :created_at',
],
'refund' => [
'heading' => 'Your Refund #:refund_id for Order #:order_id',
'subject' => 'Refund for your order #:order_id',
'summary' => 'Summary of Refund',
'adjustment-refund' => 'Adjustment Refund',
'adjustment-fee' => 'Adjustment Fee'
'heading' => 'Uw terugbetaling #:refund_id voor bestelling #:order_id',
'subject' => 'Restitutie voor uw bestelling #:order_id',
'summary' => 'Samenvatting van terugbetaling',
'adjustment-refund' => 'Aanpassing restitutie',
'adjustment-fee' => 'Aanpassingskosten'
],
'forget-password' => [
'subject' => 'Customer Reset Password',
'dear' => 'Dear :name',
'info' => 'You are receiving this email because we received a password reset request for your account',
'reset-password' => 'Reset Password',
'final-summary' => 'If you did not request a password reset, no further action is required',
'thanks' => 'Thanks!'
'subject' => 'Klant reset wachtwoord',
'dear' => 'Lieve :name',
'info' => 'U ontvangt deze e-mail omdat we een verzoek voor het opnieuw instellen van uw wachtwoord voor uw account hebben ontvangen',
'reset-password' => 'Wachtwoord opnieuw instellen',
'final-summary' => 'Als u geen wachtwoordherstel hebt aangevraagd, is er geen verdere actie vereist',
'thanks' => 'Bedankt!'
],
'customer' => [
'new' => [
'dear' => 'Dear :customer_name',
'dear' => 'Lieve :customer_name',
'username-email' => 'UserName/Email',
'subject' => 'New Customer Registration',
'subject' => 'Nieuwe klantenregistratie',
'password' => 'Wachtwoord',
'summary' => 'Your account has been created.
Your account details are below: ',
'summary' => 'Uw account is aangemaakt.
Uw accountgegevens zijn below: ',
'thanks' => 'Thanks!',
],
'registration' => [
'subject' => 'New Customer Registration',
'customer-registration' => 'Customer Registered Successfully',
'dear' => 'Dear :customer_name',
'greeting' => 'Welcome and thank you for registering with us!',
'summary' => 'Your account has now been created successfully and you can login using your email address and password credentials. Upon logging in, you will be able to access other services including reviewing past orders, wishlists and editing your account information.',
'subject' => 'Nieuwe klantenregistratie',
'customer-registration' => 'Klant succesvol geregistreerd',
'dear' => 'Lieve :customer_name',
'greeting' => 'Welkom en bedankt voor uw registratie bij ons!',
'summary' => 'Uw account is nu succesvol aangemaakt en u kunt inloggen met uw e-mailadres en wachtwoordgegevens. Na het inloggen hebt u toegang tot andere services, waaronder het bekijken van eerdere bestellingen, verlanglijstjes en het bewerken van uw accountgegevens.',
'thanks' => 'Thanks!',
],
'verification' => [
'heading' => config('app.name') . ' - Email Verification',
'subject' => 'Verification Mail',
'verify' => 'Verify Your Account',
'summary' => 'This is the mail to verify that the email address you entered is yours.
Kindly click the Verify Your Account button below to verify your account.'
'subject' => 'Verificatiemail',
'verify' => 'Verifieer uw account',
'summary' => 'Dit is de e-mail om te verifiëren dat het door u ingevoerde e-mailadres van u is.
Klik op de onderstaande knop Uw account verifiëren om uw account te verifiëren.'
],
'subscription' => [
'subject' => 'Subscription Email',
'greeting' => ' Welcome to ' . config('app.name') . ' - Email Subscription',
'unsubscribe' => 'Unsubscribe',
'summary' => 'Thanks for putting me into your inbox. Its been a while since youve read ' . config('app.name') . ' email, and we dont want to overwhelm your inbox. If you still do not want to receive
the latest email marketing news then for sure click the button below.'
'subject' => 'Abonnementse-mail',
'greeting' => ' Welkom bij' . config('app.name') . ' - Email Subscription',
'unsubscribe' => 'Afmelden',
'summary' => 'Bedankt dat je me in je inbox hebt geplaatst. Het is een tijdje geleden dat je hebt gelezen' . config('app.name') . ' e-mail en we willen uw inbox niet overbelasten. Als je nog steeds niet wilt ontvangen het laatste nieuws over e-mailmarketing, klik dan op de onderstaande knop.'
]
]
],
@ -670,9 +669,9 @@ return [
],
'response' => [
'create-success' => ':name created successfully.',
'update-success' => ':name updated successfully.',
'delete-success' => ':name deleted successfully.',
'submit-success' => ':name submitted successfully.'
'create-success' => ':name succesvol gemaakt.',
'update-success' => ':name succesvol geupdatet.',
'delete-success' => ':name met succes verwijderd.',
'submit-success' => ':name succesvol ingediend.'
],
];

View File

@ -1,6 +1,10 @@
<?php
return [
'invalid_vat_format' => 'The given vat id has a wrong format',
'security-warning' => 'Suspicious activity found!!!',
'nothing-to-delete' => 'Nothing to delete',
'layouts' => [
'my-account' => 'Minha Conta',
'profile' => 'Perfil',
@ -113,8 +117,9 @@ return [
'verification-not-sent' => 'Erro! Problema ao enviar e-mail de verificação, tente novamente mais tarde',
'verification-sent' => 'E-mail de verificação enviado',
'verified' => 'Sua Conta Foi Verificada, Tente Entrar Agora',
'verify-failed' => 'Não podemos verificar sua conta de e-mail',
'verify-failed' => 'Não podemos verificar sua conta de e-mail.',
'dont-have-account' => 'Você não tem conta conosco',
'customer-registration' => 'Cliente Cadastrado com Sucesso'
],
'login-text' => [
@ -245,13 +250,14 @@ return [
'date' => 'Data',
'status' => 'Status',
'total' => 'Total',
'processing' => 'Processing',
'completed' => 'Completed',
'canceled' => 'Canceled',
'closed' => 'Closed',
'pending' => 'Pending',
'pending-payment' => 'Pending Payment',
'fraud' => 'Fraud'
'order_number' => 'Número do Pedido',
'processing' => 'Precessando',
'completed' => 'Completo',
'canceled' => 'Cancelado',
'closed' => 'Fechado',
'pending' => 'Pendente',
'pending-payment' => 'Pagamento Pendente',
'fraud' => 'Fraude'
],
'view' => [
@ -304,7 +310,7 @@ return [
],
'wishlist' => [
'page-title' => 'Customer - Wishlist',
'page-title' => 'Lista de Desejos',
'title' => 'Lista de Desejos',
'deleteall' => 'Excluir Tudo',
'moveall' => 'Adicionar todos ao Carrinho',
@ -313,6 +319,7 @@ return [
'add' => 'Item adicionado com sucesso a Lista de Desejos',
'remove' => 'Item removido com sucesso da Lista de Desejos',
'moved' => 'Item movido com sucesso para Lista de Desejos',
'option-missing' => 'As opções do produto estão ausentes, portanto, o item não pode ser movido para a lista de desejos.',
'move-error' => 'Item não pode ser movido para Lista de Desejos, por favor, tente novamente mais tarde',
'success' => 'Item adicionado com sucesso a Lista de Desejos',
'failure' => 'Item não pode ser adicionado à Lista de Desejos, por favor, tente novamente mais tarde',
@ -408,8 +415,9 @@ return [
'integrity' => [
'missing_fields' =>'Violação de integridade do sistema de carrinho, alguns campos obrigatórios ausentes',
'missing_options' =>'Violação de Integridade do Sistema de Carrinho, Faltam Opções para o Produto Configurável',
'missing_links' => 'Downloadable links are missing for this product.',
'qty_missing' => 'Atleast one product should have more than 1 quantity.'
'missing_links' => 'Faltam links para download para este produto.',
'qty_missing' => 'Pelo menos um produto deve ter mais de 1 quantidade.',
'qty_impossible' => 'Não é possível adicionar mais do que um desse produto ao carrinho.'
],
'create-error' => 'Encontrou algum problema ao fazer a instância do carrinho',
@ -438,11 +446,11 @@ return [
'success-remove' => 'Item foi removido com sucesso do carrinho',
'error-add' => 'Item não pode ser adicionado ao carrinho, por favor, tente novamente mais tarde',
],
'quantity-error' => 'Quantidade solicitada não está disponível',
'cart-subtotal' => 'Subtotal do carrinho',
'cart-remove-action' => 'Você realmente quer fazer isso ?',
'partial-cart-update' => 'Only some of the product(s) were updated'
'partial-cart-update' => 'Only some of the product(s) were updated',
'link-missing' => ''
],
'onepage' => [
@ -466,7 +474,7 @@ return [
'country' => 'País',
'order-summary' => 'Resumo do Pedido',
'shipping-address' => 'Endereço de Entrega',
'use_for_shipping' => 'Enviar para esse endereçõ',
'use_for_shipping' => 'Enviar para esse endereço',
'continue' => 'Continuar',
'shipping-method' => 'Selecione o Método de Entrega',
'payment-methods' => 'Selecione o Método de Pagamento',
@ -479,7 +487,9 @@ return [
'contact' => 'Contato',
'place-order' => 'Enviar Pedido',
'new-address' => 'Add Novo Endereço',
'save_as_address' => 'Salvar Endereço'
'save_as_address' => 'Salvar Endereço',
'apply-coupon' => 'Aplicar Cupom',
'enter-coupon-code' => 'Digite aqui o seu Cupom'
],
'total' => [
@ -488,8 +498,17 @@ return [
'grand-total' => 'Total',
'delivery-charges' => 'Taxas de Entrega',
'tax' => 'Imposto',
'discount' => 'Discount',
'price' => 'preço'
'discount' => 'Desconto',
'price' => 'preço',
'disc-amount' => 'Valor descontado',
'new-grand-total' => 'Novo Total',
'coupon' => 'Cupom',
'coupon-applied' => 'Cupom Aplicado',
'remove-coupon' => 'Remover Cupom',
'cannot-apply-coupon' => 'Não foi possível aplicar esse Cupom',
'invalid-coupon' => 'Código do Cupom é inválido.',
'success-coupon' => 'Cupom aplicado com sucesso.',
'coupon-apply-issue' => 'Não foi possível aplicar esse Cupom'
],
'success' => [
@ -505,6 +524,7 @@ return [
'subject' => 'Confirmação de Novo Pedido',
'heading' => 'Confirmação de Pedido!',
'dear' => 'Caro :customer_name',
'dear-admin' => 'Caro :admin_name',
'greeting' => 'Obrigado pelo seu Pedido :order_id realizado em :created_at',
'summary' => 'Resumo do Pedido',
'shipping-address' => 'Endereço de Entrega',
@ -521,7 +541,27 @@ return [
'grand-total' => 'Total',
'final-summary' => 'Obrigado por mostrar o seu interesse em nossa loja nós lhe enviaremos o número de rastreamento assim que for despachado',
'help' => 'Se você precisar de algum tipo de ajuda, por favor entre em contato conosco :support_email',
'thanks' => 'Muito Obrigado!'
'thanks' => 'Muito Obrigado!',
'cancel' => [
'subject' => 'Confirmação de Cancelamento de Pedido',
'heading' => 'Pedido Cancelado',
'dear' => 'Caro :customer_name',
'greeting' => 'Seu Pedido com o ID #:order_id finalizado em :created_at foi cancelado',
'summary' => 'Resumo do Pedido',
'shipping-address' => 'Endereço de Entrega',
'billing-address' => 'Endereço de Faturamento',
'contact' => 'Contato',
'shipping' => 'Método de Envio',
'payment' => 'Método de Pagamento',
'subtotal' => 'Subtotal',
'shipping-handling' => 'Entrega & Manuseio',
'tax' => 'Taxa',
'discount' => 'Desconto',
'grand-total' => 'Total',
'final-summary' => 'Obrigado por mostrar interesse em nosa Loja',
'help' => 'Caso precise de qualquer tipo de ajuda entre em contato conosco :support_email',
'thanks' => 'Obrigado!',
]
],
'invoice' => [
@ -547,11 +587,49 @@ return [
],
'forget-password' => [
'subject' => 'Recuperação de Senha',
'dear' => 'Caro :name',
'info' => 'Você está recebendo este e-mail porque recebemos uma solicitação de redefinição de senha para sua conta',
'reset-password' => 'Redefinir Senha',
'final-summary' => 'Se você não solicitou uma redefinição de senha, nenhuma ação adicional é necessária',
'thanks' => 'Muito Obrigado!'
'thanks' => 'Obrigado!'
],
'customer' => [
'new' => [
'dear' => 'Caro :customer_name',
'username-email' => 'Nome de usuário/Email',
'subject' => 'Nova Conta',
'password' => 'Senha',
'summary' => 'Sua conta foi criada.
Abaixo está suas informaços: ',
'thanks' => 'Obrigado!',
],
'registration' => [
'subject' => 'Novo Cliente',
'customer-registration' => 'Cliente cadastrado com Sucesso',
'dear' => 'Caro :customer_name',
'greeting' => 'Bem vindo e obrigado por se cadastrar conosco!',
'summary' => 'Sua conta foi criada com sucesso e agora você pode entrar utilizando seu endereço de email e senha. Ao fazer login, você poderá acessar outros serviços, incluindo a revisão de pedidos anteriores, listas de desejos e a edição das informações da sua conta..',
'thanks' => 'Obrigado!',
],
'verification' => [
'heading' => config('app.name') . ' - Verificação de Email',
'subject' => 'Verificação de Email',
'verify' => 'Confirme sua conta',
'summary' => 'Esse email é para confirmar que esse endereço de e-mail é válido e pertence a você.
Por favor, clique no botão Confirme sua conta abaixo para verificar sua conta. '
],
'subscription' => [
'subject' => 'Email de Inscrição',
'greeting' => ' Bem vindo a ' . config('app.name') . ' - Incrição de Email',
'unsubscribe' => 'Unsubscribe',
'summary' => 'Obrigado por me colocar na sua caixa de entrada. Já faz um tempo desde que você leu ' . config('app.name') . ' e-mail e não queremos sobrecarregar sua caixa de entrada. Se você ainda não deseja receber
as últimas notícias de email marketing e, com certeza, clique no botão abaixo.'
]
]
],

View File

@ -0,0 +1,29 @@
@extends('shop::layouts.master')
@include('shop::guest.compare.compare-products')
@section('page_title')
{{ __('velocity::app.customer.compare.compare_similar_items') }}
@endsection
@section('content-wrapper')
<div class="account-content">
@include('shop::customers.account.partials.sidemenu')
<div class="account-layout">
{!! view_render_event('bagisto.shop.customers.account.comparison.list.before') !!}
<div class="account-items-list">
<div class="account-table-content">
<compare-product></compare-product>
</div>
</div>
{!! view_render_event('bagisto.shop.customers.account.comparison.list.after') !!}
</div>
</div>
@endsection

View File

@ -91,9 +91,12 @@
<div class="container">
<div class="header">
<div class="image">
<img class="logo" src="{{ Storage::url(core()->getConfigData('sales.orderSettings.invoice_slip_design.logo')) }}"/>
</div>
@if (core()->getConfigData('sales.orderSettings.invoice_slip_design.logo'))
<div class="image">
<img class="logo" src="{{ Storage::url(core()->getConfigData('sales.orderSettings.invoice_slip_design.logo')) }}"/>
</div>
@endif
<div class="address">
<p>
<b> {{ core()->getConfigData('sales.orderSettings.invoice_slip_design.address') }} </b>

View File

@ -0,0 +1,295 @@
@php
$attributeRepository = app('\Webkul\Attribute\Repositories\AttributeRepository');
$comparableAttributes = $attributeRepository->findByField('is_comparable', 1);
@endphp
@push('css')
<style>
body {
overflow-x: hidden;
}
.comparison-component {
width: 100%;
padding-top: 20px;
}
.comparison-component > h1 {
display: inline-block;
}
td {
padding: 15px;
min-width: 250px;
max-width: 250px;
line-height: 30px;
vertical-align: top;
word-break: break-word;
}
.icon.remove-product {
top: 15px;
float: right;
cursor: pointer;
position: relative;
background-color: black;
}
.action > div {
display: inline-block;
}
</style>
@endpush
@push('scripts')
<script type="text/x-template" id="compare-product-template">
<section class="comparison-component">
<h1>
{{ __('velocity::app.customer.compare.compare_similar_items') }}
</h1>
<button
v-if="products.length > 0"
class="btn btn-primary btn-md pull-right"
@click="removeProductCompare('all')">
{{ __('shop::app.customer.account.wishlist.deleteall') }}
</button>
{!! view_render_event('bagisto.shop.customers.account.compare.view.before') !!}
<table class="compare-products">
<template v-if="isProductListLoaded && products.length > 0">
@php
$comparableAttributes = $comparableAttributes->toArray();
array_splice($comparableAttributes, 1, 0, [[
'code' => 'image',
'admin_name' => 'Product Image'
]]);
array_splice($comparableAttributes, 2, 0, [[
'code' => 'addToCartHtml',
'admin_name' => 'Actions'
]]);
@endphp
@foreach ($comparableAttributes as $attribute)
<tr>
<td>
<span class="fs16">{{ $attribute['admin_name'] }}</span>
</td>
<td :key="`title-${index}`" v-for="(product, index) in products">
@switch ($attribute['code'])
@case('name')
<a :href="`${baseUrl}/${product.url_key}`" class="unset remove-decoration active-hover">
<h3 class="fw6 fs18" v-text="product['{{ $attribute['code'] }}']"></h3>
</a>
@break
@case('image')
<a :href="`${baseUrl}/${product.url_key}`" class="unset">
<img
class="image-wrapper"
:src="product['{{ $attribute['code'] }}']"
:onerror="`this.src='${baseUrl}/vendor/webkul/ui/assets/images/product/large-product-placeholder.png'`" />
</a>
@break
@case('price')
<span v-html="product['priceHTML']"></span>
@break
@case('addToCartHtml')
<div class="action">
<div v-html="product.defaultAddToCart"></div>
<span class="icon white-cross-sm-icon remove-product" @click="removeProductCompare(product.id)"></span>
</div>
@break
@case('color')
<span v-html="product.color_label" class="fs16"></span>
@break
@case('size')
<span v-html="product.size_label" class="fs16"></span>
@break
@case('description')
<span v-html="product.description"></span>
@break
@default
@switch ($attribute['type'])
@case('boolean')
<span
v-text="product.product['{{ $attribute['code'] }}']
? '{{ __('velocity::app.shop.general.yes') }}'
: '{{ __('velocity::app.shop.general.no') }}'"
></span>
@break;
@default
<span v-html="product['{{ $attribute['code'] }}'] ? product['{{ $attribute['code'] }}'] : product.product['{{ $attribute['code'] }}'] ? product.product['{{ $attribute['code'] }}'] : '__'" class="fs16"></span>
@break;
@endswitch
@break
@endswitch
</td>
</tr>
@endforeach
</template>
<span v-else-if="isProductListLoaded && products.length == 0">
{{ __('velocity::app.customer.compare.empty-text') }}
</span>
</table>
{!! view_render_event('bagisto.shop.customers.account.compare.view.after') !!}
</section>
</script>
<script>
Vue.component('compare-product', {
template: '#compare-product-template',
data: function () {
return {
'products': [],
'isProductListLoaded': false,
'baseUrl': "{{ url()->to('/') }}",
'isCustomer': '{{ auth()->guard('customer')->user() ? "true" : "false" }}' == "true",
}
},
mounted: function () {
this.getComparedProducts();
},
methods: {
'getComparedProducts': function () {
let items = '';
let url = `${this.baseUrl}/${this.isCustomer ? 'comparison' : 'detailed-products'}`;
let data = {
params: {'data': true}
}
if (! this.isCustomer) {
items = this.getStorageValue('compared_product');
items = items ? items.join('&') : '';
data = {
params: {
items
}
};
}
if (this.isCustomer || (! this.isCustomer && items != "")) {
this.$http.get(url, data)
.then(response => {
this.isProductListLoaded = true;
if (response.data.products.length > 2) {
$('.comparison-component').css('overflow-x', 'scroll');
}
this.products = response.data.products;
})
.catch(error => {
this.isProductListLoaded = true;
console.log("{{ __('velocity::app.error.something_went_wrong') }}");
});
} else {
this.isProductListLoaded = true;
}
},
'removeProductCompare': function (productId) {
if (this.isCustomer) {
this.$http.delete(`${this.baseUrl}/comparison?productId=${productId}`)
.then(response => {
if (productId == 'all') {
this.$set(this, 'products', this.products.filter(product => false));
} else {
this.$set(this, 'products', this.products.filter(product => product.id != productId));
}
// window.showAlert(`alert-${response.data.status}`, response.data.label, response.data.message);
})
.catch(error => {
console.log("{{ __('velocity::app.error.something_went_wrong') }}");
});
} else {
let existingItems = this.getStorageValue('compared_product');
if (productId == "all") {
updatedItems = [];
this.$set(this, 'products', []);
} else {
updatedItems = existingItems.filter(item => item != productId);
this.$set(this, 'products', this.products.filter(product => product.id != productId));
}
this.setStorageValue('compared_product', updatedItems);
// window.showAlert(
// `alert-success`,
// "{{ __('velocity::app.shop.general.alert.success') }}",
// `${this.__('customer.compare.removed')}`
// );
}
},
'getDynamicHTML': function (input) {
var _staticRenderFns;
const { render, staticRenderFns } = Vue.compile(input);
if (this.$options.staticRenderFns.length > 0) {
_staticRenderFns = this.$options.staticRenderFns;
} else {
_staticRenderFns = this.$options.staticRenderFns = staticRenderFns;
}
try {
var output = render.call(this, this.$createElement);
} catch (exception) {
console.log(this.__('error.something_went_wrong'));
}
this.$options.staticRenderFns = _staticRenderFns;
return output;
},
'isMobile': function () {
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
return true
} else {
return false
}
},
'getStorageValue': function (key) {
let value = window.localStorage.getItem(key);
if (value) {
value = JSON.parse(value);
}
return value;
},
'setStorageValue': function (key, value) {
window.localStorage.setItem(key, JSON.stringify(value));
return true;
},
}
});
</script>
@endpush

View File

@ -1,3 +1,11 @@
<script>
window.location.href = window.location.href.replace('/comparison', '');
</script>
@extends('shop::layouts.master')
@include('shop::guest.compare.compare-products')
@section('page_title')
{{ __('velocity::app.customer.compare.compare_similar_items') }}
@endsection
@section('content-wrapper')
<compare-product></compare-product>
@endsection

View File

@ -42,6 +42,26 @@
<ul class="right-content-menu">
{!! view_render_event('bagisto.shop.layout.header.comppare-item.before') !!}
<li class="compare-dropdown-container">
<a
@auth('customer')
href="{{ route('velocity.customer.product.compare') }}"
@endauth
@guest('customer')
href="{{ route('velocity.product.compare') }}"
@endguest
style="color: #242424;"
>
<span class="name">{{ __('velocity::app.customer.compare.text') }}</span>
</a>
</li>
{!! view_render_event('bagisto.shop.layout.header.compare-item.after') !!}
{!! view_render_event('bagisto.shop.layout.header.currency-item.before') !!}
@if (core()->getCurrentChannel()->currencies->count() > 1)

View File

@ -8,5 +8,7 @@
@include('shop::products.wishlist')
@include('shop::products.compare')
@include('shop::products.compare', [
'productId' => $product->id
])
</div>

View File

@ -1,11 +1,101 @@
{{-- @inject ('wishListHelper', 'Webkul\Customer\Helpers\Wishlist')
<compare-component product-id="{{ $productId }}"></compare-component>
@auth('customer')
{!! view_render_event('bagisto.shop.products.wishlist.before') !!}
@push('scripts')
<a @if ($wishListHelper->getWishlistProduct($product)) class="add-to-wishlist already" @else class="add-to-wishlist" @endif href="{{ route('customer.wishlist.add', $product->product_id) }}" id="wishlist-changer">
<span class="icon wishlist-icon"></span>
</a>
<script type="text/x-template" id="compare-component-template">
<a class="unset compare-icon text-right" @click="addProductToCompare" style="cursor: pointer">
<img src="{{ asset('themes/default/assets/images/compare_arrows.png') }}" />
</a>
</script>
{!! view_render_event('bagisto.shop.products.wishlist.after') !!}
@endauth --}}
<script>
Vue.component('compare-component', {
props: ['productId'],
template: '#compare-component-template',
data: function () {
return {
'baseUrl': "{{ url()->to('/') }}",
'customer': '{{ auth()->guard('customer')->user() ? "true" : "false" }}' == "true",
}
},
methods: {
'addProductToCompare': function () {
if (this.customer == "true" || this.customer == true) {
this.$http.put(
`${this.baseUrl}/comparison`, {
productId: this.productId,
}
).then(response => {
window.flashMessages = [{
'type': `alert-${response.data.status}`,
'message': response.data.message
}];
this.$root.addFlashMessages()
}).catch(error => {
window.flashMessages = [{
'type': `alert-danger`,
'message': "{{ __('velocity::app.error.something_went_wrong') }}"
}];
this.$root.addFlashMessages()
});
} else {
let updatedItems = [this.productId];
let existingItems = this.getStorageValue('compared_product');
if (existingItems) {
if (existingItems.indexOf(this.productId) == -1) {
updatedItems = existingItems.concat(updatedItems);
this.setStorageValue('compared_product', updatedItems);
window.flashMessages = [{
'type': `alert-success`,
'message': "{{ __('velocity::app.customer.compare.added') }}"
}];
this.$root.addFlashMessages()
} else {
window.flashMessages = [{
'type': `alert-success`,
'message': "{{ __('velocity::app.customer.compare.already_added') }}"
}];
this.$root.addFlashMessages()
}
} else {
this.setStorageValue('compared_product', updatedItems);
window.flashMessages = [{
'type': `alert-success`,
'message': "{{ __('velocity::app.customer.compare.added') }}"
}];
this.$root.addFlashMessages()
}
}
},
'getStorageValue': function (key) {
let value = window.localStorage.getItem(key);
if (value) {
value = JSON.parse(value);
}
return value;
},
'setStorageValue': function (key, value) {
window.localStorage.setItem(key, JSON.stringify(value));
return true;
},
}
});
</script>
@endpush

View File

@ -163,7 +163,7 @@
data: function() {
let maxPrice = '{{ core()->convertPrice($productFlatRepository->getCategoryProductMaximumPrice($category)) }}';
maxPrice = (parseInt(maxPrice) !== 0) ? parseInt(maxPrice) : 500;
maxPrice = maxPrice ? ((parseInt(maxPrice) !== 0 || maxPrice) ? parseInt(maxPrice) : 500) : 500;
return {
appliedFilters: [],

View File

@ -1,4 +1,4 @@
<?php
<?php
namespace Webkul\Theme;
@ -18,7 +18,7 @@ class ThemeViewFinder extends FileViewFinder
{
// Extract the $view and the $namespace parts
list($namespace, $view) = $this->parseNamespaceSegments($name);
if ($namespace != 'admin') {
$paths = $this->addThemeNamespacePaths($namespace);
@ -64,14 +64,14 @@ class ThemeViewFinder extends FileViewFinder
/**
* Override replaceNamespace() to add path for custom error pages "resources/themes/theme_name/views/errors/..."
*
* @param string $namespace
* @param string $namespace
* @param string|array $hints
* @return void
*/
public function replaceNamespace($namespace, $hints)
{
$this->hints[$namespace] = (array) $hints;
// Overide Error Pages
if ($namespace == 'errors' || $namespace == 'mails') {
$searchPaths = array_diff($this->paths, Themes::getLaravelViewPaths());

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/js/ui.js": "/js/ui.js?id=f4734f49f2e95bf51c83",
"/css/ui.css": "/css/ui.css?id=0895b560bbc19259cee8"
"/js/ui.js": "/js/ui.js?id=8238d4a34ce254a81437",
"/css/ui.css": "/css/ui.css?id=8c35163268c09336c2bc"
}

View File

@ -645,8 +645,10 @@ h5 {
display: inline-block;
vertical-align: middle;
margin-left: -34px;
margin-top: 2px;
pointer-events: none;
left: 70%;
position: absolute;
top: 35px;
}
}

View File

@ -49,6 +49,7 @@
height: 36px;
width: 280px;
padding-left: 10px;
-webkit-appearance: none;
}
.contorl:focus {

View File

@ -11,30 +11,30 @@ return [
'edit' => 'هل تريد حقا تحرير هذا :resource?',
],
'zero-index' => 'Index columns can have values greater than zero only',
'zero-index' => 'يمكن أن تحتوي أعمدة الفهرس على قيم أكبر من الصفر فقط',
'no-records' => 'لا توجد سجلات',
'filter-fields-missing' => 'بعض الحقل المطلوب هو لاغ ، رجاء تفقد عمود ، حالة و قيمة صحيح',
'click_on_action' => 'هل تريد حقا أن تؤدي هذا العمل؟',
'search' => 'Search Here...',
'filter' => 'Filter',
'column' => 'Select Column',
'condition' => 'Select Condition',
'contains' => 'Contains',
'ncontains' => 'Does not contains',
'equals' => 'Is Equals to',
'nequals' => 'Is Not equals to',
'greater' => 'Greater than',
'less' => 'Less than',
'greatere' => 'Greater than equals to',
'lesse' => 'Less than equals to',
'value' => 'Select Value',
'true' => 'True / Active',
'false' => 'False / Inactive',
'between' => 'Is between',
'apply' => 'Apply',
'items-per-page' => 'Items Per Page',
'value-here' => 'Value here',
'numeric-value-here' => 'Numeric Value here',
'submit' => 'Submit'
'search' => '...ابحث هنا',
'filter' => 'منقي',
'column' => 'حدد العمود',
'condition' => 'حدد الشرط',
'contains' => 'يحتوي على',
'ncontains' => 'لا يحتوي على',
'equals' => 'هل يساوي',
'nequals' => 'لا يساوي',
'greater' => 'أكثر من',
'less' => 'أقل من',
'greatere' => 'أكبر من يساوي',
'lesse' => 'أقل من يساوي',
'value' => 'اختار القيمة',
'true' => 'صحيح / نشط',
'false' => 'خطأ / غير نشط',
'between' => 'يتراوح ما بين',
'apply' => 'تطبيق',
'items-per-page' => 'مواد لكل صفحة',
'value-here' => 'القيمة هنا',
'numeric-value-here' => 'القيمة العددية هنا',
'submit' => 'إرسال'
]
];

View File

@ -32,9 +32,9 @@ return [
'false' => 'غلط / غیرفعال',
'between' => 'ما بین',
'apply' => 'درخواست',
'items-per-page' => 'Items Per Page',
'value-here' => 'Value here',
'numeric-value-here' => 'Numeric Value here',
'submit' => 'Submit'
'items-per-page' => 'موارد در هر صفحه',
'value-here' => 'ارزش در اینجا',
'numeric-value-here' => 'ارزش عددی در اینجا',
'submit' => 'ارسال'
]
];

View File

@ -32,9 +32,9 @@ return [
'false' => 'Falso / Inativo',
'between' => 'Está entre',
'apply' => 'Aplicar',
'items-per-page' => 'Items Per Page',
'value-here' => 'Value here',
'numeric-value-here' => 'Numeric Value here',
'submit' => 'Submit'
'items-per-page' => 'Itens por página',
'value-here' => 'Valor aqui',
'numeric-value-here' => 'Valor numérico aqui',
'submit' => 'Enviar'
]
];

View File

@ -20,6 +20,7 @@ class AdminResetPassword extends ResetPassword
}
return (new MailMessage)
->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
->view('shop::emails.admin.forget-password', [
'user_name' => $notifiable->name,
'token' => $this->token,

View File

@ -23,7 +23,7 @@
"bootstrap-sass": "^3.4.1",
"font-awesome": "^4.7.0",
"material-icons": "^0.3.1",
"vee-validate": "2.0.0-rc.26",
"vee-validate": "^2.2.15",
"vue-slider-component": "^3.1.0",
"vue-toast-notification": "0.0.2"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
{
"/js/velocity.js": "/js/velocity.js?id=eb965248ceaa0e1d9f5a",
"/js/velocity.js": "/js/velocity.js?id=d1e8a6d2c78f6d0657a7",
"/css/velocity-admin.css": "/css/velocity-admin.css?id=612d35e452446366eef7",
"/css/velocity.css": "/css/velocity.css?id=1eb4121f60ae933bb0c9"
"/css/velocity.css": "/css/velocity.css?id=16024aee144fa5e1275e"
}

View File

@ -15,10 +15,10 @@ use Webkul\Velocity\Repositories\VelocityMetadataRepository;
class Helper extends Review
{
/**
* productModel object
*
* @var \Webkul\Product\Contracts\Product
*/
* productModel object
*
* @var \Webkul\Product\Contracts\Product
*/
protected $productModel;
/**
@ -42,7 +42,7 @@ class Helper extends Review
*/
protected $productFlatRepository;
/**
/**
* productModel object
*
* @var \Webkul\Attribute\Repositories\AttributeOptionRepository
@ -66,11 +66,12 @@ class Helper extends Review
/**
* Create a helper instamce
*
* @param \Webkul\Product\Contracts\Product $productModel
* @param \Webkul\Velocity\Repositories\OrderBrandsRepository $orderBrands
* @param \Webkul\Attribute\Repositories\AttributeOptionRepository $attributeOptionRepository
* @param \Webkul\Product\Repositories\ProductReviewRepository $productReviewRepository
* @param \Webkul\Velocity\Repositories\VelocityMetadataRepository $velocityMetadataRepository
* @param \Webkul\Product\Contracts\Product $productModel
* @param \Webkul\Velocity\Repositories\OrderBrandsRepository $orderBrands
* @param \Webkul\Attribute\Repositories\AttributeOptionRepository $attributeOptionRepository
* @param \Webkul\Product\Repositories\ProductReviewRepository $productReviewRepository
* @param \Webkul\Velocity\Repositories\VelocityMetadataRepository $velocityMetadataRepository
*
* @return void
*/
public function __construct(
@ -89,7 +90,7 @@ class Helper extends Review
$this->productRepository = $productRepository;
$this->productFlatRepository = $productFlatRepository;
$this->orderBrandsRepository = $orderBrandsRepository;
$this->productReviewRepository = $productReviewRepository;
@ -98,7 +99,8 @@ class Helper extends Review
}
/**
* @param \Webkul\Sales\Contracts\Order
* @param \Webkul\Sales\Contracts\Order $order
*
* @return void
*/
public function topBrand($order)
@ -109,8 +111,8 @@ class Helper extends Review
$products[] = $orderItem->product;
$this->orderBrandsRepository->create([
'order_id' => $orderItem->order_id,
'order_item_id' => $orderItem->id,
'order_id' => $orderItem->order_id,
'product_id' => $orderItem->product_id,
'brand' => $products[$key]->brand,
]);
@ -172,6 +174,7 @@ class Helper extends Review
* Returns the count rating of the product
*
* @param \Webkul\Product\Contracts\Product $product
*
* @return int
*/
public function getCountRating($product)
@ -229,10 +232,11 @@ class Helper extends Review
*/
public function getShopRecentReviews($reviewCount = 4)
{
$reviews = $this->productReviewRepository->getModel()
->orderBy('id', 'desc')
->where('status', 'approved')
->take($reviewCount)->get();
$reviews = $this->productReviewRepository
->getModel()
->orderBy('id', 'desc')
->where('status', 'approved')
->take($reviewCount)->get();
return $reviews;
}
@ -267,18 +271,19 @@ class Helper extends Review
'images' => $images,
'itemId' => $item->id,
'name' => $item->name,
'url_key' => $product->url_key,
'quantity' => $item->quantity,
'url_key' => $product->url_key,
'baseTotal' => core()->currency($item->base_total),
];
}
/**
* @param \Webkul\Product\Contracts\Product $product
* @param bool $list
* @param bool $list
* @param array $metaInformation
* @return array
*/
public function formatProduct($product, $list = false)
public function formatProduct($product, $list = false, $metaInformation = [])
{
$reviewHelper = app('Webkul\Product\Helpers\Review');
$productImageHelper = app('Webkul\Product\Helpers\ProductImage');
@ -313,10 +318,15 @@ class Helper extends Review
'shortDescription' => $product->short_description,
'firstReviewText' => trans('velocity::app.products.be-first-review'),
'priceHTML' => view('shop::products.price', ['product' => $product])->render(),
'defaultAddToCart' => view('shop::products.add-buttons', ['product' => $product])->render(),
'addToCartHtml' => view('shop::products.add-to-cart', [
'showCompare' => true,
'product' => $product,
'addWishlistClass' => ! (isset($list) && $list) ? '' : '',
'btnText' => (isset($metaInformation['btnText']) && $metaInformation['btnText'])
? $metaInformation['btnText'] : null,
'moveToCart' => (isset($metaInformation['moveToCart']) && $metaInformation['moveToCart'])
? $metaInformation['moveToCart'] : null,
'addToCartBtnClass' => ! (isset($list) && $list) ? 'small-padding' : '',
])->render(),
];
@ -330,7 +340,7 @@ class Helper extends Review
*
* @return array
*/
public function fetchProductCollection($items, $separator='&')
public function fetchProductCollection($items, $moveToCart = false, $separator='&')
{
$productCollection = [];
$productIds = explode($separator, $items);
@ -343,7 +353,10 @@ class Helper extends Review
$product = $this->productRepository->findOneWhere(['id' => $productFlat->product_id]);
if ($product) {
$formattedProduct = $this->formatProduct($productFlat);
$formattedProduct = $this->formatProduct($productFlat, false, [
'moveToCart' => $moveToCart,
'btnText' => $moveToCart ? trans('shop::app.customer.account.wishlist.move-to-cart') : null,
]);
$productMetaDetails = [];
$productMetaDetails['slug'] = $product->url_key;
@ -351,6 +364,7 @@ class Helper extends Review
$productMetaDetails['priceHTML'] = $formattedProduct['priceHTML'];
$productMetaDetails['addToCartHtml'] = $formattedProduct['addToCartHtml'];
$productMetaDetails['galleryImages'] = $formattedProduct['galleryImages'];
$productMetaDetails['defaultAddToCart'] = $formattedProduct['defaultAddToCart'];
$product = array_merge($productFlat->toArray(), $productMetaDetails);

View File

@ -31,14 +31,15 @@ class ComparisonController extends Controller
->get()
->toArray();
foreach ($productCollection as $index => $customerCompare) {
$product = $this->productRepository->find($customerCompare['product_id']);
$formattedProduct = $this->velocityHelper->formatProduct($product);
$items = [];
$productCollection[$index]['image'] = $formattedProduct['image'];
$productCollection[$index]['priceHTML'] = $formattedProduct['priceHTML'];
$productCollection[$index]['addToCartHtml'] = $formattedProduct['addToCartHtml'];
foreach ($productCollection as $index => $customerCompare) {
array_push($items, $customerCompare['id']);
}
$items = implode('&', $items);
$productCollection = $this->velocityHelper->fetchProductCollection($items);
} else {
// for product details
if ($items = request()->get('items')) {

View File

@ -5,6 +5,7 @@ namespace Webkul\Velocity\Http\Controllers\Shop;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Webkul\Velocity\Helpers\Helper;
use Webkul\Product\Helpers\ProductImage;
use Webkul\Product\Repositories\SearchRepository;
@ -85,13 +86,15 @@ class Controller extends BaseController
/**
* Create a new controller instance.
*
* @param \Webkul\Velocity\Helpers\Helper $velocityHelper
* @param \Webkul\Product\Helpers\ProductImage $productImageHelper
* @param \Webkul\Product\Repositories\SearchRepository $searchRepository
* @param \Webkul\Product\Repositories\ProductRepository $productRepository
* @param \Webkul\Category\Repositories\CategoryRepository $categoryRepository
* @param \Webkul\Velocity\Repositories\Product\ProductRepository $velocityProductRepository
* @param \Webkul\Velocity\Helpers\Helper $velocityHelper
* @param \Webkul\Product\Helpers\ProductImage $productImageHelper
* @param \Webkul\Product\Repositories\SearchRepository $searchRepository
* @param \Webkul\Product\Repositories\ProductRepository $productRepository
* @param \Webkul\Category\Repositories\CategoryRepository $categoryRepository
* @param \Webkul\Velocity\Repositories\Product\ProductRepository $velocityProductRepository
* @param \Webkul\Velocity\Repositories\VelocityCustomerCompareProductRepository $compareProductsRepository
* @param \Webkul\Velocity\Repositories\VelocityCustomerCompareProductRepository $compareProductsRepository
*
* @return void
*/
public function __construct(

View File

@ -27,7 +27,7 @@ class ShopController extends Controller
if ($product) {
$productReviewHelper = app('Webkul\Product\Helpers\Review');
$galleryImages = $this->productImageHelper->getProductBaseImage($product);
$response = [
@ -92,7 +92,7 @@ class ShopController extends Controller
$productDetails = [];
$productDetails = array_merge($productDetails, $this->velocityHelper->formatProduct($product));
array_push($customizedProducts, $productDetails);
}
@ -217,7 +217,9 @@ class ShopController extends Controller
{
// for product details
if ($items = request()->get('items')) {
$productCollection = $this->velocityHelper->fetchProductCollection($items);
$moveToCart = request()->get('moveToCart');
$productCollection = $this->velocityHelper->fetchProductCollection($items, $moveToCart);
$response = [
'status' => 'success',
@ -229,4 +231,26 @@ class ShopController extends Controller
'status' => false
]);
}
public function getCategoryProducts($categoryId)
{
$products = $this->productRepository->getAll($categoryId);
$productItems = $products->items();
if ($productItems) {
$formattedProducts =[];
foreach ($productItems as $product) {
array_push($formattedProducts, $this->velocityHelper->formatProduct($product));
}
$productsArray = $products->toArray();
$productsArray['data'] = $formattedProducts;
}
return response()->json($response ?? [
'products' => $productsArray,
'paginationHTML' => $products->appends(request()->input())->links()->toHtml(),
]);
}
}

View File

@ -34,6 +34,14 @@ Route::group(['middleware' => ['web', 'locale', 'theme', 'currency']], function
'view' => 'shop::guest.compare.index'
]);
Route::group(['middleware' => ['customer']], function () {
Route::get('/customer/account/comparison', 'ComparisonController@getComparisonList')
->name('velocity.customer.product.compare')
->defaults('_config', [
'view' => 'shop::customers.account.compare.index'
]);
});
Route::put('/comparison', 'ComparisonController@addCompareProduct')
->name('customer.product.add.compare');
@ -51,5 +59,8 @@ Route::group(['middleware' => ['web', 'locale', 'theme', 'currency']], function
Route::get('/detailed-products', 'ShopController@getDetailedProducts')
->name('velocity.product.details');
Route::get('/category-products/{categoryId}', 'ShopController@getCategoryProducts')
->name('velocity.category.products');
});
});

View File

@ -20,8 +20,11 @@
'isEnable',
'csrfToken',
'productId',
'reloadPage',
'moveToCart',
'showCartIcon',
'addClassToBtn',
'productFlatId',
],
data: function () {
@ -47,7 +50,20 @@
if (response.data.status == 'success') {
this.$root.miniCartKey++;
if (this.moveToCart == "true") {
let existingItems = this.getStorageValue('wishlist_product');
let updatedItems = existingItems.filter(item => item != this.productFlatId);
this.$root.headerItemsCount++;
this.setStorageValue('wishlist_product', updatedItems);
}
window.showAlert(`alert-success`, this.__('shop.general.alert.success'), response.data.message);
if (this.reloadPage == "1") {
window.location.reload();
}
} else {
window.showAlert(`alert-${response.data.status}`, response.data.label ? response.data.label : this.__('shop.general.alert.error'), response.data.message);
@ -59,7 +75,7 @@
.catch(error => {
console.log(this.__('error.something_went_wrong'));
})
}
},
}
}
</script>

View File

@ -2,7 +2,11 @@
<div class="col-12 lg-card-container list-card product-card row" v-if="list">
<div class="product-image">
<a :title="product.name" :href="`${baseUrl}/${product.slug}`">
<img :src="product.image" />
<img
:src="product.image"
:onerror="`this.src='${this.$root.baseUrl}/vendor/webkul/ui/assets/images/product/large-product-placeholder.png'`" />
<product-quick-view-btn :quick-view-details="product"></product-quick-view-btn>
</a>
</div>
@ -18,14 +22,14 @@
<div class="product-rating" v-if="product.totalReviews && product.totalReviews > 0">
<star-ratings :ratings="product.avgRating"></star-ratings>
<span>{{ product.totalReviews }}</span>
<span>{{ __('products.reviews-count', {'totalReviews': product.totalReviews}) }}</span>
</div>
<div class="product-rating" v-else>
<span class="fs14" v-text="product.firstReviewText"></span>
</div>
<div class="cart-wish-wrap row mt5" v-html="product.addToCartHtml"></div>
<vnode-injector :nodes="getDynamicHTML(product.addToCartHtml)"></vnode-injector>
</div>
</div>
</div>
@ -37,7 +41,8 @@
:alt="product.name"
:src="product.image"
:data-src="product.image"
class="card-img-top lzy_img" />
class="card-img-top lzy_img"
:onerror="`this.src='${this.$root.baseUrl}/vendor/webkul/ui/assets/images/product/large-product-placeholder.png'`" />
<!-- :src="`${$root.baseUrl}/vendor/webkul/ui/assets/images/product/meduim-product-placeholder.png`" /> -->
<product-quick-view-btn :quick-view-details="product"></product-quick-view-btn>
@ -76,7 +81,6 @@
</template>
<script type="text/javascript">
// compile add to cart html (it contains wishlist component)
export default {
props: [
'list',
@ -87,8 +91,6 @@
return {
'addToCart': 0,
'addToCartHtml': '',
'message' : "Hello there",
'showTestClass': 'sdfsdf',
}
},
}

View File

@ -10,7 +10,7 @@
methods: {
addProductToCompare: function () {
if (this.customer == "true") {
if (this.customer == "true" || this.customer == true) {
this.$http.put(
`${this.$root.baseUrl}/comparison`, {
productId: this.productId,

View File

@ -97,7 +97,7 @@
mounted: function () {
$('.compare-icon').click(this.closeQuickView);
$('.wishlist-icon').click(this.closeQuickView);
$('.add-to-cart-btn').click(this.closeQuickView);
$('.add-to-cart-btn').click(() => setTimeout(this.closeQuickView, 0));
},
methods: {

View File

@ -4,13 +4,13 @@
id="shimmer-carousel"
navigation-enabled="hide"
pagination-enabled="hide"
:slides-count="shimmerCount + 1"
:slides-per-page="shimmerCount">
:slides-count="shimmerCountInt + 1"
:slides-per-page="shimmerCountInt">
<slide
:key="count"
:slot="`slide-${count}`"
v-for="count in shimmerCount">
v-for="count in shimmerCountInt">
<div class="shimmer-card">
<div class="shimmer-wrapper">
@ -30,9 +30,14 @@
props: {
'shimmerCount': {
default: 6,
type: Number,
},
},
data: function () {
return {
shimmerCountInt: parseInt(this.shimmerCount),
}
}
}
</script>

View File

@ -20,12 +20,15 @@
{{ isActive ? 'favorite' : 'favorite_border' }}
</i>
<span style="vertical-align: super;" v-html="text"></span>
</a>
</template>
<script type="text/javascript">
export default {
props: [
'text',
'active',
'addClass',
'addedText',
@ -33,6 +36,7 @@
'removeText',
'isCustomer',
'productSlug',
'moveToWishlist',
],
data: function () {
@ -54,7 +58,7 @@
let existingValue = this.getStorageValue('wishlist_product');
if (existingValue) {
let valueIndex = existingValue.indexOf(productId);
var valueIndex = existingValue.indexOf(productId);
if (valueIndex == -1) {
this.isActive = true;
@ -78,6 +82,10 @@
this.isActive ? this.addedText : this.removeText
);
if (this.moveToWishlist && valueIndex == -1) {
window.location.href = this.moveToWishlist;
}
return true;
},

View File

@ -58,13 +58,13 @@ $(document).ready(function () {
Vue.mixin({
data: function () {
return {
'baseUrl': document.querySelector("script[src$='velocity.js']").getAttribute('baseUrl'),
'imageObserver': null,
'navContainer': false,
'headerItemsCount': 0,
'sharedRootCategories': [],
'responsiveSidebarTemplate': '',
'responsiveSidebarKey': Math.random(),
'sharedRootCategories': [],
'imageObserver': null,
'baseUrl': document.querySelector("script[src$='velocity.js']").getAttribute('baseUrl'),
}
},

View File

@ -26,6 +26,7 @@
::-webkit-scrollbar {
width: 3px;
height: 5px;
}
/* Track */
::-webkit-scrollbar-track {
@ -196,6 +197,8 @@ body {
min-width: 150px;
cursor: pointer;
text-align: right;
padding-top: 5px;
* {
display: table-cell;
@ -248,7 +251,7 @@ body {
height: 32px;
* {
height: 100%;
// height: 100%;
}
}
@ -971,3 +974,5 @@ i.within-circle {
border: 1px #E5E5E5;
margin: 0 auto;
}
.row:before, .row:after {display: none !important;}

View File

@ -491,9 +491,8 @@
.customer-options{
top: 40px;
float: right;
height: 100%;
padding: 20px;
height: 150px;
overflow-y: scroll;
width: 200px !important;
@ -678,6 +677,8 @@
.product-quantity {
.quantity {
float: left;
label {
display: none !important;
}
@ -1735,7 +1736,7 @@
}
.sub-categories {
top: 0px;
top: -1px;
left: 100%;
z-index: 100;
padding-top: 10px;
@ -2217,6 +2218,37 @@
.pagination {
.page-item {
padding: 0 10px;
&.active {
font-weight: 600;
color: $theme-color !important;
border-bottom: 2px solid $theme-color;
}
&.next,
&.previous {
.angle-right-icon,
.angle-left-icon {
@extend .rango-default;
margin: 0;
font-size: 24px;
background: unset;
text-align: center;
}
}
&.next {
.angle-right-icon::before {
content: "\E908";
}
}
&.previous {
.angle-left-icon::before {
content: "\E907";
}
}
}
a {
@ -2272,10 +2304,21 @@
.compare-products {
.col,
.col-2 {
padding-left: 0;
max-width: 20%;
width: 100%;
padding-bottom: 20px;
word-break: break-word;
margin-left: 0 !important;
margin-right: 10px !important;
tr {
width: 100%;
}
td {
padding: 15px;
min-width: 250px;
max-width: 250px;
vertical-align: top;
}
.image-wrapper {

View File

@ -69,8 +69,8 @@
background: #30383F;
.logo {
width: 150px;
height: 35px;
width: auto;
max-height: 40px;
}
.footer-ct-content {

View File

@ -718,6 +718,10 @@ body::after {
}
}
}
.description-text {
word-break: break-word;
}
}
.container {

View File

@ -864,6 +864,11 @@
.actions {
margin-top: 7px !important;
}
.continue-shopping,
.empty-cart-message {
padding: 0;
}
}
.checkout-process {

Some files were not shown because too many files have changed in this diff Show More