1С битрикс свойства товаров

1С битрикс свойства товаров

Практически в любом интернет-магазине у товаров рано или поздно накапливается значительное число характеристик. Если данный магазин работает на CMS Битрикс, то возникает вопрос: Есть ли оптимальное решение для хранения большого количества характеристик товара? Ведь если каждую характеристику заводить как простое свойство то, в случае действительно большого их количества — работа в админке стандартными средствами битрикс станет невозможна, так как всё это количество свойств будет выводится для каждого товара. Также, очень вероятно, что в публичной части сайта начнутся большие проблемы с производительностью, в частности, в компоненте каталога и в «умном фильтре». В настоящей статье рассмотрено одно из возможных решений данной проблемы «дефолтными» средствами битрикса, т.е. не прибегая к сторонним модулям и доработкам и не производя достаточно сомнительную операцию «деления каталога на различные инфоблоки».

Итак, какое решение предоставляет битрикс в такой ситуации и есть ли оно вообще? Да, действительно, такое решение существует. Хотя, стоит признаться, автору данной статьи пришлось достаточно долго просматривать форум и справку битрикса, чтобы найти его. Суть данного решения — это привязка определенного свойства к разделам. То есть, свойство создается на весь каталог, но показываться оно будет только в тех разделах, к которым привязано.

Небольшое предварительное замечание: Если планируется действительно большое кол-во свойств-характеристик, как, например, в ситуации, случившейся с автором данной статьи, то перед заведением данных свойств нужно изменить настройки инфоблока таким образом, чтобы значения свойств хранились в общей таблице. Эта операция делается на вкладке: «Контент > Инфоблоки > Типы инфоблоков > Ваш инфоблок». На первой вкладке будет ссылка «Изменить место хранения свойств», нужно кликнуть на неё и произвести конвертацию.

Вариант первый. Заведение свойств через административную панель Битрикс.

В данном разделе описан процесс заведения свойств с привязкой к категориям стандартными средствами битрикс. Этот вариант вполне удобен во всех случаях, за исключением тех, когда нужно пересоздать большое количество свойств (например при переносе на «стандартный» битрикс свойств из какого-либо стороннего модуля).

Шаг 1. Создание свойства для раздела

Для интересующего раздела следует кликнуть «изменить» и перейти на вкладку «Свойства элементов». На данной вкладке будет список существующих свойств и «кнопка» для добавления нового свойства. В случае, если требуется завести новое свойство — то, следует выбрать [Создать] и кликнуть кнопку «добавить».

Читайте также:  Fedex international priority в россию

Если же данное свойство уже заведено — то, выбрать его и также кликнуть «добавить» (данное действие привяжет ранее созданное свойство к данной категории). Далее речь идет о добавлении нового свойства. После клика по «добавить» откроется всплывающее окно в котором нужно будет указать параметры данного свойства: Название, сортировку, тип, символьный код и тому подобное:

По клику на «Сохранить» свойство будет создано и привязано к данному разделу. Стоит заметить, что галку «показывать в умном фильтре» можно проставить позже на странице списка свойств для данного раздела.

Шаг 2. Выведение свойства на странице редактирования элемента.

Для того, чтобы вывести свойства-характеристики для данной категории отдельным списком потребуется произвести перечисленные ниже манипуляции:

  1. Переходим на страницу редактирования формы добавления/изменения товара («шестеренка» в соответствующем разделе)
  2. Удаляем из формы все свойства и «параметр» под названием «—значения свойств» (именно с двумя «тире» перед словом «значения»).
  3. (Опционально) Добавляем отдельную вкладку «характеристики»
  4. Выводим наши свойства для данной категории на данной вкладке: Для этого нужно добавить на данную вкладку «параметр» «Значения свойств» (в данном случае тот, который без двух дефисов).

После данных «манипуляций» при редактировании товара на вкладке «характеристики» будут отображаться только те свойства, которые привязаны к данному разделу.

Шаг 3. Выведение созданных свойств в «умном фильтре» и на карточке товара

На данном шаге действия стандартны:

  • Те свойства категорий, которые следует показывать в «умном фильтре» следует отметить соответствующей галкой на вкладке «свойства элементов»
  • На вкладке «редактировать параметры компонента» (каталога) в публичной части сайта указать необходимые свойства в «умном фильтре», модуле сравнения и детальной странице элемента в соответствующих полях.

Собственно, весь процесс заведения «свойства-характеристики» заключается в перечисленных выше шагах.

Однако, если таких свойств нужно завести, к примеру, больше тысячи в достаточно ограниченный промежуток времени и одно и то же свойство привязывается к ряду категорий одновременно. Как поступить в таком случае? Единственный рациональный выход — это заведение свойств через API битрикса.

Вариант второй. Заведение свойств через API битрикса.

В рамках данного подхода стоит воспользоваться командной php-строкой Битрикса для отправки необходимых команд на добавление и привязку свойства. В случае автора данной статьи команды выглядели следующим образом:

Создание свойств товаров

