msOptionPrice2 checkbox

Почему то 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 то цена обрано не пересчитвается… Вот такой вот баг прямо из коробки. Это больше вопрос к разработчику, т.к компонент продается за деньги, а работоспособность оставляет желать лучшего.
Михаил
02 апреля 2025, 19:59
modx.pro
149
0

Комментарии: 5

Артур Шевченко
02 апреля 2025, 23:08
0
если убрать галочку с checkbox то цена обрано не пересчитвается
А вы в консоли браузера смотрели уходит ли пр и этом запрос на сервер и есть ли в нём значение опции?

общая цена пересчитывается с учетом цены всех опций checkbox котоыре есть
msOptionsPrice2 вообще не рассчитывает цену, он выбирает модификацию по переданным опциям и подставляет её цену в качестве цены товара. Тут нужно смотреть какие опции содержит каждая конкретная модификация.
    Михаил
    03 апреля 2025, 10:35
    0
    Array
    (
    [razmer] => 30
    [dough] => Тонкое
    [modifications] => Array
    (
    [0] => 29
    [1] => 31
    [2] => 51
    [3] => 52
    [4] => 53
    )

    [modification] => 0
    ) вот такой массив уходит в корзину при выборе только одной опции. Я выбрал размер (это 29 модификация) и должна была отправится ещё 31 модификация(она по умолчанию выбрана), а вот почему отправляется 51,52,53 (это checkbox) которые даже не выбраны… Не понятно!
      Артур Шевченко
      03 апреля 2025, 11:45
      0
      Очевидно, что модификация не определена, поскольку modification = 0. Это означает, что либо некорректно заданы опции в модификации, либо с фронта передаются некорректные значения.
        Михаил
        03 апреля 2025, 12:03
        0
        Спасибо! За ответ… Буду искать почему так. Жаль документации нет к компоненту…
          Михаил
          03 апреля 2025, 12:03
          0
          Спасибо! За ответ… Буду искать почему так. Жаль документации нет к компоненту…
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5