FAQ
Does Abacus change order.number?
No. order.number is the 32-character cart hash Commerce uses to identify a cart in URLs and
cookies — a security token, not a customer-facing number. Rewriting it would break carts. Abacus
only ever writes order.reference.
Do I have to change my templates?
No. Abacus writes to Commerce's own order.reference, so the new number appears everywhere the
old one did: the order index, emails, PDFs, and {{ order.reference }}.
What happens to orders that completed before I installed it?
Nothing, until you ask. Pro's Backfill renumbers them in completion order, rehearses first, and can put the old references back.
Can I guarantee there are no gaps?
No, and neither can anything else that hands out a number before the record is saved. Abacus allocates before the order element saves, so a failed save spends a number. What Abacus offers instead of a promise is visibility — every allocation is in the ledger — plus reclaim, which hands an abandoned number to the next order once the reclaim window has passed.
Can different order types get different sequences?
Yes, on Pro. Add a scheme per sequence and give each one a Commerce order condition. Schemes are tried in order and the first match wins, so keep the unconditional catch-all last.
Will it slow down checkout?
No meaningfully. Allocation holds a per-scheme mutex for the few milliseconds it takes to render one reference and write two rows, inside the order save that was already happening.
What if two orders complete at the same instant?
They queue on the scheme's mutex and get consecutive numbers. That is the whole reason allocation goes through a single locked method rather than reading and incrementing a column.
Can I set the counter to a specific number?
Yes — in the CP, or php craft abacus/numbers/set --scheme=orderNumbers --number=5000. It refuses
to move backwards. Reissuing a number that may already be on a printed invoice is worse than a gap.
Does the preview spend a number?
No. Nothing in the Twig API or the scheme editor's live preview allocates. Preview and allocation share one implementation of "what comes next", so what you see is what the next order will get — it is simply walked with a local cursor instead of a written one.
Which Craft and Commerce versions are supported?
Craft CMS 5.3+, Craft Commerce 5.0+, PHP 8.2+.
Is Abacus free?
Lite is, and it is not a trial — one sequence per store, with the full format, padding, increment and reset options, for nothing. Pro is a one-off $39 with a $19/year renewal.
What is the difference between Lite and Pro?
Lite gives you one sequence per store. Pro adds several schemes matched by order condition, skip lists, reclaim, backfill with dry run and undo, and the allocation ledger with CSV export — the things you start needing once wholesale, retail and subscription orders each want their own run of numbers. See Installation for the full table.
What happens when the renewal lapses?
Pro keeps working. Renewals buy updates, the way every Craft plugin licence does — your numbers carry on being issued either way.