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


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

Комментарии (12)

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

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

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

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

    Это все можно скомбинировать и с тегами.
    1. Максим Франц 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=`руб.`]]



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

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

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

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

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

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

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

                като так мыслю
            Вы должны авторизоваться, чтобы оставлять комментарии.