API-Rate-Limiting
INFO
Verfügbar ab Plugin-Version 2.1.1.
Das Plugin schützt das Abacus-API-Rate-Limit aktiv und reduziert sein eigenes Aufrufvolumen. Das Monitoring-Panel visualisiert dieselben Limits; diese Seite beschreibt, wie das Plugin darunter bleibt. Die Limits hängen von der konfigurierten Abacus-Version ab (bis 2025 200/12000/30000 pro Minute/Stunde/Tag, ab 2026 400/18000/40000).
429-Backoff
Jede 429 Too Many Requests-Antwort wird erfasst und der Aufruf bis zu 3-mal mit exponentiellem Backoff wiederholt, wobei der Retry-After-Header berücksichtigt wird (maximal 60 Sekunden Wartezeit pro Versuch). Sind die Wiederholungen ausgeschöpft, schlägt der Aufruf fehl und der Sync-Job meldet dies.
Hintergrund-Budget
Hintergrund- und Katalogsynchronisierungen nutzen nur einen konfigurierbaren Anteil des Mandanten-Rate-Limits (Standard 65% der Minuten-, Stunden- und Tageslimits); der Rest bleibt für Storefront-Preise und Checkout frei. Hintergrund-Jobs pausieren, solange ihr Anteil ausgeschöpft ist, und langlaufende Jobs wie das Preis-Cache-Warmup stoppen vorzeitig, sobald der Tagesanteil erreicht ist. Storefront-Preisaufrufe werden erst beim vollen Limit übersprungen - der Shop liefert dann gecachte Preise.
Nebenzeit-Planung
Massensynchronisierungen (Produkte, Kategorien, Shopper, kompletter Bestandsabgleich) laufen nur innerhalb eines konfigurierbaren Nebenzeitfensters (Standard 23:00-05:00, Europe/Zurich), unabhängig davon, wie oft der geplante Task auslöst. Das Preis-Cache-Warmup läuft bewusst ausserhalb dieses Fensters, tagsüber, um die Storefront-Preise warm zu halten. Teilen sich mehrere Mandanten ein Abacus, verschiebt der Versatz das Fenster pro Mandant, damit sie nicht gleichzeitig starten.
Das Fenster gilt nur für automatische Läufe. Manuelle Synchronisierungen (Monitoring-Dashboard, Retry, scheduled-task:run-single) laufen immer, zählen aber zum Budget.
Einstellungen
Plugin-Konfiguration, Karte API-Ratenbegrenzung & Planung:
| Einstellung | Standard | Bedeutung |
|---|---|---|
| Budgetanteil für Hintergrund-Synchronisierung (%) | 65 | Anteil des Rate-Limits für Hintergrund-/Katalogsynchronisierungen |
| Beginn des Nebenzeitfensters (Stunde) | 23 | Stunde (Europe/Zurich), ab der Massensynchronisierungen starten dürfen |
| Ende des Nebenzeitfensters (Stunde) | 5 | Stunde, zu der das Fenster schliesst |
| Versatz der Synchronisierung (Minuten) | 0 | Verschiebt das Fenster dieses Mandanten nach vorne |
Reduktion des Aufrufvolumens
Abacus-Preise bleiben pro Produkt 2 Stunden gecacht, fehlende Preise 15 Minuten (Container-Parameter abacus_price_cache_ttl_seconds / abacus_price_cache_miss_ttl_seconds). Der Auftragsexport löst den Abacus-Shopper mit einer einzigen gefilterten Abfrage über die Debitorennummer auf (die Abacus-Divisionen werden automatisch ermittelt und gecacht) und schreibt die Abacus-Shopper-ID an den Kunden zurück, sodass Folgeaufträge gar keinen Lookup mehr benötigen.
