Gaps: none. Every command has a permission mapping, every mutation audits, and every client
method it calls exists. This is checked on every release by the bot’s own release-verification
script, not maintained by hand.
Categories
Orders
Refunds, cancellations, shipping, delivery and status changes
Invoices
Lookup and manual processing
Inventory
Stock, restocking, key delivery, crash recovery
Shop settings
Product info, bulk status/visibility, shop links
Customers
Lookup, balances, key lookup
Blacklist
Blocking customers from purchasing
Coupons
Shop-wide and product-scoped discounts
Product groups
Bundling products together
Affiliates & resellers
Referral codes, tiers, approvals
Purchase panels
Native in-Discord checkout
Role claim
Single-role purchase redemption
Role redemption
Granular per-product/variant role rules
Storefront
Payment methods, subscriptions, whitelist
Tickets
Support ticket handling
Feedback
Customer feedback
Analytics
Balance, overview, top performers
Insights
Abandoned checkouts, logs, traffic
Monitoring
Live SellAuth status monitor
Notifications
Sale/invoice/feedback/audit channels
Webhooks
Inbound webhook URL management
Permissions
Tier configuration per Discord role
Licensing
Registering, connecting, delegating
Admin
Health, help, servers list
Changelog
The bot’s own changelog
Utility
Standalone helpers
Permission tiers
Four tiers, least to most privileged:
By default the only gate is the licence check — anyone with a registered (or delegated) licence
can run anything at any tier. The tier system is opt-in per server. See
Permissions to configure it, and
Introduction for the full explanation of what each tier
means and who is always
owner.
Test coverage
143 of 143 commands are named by at least one test. A command is driven through its real callback by the test suite’s command kit, which loads the module’s actualregister() and invokes the genuine function — never a re-implementation. Being
named by a test is a floor, not a ceiling: it proves the command runs, not that every branch is
checked. Every command is exercised, and the release check fails the build if that regresses.
Local by design
Commands that reach no SellAuth endpoint on purpose:/leaveserver— a Discord-side operation — the bot leaves a guild, nothing shop-side/permissions commands— renders the static capability table fromcore/capabilities.py/setfeedback— SellAuth exposes no automatic-feedback setting onPUT /shops/{id}/update; the command says so rather than fabricating a toggle