Telegram
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!

Как настроить отображение вариаций в старых и новых шаблонах

Как настроить отображение вариаций в старых и новых шаблонах
Материал добавлен: 08 Октября 2024
Материал обновлен: 02 Октября 2025

  • Вид товара
  • Страница товара
  • Корзина
  • Вид товара в печатной форме заказа

Для установки кода:

  1. Перейдите в Панель управленияДизайнУправление дизайном (шаблоны)Интернет-магазин.
  2. Если вы не хотите восстанавливать стандартный шаблон, вставьте код вручную в нужные шаблоны:
<?if($VARIATIONS$)?>$VARIATIONS$<?endif?>

Дополнительно необходимо перейти в настройки уведомлений:

  1. Главная → Интернет-магазин → Настройка уведомлений
  2. Выберите Уведомления администратору
  3. Включите опцию Уведомлять при оформлении нового заказа

Обновление скрипта в шаблоне «Корзина»

Ниже представлен обновлённый скрипт с поддержкой вариаций:

<script>
 function add2Basket(id, pref){
 if(lock_buttons) return false; else lock_buttons = 1;
 var opt = [], err_msg = '', err_msgs = [], radio_options = {}, el_id = {};
 $('#b'+pref+'-'+id+'-basket').attr('disabled','disabled');
 $('#'+pref+'-'+id+'-basket').removeClass('done').removeClass('err').removeClass('add').addClass('wait').attr('title','');
 $('#'+pref+'-'+id+'-options-selectors').find('select, input').each(function(){
 switch (this.type) {
 case 'radio':
 el_id = this.id.split('-');
 ((typeof (radio_options[el_id[3]]) == 'undefined') && (radio_options[el_id[3]] = { 'val': - 1, 'id': this.id }));
 (this.checked && (radio_options[el_id[3]]['val'] = this.value));
 break;
 case 'checkbox':
 if (this.checked && (this.value !== '')) {
 if(this.value !== ''){
 opt.push(this.id.split('-')[3]+'-'+this.value);
 } else {
 err_msgs.push({'id':this.id.split('-')[3], 'msg':'<li>'+$(this).parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
 }
 }
 break;
 default:
 if (this.value !== '') {
 opt.push(this.id.split('-')[3]+'-'+this.value);
 } else {
 err_msgs.push({'id':this.id.split('-')[3], 'msg':'<li>'+$(this).parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
 }
 }
 });
 for(i in radio_options){
 if(radio_options[i]['val'] != -1){
 opt.push(radio_options[i]['id'].split('-')[3]+'-'+radio_options[i]['val']);
 }else{
 err_msgs.push({'id':radio_options[i]['id'].split('-')[3], 'msg':'<li>'+$('#'+radio_options[i]['id']).parent().parent().parent().find('span.opt').html().replace(':', '')+'</li>'});
 }
 }

 err_msgs.sort(function(a, b){ return ((a['id'] > b['id']) ? 1 : -1); });
 for (var i=0; i<err_msgs.length; i++) { err_msg += err_msgs[i]['msg']; }

 // get productVariations
 const variationsStr = getVariationsStr(id, pref);

 if(err_msg == ''){
 _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').val(),...(variationsStr && {variations:variationsStr}),}});
 ga_event('basket_add');
 }else{
 lock_buttons = 0;
 shop_alert('<div class="MyWinError">Опции<ul>'+err_msg+'</ul>обязательны для выбора</div>','Замечания','warning',350,100,{tm:8000,align:'left',icon:'/.s/img/icon/warning.png', 'onclose': function(){ $('#b'+pref+'-'+id+'-basket').removeAttr('disabled'); $('#'+pref+'-'+id+'-basket').removeClass('wait').addClass('add'); }});
 }
 return false;
 }
 </script>
Как настроить отображение вариаций в старых и новых шаблонах