Skip to content

API rate limiting

INFO

Available since plugin version 2.1.1.

The plugin actively protects the Abacus API rate limit and reduces its own call volume. The Monitoring panel visualises the same limits; this page describes how the plugin stays under them.

429 backoff

Every 429 Too Many Requests response is recorded and the call is retried up to 3 times with exponential backoff, honouring the Retry-After header (waiting at most 60 seconds per attempt). If the retries are exhausted, the call fails and the sync job reports it.

Background budget

Background and catalog syncs only use a configurable share of the mandant's rate limit (default 65% of the per-minute, per-hour and per-day limits); the remainder stays free for storefront pricing and checkout. Background jobs pause while their share is used up, and long-running jobs such as the price cache warmup stop early once the daily share is reached. Storefront price calls are only skipped when the full limit is reached - the shop then serves cached prices.

Off-peak scheduling

Bulk syncs (products, categories, shoppers, full stock sweep) only run inside a configurable off-peak window (default 23:00-05:00, Europe/Zurich), regardless of how often their scheduled task fires. The price cache warmup deliberately runs outside that window, during the day, to keep storefront prices warm. When several mandants share one Abacus, the stagger offset shifts each mandant's window so they do not start at the same time.

Settings

Plugin configuration, card API rate limiting & scheduling:

SettingDefaultMeaning
Background sync budget share (%)65Share of the rate limit reserved for background/catalog syncs
Off-peak window start (hour)23Hour (Europe/Zurich) when bulk syncs may start
Off-peak window end (hour)5Hour when the bulk-sync window closes
Sync stagger offset (minutes)0Shifts this mandant's window earlier

Call-volume reduction

Abacus prices stay cached for 60 minutes per product. The order export resolves the Abacus shopper with a single filtered query by debtor number (auto-discovering and caching the Abacus divisions) and back-fills the Abacus shopper ID onto the customer, so subsequent orders need no lookup at all.