Как вывести две цены в каталоге товаров ?

Здравствуйте, я совсем запутался и не могу понять то что описано в документации.
У меня есть товар и у него 2 размера у каждого размера своя цена. Я хочу сделать так что бы размер можно было выбрать radio button и после этого нажать одну кнопку "в корзину" и в корзине будет показана цена которая соответствует выбранному размеру.
Сейчас у меня две кнопки "в корзину" каждая со своей ценой.

<form action="[[~[[*id]]? &scheme=`abs`]]" method="post">
            <fieldset>
                <input type="hidden" name="shk-id" value="[[+id]]" />
                <input type="hidden" name="shk-count" value="1" />
                <div class="product-price">
                    <button type="submit" class="shk-but">В корзину</button>
                    <div>Цена: <span class="shk-price">[[+price:num_format]]</span> руб.</div>
                </div>
            </fieldset>
        </form>
        
        <form action="[[~[[*id]]? &scheme=`abs`]]" method="post">
            <fieldset>
                <input type="hidden" name="shk-id" value="[[+id]]__price2" />
                <input type="hidden" name="shk-count" value="1" />
                <div class="product-price">
                    <button type="submit" class="shk-but">В корзину</button>
                    <div>Цена: <span class="shk-price">[[+price2:num_format]]</span> руб.</div>
                </div>
            </fieldset>
        </form>

Подскажите пожалуйста как можно вывести две цены без двух кнопок "в корзину" ?

Использовать доп. параметры + param_edit.

@Andchir А где можно посмотреть пример такой конструкции ? Мне так будет более понятно.

@October сказал Как вывести две цены в каталоге товаров ?:

@Andchir А где можно посмотреть пример такой конструкции ? Мне так будет более понятно.

Я делаю тестовый магазин. У меня нету MIGX, в качестве каталога товаров я использую collections.

Кажется я понял как это сделать C:
Если всё удачно получится с моим тестовым магазином напишу урок как я делал его C:

Тип ввода - param_edit.

Далее нужно выбрать тип вывода - sh_radio.
В параметрах Шопкипера можно выбрать - changePrice = replace. чтобы цены брались от данных параметра.

@Andchir Что снова не пойму... я создал TV params с параметрами ввода param_edit и параметры вывода shk_radio.
Вывожу в чанке так [[+params]], этот чанк я вывожу в каталоге товара через pdoResources .

#Чанк

<div class="product shk-item">
    <div class="product-b">
        <div class="product-descr">
            <a href="[[~[[+id]]? &scheme=`abs`]]">
                <img class="shk-image" src="[[+img_product]]" alt="" height="130" width="130" />
            </a>
            <h3>[[+pagetitle]]</h3>
            [[+introtext]]<br />
            <a href="[[~[[+id]]? &scheme=`abs`]]">Подробнее &rsaquo;</a>
            <div style="clear:both;"></div>
        </div>
        
        
        <form action="[[~[[*id]]? &scheme=`abs`]]" method="post">
            <fieldset>
                <input type="hidden" name="shk-id" value="[[+id]]" />
                <input type="hidden" name="shk-count" value="1" />
                <div class="product-price">
                    [[+params]]
                    <button type="submit" class="shk-but">В корзину</button>
                    <div>Цена: <span class="shk-price">[[+price:num_format]]</span> руб.</div>
                </div>
            </fieldset>
        </form>
        
    </div>
</div>

#Вывод чанка в каталог товара

[[pdoResources?
&parents=`[[*id]]`
&depth=`3`
&hideContainers=`1`
&includeTVs=`img_product,price,size,params`
&tvPrefix=``
&limit=`20`
&sortdir=`ASC`
&tpl=`tpl_product`
&showLog=`1`
]]

В итоге param_edit [[+params]] выводится просто текстом

10 размер==100||20 размер==200

http://docs.modx.pro/components/pdotools/snippets/pdoresources

&processTVs Список ТВ параметров, которые нужно обработать перед выводом. Если установить в «1», будут обработаны все ТВ, указанные в &includeTVs.

Не понятно что значит "обработать", но я думаю это оно :slight_smile:

@Andchir Круто, большое спасибо! Я совсем на это внимание не обратил. :(
&processTVs - обработал [[+tv.params]] и нормально вывел, но djn медиа tv, почему то перестал обрабатывать. Даже параметр &prepareTVs не помог.
По этому медиа TV я обработал в самом чанке таким способом.

[[pdoResources? &resources=`[[+id]]` &includeTVs=`img_product` &prepareTVs=`1` &tpl=`@INLINE {{+tv.img_product}}`]]

После этого всё заработало. :)

Кстати, можно ли к [[+tv.params]] задавать чанки к каждому параметру который выводится через этот TV ?

Кстати, можно ли к [[+tv.params]] задавать чанки к каждому параметру который выводится через этот TV ?

Для этого есть сниппет "param_edit_table".

@Andchir этот код выводить в место [[+tv.params]] ?

[[shk_include?
&file=`core/components/shopkeeper/elements/snippets/param_edit_table.php`
&tvName=`options`
&tpl=`properties_table`
]]

А его можно выводить в чанке и потом обрабатывать вывод чанка pdoTools'ом ?

@October сказал Как вывести две цены в каталоге товаров ?:

@Andchir этот код выводить в место [[+tv.params]] ?

[[shk_include?
&file=`core/components/shopkeeper/elements/snippets/param_edit_table.php`
&tvName=`options`
&tpl=`properties_table`
]]

А его можно выводить в чанке и потом обрабатывать вывод чанка pdoTools'ом ?

Не тот код вставил.
Хотел вставить этот.

[[param_edit_table?
&docId=`1`
&tvName=`all_width`
&postName=`w`
&tpl=`@CODE:
<select name="w">
    <option value=""></option>
    [[+inner]]
</select>
<!--tpl_separator-->
<option value="[[+field1]]"[[+selected1]]>[[+field1]]</option>
`]]

Кстати сообщение нельзя отредактировать если даже меньше 30 секунд прошло. Выдает такую ошибку.

Сообщения можно редактировать только в течение 30 секунд(ы) после опубликования

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.