Skip to main content

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

17 мая, 2020 16:51
Просмотров 1869
Section background

Свойства (характеристики) или в понимании 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;
});
Поделиться: