Поиск существующего товара по артикулу при обработке выгрузки
Когда дело доходит до интеграции с 1С, то часто бывает ситуация, что каталог на сайте уже заполнен и конечно же нет никакого желания все удалять и создавать по данным из 1С.
Эта ситуация вполне разрешима, если у товаров на сайте и позиций номенклатуры в 1С, указаны артикулы, они уникальны и совпадают. В таком случае, следует включить в настройках плагина, чекбокс “Попытка поиска товара по артикулу”
У товара на сайте артикул располагается в блоке “Данные товара” на вкладке “Запасы” и хранится в метаданных по ключу “_sku”. В выгрузке артикул поступает в данных о номенклатуре в узлах “Товар -> Артикул”. Именно эта информация участвует в поиске по артикулу. Также, у товара не должно быть заполнено GUID. То есть, товар будет найден, если артикул товара на сайте совпадает с артикулом товара в выгрузке и у товара на сайте нет GUID.
При таком сведении товаров на сайте с позициями из 1С, может потребоваться настроить игнорирование части данных, например описания, изображений или еще чего-то, чтобы не затирать их на сайте по данным из 1С. В этом вам помогут настройки на вкладке “Пропуск / исключение данных”
Обратите внимание на комментарии под настройками.
Свое поведение поиска существующего товара
Вполне возможно, что вам потребуется какой-то другой вариант поиска уже существующего товара на сайте и по другим данным. В данном случае, не включайте поиск по артикулу в настройках (чтобы не производить бесполезные попытки) и используйте фильтр `itglx_wc1c_find_product_id` (два параметра – текущее значение и SimpleXml объект узла товара) для реализации своего поведения поиска.
Предположим, в xml товара у вас передается какой-то узел “Товар->Custom” со значением, при этом у товаров на сайте, в метаданных по ключу “_custom” есть это значение. Также учтем, что у поста продукта не должно быть записанного GUID, то есть мета по ключу `_id_1c` должна отсутствовать или быть пуста.