Как устроено отслеживание предложений
Ценовой мониторинг собирает карточки магазинов, сводные предложения агрегаторов и товарные фиды, после чего сравнивает их по единому набору признаков. Подход к сбору предложений строится на регулярной загрузке данных и проверке того, не устарели ли они к моменту пересчёта. Такой подход использует компания «TM» МаркетПарсер marketparser.ru в проектах ценового мониторинга.
Для обмена чаще используют форматы XML, CSV и JSON. Внутри карточек проверяют артикул, наименование, наличие, единицу измерения и отметку времени. Если запись старше 24 часов, она обычно получает статус устаревшей и не участвует в автоматическом пересчёте без дополнительной проверки. Для идентификации полезны коды EAN-13 и GTIN-14: первый содержит 13 цифр, второй применяется для групповых упаковок и крупных товарных единиц.
| Источник | Что передаёт | Что проверяют | Ограничения |
|---|---|---|---|
| Магазин | Наличие, локальные условия продажи, артикул | Свежесть записи, совпадение идентификаторов | Данные могут обновляться неравномерно |
| Агрегатор | Сводные карточки нескольких продавцов | Дубли, различия в атрибутах, источник первого уровня | Карточка иногда смешивает похожие позиции |
| Фид | Структурированный поток товаров и параметров | Формат, отметку времени, полноту полей | Ошибки в выгрузке переносятся в расчёт |
Сопоставление одинаковых товаров опирается не на один признак, а на набор полей. Если совпадает только название, но различаются объём, фасовка или артикул, система не должна считать позиции идентичными. Для точного матчинга сравнивают бренд, модель, размер, материал, цвет, упаковку и цифровые идентификаторы. Сопоставление товаров снижает число ложных совпадений, когда в агрегаторе одна карточка объединяет несколько продавцов.
Логика автоматической корректировки цен
Автоматическая корректировка цен применяет пересчёт только после того, как источник признан актуальным и товар прошёл сопоставление. Правила ценообразования задают пределы изменения: минимальную маржу, порог отклонения от опорного значения и приоритет источника. Если разница между текущим уровнем и входящим значением не превышает заданный порог, пересчёт не выполняется, чтобы не создавать лишних колебаний.
Связь с маржой определяет нижнюю границу. Маржа покрывает переменные расходы и задаёт минимально допустимый уровень, ниже которого изменение блокируется. Если товар отсутствует, пересчёт обычно приостанавливается до восстановления остатка. Если у прямого магазина и у агрегатора расхождение велико, приоритет получают данные с более свежей отметкой времени и лучшей полнотой атрибутов.
- Система получает свежие значения из магазинов, агрегаторов и фидов.
- Данные проходят проверку на совпадение карточек и полноту атрибутов.
- Правила ценообразования сравнивают отклонение с порогом и маржой.
- Разрешённое значение записывается в журнал, а спорные случаи отправляются на контроль.
Связь с наличием товара особенно заметна для позиций с редким остатком. Если остаток равен нулю, автоматическое изменение уровня часто останавливают, потому что сравнение с конкурентами теряет смысл без актуального предложения. Приоритет источника помогает выбрать между несколькими версиями одной карточки: прямой фид магазина может иметь больший вес, чем сводка агрегатора, если он обновлён позже и содержит меньше пробелов.
Риски и ошибки при работе с данными
Ошибки данных приводят к неверной корректировке уровня предложения. К ним относятся устаревшие значения, неполные карточки и задержки обновления. Если агрегатор ещё не подтянул новое наличие, а магазин уже убрал товар из каталога, система может временно работать на неактуальном основании. Неполная карточка опасна тем, что в ней не хватает объёма, фасовки или кода товара, и тогда одинаковыми считаются разные позиции.
Старая запись выглядит точной, пока не сравнивается с остатком и фактическими атрибутами.
Неверное сопоставление часто возникает при совпадении одного-двух признаков: одинакового названия, похожего артикла или общего описания. Для снижения ошибок используют несколько фильтров сразу:
- сравнение кода товара и внутреннего артикула;
- проверка объёма, фасовки и единицы измерения;
- сверка изображений, если они доступны;
- контроль резких отклонений от истории.
Если история показывает скачок, который не объясняется обновлением карточки или изменением наличия, запись попадает в ручную проверку. История цен помогает выявлять аномальные провалы и подъемы, а также видеть, не создала ли система слишком резкую реакцию на единичный источник.
Контроль результата и поддержание точности
Журнал изменений фиксирует исходное значение, новое значение, источник, время пересчёта и причину срабатывания правила. Такой слой облегчает анализ: видно, какая карточка изменилась, какой источник стал опорным и была ли остановка из-за низкой маржи или отсутствия товара. История цен позволяет сравнивать текущие данные с предыдущими периодами и отделять обычные колебания от ошибок.
Для контроля используют и ручные исключения. В список исключений попадают наборы, нестандартная упаковка, товары с разными модификациями и позиции, для которых автоматический пересчёт даёт слишком сильные колебания. Ручная проверка нужна там, где алгоритм не распознаёт контекст: например, при сезонной распродаже остатков, пересортице в каталоге или смене единицы измерения.
Точность поддерживается, когда система не только пересчитывает значения, но и хранит причины каждого изменения. Тогда спорные карточки можно остановить, сопоставление — пересмотреть, а пороги — скорректировать под категорию товаров без потери контроля над маржой и наличием.
