Автоматизация процессов

Мониторинг цен конкурентов: сопоставление товаров и проверка ценовых изменений

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

Схема мониторинга: подтверждение товарной пары, получение цены и условий, проверка аномалии и решение ответственного сотрудника

Мониторинг цен конкурентов полезен, когда руководитель видит не просто набор чисел, а подтверждённые пары одного товара, условия каждого предложения и причины сомнительных изменений. Для начала достаточно выбрать несколько важных SKU, вручную проверить соответствие карточек и договориться, какие решения команда принимает по итогам отчёта.

Главное ограничение: мониторинг наблюдает и сообщает об изменениях, но сам по себе не должен автоматически менять собственный прайс. Резкий скачок может означать скидку, другую упаковку, смену карточки или ошибку извлечения. До проверки ответственным сотрудником это только сигнал.

Что считать мониторингом цен конкурентов

Сначала задайте перечень собственных товаров и предложений конкурентов, которые нужно регулярно сравнивать. Для каждой пары укажите источник, идентификаторы товара и решение, которому служат данные. Например, руководитель может использовать отчёт, чтобы проверить позиционирование цены, подготовить переговоры или выбрать карточки для ручного разбора.

Объект мониторинга — не сайт конкурента целиком, а подтверждённая пара предложений одного товара. В записи должны сохраняться собственный SKU, ссылка на карточку источника, найденный артикул, комплектация, регион и условия цены. Если соответствие ещё не подтверждено, строка не должна участвовать в итоговом сравнении.

Наблюдение и изменение собственного прайса — два разных процесса:

  1. Система получает цену и связанные условия.
  2. Правила проверяют полноту данных и необычные изменения.
  3. Ответственный сотрудник разбирает исключения.
  4. Решение о собственной цене принимается по утверждённым правилам.

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

Как сопоставлять одинаковые товары

Название помогает найти кандидатов, но не доказывает идентичность. У двух карточек могут совпадать основные слова, хотя они относятся к разным моделям, объёмам или наборам. Поэтому пару проверяют как минимум по пяти признакам:

  • артикулу или другому устойчивому коду товара, включая SKU продавца;
  • точной модели и существенным характеристикам;
  • комплектации, объёму или числу предметов;
  • единице продажи: штука, упаковка, метр, килограмм;
  • региону предложения и доставки.

Документация сервиса Priceva описывает поиск соответствий по SKU, названию и параметрам, а также ручной, гибридный и автоматический варианты сопоставления. Для собственного процесса это не доказательство безошибочности: найденную пару всё равно нужно подтвердить по выбранным полям. Заявления конкретного вендора о точности или эффекте нельзя переносить на другое решение.

После первичного поиска сотрудник открывает обе карточки и подтверждает пару. Если артикул совпал, но в одной карточке набор из пяти единиц, а в другой — одна единица, товары могут быть идентичными по составу, но цены нужно привести к общей единице. Если отличается модель, объём самого изделия или состав набора, это аналог либо замена. Такой товар можно анализировать отдельно, но нельзя включать в расчёт цены того же товара.

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

Какие условия сохранять вместе с ценой

Одного поля «цена» недостаточно. Вместе со значением сохраняйте:

  • публичную базовую цену и валюту;
  • наличие или явный статус его неопределённости;
  • дату и время наблюдения;
  • количество единиц в упаковке;
  • стоимость и условия доставки;
  • регион;
  • тип скидки;
  • URL источника.

Цена по карте, персональный промокод и предложение после авторизации доступны не каждому покупателю. Их нужно хранить отдельными вариантами, а не подменять ими публичную цену. Иначе отчёт покажет искусственное снижение относительно предложений без специальных условий.

Доставку также нельзя молча включать только в часть строк. Если задача требует полной цены получения товара, используйте одинаковую формулу для всех предложений. Если стоимость доставки неизвестна, запишите «неизвестно». Ноль означал бы подтверждённую бесплатную доставку, а это другое условие.

