Serials (simple)
Use Serials fulfillment mode for Steam keys, gift codes, beta access codes, and other one-time codes buyers paste elsewhere.Uploading
Add codes from the product’s Serials tab, either paste one per line or upload a CSV. Shoppex stores them as an unlocked pool. When a buyer pays, one code locks to their order and is removed from the pool. The product lists as “out of stock” once the pool is empty. Top it up at any time.Replacements
If a buyer reports an invalid or already-used code, issue a replacement from the order detail page under Replace. The replacement comes from the remaining pool, and the bad code is marked burned so it will not be issued again.Licenses (advanced)
The Licenses system goes far beyond serials. Each license is its own object with:- Status:
ACTIVE,SUSPENDED,REVOKED, orEXPIRED. Change it at any time. - HWID binding: bind a license to the first machine that activates it. Activations from other machines fail unless you reset the HWID.
- IP locks: restrict a license to a single IP or range.
- Expiration: licenses can be perpetual or expire on a date.
- Event audit trail: every license validation (successful or failed), HWID change, IP lock change, status change, and expiration extension is logged.
Where to find it
The full licensing UI lives at/licenses in the dashboard, separate from regular products.
Hardware-locked licenses
When a buyer activates a license through your software, your client sends the HWID toPOST /dev/v1/licenses/validate. Shoppex either:
- accepts and binds the HWID if the license is unbound, or
- accepts if the HWID matches the bound one, or
- rejects if the HWID does not match.