Храните не только цену, но и происхождение наблюдения
Для каждого значения нужны время фактической проверки, ссылка или идентификатор предложения, статус наличия, вариант товара, регион и способ получения данных. Время записи в вашу базу не заменяет время наблюдения: очередь могла доставить результат позже, а повторная обработка — создать видимость свежего события без нового обращения к витрине.
Разделяйте цену карточки, цену покупателя и промо-условие, если источник позволяет их увидеть. Одно число без контекста нельзя безопасно сравнивать с собственной витринной ценой. При смене продавца, вариации или комплектации прежнее наблюдение должно потерять пригодность, даже если технический срок ещё не истёк.
Назначайте TTL по скорости решения, а не один на весь магазин
Срок годности должен быть короче там, где цена конкурента меняется часто, товар участвует в короткой акции или репрайсер принимает решение несколько раз в день. Для стабильного нишевого SKU допустимо более длинное окно. Универсальный TTL либо создаёт лишние проверки, либо оставляет быстрые категории под управлением вчерашних данных.
Привяжите TTL к сегменту SKU, рабочему расписанию мониторинга и цене ошибки. Если неверное снижение способно быстро увести маржу, правило должно требовать более свежего подтверждения. Для повышения цены можно использовать другой порог, потому что риск потери конверсии и риск продажи в минус несимметричны.
Отличайте устаревшее значение от стабильной цены
Неизменная цена несколько дней не обязательно устарела: конкурент мог действительно ничего не менять. Критичен возраст последней успешной проверки, а не возраст самой цифры. С другой стороны, новый ответ API не доказывает актуальность, если он возвращает кэш, неполный вариант или карточку без доступного предложения.
Добавьте проверки качества: доступность конкурента, совпадение комплектации, регион, непротиворечивость цены и результат повторного чтения после ошибки. Таймаут, блокировка страницы или пустой ответ не должны продлевать срок годности последнего удачного значения. Они повышают неопределённость и переводят решение в отдельный статус.
Заранее задайте резервное правило репрайсера
После истечения TTL нельзя молча продолжать следовать последней цене. Безопасный сценарий может удерживать текущую цену, вернуться к собственному ценовому коридору, использовать медиану нескольких свежих конкурентов или запросить ручное подтверждение. Выбор зависит от маржи, доступного остатка и роли SKU.
Кратковременная задержка мониторинга и длительная потеря источника требуют разных реакций. Введите ступени: короткая пауза без изменения, затем ограниченное решение внутри коридора, после — исключение конкурента и уведомление. Так сбой внешнего наблюдения не превращается в бесконечное управление по одной старой точке.
Защититесь от массовой реакции на сбой источника
Если одновременно устарели цены многих конкурентов, проблема вероятнее относится к сбору данных, а не к рынку. Репрайсер должен видеть долю свежих наблюдений по категории и источнику. При падении покрытия ниже порога полезнее заморозить зависимые действия, чем независимо пересчитать сотни SKU по неполному набору.
Для решения по нескольким конкурентам используйте кворум: минимальное число свежих и сопоставимых предложений. Один оставшийся источник не всегда представляет рынок. Ограничьте максимальный шаг цены и запретите массовое расширение коридора до восстановления наблюдений, даже если резервное правило формально выдаёт допустимое значение.
Измеряйте, как свежесть влияет на результат
В журнале решения храните возраст использованных наблюдений, выбранный TTL, резервный сценарий и причину исключения конкурента. Затем сравнивайте долю действий на свежих данных, число отменённых изменений и результат после восстановления источника. Это покажет, где TTL слишком строгий или, наоборот, опасно длинный.
ВитринаPro связывает мониторинг цен конкурентов с правилами репрайсинга и защитным ценовым коридором. Селлер видит не только последнюю цену, но и пригодность сигнала для конкретного решения, поэтому временная недоступность источника не заставляет робота угадывать рынок.
Частые вопросы
Что такое срок годности цены конкурента?
Это максимальный возраст последней успешной и сопоставимой проверки, после которого значение нельзя автоматически использовать для нового ценового решения.
Можно ли назначить один TTL всем товарам?
Технически можно, но безопаснее разделить SKU по волатильности, частоте решений и цене ошибки. Быстрым и рискованным категориям нужны более свежие данные.
Что делать репрайсеру после истечения TTL?
Перейти на заранее заданный сценарий: удержать цену, работать только внутри собственного коридора, использовать кворум других свежих конкурентов или запросить подтверждение.
Продлевает ли ошибочный ответ API срок годности?
Нет. Таймаут, пустой ответ или неподтверждённая карточка не являются новой проверкой и должны увеличивать неопределённость, а не освежать старое значение.
Старая цена конкурента — не ориентир, а неподтверждённое наблюдение. Задайте TTL, кворум свежих источников и резервное правило до того, как мониторинг даст сбой.
Проверить на своих товарах