Installation
Requirements
- Craft CMS 5.3 or later
- Craft Commerce 5.0 or later
- PHP 8.2 or later
Install
composer require justinholtweb/craft-abacus
php craft plugin/install abacus
Or find Abacus in the Craft Plugin Store and install it from there.
Nothing changes until you say so
Abacus installs with one disabled scheme per store. Installing a plugin should never silently renumber a live store, so until you open Abacus → Schemes, set a format and switch the scheme on, every order keeps the reference Commerce gives it.
Your first scheme
- Go to Abacus → Schemes and open the scheme that was created for your store.
- Set a Reference format. It must contain
{number}— see Configuration. - Set the Starting number, Increment and Zero padding.
- Choose a Reset policy. If you pick anything other than Never, put a date token in the format too.
- Watch the live preview of the next three numbers. It reflects everything above, and it never spends a number.
- Switch the scheme on.
The next order to complete gets the first number.
Editions
Lite is free. Pro is a one-off $39 with a $19/year renewal, and adds everything that gets interesting once you have more than one kind of order.
| Lite | Pro | |
|---|---|---|
| Price | Free | $39, $19/year renewal |
| One sequence per store | ✅ | ✅ |
| Format tokens — prefix, suffix, date, store, site | ✅ | ✅ |
| Zero-padding, custom start, custom increment | ✅ | ✅ |
| Counter resets — daily, monthly, yearly | ✅ | ✅ |
| Live preview of the next three numbers | ✅ | ✅ |
| Panel on Commerce's order screen | ✅ | ✅ |
craft.abacus.* Twig API | ✅ | ✅ |
| Console: status, preview, set | ✅ | ✅ |
| Several schemes per store, matched by order condition | — | ✅ |
| Skip lists — reserve numbers and ranges | — | ✅ |
| Reclaim numbers from orders that never completed | — | ✅ |
| Backfill existing orders, with dry run and undo | — | ✅ |
| Allocation ledger in the CP, with CSV export | — | ✅ |
Existing orders
Installing Abacus does not touch orders that have already completed. To bring them into the sequence, use Backfill — which rehearses before it writes.