Version 5.1.0

October 9, 2026

Added

  • Failure alerts. Sager sends one email — and optionally a Slack, Teams or signed JSON webhook — when something goes wrong with Sage, and one when it has cleared: orders or refunds failing to reach Sage, Sage refusing the connection, Sage’s 31-day authorisation about to run out on a quiet store, and orders stuck in a queue that isn’t running. Each incident is latched, so checking it a hundred times sends nothing new, with a quiet period after a recovery.
  • A Sage health Dashboard widget: the connection, synced/failed/waiting counts, the last invoice, the authorisation expiry and any open incident.
  • Open incidents are shown on the Sager overview screen.
  • php craft sager/alerts/check and php craft sager/alerts/test; sager/sync/pending runs the same check when it finishes. A Send a test alert button (admins only) on the settings screen.
  • A refund that fails for good is now written to the connection log as refund.failed.

Changed

  • An unreadable answer from Sage's token endpoint now reads "Sager could not read Sage's reply to its request for an access token." The old "Sage returned a token response…" reached the failure alert as "a token ••••", because alert redaction masks whatever follows the word "token".