Автор Тема: Вывод блока у товаров только с определенным свойством  (Прочитано 640 раз)

17 Декабрь 2016, 17:41:17
  • Фрилансер
  • *
  • Сообщений: 237
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте! Подскажите, как сделать так, что бы блок выводился только у товаров с определенным свойством.
{if $product.features[24] == 113399}; {if $product.features[24] == 'желтый'}
Так не хочет работать, а где найти себе подсказку - даже не знаю...
пример: я хочу чтобы у товаров с желтым цветом выводился блок с надписью, например, "желтый - это круто". У товара есть свойство "Цвет", в админке у него id=24; а "желтый" 113399. Как мне это реализовать...
престашоп 1.5
17 Декабрь 2016, 21:21:17
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
17 Декабрь 2016, 21:33:31
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 237
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
18 Декабрь 2016, 10:42:03
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
18 Декабрь 2016, 12:53:04
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 237
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если я все правильно сделал
{if $feature.id_feature == '113300'}
<div></div>
{/if}
то не работает! видимо чего то не хватает... есть свойство (как я понимаю это id_feature) и у него еще есть несколько значений, а про это нигде ни описанно...
18 Декабрь 2016, 13:29:54
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
$feature.id_feature это группа значений

Для отдельного свойства так
{if isset($features) && $features}
{foreach from=$features item=feature}
{if isset($feature.value) && $feature.value == 113300}
Это свойство - {$feature.value}
20 Декабрь 2016, 22:42:11
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 237
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
вот так должно быть?
{if isset($features) && $features}
{foreach from=$features item=feature}
{if isset($feature.value) && $feature.value == 119940}
<div>
желтый круто
</div>
{/if}
{/foreach}
{/if}
не хочет работать
21 Декабрь 2016, 14:06:03
Ответ #7
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Цвет это атрибут, а не характеристика. Поэтому и не работает.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
21 Декабрь 2016, 14:25:21
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 237
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цвет это атрибут, а не характеристика. Поэтому и не работает.
не работает потому что не работает! мне ничего не мешает сделать такую характеристику у товара как цвет
21 Декабрь 2016, 14:31:53
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
У меня работает. С характеристиками и с атрибутами. Только для атрибутов код другой
{if $id_attribute == '...'}
21 Декабрь 2016, 14:36:51
Ответ #10
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
не работает потому что не работает! мне ничего не мешает сделать такую характеристику у товара как цвет
Сделайте. Если нет у вас такой характеристики, то и выводить нечего.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
21 Декабрь 2016, 14:44:15
Ответ #11
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
У меня работает. С характеристиками и с атрибутами. Только для атрибутов код другой
{if $id_attribute == '...'}
Если '119940' это ид характеристики, то
{if isset($feature.id_feature) && $feature.id_feature == '119940'}В prestashop 1.6
$feature.value;  /* название характиристики */
$feature.id_feature  /* ид характиристики */
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
21 Декабрь 2016, 15:51:40
Ответ #12
  • Фрилансер
  • *
  • Сообщений: 237
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
мне не нужны атрибуты и тем более про цвет я написал только в пример.
119940 - id значения характеристики, а характеристика под id 24
value 119940
id 24