Этап 5 — Продавец
2.8 Этап 5 — Разрешение продавца
Каждый чек сопоставляется с merchant_id. Разрешение продавца выполняется в синхронном потоке, поэтому проверенное превью уже содержит разрешённого продавца. Разрешение устроено как многослойный приоритетный каскад — каждый слой запускается только тогда, когда предыдущий не дал совпадения:
- Налоговый идентификатор — напечатанный налоговый номер (VKN в Турции) проверяется алгоритмом контрольной цифры и ищется в мастер-таблице продавцов. Действительный налоговый номер — прямое совпадение по идентичности.
- Распознанный бренд — когда этап извлечения распознал бренд известной сети, официальная форма бренда напрямую разрешается в продавца-сеть.
- Шаблонные якоря — выученные текстовые шаблоны по каждому продавцу сопоставляются с нормализованным названием продавца; приветственные префиксы отсекаются перед сравнением.
- Местоположение — адресные сигналы сужают кандидатов, когда одних лишь свидетельств по названию недостаточно.
- Нечёткое совпадение — сходство нормализованного названия с существующими кандидатами-продавцами.
- Автосоздание — когда ни один слой не совпал, путь с ограничением частоты создаёт новую запись продавца, которая попадает в очередь верификации.
Настройки сходства в каскаде управляются внутренним операционным слоем.
Сопоставление сетей
Продавец, разрешённый в известную сеть (BIM, A101, Migros, ŞOK), получает chain_id. Сети управляют двумя вещами:
- Межфилиальная агрегация для B2B-продукта данных (цены корзин «по всей стране Migros»).
- Географическое обогащение — при согласии пользователя адрес филиала обогащается городом/регионом из мастер-таблицы продавцов.
Географическое обогащение (только при согласии)
Если пользователь включил совместное использование местоположения, чек помечается разрешённым городом/регионом. Система использует географию на уровне города. Это удовлетворяет обязательству по конфиденциальности в 08 и требованию k-анонимности B2B-продукта данных в 05.
Неизвестный продавец
Если ни один слой не дал разрешения, а автосоздание отклонено, чек записывается с merchant_id = null, а merchant_raw_name сохраняется. Скорер доверия (03) трактует неизвестного продавца как слабый негативный сигнал. Несопоставленные продавцы разбираются через административную очередь верификации.