Похожие товары

Есть 30 товаров, два производителя по 15 товаров. Есть 5 групп похожих товаров по 5 штук в группе.
Есть желание добавить на страницу товара блок «похожие товары». Как бы это все сделать попроще?
1) использовать теги товаров или указать группе похожих товаров например tv.similar=1
2) вызвать на странице товара все подходящие под условие товары кроме текущего.
Может кто подсказать где бы подсмотреть примеры или «ткнуть» что почитать?
Максим Франц
18 сентября 2012, 09:02
modx.pro
3
3 369
0

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

Василий Наумкин
18 сентября 2012, 13:22
1
0
1. Определить критерии «похожести». Например, один производитель и цена +-10% от текущей.

2. Написать сниппет, который будет искать по этим критериям товары через xPDO и возвращать список id через запятую.

3. Чтобы не выводился текущий товар, сниппет должен добавлять -[[*id]] к списку.

4. Указать этот сниппет в параметр resources для msGetResources

Это все можно скомбинировать и с тегами.
    Максим Франц
    18 сентября 2012, 15:44
    0
    В какой раз со мной такое :) прочитал внимательно manuals/tags.html и… последний пример… он появился недавно или я раньше его не замечал?
    За подсказки спасибо :) но "-[[*id]] к списку" пока для меня «магия». Сделал так

    [[+pagetitle:is=`[[*pagetitle]]`:then=` `:else=`
    [[+img:isnot=``:then=`[[+pagetitle]]`:else=`nophoto`]]
    [[+pagetitle]]
    Цена: [[+price:default=`0`]] [[+currency:default=`руб.`]]



    `]]
      Василий Наумкин
      18 сентября 2012, 16:51
      0
      -[[*id]] это просто id текущей страницы (товара) со знаком «минус».
      Если задавать айдишки с минусом в getResources, то он исключит их из выдачи.

      Никакой магии.
        Максим Франц
        18 сентября 2012, 17:03
        0
        Я думал, что -[[*id]] прописывается в коде сниппета.
        Спасибо за пояснение.
          Максим Франц
          19 сентября 2012, 17:20
          0
          задумался, что производительней?
          [[+pagetitle:is=`[[*pagetitle]]`:then=` `:else=`
          или
          msGetResources -[[*id]]

            Василий Наумкин
            19 сентября 2012, 17:24
            0
            Конечно минус. Этот товар просто не выберется из БД.

            А при пагинации, если исключать товары такой проверкой, то у вас на одной странице будет на 1 пункт меньше. Это некрасиво.
        Максим Франц
        18 сентября 2012, 15:52
        0
        Ловите «спасибо» :)
          Василий Наумкин
          18 сентября 2012, 16:50
          0
          Если это от вас пришла сумма на Яндекс.Деньги, то всегда пожалуйста!
        Иван Брежнев
        18 сентября 2012, 21:29
        0
        Я делал через теги, т.е. забиваю теги, потом сниппетов выбираю товары и вывожу списком
          Denys Butenko
          19 сентября 2012, 02:03
          0
          Можно использовать getRelated, вывожу похожие товары им, в параметрах-похожести указываю pagetitle и tv-параметры, в чанке getRelated вызываю msGetGoodsPlaceholders и вывожу цену и прочие параметры…
            Максим Франц
            19 сентября 2012, 17:18
            0
            Как я понял из описания getRelated выбирает похожий контент, мне же надо было жестко задать какой из 30 товаров на какой другой похож.
              Николай
              20 сентября 2012, 00:17
              0
              Если вы жестко будете задавать руками, какой товар на какой похож — зачем вам тогда, что то писать дополнительно — вбивайте в тв id похожих товаров и выводите ресурсы по указанным id, но при заполнении интернет магазина на первой же сотне вы опухните от ручного перебора похожих товаров.

              Для меня эта задача в принципе тоже актуальна.

              Так то getRelated будит при изменении или добавлении похожих товаров выводить все новые и новые и контент страницы будет меняться.

              Что бы этого не происходило можно проверять заполнена ли тв похожих товаров, если нет заполнять ее с помощью getrelated.

              като так мыслю
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            12