Найдите в шаблоне "Оформление заказа" следующий код
{% IFNOT order_delivery.zone_list_empty %}
<tr>
<td></td>
<td class="cell5">
<select style="margin-left:0;" class="deliveryZoneRadio" data-deliveryid="{order_delivery.ID}" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %}class="required"{% ENDIF %} value="0">
<option value="0" data-price="{order_delivery.END_PRICE | number_format("0", ",", " ")}"> - выберите зону доставки - </option>
{% FOR zone_list %}
<option value="{order_delivery.zone_list.ID}" data-price="{order_delivery.zone_list.END_PRICE | number_format("0", ",", " ")}" {% IF order_delivery.zone_list.ID=ORDER_FORM_DELIVERY_ZONE_ID %}selected="selected"{% ENDIF %}>
{order_delivery.zone_list.NAME}
</option>
{%ENDFOR%}
</select>
</td>
</tr>
{% ENDIF %}
и замените его на
{% IFNOT order_delivery.zone_list_empty %}
<tr>
<td></td>
<td class="cell5">
<select style="margin-left:0;" class="deliveryZoneRadio" data-deliveryid="{order_delivery.ID}" name="form[delivery][zone_id]" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %}class="required"{% ENDIF %}>
<option value="0" data-price="{order_delivery.END_PRICE | number_format("0", ",", " ")}"> - выберите зону доставки - </option>
{% FOR zone_list %}
<option value="{order_delivery.zone_list.ID}" data-price="{order_delivery.zone_list.END_PRICE | number_format("0", ",", " ")}" {% IF order_delivery.zone_list.ID=ORDER_FORM_DELIVERY_ZONE_ID %}selected="selected"{% ENDIF %}>
{order_delivery.zone_list.NAME}
</option>
{%ENDFOR%}
</select>
</td>
</tr>
{% ENDIF %}
далее в main.js вставьте
$(function() {
if($('.deliveryRadio').length) {
$('.deliveryRadio:checked').closest('form').submit(function() {
var tbody = $('.deliveryRadio:checked').closest('tbody');
if(!tbody.find('select').length || parseInt(tbody.find('select').val())) {
return(true);
}
alert('Пожалуйста, выберите зону доставки');
return(false);
});
}
});
$(function() {
$('.deliveryRadio').click(function() {
$('.deliveryZoneRadio').attr('disabled', 'disabled');
$(this).closest('tbody').find('.deliveryZoneRadio').removeAttr('disabled');
});
$('.deliveryRadio:checked').trigger('click');
});
далее найдите
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value);
// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();
});
и замените на
function setCookie(name, value, expires, path, domain, secure) {
if (!name || !value) return false;
var str = name + '=' + encodeURIComponent(value);
if (expires) str += '; expires=' + expires.toGMTString();
if (path) str += '; path=' + path;
if (domain) str += '; domain=' + domain;
if (secure) str += '; secure';
document.cookie = str;
return true;
}
function getCookie(name) {
var pattern = "(?:; )?" + name + "=([^;]*);?";
var regexp = new RegExp(pattern);
if (regexp.test(document.cookie))
return decodeURIComponent(RegExp["$1"]);
return false;
}
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value).parent().parent().show();
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryZonePrice:visible').hide();
// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();
// ставим куки
setCookie('delivery_zone_id', $(this).find('option:selected').attr('value'));
});
// Если есть куки
if(getCookie('delivery_zone_id')){
// находим значение варианта оплаты по куки файлу
// устанавливаем в селект поле нужный пункт
// выполняем JS действие при изменении поля варианта оплаты
$('.orderInfo select > option[value="' + getCookie('delivery_zone_id') + '"]').parent().val(getCookie('delivery_zone_id')).change();
}