Модуль "Скидки и промокоды"
Модуль "Discounts" предназначен для управления скидками и промокодами. Данный модуль является дополнением к стандартному модулю "Корзина" (Cart), который необходимо скачать и установить в случае, если он не установлен.
Промокоды.
После создания в панели управления промокода с нужными параметрами необходимо добавить специальную форму в шаблон корзины.
<div class="card">
<div class="card-body">
<h3 class="card-title">Промокод</h3>
<div class="row">
<div class="col-md-6 col-sm-12"><input class="form-control" id="promocode" placeholder="Промокод" type="text" /></div>
<div class="col-md-6 col-sm-12"><button class="btn btn-style-5" id="activate_code" type="button">Применить</button></div>
<div class="col-md-12" id="activate_result"> </div>
</div>
</div>
</div>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", () => {
$('#activate_code').on('click', function (e) {
let data = new FormData();
let promocode = document.querySelector("#promocode").value;
data.append("promocode", promocode);
fetch('/discounts/getPromocode', {
method: 'POST',
body: data,
headers: {
'x-miwix-json': 'true'
}
}).then(response => response.json())
.then((l) => {
if (l.res == true) {
document.querySelector('#activate_result').innerHTML = '<font color="green">'+l.message+'</font>';
document.querySelector('#cost_amount').innerText = l.cost_amount;
document.querySelector('#total_amount').innerText = l.total_amount;
document.querySelector('#shipping_amount').innerText = l.shipping_amount;
} else {
document.querySelector('#activate_result').innerHTML = '<font color="red">'+l.message+'</font>';
}
setTimeout(function () {
document.querySelector('#activate_result').innerHTML = '';
}, 3000);
})
});
});
</script>
Можно добавить идентификаторы в поле с данными по заказу: стоимость покупки, доставки и итоговая сумма.
- Для обновления информации в поле "Стоимость покупки" нужно добавить
id="cost_amount" - В случае если в настройках указана стоимость доставки, а также сумма заказа для бесплатной доставки, можно обновлять информацию в поле "Стоимость доставки". Для этого нужно добавить
id="shipping_amount" - Для обновления информации в поле "Итоговая стоимость", нужно добавить
id="total_amount"