E-commerce
July 1, 2026
"My key shows 'already used'." "How do I activate on my second computer?" "I bought the Team version, I only have one key." Three messages where a poorly documented software license saturates customer support and opens the door to unauthorized sharing.
The e-commerce software license customer support covers activation, seats, device transfer, invalid key, upgrade, and post-refund revocation, distinct from file download (#421) or the tier 1 access bot (#422).
This guide #423 covers LIC-SUP policy, LIC-FLOW flow, and lic KPIs. No dedicated e-commerce license blog content. Distinct from global digital (#95) and downloadable (#421): here, SAV playbook for license keys, activation, seats, and domain sold online.
Summary
Why do software license tickets differ from the download?
A software license ticket relates to an activation key, a number of seats, or a linked domain that the customer cannot activate, transfer, or understand the rights of after their Shopify purchase.
Five typical customer pain points
Invalid key: O/0 typo, copied space, exhausted pool
Already used: previous activation, suspicious sharing
Insufficient seats: Team vs Solo, 3rd device rejected
Device transfer: new PC, old device to be deactivated
Upgrade/downgrade: solo → team, paid major version update
Shopify does not natively generate unique license keys: an app like Alva, DPL, or SendOwl manages pools, activation logs, and revocation (Alva, license keys Shopify 2026). Gorgias observes that license tickets convert 2.2x more into friendly fraud chargebacks than standard download disputes due to a lack of activation logs (Gorgias, stats SAV 2026).
Angle #423 vs related content
Global Digital #95: broad digital view + license section. #423 = in-depth license-only playbook.
Downloadable #421: expired link PDF/ZIP quota. #423 = key activation seats domain.
Access Bot #422: bot_dacc_license_activation tier 1. #423 = support agents reissue revoke upgrade.
SaaS Bot #424: future renew automation. #423 = human policy prerequisite.
Glossary: SaaS license definition. #423 = ops workflow.
DTC Example
WordPress plugin + presets, 95 lic orders/month. Without LIC-SUP: 28 lic tickets/month, lic_invalid_rate 22%. After playbook: lic_ticket_rate -46%, lic_reissue_sla_compliance 95%, lic_csat 4.2/5.
License ticket cost vs reissue
1 uncontrolled reissue = lost license ~€30-200 value. L-4 log lookup ROI: 8 min agent vs friendly fraud unlimited keys.
How does licensing differ from download and pure SaaS?
Perpetual key, subscription license, and cloud SaaS: three distinct support models.
Model → dominant ticket matrix
perpetual LIC #423: one-time activation, device transfer
LIC subscription: renew, expire, cancel access
Download file #421: quota link, no key
Pure cloud SaaS: login portal, no key (future #424 bot)
Four LIC-TYPEs
lic_perpetual: unique key, offline/online activation
lic_subscription: key + expiry date, annual renew
lic_domain_bound: WordPress plugin, bound URL
lic_seat_pool: Team 3 seats, floating or named
Delivery stack
Alva, DPL (Foridev), SendOwl keys, Gumroad legacy. Support reads lic_app, key_last4, activation_count, bound_domain, seats_used.
Promise #423
LIC-SUP policy, LIC-MAP matrix, 12 lic_* typologies, LIC-FLOW flow, LIC-* macros, lic_* KPIs.
Perpetual vs subscription renew path
lic_perpetual: no expire ticket unless revoked. lic_subscription: renew link + payment fail = lic_expired_subscription dominant.
Which lic_* typologies to map?
Twelve software license ticket typologies for consistent routing.
Twelve license scenarios
lic_key_not_received: key email missing from spam
lic_key_invalid: refused by activation portal, typo
lic_already_used: "already activated" message
lic_seats_exceeded: max devices reached
lic_device_transfer: new PC, deactivate old one
lic_domain_change: WordPress URL migration staging→prod
lic_upgrade_request: solo → team, paid v1 → v2
lic_expired_subscription: renewal date passed
lic_b2b_multi_seat: 5+ corporate keys CSV
lic_refund_revoke: refund → revoke access
lic_fraud_suspect: multiple activations from different country IPs
lic_chargeback_threat: chargeback threat, inactive key
Helpdesk tags
lic, lic_reissue, lic_revoke, lic_transfer, lic_upgrade, lic_resolved, lic_escalation. Distinct dl_*, dacc_bot, digital_access.
Prioritization
P1: chargeback_threat, b2b blocked, fraud_suspect. P2: invalid, already_used, seats_exceeded, device_transfer. P3: upgrade quote, expired renew FAQ.
Which LIC-MAP matrix should be documented?
The LIC-MAP license matrix lists SKU, type, seats, activation, and resolutions.
LIC-MAP Columns
lic_sku: product_id, lic_type, lic_code
lic_app: alva, dpl, sendowl
seats_max: 1 solo, 3 team, unlimited enterprise
activation_url: vendor portal steps
transfer_policy: reset 1x/year, manager approval
reissue_policy: max reissues, identity verify
upgrade_path: SKU solo → team price delta
WordPress plugin example
lic_domain_wp_pro: DPL, 1 production domain, free staging 30 days. lic_domain_change: reset domain 1x if documented migration. Reissue if pool bug only.
Team 3 seats example
lic_seat_team_3: Alva, floating seats. lic_device_transfer: deactivate oldest seat via vendor portal guide. lic_seats_exceeded: LIC-SEATS-01 explain + transfer steps.
Publication /pages/software-licenses
FAQ LIC-MAP: activation, seats, transfer, upgrade, renew. Link to LIC-* macros and customer account key portal.
Multi-channel key delivery
LIC-MAP cites: email, thank-you page, customer account, order status. Client should never ticket "where is my key" if 4 channels live.
How to write the LIC-SUP policy in eight rules?
The LIC-SUP license policy governs reissue, transfer, and revocation.
Eight LIC-SUP rules
Lookup activation log first: app dashboard before reissue
Typo check mandatory: LIC-TYPO-01 O/0 spaces before reissue
Reissue max 1: 2nd reissue manager + fraud check
Transfer 1x/year: device/domain reset per LIC-MAP transfer_policy
No reissue if activated + refund request: uphold CGV + logs
Revoke on refund: webhook auto + manual verify 24 h
B2B 5+ seats: macro LIC-B2B-01, provisioning delay 24 h, finance cc
Route download-only: no key → article #421 DL-FLOW
Anti-abuse activation
lic_fraud_suspect: 5+ IP countries 48 h → hold reissue, supervisor review. Chargeback webhook → revoke immediate LIC-REVOKE-01.
Commercial upgrade
lic_upgrade_request: cite LIC-MAP upgrade_path price delta. No free cross-tier upgrade without manager goodwill policy LTV > 500 €.
Vendor API coordination
Some keys activate on external vendor portal: document vendor_support_contact in LIC-MAP if outside Shopify app.
Identity verify reissue
2nd reissue same order: verify order email + last 4 card or login account before L-7.
How to apply the LIC-FLOW flow in eight steps?
The LIC-FLOW framework structures software license ticket processing.
Eight steps L-1 to L-8
L-1 Lookup order: SKU lic, fulfillment, email
L-2 Classifier lic_*: typology section 3
L-3 Match LIC-MAP: lic_type, seats, activation_url, policies
L-4 Read activation log: key_last4, activated_at, devices, domain
L-5 Explain: macro LIC-* grounded L-4
L-6 Decide: typo guide | transfer reset | reissue | upgrade quote | uphold
L-7 Execute: app reissue, vendor deactivate, upgrade order link
L-8 Document: reissue count, revoke timestamp, fraud flag
L-4 lic_key_invalid
If no activation log + typo likely → LIC-TYPO-01 guide. If log shows never activated + pool valid → reissue L-7. If activated elsewhere → lic_already_used branch.
L-4 lic_device_transfer
Check transfer_policy count this year. If allowed → vendor deactivate guide or ops reset API. If exceeded → upgrade team or manager gesture.
L-6 lic_already_used
If same customer email devices → transfer flow. If different email/IP fraud → uphold + lic_fraud_suspect tag. No auto reissue.
L-7 refund revoke
Refund processed → LIC-REVOKE-01 app API disable key + vendor portal confirm deactivated.
Pool empty ops alert
L-4 pool_status empty → P1 ops restock keys same day. Macro LIC-DELAY-01 client: provision under 24 h, no fake key.
Which LIC-* macros and touchpoints should be configured?
Eight software license agent macros and self-service touchpoints.
LIC-ACTIVATE-01 (activation guide)
« Activate your license: 1) Open [activation_url] 2) Paste the key from your order email #[X] 3) Click Activate. Key ends with [XXXX]. Need help? Send a screenshot of the welcome screen. »
LIC-TYPO-01 (typo check)
« Double-check: no leading/trailing spaces, capital O vs number 0, I vs lowercase l. Copy-paste from the original email, do not use a screenshot. »
LIC-REISSUE-01 (replaced key)
« New key issued, old key deactivated. Email resent to [email]. Activate within 48 hours. Order #[X]. »
LIC-TRANSFER-01 (device transfer)
« Seats: [used]/[max]. Deactivate old device: [vendor steps]. Then activate new one. Remaining transfers this year: [N]. »
LIC-UPGRADE-01 (moving to higher tier)
« Upgrade Solo → Team: [price delta] via [lien checkout upgrade]. Your current key remains valid + [N] additional seats after purchase. »
LIC-REVOKE-01 (post-refund)
« License for order #[X] revoked on [date]. Software unusable. Questions? Reply here. »
Touchpoints
License PDP: seats, activation URL, transfer policy visible
Fulfillment email: key + activation_url + typo tip above the fold
Thank-you page: key display + 60s activation video
Customer account: key history + activation status
/pages/software-licenses FAQ LIC-MAP
LIC-B2B-01 (corporate batch)
« B2B order received. Keys CSV within 24-48h to [email]. Contact finance@ for invoice. PO Reference: [field]. »
Which WordPress, B2B, and subscription cases should be handled?
Special license cases require separate LIC-MAP extensions and SLAs.
WordPress domain-bound plugin
lic_domain_change staging→production: LIC-MAP allows 1 reset if migration is documented. Client cites old URL + new URL + proof of order. Ops reset via vendor dashboard.
B2B corporate 10+ seats
lic_b2b_multi_seat: CSV keys batch, separate NET 30 invoice. Macro LIC-B2B-01: finance@ provision 24-48 h. No standard B2C macro.
License subscription renewal
lic_expired_subscription: if auto-renew failed → payment update link. If cancelled → uphold expiry, offer renew PDP discount. Future bot #424 renewal automation.
Hold fulfillment risky order
Shopify Risk high: DPL hold delivery until manual review. Client ticket lic_key_not_received → explain P2 delay, not instant reissue fraud.
Vendor external activation
Key activates on Adobe/Ilm vendor: refer to vendor support if out of shop scope. LIC-MAP vendor_contact field mandatory.
Bundle download + license
Mixed SKU: two fulfillment emails. Route download issue #421, license issue LIC-FLOW. Never conflate alignment macros.
Chargeback inactive lic
lic_chargeback_threat + log shows never activated → P1 reissue + proof email sent. If activated → uphold logs + LIC-REVOKE threat if refund denied.
Which software license KPIs should be measured?
Software license support KPIs drive reissue SLA and fraud.
Eight key metrics
lic_ticket_rate: lic tickets / license orders
lic_invalid_rate: lic_key_invalid / lic orders (typo vs real)
lic_reissue_sla_compliance: reissues within 4 h / due P1
lic_first_contact_resolution: LIC-FLOW resolved without escalation
lic_transfer_rate: transfers granted / transfer requests
lic_revoke_post_refund_rate: revokes within 24 h / lic refunds
lic_fraud_block_rate: reissues denied fraud / suspect tickets
lic_csat: satisfaction tag lic resolved
DTC Benchmark
lic_invalid_rate < 12 % post LIC-TYPO-01 PDP, reissue_sla > 94 %, lic_fcr > 68 %, revoke_post_refund > 98 %, fraud_block documented.
Monthly dashboard
LIC-TYPE breakdown, reissue count by SKU, upgrade conversion lic_upgrade tickets, chargeback lic correlation activation logs.
Ops alert
lic_key_invalid > 20 % on SKU : audit pool empty, email template key display, activation URL broken.
Typo vs real invalid ratio
Track lic_key_invalid resolved by LIC-TYPO-01 without reissue vs L-7 reissue. Target typo resolution > 45 % post PDP copy improve.
Which anti-patterns should be avoided on licenses?
Ten software license support anti-patterns to ban.
1. Reissue without activation log lookup
L-4 mandatory. Double liability keys in wild.
2. Skip typo guide before reissue
LIC-TYPO-01 first. 40 %+ invalid = client typo.
3. Reissue lic_already_used fraud case
L-6 uphold if different customer signals. Supervisor only.
4. Transfer unlimited without policy
LIC-SUP rule 4 transfer_policy per LIC-MAP.
5. Refund without revoke key
Rule 6 webhook + LIC-REVOKE-01 manual verify.
6. Route download quota helper to LIC-FLOW
Rule 8 → #421 DL-FLOW. No key = no license ticket.
7. Full key in public chat ticket
Last4 in macros only. Full key email resend secure.
8. Systematic free cross-tier upgrade
LIC-UPGRADE-01 checkout link. Manager gesture documented.
9. B2B 50 seats B2C macro
LIC-B2B-01 dedicated queue finance ops.
10. No /pages/software-licenses
Self-service activation FAQ gap. Deflection -25 % historical.
11. Ignore vendor external scope
LIC-MAP vendor_contact redirect, no fake in-house reissue.
12. Display key plaintext email only
Security vs UX: full key email + account portal, never ticket public paste agent.
How does Qstomy help with software licensing?
Qstomy on Shopify: LIC-FLOW order lookup, LIC-MAP explain seats transfer, activation guide LIC-ACTIVATE-01, typo template LIC-TYPO-01, handoff reissue revoke upgrade agents.
Qstomy lic capabilities
lic_order_lookup: L-1 SKU lic_type fulfillment
lic_map_explain: seats, activation_url, transfer_policy
lic_activation_guide: LIC-ACTIVATE-01 steps SKU
lic_typo_template: LIC-TYPO-01 auto before handoff
lic_handoff_reissue: L-7 fields activation log summary
lic_route_download: no key SKU → #421 DL-FLOW
Pipeline #423 → #422 → #424
#423 agents reissue revoke. #422 bot tier 1 activation typo lookup. #424 future renew bot SaaS.
DTC encrypted scenario
Plugins 95 lic/month, 28 tickets baseline.
After LIC-SUP + Qstomy: lic_ticket_rate -44%, lic_reissue_sla 96%, lic_fcr 71%, lic_csat 4.3/5.
Explore customer support and request a demo.
Bot handoff fields
#422 routes bot_dacc_license_activation → #423 handoff with L-4 summary if typo fail or reissue needed.
What is the checklist for deploying LIC-SUP?
Checklist LIC-SUP (12 steps)
Inventory active LIC-TYPE and lic_sku catalog
Document LIC-MAP seats, activation, transfer, reissue, upgrade per SKU
Draft LIC-SUP policy 8 rules
Publish /pages/software-licenses FAQ + PDP seats visible
Email fulfillment key + activation_url + typo tip
Thank-you page key display + activation video
Create macros LIC-* helpdesk
Train agents LIC-FLOW 45 min (L-4 activation log)
Webhook refund → revoke API test staging
Process B2B LIC-B2B-01 finance queue
Tags lic_* + dashboard KPI section 9
Sync LIC-MAP → bot #422 #424 corpus
In brief
#423 = SAV license, not download #421
LIC-MAP: seats → activation → transfer → reissue
LIC-FLOW: log → typo → reissue/transfer/uphold
Revoke on refund: webhook + verify 24 h
KPI lic_invalid_rate: target < 12%
FAQ
Difference from #95 digital?
#95 broad digital view. #423 playbook key license seats details in-depth.
Key "already used"?
L-4 log: same customer → LIC-TRANSFER-01. Fraud signals → uphold supervisor.
New PC authorized?
LIC-MAP transfer_policy: deactivate old + activate new. 1x/year typical.
Upgrade Solo Team?
LIC-UPGRADE-01 checkout delta. No key reissue solo as team.
Bot #422 enough?
#422 tier 1 activation typo. #423 agents reissue revoke upgrade B2B.
Go further
This week: publish LIC-MAP /pages/software-licenses, audit top 3 SKU activation URLs, create macros LIC-ACTIVATE-01 and LIC-TYPO-01, test webhook refund revoke staging.
Share this guide #423 with ops and support: a key reissued in 4 hours with a clean log equals an activated customer, a reissue without lookup equals two licenses in circulation.
Plugin domain staging?
LIC-MAP staging_allowance: free staging subdomain 30 days typical. Production reset = lic_domain_change flow.

Enzo
July 1, 2026





