Сопоставление товаров
Система сопоставления товаров предназначена для автоматического установления связей между товарами из прайс-листов всех типов и товарами в вашем основном каталоге. Это необходимо для последующего импорта цен и наличия, а также для обновления информации о товарах. Работа механизма основана на гибких правилах, которые вы настраиваете.
Ни какого ручного сопоставления, только автоматическое, мы не занимаемся бесполезной работой, мы делаем так, чтобы можно было всё удалить, а затем запустить заново и все работало сразу. Банальная ситация, год вручную сопоставляли товары, кто то не туда нажал и сопоставляем еще год, бесполезно потраченные время и силы, только автоматически.
Система сопоставления позволяет сопоставить товары в любых ситуациях, даже если у вас нет полей для сопоставления, нужно проявить сообразительность и всё получится. Но если не получится, поверьте, такой поставщик ни кому не нужен, от него будут исключительно проблемы и полное отсутствие пользы.
Что нужно учитывать
Вам нужно сделать такие правила, которые гарантировано и безошибочно будут сопоставлять товары, старайтесь не использовать поля, где могут содержаться несколько значений для сопоставления, в этом случае ваш алгоритм в любом случае сломается и заметно это будет не сразу. Плохая идея пытаться извлекать артикулы из названий товаров, простой пример: Патрон 2132545 для перфоратора 55689858 - с большой долей вероятности вы увидите ошибку тогда, когда придется продать перфоратор по цене патрона.
Изучайте ваши данные, какая в них логика, где можно не учитывать и даже нужно не учитывать спецсимволы, а где их нужно обязательно учитывать. Всегда думайте о том, что уникальных артикулов среди разных брендов практически нет, такие бренды можно пересчитать по пальцам. Чем короче и проще артикул, тем больше пересечений между разными брендами, всегда создавайте правила так, чтобы было ограничение по бренду, даже если его нет, такое тоже можно решить этой системой сопоставления.
Принцип работы
Основной принцип работы заключается в последовательном применении правил сопоставления. Каждое правило определяет, по каким полям и каким образом сравнивать товар из прайс-листа с товаром в каталоге. Сначала система отбирает все активные правила для конкретного сайта. Затем для каждого прайс-листа, по которому завершился импорт или было запущено ручное сопоставление, система последовательно применяет эти правила. Применение правил происходит в порядке их приоритета: чем меньше число в поле "Приоритет", тем раньше применяется правило. Это позволяет сначала пытаться сопоставить по самым точным и надежным критериям, например, по уникальному артикулу, а затем, если связь не найдена, по менее строгим, например, по названию. Или наоборот, сначала сопоставить то, что может перекрываться другими правилами, например, есть модели, но нет брендов, есть спецсимволы и прочее.
Процесс сопоставления для одного правила оптимизирован для скорости. Вместо того чтобы попарно сравнивать каждый товар из прайса с каждым товаром из каталога, система строит специальный индекс-словарь для товаров каталога. Ключом в этом словаре является подготовленное значение для сравнения (например, артикул), а значением — список идентификаторов товаров каталога с таким значением. Затем для каждого товара из прайса система подготавливает его значение и мгновенно находит соответствующие товары в каталоге по этому индексу. Такой подход позволяет обрабатывать десятки тысяч товаров за секунды. После нахождения кандидатов система проверяет, не создана ли уже такая связь, и, если требуется, проверяет совпадение брендов. Если найдено несколько подходящих товаров каталога, ситуация фиксируется как конфликт. Конфликтные ситуации, кстати, сигнализируют о том, что в вашем каталоге есть дубли товаров и нужно это проверить.