Приветствую. Сегодня мы рассмотрим как на prestashop скрыть недоступные атрибуты, а именно цвета. То есть в ситуации, когда товар не доступен к заказу в выбранном размере и цвете, скрывать недоступные цвета.

Опишем ситуацию чуть более подробно:

  • На сайте продается товар.
  • У товара есть 2 атрибута (или более), которые влияют на цену или просто на состав товара (например, размер и цвет).
  • Атрибуты складываются в комбинации атрибутов
  • У каждой комбинации есть определенное количество на складе (есть только 2 красных майки размера М).
  • Задача: сделать так, чтобы выбрав размер М пользователь не мог выбрать красный цвет

Конечно, пользователю, который выберет недоступный размер Prestashop не даст купить недосутпынй товар, но удобнее на много, если и возможности выбрать такой товар нет.

Именно этим мы сегодня и займемся, а именно: Prestashop скрыть недоступные атрибуты.

Prestashop выводит в шаблон product.tpl список всех доступных комбинаций в javascript, так, чтобы сами скрипты prestashop могли обрабатывать комбинации. Если комбинация не доступна — она тоже выводится, но параметр количество у этой комбинации = 0.

Все, что нам нужно сделать, это:

  1. Получить список этих комбинаций
  2. Обработать их, и сохранить для себя в удобном виде
  3. При выборе первого атрибута пользователем обрабатывать выбранные комбинации и скрывать лишние

Вот и все. Скрываются те цвета, которые нам не подходят под размер.

Этот код можно вставить в любое место шаблона, можно в конец product.tpl.
Не забудьте побернуть этот код в конструкцию: {literal}{/literal}, для того, чтобы обезопасить Smarty от ошибок.

Этот код протестирован, и работает на сайтах с версией Prestashop от 1.4 и до 1.5.6, более поздние версии не тестировались, но велика вероятность, что это все сработает и на 1.6. Как бы то нибыло, код поставляется «как есть», и может не работать на заявленных версиях движка (это зависит от шаблона, который вы используете).

Если вы занимаетесь разработкой или продвижением сайтов — Human Emulator то, что вам нужно для облегчения автоматизации сбора информации и тестирования сайта. Программа позолит сэкономить время, которое вы или ваши сотрудники тратите на рутинную работу.