{% extends "commerce/_layouts/promotions" %} {% set selectedSidebarNavItem = 'sales' %} {% do view.registerAssetBundle('craft\\web\\assets\\admintable\\AdminTableAsset') -%} {% do view.registerTranslations('commerce', [ 'Couldn’t reorder sale.', 'Disabled', 'Duration', 'Effect', 'Enabled', 'Name', 'No sales exist yet.', 'No', 'Overrides previous?', 'Sale reordered.', 'Set status', 'Stops subsequent?', 'Yes', ]) %} {% block actionButton %} {{ 'New sale'|t('commerce') }} {% endblock %} {% block content %}
{{ 'Sales are pricing rules that apply to your product catalog.'|t('commerce') }}
{% endblock %} {% set tableData = [] %} {% for sale in sales %} {% set effect %} {% if sale.apply == 'byPercent' or sale.apply == 'toPercent' %} {{ sale.applyAmountAsPercent }} {{ sale.apply == 'byPercent' ? '(off original price)'|t('commerce') : '(of original price)'|t('commerce') }} {% else %} {{ sale.applyAmountAsFlat|commerceCurrency(craft.commerce.paymentCurrencies.primaryPaymentCurrency.iso,convert=true) }} {{ sale.apply == 'byFlat' ? '(off original price)'|t('commerce') : '(new price)'|t('commerce') }} {% endif %} {% endset %} {% set dateRange = (sale.dateFrom ? sale.dateFrom|datetime('short') : '∞') ~ ' - ' ~ (sale.dateTo ? sale.dateTo|datetime('short') : '∞') %} {% if not sale.dateFrom and not sale.dateTo %} {% set dateRange = '∞' %} {% endif %} {% set tableData = tableData|merge([{ id: sale.id, title: sale.name|t('site'), url: url('commerce/promotions/sales/' ~ sale.id), status: sale.enabled ? true : false, duration: dateRange, effect: effect, ignore: sale.ignorePrevious ? true : false, stop: sale.stopProcessing ? true : false, }]) %} {% endfor %} {% js %} var actions = [ { label: Craft.t('commerce', 'Set status'), actions: [ { label: Craft.t('commerce', 'Enabled'), action: 'commerce/sales/update-status', param: 'status', value: 'enabled', status: 'enabled' }, { label: Craft.t('commerce', 'Disabled'), action: 'commerce/sales/update-status', param: 'status', value: 'disabled', status: 'disabled' } ] } ]; var columns = [ { name: '__slot:title', title: Craft.t('commerce', 'Name') }, { name: 'duration', title: Craft.t('commerce', 'Duration') }, { name: 'effect', title: Craft.t('commerce', 'Effect') }, { name: 'ignore', title: Craft.t('commerce', 'Overrides previous?'), callback: function(value) { if (value) { return ''; } return ''; } }, { name: 'stop', title: Craft.t('commerce', 'Stops subsequent?'), callback: function(value) { if (value) { return ''; } return ''; } } ]; new Craft.VueAdminTable({ actions: actions, checkboxes: true, columns: columns, container: '#sales-vue-admin-table', deleteAction: 'commerce/sales/delete', emptyMessage: Craft.t('commerce', 'No sales exist yet.'), padded: true, reorderAction: 'commerce/sales/reorder', reorderSuccessMessage: Craft.t('commerce', 'Sale reordered.') , reorderFailMessage: Craft.t('commerce', 'Couldn’t reorder sale.'), tableData: {{ tableData|json_encode|raw }} }); {% endjs %}