Работа с опционными свойствами
Стоит задача добавить для объектов каталога опционные свойства, чтобы при покупке товара пользователь смог выбрать одно из этих опционных свойств и добавить товар в корзину. В модуле Шаблоны Данных, для нужного типа, допустим "Объект каталога", создается группа полей: catalog_option_props, в этой группе добавляется поле (или несколько полей) типа Составное, допустим поле Цвет. Потом заходим в редактирование одного из объектов каталога, добавляем в выпадающий список Цвет нужные значения: Красный, Черный, Синий и т.п. Далее, выбрав одно из значений в выпадающем списке Цвет и поставив справа в окне сумму, которая добавится к основной цене при добавления товара в корзину - нажимаем "+", чтобы добавить опционное свойство, аналогично поступаем с остальными опционными свойствами.
В tpl-шаблоне, в блоке view_block, который выводит подробные характеристики товара, пропишем данный макрос: %data getPropertyGroup('%id%', 'catalog_option_props', 'catalog_options')%
Пример шаблона /tpls/data/catalog_options.tpl:
<?php $FORMS = array(); $FORMS['group'] = <<<END <form action="%pre_lang%/emarket/basket/put/element/%id%/" method="get"> <span> %lines% </span> <p> <input type="submit" value="Положить в корзину" /> </p> </form> END; $FORMS['group_line'] = <<<END %prop% END; $FORMS['optioned_block'] = <<<END <strong>%title%:</strong> <select name="options[%field_name%]" style="color:black; width:100px; height: 18px;"> %items% </select> END; $FORMS['optioned_block_empty'] = <<<END <strong>%title%</strong> - Нет опций END; $FORMS['optioned_item'] = <<<END <option value="%object-id%"> %object-name% </option> END; ?>
Идентификатор группы полей, в которой были добавлены поля типа "Составное", необходимо добавить в системный файл настроек config.ini, блок modules, также как это сделано для группы "catalog_option_props":
emarket.order-types.optioned.groups[] = "catalog_option_props"