26

Re: Скрыть комплектации товара с нулевым остатком

Можно в javascript прописать выбор первой комплектации которая есть в наличии. Пример:
----
//Устанавливаем текущую комплектацию
var photoEx = new RegExp('#(\\d+)');
var res = photoEx.exec(location.hash);
res = (res != null) ? res[1] : 0;
----

Поменять на
-----
//Устанавливаем текущую комплектацию
var photoEx = new RegExp('#(\\d+)');
var res = photoEx.exec(location.hash);
res = (res != null) ? res[1] : 0;



//Если мы открываем первый раз страницу с не установленным хэшем, то выберем первую доступную комплектацию
if (photoEx.exec(location.hash) == null){
//Для обычных комплектаций
//Выберем первую доступную комплектацию в списке
if ($('select[name="offer"] option:not(:disabled)', context).length>0){
res = $('select[name="offer"] option:not(:disabled)', context).val();
}

//Если радио кнопкой
if ($('input[name="offer"][type="radio"]:not(:disabled):first', context).length>0){
res = $('input[name="offer"][type="radio"]:not(:disabled):first', context).val();
}

//Для многомерных
if ($('.hidden_offers',context).length>0){
res = $('.hidden_offers[data-has="1"]:first',context).val();
}
}
-----

А в коде шаблона у всех input с комплектациями проверте наличие и если нет, то проставьте им атрибут disabled
Например:
-----
<input type="hidden" {if $offer.num<=0}disabled{/if}/>
----