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


Записки велосипедиста №1. Рекомендуемые товары.

  • Решил начать небольшую рубрику, где будут простые решения некоторых задач. Сегодня будет вывод рекомендуемых товаров. На этом форуме уже описали решение через collections, но, как мне кажется, оно избыточно тяжёлое (ставить коллекции ради одной задачу - идея не лучшая, да и куда проще заполнять все параметры в одном месте). Поэтому вот вам моё.

    1. Создаём дополнительное поле "recomend", назначаем его шаблону "Товар"
    2. Выбираем тип ввода "список (множественный выбор)"
      В "возможные значения" вставляем код (3 - шаблон "товар")
    @SELECT `pagetitle`, `id` FROM `[[+PREFIX]]site_content` WHERE `template` = 3
    
    1. В "параметры вывода" выбираем "разделитель" и указываем "," без кавычек.
    2. После этого в дополнительных полях товара мы можем выбирать ему рекомендуемые (из множественного списка). Дело за малым - вывести это дело в карточке товара. Делаем это так:
    [[*recomend:isnot=``:then=`<h3>Рекомендуемые товары</h3>
             [[!getProducts?
                    &resources=`[[*recomend]]`
                    &fromParentList=`pagetitle`
                    &processTVs=`1`
                    &processTVList=`params`
                    &includeTVs=`1`
                    &includeTVList=`image,price,oldprice,tags,params`
                    &tpl=`shk_product_recomend`
            ]]
    `]]
    

    т.е. проверяем, не пустое ли это значение, а после - выводим через getProducts, передавая в параметр "resources" список рекомендуемых товаров.

    Тааа-дааа-м! Мы великолепны.

  • Хорошее решение. Только это не велосипед, а обычное использование гибкости MODX 🙂

  • @Andchir спасибо за оценку! 😃 Название - юмору ради. Если будет время, то буду регулярно под ним постить.

  • Спасибо за интересное решение рекомендуемые товары для интернет магазина .

  • Спасибо, отлично работает. До этого я реализовал через pdoPage и у меня был косяк - снятые с публикации товары отображались в рекомендуемых, а здесь все чОтко)!

  • @arkadyexp рад что помог! 😃

  • Еще момент

    @SELECT `pagetitle`, `id` FROM `[[+PREFIX]]site_content` WHERE `template` = 3 AND `published` = 1 AND `deleted` = 0 
    

    чтобы не выводились снятые с публикации и я так понял удаленные ресурсы

 

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

  • Z

    Спасибо, действительно проще создать отдельно.

    Читать далее
  • Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]].

    Можно не использовать [[+addit_data]], а выводить параметры по-отдельности.

    Цитата из документации:

    [[+shk_любой доп.параметр]] - любой доп. параметр, выбранный при добавлении товара в корзину (из [[+addit_data]]), например [[+shk_param1]].
    Если параметры сделаны в виде чекбоксов, то чтобы вывести отдельно каждый из них, нужно добавлять индекс (номер от нуля) для параметров следующих за первым.
    Пример: [[+shk_param1]], [[+shk_param1_1]], [[+shk_param1_2]] ...
    [[+shk_любой доп.параметр_price]] - цена доп.параметра. Пример: [[+shk_param1_price]].

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

    Доброго времени суток. Не могу разобраться, как передать данные migx-поля в корзину в плейсхолдер без "дублирования" в [[+addit_data]]
    Суть в чем: У меня есть 2 цены у товара (со скидкой и без скидки) Форма для отправки в корзину:

    <form action="[[~[[*resource_id]]? &scheme=`abs`]][[*alias]].html" method="post"> <input type="hidden" name="shk-id" value="[[*id]]" /> <input type="hidden" name="shk-name" value="[[*pagetitle]]" /> <input type="hidden" name="price_old__[[*id]]__add" value="[[*price_old]]" /> <input type="hidden" name="shk-count" value="1" /> <div class="product-price"> Цена: <span class="shk-price">[[!*price:shk_curr_rate:num_format]]</span> Старая цена - <span class="shk-price-old">[[+price_old]]</span> [[!+shk_currency]] </div> <div class="padding-lr-30"> <h5>Дополнительные услуги</h5> [[*param1]] </div> <div class="product-price"> <button class="btn btn-lg btn-primary" type="submit" class="shk-but">В корзину</button> </div> </form>

    Данные со "старой ценой" в корзину попадают нормально и выводится в нужном месте в плейсхолдере:
    [[+shk_price_old]]
    Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]]. Как сделать чтобы старая цена не выводилась в [[+addit_data]]? Или может я как то не правильно передаю MIGX-параметр в корзину ? Заранее спасибо.

    Читать далее
  • Фотографии, как я понял, это второй вопрос. Я по нему пока ничего не отвечал и не просил информации. Это не отменяет того, что в вашем конфиге есть ошибка, о которой я писал выше. Не нужно задавать разные вопросы в одной теме, чтобы не было путаницы.
    http://forum.modx-shopkeeper.ru/topic/15/рекомендации-по-оформлению-темы-с-вопросом

    Читать далее