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