#Признаки проблемы и применимость
После изменения цены товара в Битрикс посетители некоторое время видят старую сумму. Источником может быть кеш компонента, композитная страница, внешний CDN, отдельная торговая цена для группы пользователя или запаздывающий обмен с 1С; сначала нужно установить, где различаются значения.
#Причины и отличительные признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Кеш компонента не инвалидированКеш компонента не инвалидирован. В административной карточке цена новая, публичный HTML старый | В административной карточке цена новая, публичный HTML старый | Проверить тегированное кеширование каталога |
| Выведена другая цена или валютаВыведена другая цена или валюта. Под другой группой/количеством отображается другая сумма | Под другой группой/количеством отображается другая сумма | Проверить тип цены и валютное преобразование |
| Кеш внешнего слояКеш внешнего слоя. Обновлённый HTML виден на источнике, но не у части посетителей | Обновлённый HTML виден на источнике, но не у части посетителей | Точечно очистить CDN/композитный кеш |
#Пошаговая диагностика и исправление
- Зафиксируйте товар и тип ценыВыберите один непопулярный тестовый товар, запишите его ID, валюту, тип цены, дату изменения и сумму в административной части. Сравните публичное значение у гостя и пользователя конкретной ценовой группы. Не изменяйте цену реального товара ради диагностики без согласования.
- Отличите кеш от ценовых правЕсли суммы разные только у двух пользователей, проверьте доступные им типы цен и скидки; если у всех старая сумма, вероятнее кеш или задержка обновления. Учитывайте НДС, конвертацию валюты, количество товара и скидочные правила каталога.
- Посмотрите параметры компонента каталогаВ режиме редактирования страницы при наличии прав откройте параметры каталожного компонента. Найдите настройки кеширования, типы цен и преобразование валют; сохраните их скриншотом без личных данных. Не ставьте нулевой кеш глобально как постоянное решение.
- Проверьте обновление источника данныхЕсли товар загружается из 1С, убедитесь, что последний обмен завершился успешно и не перезаписал вручную изменённую цену. Сравните данные импорта с административным значением. Исправлять нужно источник расхождения, иначе после следующего обмена старая цена вернётся.
- Сбросьте кеш только нужной страницы или компонентаВ административном интерфейсе используйте штатные функции очистки кеша соответствующего раздела на тестовом стенде, повторите запрос в частном окне. Если сумма стала правильной, изучите настройки тегированного кеширования и механизм его сброса при изменении цены.
- Проверьте композитный режим и CDNЕсли ответ источника содержит свежую цену, а внешний посетитель — старую, сравните заголовки ответа и идентификатор узла CDN. Выполните точечное обновление одной страницы/товарного URL, не очищая всю сеть без необходимости. Проверьте пользовательские фрагменты цены в динамических областях.
- Проверьте повторное обновление на тестовом товареНа тестовой копии измените цену тестового товара один раз, сохраните, затем откройте каталог как гость и пользователь ценовой группы. Дождитесь штатного сброса кеша и посмотрите новый HTML. Если снова появляется старая сумма, восстановите исходное значение и передайте разработчику последовательность операций.
#Проверка результата
Сумма в карточке, каталоге и корзине совпадает для одной и той же группы, типа цены и валюты; после нового изменения отображается актуальное значение.
#Что делать, если не помогло
Если компонент сбрасывает кеш, но корзина показывает другое, исследуйте правила скидок, пересчёт корзины и пользовательский обработчик цены, а не только кеш HTML.