Те же правила относятся к наличию. «Нет в наличии», «страница недоступна» и «поле не удалось извлечь» — разные состояния. Ни одно из них не означает нулевую цену.

Как получать данные и отслеживать изменения

Способ получения выбирают для каждого источника отдельно.

СпособКогда подходитЧто проверить до настройки
Разрешённый APIИсточник предоставляет нужные методы и праваДоступные поля, права, ограничения, частоту запросов и правила использования
ВыгрузкаВладелец данных передаёт CSV, XML, JSON или таблицуФормат, периодичность, идентификаторы, валюту, полноту и порядок обновления
Публичная страницаНужные сведения опубликованы и их получение допустимоПравила источника, стабильность разметки, допустимую нагрузку и обработку ошибок

Если таблица не помещается, прокрутите её вправо. С клавиатуры используйте стрелки.

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

Не следует обещать обход CAPTCHA, авторизации, блокировок или других ограничений. Если разрешённого способа получить данные нет, источник нужно исключить либо согласовать иной законный канал с его владельцем.

Для каждого запуска сохраняйте время, адрес источника, полученное значение и статус ответа. Частоту обновления выбирайте по рабочей задаче и допустимой нагрузке, а не по принципу «чем чаще, тем лучше». Настройки библиотек сбора данных, включая Scrapy, сверяют с документацией используемой версии; технический параметр не заменяет проверку прав и условий источника.

Как проверять выбросы и неполные ответы

Проверка должна различать как минимум три результата:

  • подтверждённое изменение цены — карточка и условия прежние, данные получены полностью;
  • возможная смена карточки или комплектации — изменились идентификаторы, количество, модель либо описание набора;
  • ошибка или неполный ответ источника — страница недоступна, поле пустое или извлечение завершилось ошибкой.

При неполном ответе сохраните последнюю подтверждённую цену, URL, время новой попытки и причину неопределённости. Не заменяйте пропуск нулём и не рассчитывайте процент изменения от него. Иначе кратковременная ошибка превратится в ложное падение цены.

Для выброса полезно хранить прежнее и новое значения, формулу изменения и поля, которые нужно перепроверить. Порог передачи человеку задаётся в требованиях проекта. Сам факт превышения порога не доказывает ошибку: он только запускает проверку.

Сотрудник последовательно сверяет карточку, SKU, модель, количество в упаковке, тип скидки, регион, наличие и корректность извлечения. Если источник изменил структуру страницы, система должна показать ошибку, а не сообщать об успешном обновлении.

Учебный пример цены за штуку и упаковку

Ниже — синтетический пример, а не клиентский файл, выполненный тест или результат Switch On AI. Один условный товар с SKU NX-100 продаётся поштучно и упаковкой из пяти. Для сравнения полной цены используем формулу:

(базовая цена + доставка) / количество штук.

ПредложениеSKUКомплектацияКоличествоБазовая ценаДоставкаУсловие скидкиНаличиеРегионДатаРасчёт за штукуСтатус сопоставимостиИсточник
ANX-100Одна штука11 200 ₽300 ₽Публичная ценаЕстьМосква06.10.2026(1 200 + 300) / 1 = 1 500 ₽/шт.Тот же товар; цену можно сравнить после пересчёта за штукуУсловный источник A
BNX-100Упаковка из пяти55 500 ₽500 ₽Публичная ценаЕстьМосква06.10.2026(5 500 + 500) / 5 = 1 200 ₽/шт.Тот же товар; цену можно сравнить после пересчёта за штукуУсловный источник B
CNX-100Упаковка из пяти55 000 ₽500 ₽Цена по картеЕстьМосква06.10.2026(5 000 + 500) / 5 = 1 100 ₽/шт.Тот же товар, но условие цены несопоставимо с публичными предложениямиУсловный источник C

Если таблица не помещается, прокрутите её вправо. С клавиатуры используйте стрелки.

