The Real Question Isn’t “Which Plugin” – It’s “Which Generator Setting”
Most stores searching for a license key manager assume the hard part is finding a plugin that can auto-generate keys. It isn’t. Every serious WooCommerce license key plugin can spit out a random alphanumeric string on checkout. The part that actually breaks stores is picking the wrong generation method for what they’re selling, using random on-demand generation for keys that need to match a third-party format, or generating fresh codes for a batch of game keys you already bought in bulk and just need to import.
The question that actually matters: what are you selling, how many keys do you need per day, does anything outside WooCommerce need to recognize that key, and do you already have the codes or do they need to be created at the moment of purchase? Answer those four, and the right setup falls out on its own.
What Actually Decides Your Setup
Five variables change the outcome here. Before touching any settings, know where you land on each:
- Product type: software/SaaS license, game key, gift card or store credit code, or a warranty/serial number tied to a physical item.
- Order volume: a handful of keys a week, or hundreds to thousands a day.
- Format constraints: does an external system (your own app, a game platform, a legacy database) dictate the exact length, prefix, or character set the key must follow?
- Validation needs: does the key just need to reach the customer, or does your own software need to check it’s valid and still active?
- Stock model: are keys created fresh at the moment of sale, or are you selling from a fixed batch of codes you already hold?
The Default Setup: One Digital Product, Generated on Demand
If you’re selling a single digital product with no external system that needs to recognize the key, no activation tracking, and no format someone else dictates, this is the default path, and it’s the one most stores actually need.
In WC Key Manager’s automatic key generation settings, you set the generator to auto-create alphanumeric or numeric codes at a defined length, with an optional prefix, the moment a product is added to inventory or an order completes. Stock decrements automatically as keys are sold, so you’re never tracking availability in a spreadsheet on the side. Delivery happens on order completion or payment confirmation, and the key shows up in both the order details and the customer’s My Account page, no manual emailing required.
This path covers plugin licenses, ebooks with unique access codes, single-use coupons sold as a product, and similar one-product, one-key setups. It’s also the path the free version on WordPress.org handles natively, you don’t need Pro just to get random or sequential generation working. If you’re starting out,the free version of WC Key Manager on WordPress.org is a reasonable place to confirm the generator behaves the way your store needs before paying for anything.
If You’re Selling Software That Needs to Phone Home: Activation-Based Licensing
The default path breaks the moment your own app or service needs to verify the key, not just receive it. This is the case for desktop software, SaaS trials, and plugins that check in with a license server before unlocking features.
Here the generation method doesn’t change much, you’re still auto-generating on order completion, but two settings become non-negotiable. First, activation limits: decide whether each key can activate on one device or several, since an unlimited-activation key handed out for a single-seat license defeats the point of selling it. Second, expiry type: a 30-day trial usually needs to count from the moment the customer activates the key, not the moment they bought it, so relative-date expiry rather than a fixed calendar date is the setting that matches real trial behavior.
Validation itself happens through WC Key Manager’s REST API for license validation, which your software calls to confirm a key is valid, active, and within its activation limit, independent of WooCommerce’s own checkout flow. If you’d rather have WooCommerce notify your system instead of your system polling it, webhooks cover that direction too. And if you’re selling the license as a recurring subscription rather than a one-time purchase, Pro syncs key expiry to the subscription status automatically, so a lapsed renewal deactivates the key without a manual step on your end.
If You’re Selling Keys You Already Have: Import, Don’t Generate
This branch trips up more stores than it should, because the instinct is to reach for the generator when the actual need is the opposite. If you’ve bought a batch of game keys, gift card codes, or third-party license codes in bulk, meaning the codes already exist before anyone visits your store, generating new ones is the wrong tool entirely.
The setting that matters here is bulk CSV or TXT import in WC Key Manager, which loads your existing batch directly into stock. Each row becomes one sellable unit, and the available count is simply how many unsold rows remain, no generator logic involved. The detail that saves real support time later: when an order is cancelled or refunded, the key tied to that order returns to available stock automatically rather than being burned permanently, which matters a lot when you’re working from a finite, pre-purchased batch rather than an infinite generator.
This is also the path for stores managing multiple key formats side by side, say, both auto-generated software licenses and imported third-party game codes. variable product and variation support in WC Key Manager lets each variation pull from its own pool of keys, generated or imported, under one parent product.
If Your Keys Have to Match Someone Else’s Format
This is the edge case that catches stores migrating off an old system or selling into a platform with rigid format requirements, a specific length, a required prefix, a particular character set that isn’t negotiable because something downstream parses it.
Two options apply, and which one depends entirely on whether you already hold valid codes or need new ones created to spec. If you’re migrating existing serial numbers from a legacy database, that’s an import job, not a generation job, bring the exact codes in via CSV rather than trying to recreate them. If you need new codes that still conform to an external format, WC Key Manager’s custom key pattern settings let you define the exact prefix, length, and character set the generator outputs, so what gets created matches what the other system expects on the first try rather than after a failed validation call.
If the data you’re migrating is sensitive, warranty information tied to serial numbers, for instance, encrypted key storage in Pro is worth turning on for this branch specifically, since legacy migrations often carry more identifying detail than a freshly generated software license does.
Worth a fairness note here: if this migration is large and you want the plugin with the longer production track record specifically for that kind of legacy move, WC Serial Numbers has the larger established user base on WordPress.org and is the more battle-tested option of the two. Key Manager is the newer, more feature-rich plugin of the pair, better reporting, QR/barcode generation, subscription sync, but “newer and more capable” and “longer track record” aren’t always the same answer.
One More Branch: How the Key Actually Reaches the Customer
Generation method aside, delivery method is its own small decision. Email and the My Account/order-details page are the default and need no extra setup. If your customers expect a text message instead, common for game keys and gift cards bought as last-minute purchases, Key Manager Pro’s built-in Twilio SMS handles that directly. If WhatsApp is the channel your customer base actually checks, that’s a separate plugin rather than a Key Manager setting: WC WhatsApp Notifications pairs with key delivery the same way it pairs with order-status updates.
Decision Matrix: Use Case → Generator Setup
| Use Case | Generation Method | Key Setting to Set | Tier Needed |
|---|---|---|---|
| Single digital product, low volume | Auto-generate, random alphanumeric | Stock decrements per sale | Free |
| Software/SaaS with activation checks | Auto-generate + REST API validation | Limited activations, relative-date expiry | Pro (for subscription sync, variable products) |
| Game keys, gift cards bought in bulk | CSV/TXT import | Stock = imported rows; reuse refunded keys | Free |
| Legacy serial numbers / format-locked codes | Import (existing codes) or custom pattern generator (new codes) | Encrypted storage for sensitive data | Pro |
When This Goes Beyond a WooCommerce Plugin
Every branch above assumes you’re selling through WooCommerce and the licensing logic lives close to the order itself. That stops being true at a certain scale, multi-tenant SaaS billing with per-seat metering, usage-based licensing across thousands of active installs, or enterprise contracts with custom terms per customer. At that point you’re not choosing a key generation setting anymore; you need a dedicated license server or billing platform, and a WooCommerce plugin, Key Manager or otherwise, isn’t the layer that problem should live in. If you’re seeing license usage reports that no longer fit on one screen, that’s usually the first sign you’ve crossed into that territory.
