Требует выбрать опции товара при добавлении в корзину, когда они выбраны по дефолту

голоса: 0

Здравствуйте!

На сайте установлены опции товаров в виде "radio buttons", также включена функция "Выделять первое значение опции".

На странице товара, все работает как надо - при заходе на страницу, у обеих опций выделено первое значение, и даже если посетитель не будет ничего выбирать самостоятельно, то при нажатии на кнопку "В корзину", товар отправляется соответственно в корзину.
Пример такой страницы: http://region-fruit.com/shop/60/desc/perec-bolgarskij (у второй опции первое дефолтное значение скрыто стилями для удобства пользователя. Оно там называется "не указано")

 

Проблема в том, что когда в Каталоге товаров нажимаешь на кнопку "В корзину", то выскакивает окошко о том, что нужно обязательно выбрать опции для товара.

Исходя из этого, я решил добавить в шаблон "Вид товара в каталоге" код $OPTIONS$, благодаря чему в виде товара появились его опции без стилей, и у них даже по дефолту выделенное первое значение! (Стили я не добавлял, поэтому опции так выглядят. Вообще собирался их скрыть в виде товара) Вроде бы все как и должно быть. 

НО, к моему разочарованию, по нажатию на кнопку "В корзину" все равно вылезает окно с ошибкой о том, что для товара не были выбраны опции!

И не помогает даже если я сам выберу другие значения опций, все равно вылезает ошибка, что опции не выбраны.
Ссылка: http://region-fruit.com/shop/all (опции есть для примера только у Перца и Помидоров) - эти товары в корзину из каталога не добавляются. Все остальные товары, которые не имеют опций, отправляются в корзину без проблем.


Пожалуйста, помогите решить данную проблему! Мне не принципиально, чтобы на "Вид товара в каталоге" работали эти опции, пусть в случае добавления товара в корзину именно из каталога опции не учитываются, или пусть учитывается их дефолтное значение (а если пользователь захочет выбрать конкретные опции, то тогда уже пусть заходит на страницу товара).

Но мне НЕОБХОДИМА сама возможность из каталога товаров добавить в корзину товар, который имеет опции. Тем более, что судя по всему, оно так и должно работать.

Прилагаю ссылки на txt файлы с кодом шаблонов, в которых, возможно, кроется проблема:

http://region-fruit.com/_spt/vid_tovoara_v_kataloge.txt
http://region-fruit.com/_spt/stranitsa_tovara.txt
http://region-fruit.com/_spt/korzina.txt

Закрыто с пометкой: Вопрос решен!
| Автор: | Категория: Интернет-магазин
Закрыт | | Автор: Yuri_Geruk

Ответов: 1

Голоса: +1
 
Лучший ответ

Поправили вам код кнопки добавления в корзину, у вас было:

id="bid-$ID$-basket" onclick="javascript:add2Basket('$ID$','id');"

а нужно было:

id="all-$ID$-basket" onclick="add2Basket('$ID$','all')"

сейчас у вас все работает.

| Автор:
Выбор ответа лучшим | | Автор: Богдан Яковенко

Действительно работает добавление в корзину. Спасибо)
Но теперь не работает функция +- единиц товара. Для меня +- товар это не менее важный элемент. Можно ли как-то сделать чтобы работало? :)

Богдан Яковенко,
С того что наблюдаем, все работает: http://joxi.ru/l2Z4v5di7vK1br
Оказалось я программист. Решил проблему с количеством товара самостоятельно)  Yuri_Geruk, Вам огромная благодарность за помощь с опциями! Я с этим не разобрался бы.
Yuri_Geruk,

Поделюсь кодом шаблона вида товаров. Вдруг у кого-то будет такая проблема)
 

<div class="g-body">
 <div class="g-img">
 <a class="g-img-link" href="$ENTRY_URL$">
 <img loading="lazy" src="$THUMB$" alt="$NAME$" id="$BLOCK_PREF$-gphoto-$ID$">
 </a>
 <div class="g-new" title="Новинка" data-date="$ADD_DATE$">NEW</div>
 <?if($PRICE_OLD$)?><div class="g-sale" title="Акція">АКЦІЯ</div><?endif?>
 <div class="g-buttons">
 <div class="shop-to-basket" style="display: table;margin: auto;">
 <a class="sp-minus ddd$ID$" href="javascript:void(0);" style="font-size: 20px;border-radius:15px 0 0 15px;margin-left: 0px;width: 20px;height: 46px;text-align: center;color: #fff;background: #8ccaa1;text-decoration: none;float: left;line-height: 46px;">-</a>
 <input id="q$BLOCK_PREF$-$ID$-basket" class="quntity-input" style="padding: 0px!important;-webkit-border-radius: 0;-moz-border-radius: 0;border-radius: 0;border: 1px solid #eee;float: left;line-height: 40px;text-align: center;" <?if($CID$="21" or $CID$="22" or $CID$="23" or $CID$="24" or $CID$="25" or $CID$="26")?>value="1 кг"<?else?>value="1 шт"<?endif?> size="3" onfocus="this.select()" onkeypress="return checkNumber(this, event, '1');" type="text">
 <a class="sp-plus ddd$ID$" href="javascript:void(0);" style="font-size: 20px;border-radius: 0 15px 15px 0;margin-right: 5px;width: 20px;height: 46px;text-align: center;color: #fff;background: #8ccaa1;text-decoration: none;float: left;line-height: 46px;">+</a>
 <input title="В кошик" style="background-image: url(/img/ui/cart2-icon.png);display: inline-block;vertical-align: top;width: 46px;height: 46px;line-height: 46px;display: inline-block;cursor: pointer;border-radius: 15px;box-sizing: border-box;padding-left: 1px;margin-left: 2px;transition: all .3s ease;" id="$BLOCK_PREF$-$ID$-basket" onclick="add2Basket('$ID$','$BLOCK_PREF$')" type="button">
 <script>
 $(".ddd$ID$").on("click", function () {
 var $button = $(this);
 var oldValue = $button.closest('.shop-to-basket').find("input.quntity-input").val();
 if ($button.text() == "+") {
 var newVal = parseFloat(oldValue) + 1;
 } else {
 if (oldValue > 1) {
 var newVal = parseFloat(oldValue) - 1;
 } else {
 newVal = 1;
 }
 }
 $button.closest('.shop-to-basket').find("input.quntity-input").val(newVal);
 });
 </script>
 $2WISHLIST$
 </div>
 <span style="display:none">$OPTIONS$</span>
 </div>
 </div>
 <div class="g-text">
 <a href="$ENTRY_URL$" class="g-name">$NAME$</a>
 <div class="g-brief">
 $BRIEF$
 </div>
 <div class="g-price">
 $PRICE$ <?if($PRICE_OLD$)?> <s>$PRICE_OLD$</s><?endif?>
 </div>
 </div>
</div>

Выделил красным, где в коде заменил id и all на $BLOCK_PREF$ и внес другие правки, после чего все заработало. И картинка летит в корзину красиво, и плюс-минус товар тоже работает)

...