При одинаковых подтверждённых характеристиках предложения A и B можно сравнить по полной цене за штуку: 1 500 и 1 200 ₽. Предложение C нельзя ставить с ними в один публичный рейтинг, потому что покупателю нужна карта. Его значение сохраняется отдельно с условием доступа.

Если руководителю нужна цена без доставки, расчёт будет другим: A — 1 200 ₽/шт., B — 1 100 ₽/шт., C — 1 000 ₽/шт. Показатели с доставкой и без неё нельзя смешивать в одной колонке.

Теперь добавим учебную аномалию. Вчера публичная упаковка B стоила 5 500 ₽, а сегодня система извлекла 2 750 ₽ при заявленных пяти штуках. Изменение базовой цены:

(2 750 − 5 500) / 5 500 × 100% = −50%.

Нельзя сразу записывать цену 550 ₽ за штуку и менять собственный прайс. Строку нужно передать сотруднику: проверить карточку, количество в упаковке, скидку, регион, наличие и результат извлечения. Если все условия подтвердятся и доставка останется 500 ₽, полная цена составит (2 750 + 500) / 5 = 650 ₽/шт.. До подтверждения строка получает статус «аномалия» и не участвует в автоматическом решении.

Схема учебного примера: цена упаковки и доставка делятся на количество штук, а цена по карте и скачок получают отдельный статус

Как принять мониторинг и обсудить внедрение

Начните с малой разрешённой выборки: нескольких приоритетных SKU и источников. Это будущая процедура приёмки, а не заявление о проведённом тесте.

  1. Сотрудник вручную подтверждает пары по артикулу, модели, комплектации, единице и региону.
  2. Команда сверяет публичную цену, скидки, наличие, доставку и дату.
  3. Для каждой пары проверяют несколько записей истории.
  4. Отдельно воспроизводят недоступный источник, неполный ответ и подозрительный скачок.

Мониторинг можно принимать, если тот же товар отделён от аналога, единицы и условия сохранены, недоступность не превращается в нулевую цену, а сомнительный скачок уходит на проверку. Если исходные сведения приходят от поставщиков в таблицах и файлах, полезно отдельно разобрать обработку прайс-листов.

Switch On AI может помочь описать эту операцию и после проверки данных, доступных API и прав предложить подходящий формат: фиксированную интеграцию, бота для взаимодействия с сотрудником или ИИ-помощника, если системе действительно нужно выбирать следующее разрешённое действие. Конкретную совместимость и способы подключения проверяют для выбранных источников; упоминание продукта не означает партнёрство или выполненное внедрение.

Стоимость разработки зависит от количества подтверждённых пар, частоты обновления, способа доступа и объёма ручной проверки. Подписка стороннего сервиса может стать отдельным расходом, но её цена не является стоимостью разработки Switch On AI. Маржинальность и другой экономический эффект заранее не гарантируются.

Чтобы оценить задачу, подготовьте несколько артикулов, разрешённые источники, обязательные условия сравнения и пример спорного изменения. Затем можно обсудить одну операцию и согласовать границы прототипа. Прототип помогает проверить ключевой сценарий, но не равен полноценному внедрению.

Вопросы по этой задаче

Можно ли сравнивать товары только по названию?

Нет. Название подходит для поиска кандидатов, но пару нужно подтвердить по артикулу или SKU, модели, комплектации, единице продажи и региону. Иначе в сравнение может попасть аналог или другая упаковка.

Что делать с ценой по карте?

Хранить её отдельным предложением с явным условием доступа. Её нельзя подставлять вместо публичной базовой цены или смешивать с общедоступными предложениями в одном сравнении.

Отсутствие товара равно нулевой цене?

Нет. Отсутствие товара, недоступная страница и ошибка извлечения — отдельные статусы. Следует сохранить последнюю подтверждённую цену и причину неопределённости, не записывая ноль.