msOptionPrice2 checkbox
Вот пример как я пытаюсь его вывести:
[[!msProductOptions?
                    &tpl=`optionTplAllOptions`
                    &onlyOptions=`razmer,dough,addition`
                    &sortOptions=`razmer:SORT_DESC:SORT_NUMERIC`
                    &toPlaceholder=`all_options`
                ]]
                
                [[!+all_options:notempty=`
                    [[!+all_options]]
                `]]А это шаблон: {foreach $options as $name => $params}
    {if $name == 'razmer'}
        <div class="productRazmerModal productOption">
            {foreach $params.value as $key => $value}
                <div class="option-row option-col-3">
                    <input type="radio" id="razmer_{$name}_{$value}" name="options[{$name}]" class="optionInputRadio" value="{$value}">
                	<label class="optionProductLabel" for="razmer_{$name}_{$value}">{$value} см</label>
                </div>
            {/foreach}
        </div>
    {/if}
    
    {if $name == 'dough'}
        <div class="productDoughModal productOption">
            {foreach $params.value as $key => $value}
                <div class="option-row option-col-2">
                    <input type="radio" id="dough_{$name}_{$value}" name="options[{$name}]" class="optionInputRadio" value="{$value}" >
                	<label class="optionProductLabel" for="dough_{$name}_{$value}">{$value}</label>
                </div>
            {/foreach}
        </div>
    {/if}
    
    {if $name == 'addition'}
        <div class="productAdditionModal productOption">
            {foreach $params.value as $key => $value}
                <div class="option-row-grid option-grid">
                    <input type="checkbox" 
                           id="addition_{$name}_{$value}" 
                           name="addition[{$name}][]" 
                           class="optionInputRadio" 
                           value="{$value}" 
                           data-price="[[!getMIGXItem? &searchKey={$value} &pole=price &tvName=doppizza &idres=92]]"
                           data-weight="[[!getMIGXItem? &searchKey={$value} &pole=weight &tvName=doppizza &idres=92]]">
                    <label class="optionProductLabel" for="addition_{$name}_{$value}">
                        <div class="optionImage">
                            <img src="[[!getMIGXItem? &searchKey={$value} &pole=image &tvName=doppizza &idres=92]]" alt="">
                        </div>
                        <div>[[!getMIGXItem? &searchKey={$value} &pole=title &tvName=doppizza &idres=92]]</div>
                    </label>
                </div>
            {/foreach}
        </div>
    {/if}
    
{/foreach}В итоге вробе бы выводится, но цены считаются не корректно, а именно при выборе любой опции (не важно radio или checkbox) общая цена пересчитывается с учетом цены всех опций checkbox котоыре есть (что довольно странное поведение) и если убрать галочку с checkbox то цена обрано не пересчитвается… Вот такой вот баг прямо из коробки. Это больше вопрос к разработчику, т.к компонент продается за деньги, а работоспособность оставляет желать лучшего.Комментарии: 5
если убрать галочку с checkbox то цена обрано не пересчитваетсяА вы в консоли браузера смотрели уходит ли пр и этом запрос на сервер и есть ли в нём значение опции?
общая цена пересчитывается с учетом цены всех опций checkbox котоыре естьmsOptionsPrice2 вообще не рассчитывает цену, он выбирает модификацию по переданным опциям и подставляет её цену в качестве цены товара. Тут нужно смотреть какие опции содержит каждая конкретная модификация.
                Array
(
[razmer] => 30
[dough] => Тонкое
[modifications] => Array
(
[0] => 29
[1] => 31
[2] => 51
[3] => 52
[4] => 53
)
[modification] => 0
) вот такой массив уходит в корзину при выборе только одной опции. Я выбрал размер (это 29 модификация) и должна была отправится ещё 31 модификация(она по умолчанию выбрана), а вот почему отправляется 51,52,53 (это checkbox) которые даже не выбраны… Не понятно!
                    (
[razmer] => 30
[dough] => Тонкое
[modifications] => Array
(
[0] => 29
[1] => 31
[2] => 51
[3] => 52
[4] => 53
)
[modification] => 0
) вот такой массив уходит в корзину при выборе только одной опции. Я выбрал размер (это 29 модификация) и должна была отправится ещё 31 модификация(она по умолчанию выбрана), а вот почему отправляется 51,52,53 (это checkbox) которые даже не выбраны… Не понятно!
                Очевидно, что модификация не определена, поскольку modification = 0. Это означает, что либо некорректно заданы опции в модификации, либо с фронта передаются некорректные значения.            
                    
                Спасибо! За ответ… Буду искать почему так. Жаль документации нет к компоненту…            
                    
                Спасибо! За ответ… Буду искать почему так. Жаль документации нет к компоненту…            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.