Часто возникает задача дать возможность покупателю указать свойства товара перед покупкой: например, позволить выбрать размер, цвет или производителя товара и с этими свойствами положить товар в корзину. Это удобно для покупателя и менеджеры магазина будут точно знать, что покупатель хочет "зелёные носки, а не синие". [spoiler]
В этой статье я продолжу "издеваться" над компонентом bitrix:catalog.element
Для начала для каталога нужно создать свойства типа "список", именно значения этих свойств покупатель будет выбирать при покупке товара. Я создал два свойства, "Цвет" и "Надпись":
Обязательным условием является задание символьных кодов создаваемых свойств. После создания свойств нужно задать варианты значений этих свойств(кнопка "..."), например, для свойства "Цвет" это сделано так:
Далее решения задачи требуется кастомизация компонента и самого шаблона. Опустим скучную часть, описывающую копирование компонента в свою папку и перейдём непосредственно к кастомизации.
1. Поправим файл .parametrs.php скопированного компонента. Нужно добавить параметр компонента - набор свойств типа "Список", значения которых сможет выбрать покупатель.
Теперь в настройках параметров компонента, появится параметр "Свойства для выбора".
2. Теперь правим component.php. В компоненте нужно сформировать массивы значений, которые будут представлены в виде списка для каждого из свойств. После формирования массива $arResult["MORE_PHOTO"] (используйте поиск по файлу) добавляем код:
Мелких модификаций шаблона больше, но они все косметические, поэтому код приводить не буду, тем более компонент можно скачать.
Теперь получившийся компонент с помощью визуального редактора размещаем на станице. И настраиваем, в частности указываем параметр "Свойства для выбора":
Результат примерно такой:
Выберем нужные свойства и кликнем "купить". Переходим в корзину - в корзине отображаются те свойства, которые были выбраны:
8.6.1 - В компоненты catalog.element, catalog.section, catalog.sections.top и catalog.top добавлена поддержка характеристик товара и количества. - В компонент catalog добавлен шаблон properties с поддежкой характеристик товара. ....
А есть такое решение, чтобы в зависимости от разных свойств и цена товара менялась? То есть сейчас у товара одна цена по которой он добавляется в корзину. Как ее сделать множественной зависящей от выбранного свойства?
Подскажите, пожалуйста, как это реализовать стандартным функционалом? Я добавил свойство "Размеры", тип "Список", ввел в значения списка нужные размеры. При заполнении товара указываю размеры, а они выводятся в виде "M / S / L". Как заставить их выводиться выпадающим списком, и чтобы потом размер указывался в заказе? Уже несколько дней бьюсь над этим, не могу никак сделать. Сильно, пожалуйста, не пинайте, я еще только учусь... Может кто ссылкой поделится, где это описано, я не нашел...
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».