Данные о свойствах товара из 1С — атрибуты товара на сайте

Автор: admin

26 июля 2022

Свойства (характеристики) или в понимании WooCommerce — атрибуты товаров, это неотъемлемая часть практически любого каталога товаров.

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

В выгрузке данных из 1С эта информация представлена в двух блоках.

Первый — это основная информация о применяемых свойствах товаров в узле «Клаccификатор -> Свойства», который содержит ид, названия, а также набор значений (для свойств с типом «Справочник»). На основании этих данных создается набор атрибутов.

Пример данных по основной информации о свойствах из выгрузки

Второй — в товарах в узле «Товар -> ЗначенияСвойств» расположена информация о применяемых в конкретном товаре наборе свойств и значений и на основании этого, происходит заполнение атрибутов уже в самом товаре.

Пример данных по свойствам в товаре из выгрузки

Как можно видеть, в узле «Значение» может быть, как guid, если это свойство «Справочник», так и само значение (если не справочник), при этом «Ид» свойства соответствует одному «Ид» свойства из основной информации.

Пример данных с несколькими значениями на одно свойство в товаре

Как можно видеть, в узлах «ЗначенияСвойства» есть по 3 узла «Значение», а не 1, как в предыдущем. Таким образом, в данном случае, в товаре на сайте будет не одно, а три значения для этих атрибутов.

К сожалению, как правило типовые конфигурации не позволяют указать по нескольку значений для одного свойства, то есть в большинстве случаев для получения такого результата требуется кастомизация в 1С.

В связи с этим функциональным ограничением 1С, данную задачу можно решить при обработке выгрузки и использовать разделитель (Может быть применено только к простым (не «Справочник») основным свойствам товара). Таким образом, можно указать несколько значений, как одно с разделителем и в итоге на сайте у товара будет не 1 значение, а несколько.

Без применения разделителя

С разделителем (вместо одного, три значения)


Фильтр — itglx_wc1c_attribute_ignore_guid_array

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

Пример:

\add_filter('itglx_wc1c_attribute_ignore_guid_array', function ($guidArray) {     // тут должен быть guid ненужного вам свойства     $guidArray[] = '00000000-0000-0000-0000-000000000000';     // если требуются еще, то добавляем весь список     $guidArray[] = 'GUID свойства 2';     $guidArray[] = 'GUID свойства 3';     // и т.д.     return $guidArray; });

Копирование материала разрешено с указанием ссылки на первоисточник

Подпишитесь на новые статьи