Последние темы


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

  • Здравствуйте, я совсем запутался и не могу понять то что описано в документации.
    У меня есть товар и у него 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.

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

  • Тип ввода - 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 секунд(ы) после опубликования
    
 

Последние комментарии

  • Я не знаю как тебе объяснить, что твой продукт гавно. Что шопкипер, что catalogfil - полное кривое гавно

    Зачем ты мучаешь себя? Не пользуйся. Другие продукты тоже все "говно", или может говно у тебя в голове?

    Ты хоть сам тестировал свою хрень в подобной ситуации? Нормальный функционал и документацию ты сделать поленился

    Много я таких как ты встречал. У вас всегда кто-то другой виноват. До таких "умников" даже не доходит, что в продукте может отсутствовать требуемый им функционал. И это нормально. Ты хотел многофункциональный комбайн за 500 руб? Я подсказываю обходные пути, но для тебя это слишком сложно (это я про другие темы этого автора).

    видимо с той целью что бы выклянчить копеечку

    С таких как ты мне ничего не надо. Лучше просто забудь о существовании Шопкипера и CatalogFill.

    Давай отвечай

    Зачем мне это? Ни за один ответ я не получил от тебя даже "спасибо".

    или просто кинь ещё 1 бан, хоть власть почувствуешь)))

    Моему терпению можно только позавидовать. Ты заслужил бан уже очень давно.

    Читать далее
  • V

    @Andchir Я не знаю как тебе объяснить, что твой продукт гавно. Что шопкипер, что catalogfil - полное кривое гавно. Я тебе пытаюсь объяснить, что товар или добавляется дублями или изменяются параметры у товаров с таким же артикулом, ты же мне рассказываешь про кнопочки "Добавить" и "Обновить". Ты хоть сам тестировал свою хрень в подобной ситуации? Нормальный функционал и документацию ты сделать поленился, видимо с той целью что бы выклянчить копеечку. Все эти функции должны были быть описаны в документации. Есть демо сайт, есть галерея в нём, значит и импорт должен производиться под этот сайт и всё было бы понятно. Давай отвечай или просто кинь ещё 1 бан, хоть власть почувствуешь)))

    P.S: Весь мой вопрос можно было решить за 1 день, после первого поста.

    Читать далее
  • Ещё один момент, если вам нужно добавить товар, то нужно нужно переключатель "Тип импорта" ставить в положение "Добавить". Но делаете ли вы так - такой информации я тоже не увидел. Вытаскивать из вас информацию по кусочкам - слишком долго.

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

    У меня изначально стоял параметр false, я пробую и так и сяк

    Не нужно пробовать "так и сяк", нужно делать так как написано и так как правильно по смыслу описания параметров. После этого писать на форуме, что "делаю как должно быть, но получается не так". Если вы что-то пробуете, что вообще не правильно по смыслу, то мне об этом писать не нужно.

    Читать далее