Не меняется цена в msOptionsPrice2
Доброго времени суток, друзья! Делаю интернет-магазин, и мне нужно настроить изменение цены в зависимости от веса продукта. Нашел дополнение msOptionsPrice2. Настраивал по документации, но что-то пошло не так и цена не меняется:( Если смотреть в браузере, то запрос через ajax идет, но цена не меняется.
Делал по следующему алгоритму:
— Завел опцию в минишоп с типом «множественный список», где перечислил весь продукта.
— У продукта добавил модификацию, в которой привязал цену к конкретной опции
— Сделал инициализацию [[!msOptionsPrice.initialize?]], в дальнейшем другие шаблоны наследуют этот шаблон
— Написал следущий чанк с классами
Делал по следующему алгоритму:
— Завел опцию в минишоп с типом «множественный список», где перечислил весь продукта.
— У продукта добавил модификацию, в которой привязал цену к конкретной опции
— Сделал инициализацию [[!msOptionsPrice.initialize?]], в дальнейшем другие шаблоны наследуют этот шаблон
— Написал следущий чанк с классами
<div class="product-block ms2_product ">
<form method="post" class="form-product ms2_form msoptionsprice-product">
<div class="item">
<a href="{$id | url}" class="msoptionsprice-name msoptionsprice-{$id}" title="{$pagetitle}">
<div class="product-img">
{if $medium?}
<img src="{$medium}" alt="{$pagetitle}"/>
{else}
<img src="{'assets_url' | option}components/minishop2/img/web/ms2_small.png"
srcset="{'assets_url' | option}components/minishop2/img/web/ms2_small@2x.png 2x"
alt="{$pagetitle}" title="{$pagetitle}"/>
{/if}
</div>
<div class="text">
<p class="product-name">{$pagetitle}</p>
<p class="price"><span class="msoptionsprice-cost msoptionsprice-{$id}">{$price}</span> руб</p>
</div>
</a>
<div class="weight msoptionsprice-mass msoptionsprice-{$id}">
{'!msOptionsPrice.option' | snippet : [
'product'=>$id,
'options'=>'packaging',
'tpl'=>'tpl.options-weight'
]}
</div>
<div class="btns">
<button type="submit" name="ms2_action" value="cart/add" class="submit"><i class="sprite basket-item"></i>В корзину</button>
<input type="text" class="msoptionsprice-count" name="count" value="1" class="count">
</div>
<input type="hidden" name="id" value="{$id}">
<input type="hidden" name="key" class="key-product" value="">
<input type="hidden" name="options" value="[]">
{foreach $options as $name => $value}
<input type="hidden" name="options[{$name}]" value="{$value}">
{/foreach}
</div>
</form>
</div>
— Создал чанк для вывода через msOptionsPrice.option{foreach $options as $name => $values}
{foreach $values as $value index=$index}
<label for="opt-{$value}" {if $index == 0}class="checked"{/if}>
<input type="radio" value="{$values[$index]}" id="opt-{$value}" name="options[{$name}]"
{if $index == 0}checked="checked"{/if}
/>
{$values[$index]}
</label>
{/foreach}
{/foreach}
Вообщем, не понимаю что делаю не так) Комментарии: 3
Переместите
<input type="hidden" name="id" value="{$id}">
<input type="hidden" name="key" class="key-product" value="">
<input type="hidden" name="options" value="[]">
в начало формы, то есть сразу за<form method="post" class="form-product ms2_form msoptionsprice-product">
ато получается при отправке данных вы затираете массив опций пустым массивом.
Действительно было в этом дело! Премного благодарен:)
По вопросу работы платных дополнений следует писать в ТП компонента
Спасибо!
Спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.