Сортировка характеристик на витрине на странице категории

С введением новой темы default 3 появилась возможность вывода характеристик на витрине магазина на страницах категорий. Но встал вопрос с их сортировкой.

В бэкенде характеристики сортируются вручную в нужном порядке в "Настройки"-"Типы и Характеристики Товаров" и затем в бэкенде на странице категорий отображаются именно в этом порядке, а вот на витрине на странице категории они выводятся в хаотичном порядке (видимо по id характеристики). Вопрос в том как применить сортировку бэкенда при выводе на витрине на странице категории? Это возможно? Спасибо.

8 ответов

  • 1
    Эрик Webasyst 14 октября 2015 11:03 #

    Не удается воспроизвести. Сортировка одинаковая на странице товара и на странице категории. Если менять сортировку, то порядок меняется и там и там. Характеристики принадлежат только к одному типу товаров, или к нескольким?

    • +1
      Михаил Пашков Михаил Пашков 18 января 2016 00:37 #

      Эрик, а вот как бы нет.

      Ответ от вашей службы поддержки:

      "Характеристики на странице категорий отображаются с сортировкой по идентификатору. Если требуется их отсортировать необходимо внести соответствующие изменения в шаблон используемой темы."

      Соответственно вопрос - как отсортировать характеристики в том же порядке, как они отсортированы в бэкенде? Простейшую сортировку по алфавиту я могу сделать, но она не подходит. Нужно именно в том порядке, в котором они выводятся в бэкенде и соответственно в карточке товара на вкладке "Характеристики".

      Буду благодарен за ответ.

      • 0
        Эрик Эрик Webasyst 18 января 2016 09:41 #

        Убедитесь, что тема дизайна у вас обновлена до версии 3.1.2, в одном из последних обновлений это исправили.

        • +1
          Михаил Пашков Михаил Пашков 28 сентября 2016 13:47 #

          Эрик, версия темы последняя - 3.1.2. Проблема осталась до сих пор.

          Если выводим на странице категории характеристики, то используется $p.features.volume - и характеристики отсортированы в одном только богу разработчикам известном порядке.

          А если выводим на странице товара с помощью $product.features.volume, то здесь уже все нормально и список значений характеристик выводится в том порядке, в котором он настроен в бэкенде.

          Будет ли это наконец-то исправлено?

          Спасибо.

          • +1
            Genasyst Genasyst 28 сентября 2016 19:35 #

            вы наверно тему редактировали и сейчас используется сохраненная копия темы. Создайте новое поселение магазина с темой и проверьте

            • +1
              Михаил Пашков Михаил Пашков 30 сентября 2016 07:43 #

              Гена, я был бы очень рад, если вы были бы правы, поскольку это очень легкое решение.

              Однако, тему Default мы не используем, поэтому она чистая абсолютно и полностью обновленная. При этом сортировка на странице категорий у некоторых характеристик совершенно хаотичная (точнее не хаотичная, мне кажется они сортируются по id характеристики - та характеристика, которая была создана раньше, идет первой в списке).

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

              Да и в общем-то я вижу код, который используется в теме для вывода характеристик и там нет никакой сортировки, поэтому либо нам нужно сделать что-то еще, либо это все-таки недоработка движка (Shop-script 6ая версия, полностью обновленная).

              Вот код, который отвечает за вывод характеристик в теме Dafault на странице категории:


              {if !empty($theme_settings.list_features)}
                  {$features = $wa->shop->features($products)}
              {/if}

              и далее


                      {if !empty($p.features)}
                      <table class="features">
                          {foreach $p.features as $f_code => $f_value}
                          <tr{if $features[$f_code].type == 'divider'} class="divider"{/if}>
                          <td class="name">
                              {$features[$f_code].name|escape}
                          </td>
                          <td class="value">
                              {if is_array($f_value)}
                                  {if $features[$f_code].type == 'color'}
                                      {implode('<br /> ', $f_value)}
                                  {else}
                                      {implode(', ', $f_value)}
                                  {/if}
                              {else}
                                  {$f_value}
                              {/if}
                          </td>
                          </tr>
                          {/foreach}
                      </table>
                      {/if}

              Буду рад услышать какое-либо решение или даже быть тыкнутым носом в свою ошибку.

              Либо может совет в каком файле движка поправить это поведение (не страшно что со следующим обновлением движка изменение уйдет, сделаем снова... Потому что ждать реакции от разработчиков уже нет сил).

            • +1
              Михаил Пашков Михаил Пашков 30 сентября 2016 09:34 #

              Да, сейчас еще раз оттестировал работу характеристик. В итоге стало ясно что на странице категории сортировка происходит по id значения характеристики, а не по переменной sort (цифры в sort формируются на основе того, как характеристики расставлены в бэкенде).

              Кто-нибудь из экспертов - подскажите пожалуйста какой файл отвечает за выборку значений характеристик именно для страницы категорий (судя по всему в движке используется два разных класса для выборки характеристик на странице товара и на странице категории)? В этот код добавим сортировку по значению в поле 'sort' и будет нам счастье.

              Очень прошу. Спасибо.

    • +1
      Михаил Пашков Михаил Пашков 5 октября 2016 17:05 #

      Эрик, судя по всему вы неправильно меня поняли. Речь идет про сортировку ЗНАЧЕНИЙ одной отдельно взятой характеристики, а не характеристик между собой. В итоге как не сортируй значения характеристики в бэкенде - на странице категории они все равно выводятся с сортировкой по их id и плевать им на бэкенд :)

      При этом на странице продукта сортировка правильная - как в бэкенде.

      Очередная "фича" движка?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите