Skip to main content

Поиск существующей категории по названию при обработке выгрузки

27 августа, 2021 (обновлено: 20 июня, 2024)
Просмотров 425
Section background
Версия: 1.131.0 | Последнее обновление: 08 октября 2024 | открыть

Когда дело доходит до интеграции с 1C (СБИС, МойСклад, то есть системой учета, далее СУ) , то часто бывает ситуация, что каталог на сайте уже заполнен и конечно же нет никакого желания все удалять и создавать по данным из СУ.

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

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

В итоге, при обработке данных по группам, если на сайте еще нет категории с таким GUID, произойдет попытка поиска существующей категории, которая также не имеет записанного GUID и, если категория будет найдена, то ей будет записана постоянная связь (значение GUID) в метаданные по ключу `_id_1c`.


Свое поведение поиска существующей категории

Вполне возможно, что вам потребуется какой-то другой вариант поиска уже существующей категории на сайте и по другим данным. В данном случае, не включайте поиск по названию в настройках (просто чтобы не производить бесполезные попытки) и используйте фильтр `itglx_wc1c_find_product_cat_term_id` (4 параметра — текущее значение, SimpleXml объект узла группы, таксономия и ID термина родителя) для реализации своего поведения поиска.

Предположим, в xml группы у вас передается какой-то узел «Группа->Custom» со значением, а у категорий на сайте в метаданных по ключу «_custom» есть это значение. Также учтем, что у термина категории не должно быть записанного GUID, то есть мета по ключу `_id_1c` должна отсутствовать или быть пуста.


Поделиться: