Как вытащить список характеристик на list-thumbs.html ?

Помогите, кто может:)
Дано - у товара 1-2 характеристик типа "выбор из выпадающего списка"
Необходимо разместить эти зарактеристики одну под другой, так, как это сделано на карточке товара, но в общих списках, на "мини-карточках". Т.е. примерно так, как это выглядит здесь - http://salemagazine.ru/category/vyrubka-iz-fetra/
Попытался "тупо" взять код, который выводит эти характеристики в шаблоне на карточке товара и вставить его в файл list-thumbs.html между выводом картинки и строкой с цена/в_корзину. В результате код не отрабатывается, чего-то не хватает... Чего?:)
Естественно, после вставки должно корректно отрабатываться действие в "корзину", т.е. товар с определенной характеристикой можно будет купить непосредственно с витрины.

14 ответов

  • 0
    добавь {$pt = $wa->shop->product($p)}
    ну а дальше обращайся к свойствам через массив
    {$pt.features}
  • 0
    забыл добавить доступа к SKU ты не получишь
  • 0
    Никита Фролов 17 января 2014 15:00 #
    Таким образом можно получить только значение характеристики, а как получить ее название? У кого-нибудь получилось?
  • 0
    Афанасий 20 мая 2014 06:15 #
    Ни у кого походу название не получилось вывести
  • 0
    Дошла и до меня очередь. понадобились характеристики. что сделал: получил свойства как описал выше и вставил код: {$product=$wa->shop->product($p.id)} скопировал код из карточки товара в цикл обхода товара в категории (в большинстве случаев файл list-thumbs.html ) {if $product.features} {foreach $product.features as $f_code => $f_value} {/foreach}
    {$features[$f_code].name|escape} {if is_array($f_value)} {if $features[$f_code].type == 'color'} {implode('
    ', $f_value)} {else} {implode(', ', $f_value)} {/if} {else} {$f_value} {/if}
    {/if} написал небольшой хелпер select('*')->fetchAll("code"); return $rows; } } куда и как вставлять тут http://www.webasyst.ru/developers/docs/helpers/custom-helpers/ и вуаля... вставляю {$features=shopViewFeatures::getFeatures()} перед циклом обхода товаров чтобы не загружать сервер. не гарантирую правильность решения но оно работает. но как говорится за пол года никто не сделал а у нас работает :) пользуйтесь.
    • 0
      Сравните кол-во SQL-запросов на странице категории с добавлением и без добавления этого кода. В случае с добавлением кода проверьте увеличение кол-ва SQL-запросов при наличии у товаров значений для 10+ характеристик.
    • +1
      sniper Host sniper Host 30 августа 2016 11:50 #

      Ваша ссылка не активна, то как вывести характеристики(цвет) в list-thumbs.html есть решение?

  • 0
    а как зависит этот код от количества характеристик? ведь я только один раз запрашиваю названия характеристик. или вызов обьекта product от этого зависит?
    • 0
      Один раз вы запрашиваете только список характеристик: их названия, коды, id. А вот значения этих характеристик для каждого товара вы запрашиваете отдельно при обращении к полю {$product.features}. Обращение к этому полю вызывает выполнение SQL-запросов к таблицам, названия которых начинаются с shop_feature_values_***. Таких таблиц всего 6. SQL-запросы выполняются ко всем из этих таблиц, в которых хранятся характеристики определённого типа для данного товара (цвет, размерность, число, диапазон, строка, текст) — и так для каждого из товаров, которые отображаются в категории или в результатах поиска. В итоге кол-во SQL-запросов на странице категории может вырасти с 10 до 100-150 в зависимости от кол-ва типов значений характеристик, которые заданы для отображаемых товаров.

      Потому грамотнее будет сделать примерно так, на мой взгляд:
      1. Для всех товаров в категории определить типы отображаемых значений характеристик.
      2. Сделать по 1 запросу к каждой из таблиц, соответствующих этим типам.
      3. Распределить данные из полученных результатов по отдельным товарам.

      Итого получится примерно 1 запрос для определения типов характеристик плюс от 1 до 6 запросов к таблицам со значениями — уже значительно меньше. Но это довольно сложный код получится.
      • 0
        я с Вами согласен но не полностью...
        первый пункт лучше бы сделать по другому так как товаров может быть в магазине очень много (у нас их 11000 примерно) и для каждого проставлять список характеристик практически не возможно. лучше сделать настройку у характеристики показывать ее в списке категорий или нет, тем более что весь список действительно не нужен.
        но встает сразу проблема для характеристик нет ни одного хука... а делать дубликат настроек характеристик некрасиво...
        да и вообще хуки к характеристикам нужны и для других задач например для того чтобы привязать картинку или файл к характеристики... сделать для нее описание, всплывающую подсказку, выделить ее для пользователя, сгруппировать... и т.д.
        по второму пункту... не очень хочется лазить по таблицам вручную... завтра там что нибудь поменяется и все перестанет работать
        по третьему вопросов нету :)
        • 0
          2. Это актуально почти для любого плагина: что-то где-то поменяется, и плагин перестанет работать ;) Это жизнь.
  • 0
    а всетаки не подскажите не планируются ли хуки в характеристиках?

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

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