На странице Магазин > Каталог товаров > Напольные покрытия > Свойства товаров производится создание и настройка свойств элементов каталога. Именно здесь вы задаете параметры, описанные в ТЗ на элемент товара. Чтобы понять, какие свойства нам задавать в этой странице, вспомним само ТЗ и в скобках каждого пункта объясним, какими средствами системы мы будем его решать.

Читайте также:  Dr web av desk это

Простой товар — это объект, который имеет:

  • ID — уникальный идентификатор (ID задается самой системой при создании элемента инфоблока и будет неизменен).
  • Название (штатное поле Название).
  • Статус активности (штатная функция Активность).
  • Символьный код (штатное поле Символьный код).
  • Описание (штатное поле Детальное описание).
  • Meta keywords (штатное поле Шаблон META KEYWORDS).
  • Meta description (штатное поле Шаблон META DESCRIPTION).
  • Page Title (штатная функция комплексного компонента Каталог).
  • Изображение (штатная функция Детальная картинка).
  • Артикул (создается отдельное свойство).
  • Признак новизны (создается отдельное свойство).
  • Производителя (создается отдельное свойство).
  • Толщину (создается отдельное свойство).
  • Размер доски (создается отдельное свойство).
  • Цену (штатная функция торгового каталога).
  • Количество (штатная функция торгового каталога).

Товар с торговыми предложениями — это объект, который имеет:

  • ID — уникальный идентификатор (ID задается самой системой при создании элемента инфоблока и будет неизменен).
  • Название (штатное поле Название).
  • Статус активности (штатная функция Активность).
  • Символьный код (штатное поле Символьный код).
  • Описание (штатное поле Детальное описание).
  • Meta keywords (штатное поле Шаблон META KEYWORDS).
  • Meta description (штатное поле Шаблон META DESCRIPTION).
  • Page Title (штатная функция комплексного компонента Каталог).
  • Изображение (штатная функция Детальная картинка).
  • Артикул (создается отдельное свойство).
  • Признак новизны (создается отдельное свойство).
  • Производителя (создается отдельное свойство).
  • Толщину (создается отдельное свойство).
  • Размер доски (создается отдельное свойство).
  • Торговые предложения (штатная функция торгового каталога).

Таким образом, нам необходимо создать следующие свойства:

Список свойств элементов будет выглядеть так, как показано на скриншоте:

Обязательно прочитайте ниже о настройках каждого свойства.

Свойство "Артикул"

Для добавления свойства нажмите кнопку Добавить свойство, расположенную на контекстной панели. В открывшейся форме укажите параметры свойства:

  • В поле Тип выберите Строка.
  • В поле Название введите название свойства – Артикул.
  • В поле Символьный код введите ARTNUMBER.

Свойство "Новинка"

Данное свойство будет использоваться для пометки новых товаров в магазине. В форме создания свойства укажите его параметры следующим образом:

Читайте также:  Gigabyte technology co ltd 970a d3

  • В поле Тип выберите Список.
  • В поле Название введите Новинка.
  • В поле Символьный код введите NEWPRODUCT.
  • Аналогично, как и для свойства Артикул, отметьте опции:
  • Значения свойства участвуют в поиске
  • Выводить на странице списка элементов поле для фильтрации по этому свойству
  • Показывать на странице редактирования элемента
  • В секции Значения списка добавьте значение да с XML_ >
  • В настройках свойства значение по умолчанию не задаем, чтобы по умолчанию товар не считался новинкой.

  • Сохраните свойство.
  • Свойство "Производитель"

    Свойство Производитель (код MANUFACTURER) создается аналогично свойству Артикул, но дополнительно в настройках необходимо отметить опцию Показывать в умном фильтре и задать внешний вид свойства в фильтре с помощью параметров Вид в умном фильтре и Показать развернутым. В нашем случае сделаем отображение свойства свернутым при входе на страницу, а при разворачивании значения будут показаны с помощью радиокнопок:

    Свойство "Толщина"

    Свойство Толщина (код DEPTH) — это свойство не для всех разделов, а только для разделов Линолеум и Подложка, поэтому в форме создания свойства опция Показывать на странице редактирования элемента должна быть не отмечена:

    Все остальные настройки выполняем аналогично свойству Артикул.

    Свойство "Размер доски"

    Свойство Размер доски (код SIZE) — это свойство не для всех разделов, а только для разделов Ламинат и Паркет, поэтому его создаем аналогично свойству Толщина:

    Изменить значение свойства товара при сохранении

    Задача

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

    Решение

    Описанные в задаче действия нужно выполнять в 2х случаях: при создании элемента инфоблока и при его изменении. Так же нужно учесть, что указанные операции нужно выполнять не на всех, а только на нужных инфоблоках.

    В обычном случае для инфоблоков используются события:

    Но в условиях нашей задачи речь идет о товарах и о значении типа цены товара. В момент создания и обновления элемента инфоблока данных о его цене еще нет и получить мы их в эти моменты не можем. Поэтому нам нужно использовать события:

    Ссылка на основную публикацию
    Adblock detector