Часто возникает задача синхронизации списков товаров, категорий на сайте, заказов и покупателей. Для заказов есть Webhooks, но они не гарантируют доставку.
Обычно мы начинаем листать страницы при помощи per_page и page. Но иногда мы не узнаем об изменениях. Так получается из-за того, что пока обрабатывается первая страница (и в это время готовимся забрать вторую), объект с первой страницы удалили. Или обновили объект, и он поменял свое положение в списке. Список обновился, и первый объект второй страницы оказался на первой, которую мы уже получили. То есть о его изменениях мы не узнаем.
Для того чтобы гарантировано забрать изменения в InSales используются для параметра:
В случае если передать параметр updated_since, объекты упорядочиваются по возрастанию updated_since и возрастанию ID. И мы всегда забираем первую страницу, у нас просто меняется фильтр. Это гарантирует, что мы не потеряем данные. Количество запрашиваемых объектов передается в per_page.
Алгоритм работы такой: