External Commerce Solution — Evoxup
:root{
--bg:#fff;--soft:#f5f8ff;--ink:#0a1222;--muted:#5d6b82;
--line:#dce5f5;--blue:#1769ff;--blue2:#0e48bd;--blue3:#0b2c71;--crimson:#d7263d;
--dark:#07111f;--green:#16834c;--amber:#a36a00;--radius:22px;--shadow:0 18px 50px rgba(20,62,125,.10)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.65}
a{color:inherit;text-decoration:none}
.container{width:min(1180px,calc(100% - 40px));margin:auto}
h1,h2,h3{line-height:1.12;margin:0 0 18px}
h1{font-size:clamp(3rem,6vw,5.9rem);letter-spacing:-.055em}
h2{font-size:clamp(2rem,4vw,3.8rem);letter-spacing:-.045em}
h3{font-size:1.2rem}
p{margin:0 0 18px;color:var(--muted)}
.lead{font-size:clamp(1.08rem,1.6vw,1.3rem);max-width:840px}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--blue)}
.eyebrow:before{content:"";width:28px;height:2px;background:var(--crimson);border-radius:3px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:12px;font-weight:800;border:1px solid transparent;transition:.2s}
.btn.primary{background:var(--blue);color:#fff}.btn.secondary{background:#fff;border-color:var(--line)}
.btn:hover{transform:translateY(-2px)}
.badge{display:inline-flex;padding:5px 10px;border-radius:999px;font-size:.69rem;font-weight:850;background:#eaf1ff;color:var(--blue2)}
header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(220,229,245,.8)}
.nav{height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:10px;font-weight:900}
.brandmark{width:34px;height:34px;border-radius:11px;background:linear-gradient(145deg,var(--blue),var(--blue3));position:relative}
.brandmark:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--crimson);right:-3px;bottom:4px;border:3px solid white}
.navlinks{display:flex;gap:24px;font-weight:700;font-size:.93rem;color:#30405a}
.navlinks a:hover{color:var(--blue)}
.navright{display:flex;gap:10px;align-items:center}
.hero{padding:104px 0 78px;position:relative;overflow:hidden;background:
radial-gradient(circle at 88% 12%,rgba(23,105,255,.15),transparent 28%),
radial-gradient(circle at 8% 22%,rgba(215,38,61,.07),transparent 18%),
linear-gradient(180deg,#fff,#f8fbff)}
.hero:before{content:"";position:absolute;inset:0;opacity:.22;background-image:linear-gradient(#dce5f5 1px,transparent 1px),linear-gradient(90deg,#dce5f5 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 72%)}
.hero-grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
.hero h1 span{color:var(--blue)}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.visual{padding:28px;border-radius:28px;background:linear-gradient(150deg,#07111f,#10295a);color:#fff;box-shadow:0 30px 80px rgba(7,17,31,.25)}
.visual p{color:#b9c8de}
.pipeline{display:grid;gap:10px;margin-top:18px}
.pipe{padding:13px 15px;border-radius:13px;background:#0d1e37;border:1px solid #243f67;display:flex;justify-content:space-between;gap:12px;align-items:center}
.pipe strong{color:#fff}.pipe small{color:#91a8c8}
section{padding:92px 0}.soft{background:var(--soft)}.dark{background:linear-gradient(135deg,#07111f,#0a1d3b);color:#fff}
.dark h2,.dark h3{color:#fff}.dark p{color:#aabbd4}
.section-head{max-width:860px;margin-bottom:42px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{padding:26px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 8px 26px rgba(28,64,117,.04)}
.icon{width:46px;height:46px;border-radius:14px;background:#edf3ff;color:var(--blue);display:grid;place-items:center;font-weight:900;margin-bottom:18px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.stack{display:grid;gap:14px}
.stackitem{padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff}
.stackitem strong{display:block;margin-bottom:6px}
.darkcards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.darkcard{padding:24px;border-radius:20px;background:#0c1b32;border:1px solid #1c3152}
.journey{display:grid;grid-template-columns:repeat(6,1fr);gap:11px}
.step{padding:18px;border:1px solid var(--line);border-radius:17px;background:#fff;position:relative}
.step:after{content:"→";position:absolute;right:-9px;top:50%;transform:translateY(-50%);color:#8da0bd;font-weight:900}
.step:last-child:after{display:none}
.step strong{display:block;margin-bottom:6px}
.providergrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.provider{padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff}
.provider strong{display:block;font-size:1.08rem;margin-bottom:7px}
.securitygrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.security{padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff}
.compare{overflow:auto;border:1px solid var(--line);border-radius:20px;background:#fff}
table{width:100%;border-collapse:collapse;min-width:880px}
th,td{padding:15px 17px;border-bottom:1px solid #edf1f7;text-align:left}
th{background:#f7f9fd;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#40516a}
td{color:#52627a}
.yes{color:var(--green);font-weight:850}
.notice{padding:18px 20px;border-left:4px solid var(--blue);background:#f1f6ff;border-radius:10px;color:#42536d}
.warn{border-left-color:var(--crimson);background:#fff3f5;color:#7d3340}
.cta{padding:84px 0;background:radial-gradient(circle at 20% 20%,rgba(23,105,255,.22),transparent 30%),linear-gradient(135deg,#07111f,#102a5a);color:#fff}
.cta h2{color:#fff}.cta p{color:#b9c9e1}
footer{background:#050b14;color:#a6b5ca;padding:55px 0 26px}
.footgrid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:30px}
footer h4{color:#fff;margin:0 0 13px}footer a{display:block;margin:8px 0;font-size:.9rem}
.footnote{border-top:1px solid #172238;margin-top:34px;padding-top:20px;font-size:.82rem;color:#73839d}
@media(max-width:980px){
.navlinks{display:none}.hero-grid,.split{grid-template-columns:1fr}.grid3{grid-template-columns:repeat(2,1fr)}.grid4,.darkcards,.providergrid,.securitygrid{grid-template-columns:repeat(2,1fr)}.journey{grid-template-columns:repeat(2,1fr)}.step:after{display:none}.footgrid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
.container{width:min(100% - 26px,1180px)}h1{font-size:3rem}section{padding:70px 0}.grid3,.grid4,.darkcards,.providergrid,.securitygrid,.journey{grid-template-columns:1fr}.footgrid{grid-template-columns:1fr}.navright a:first-child{display:none}
}
img,svg{display:block;max-width:100%}
.brand-mark svg{width:23px;height:23px;color:#fff}
.brand-mark{
width:38px;height:38px;border-radius:12px;
background:linear-gradient(145deg,var(--blue),var(--teal));
display:grid;place-items:center;box-shadow:0 8px 24px rgba(18,84,244,.24);
}
External Commerce Solution
Sell Anywhere. Fulfill Inside Evoxup.
Connect external commerce providers to one WordPress-native product, membership, licensing and entitlement workflow without making the provider your business logic.
UNIVERSAL COMMERCE FLOW
External Sale → Internal Fulfillment
The provider communicates the transaction. Evoxup resolves what that sale should do inside WordPress.
ReceiveWebhook / API / WordPress
VerifyProvider-specific trust model
NormalizeCommon internal event
MapExternal Product → EVO Product
FulfillMembership / License / Entitlement
The Problem
Your Commerce Provider Should Not Own Your WordPress Access Model.
External sales become difficult when every provider requires a separate membership, licensing and fulfillment implementation.
1
Provider-Specific Logic
Business rules get buried inside one provider's webhook format or API assumptions.
2
Duplicate Product Models
Each commerce system can create its own version of the same product, making maintenance and reporting harder.
3
Hard Migration Later
Changing provider becomes expensive if the membership and license logic is tied directly to the old platform.
Provider-Neutral Architecture
One Integration Layer Between Commerce and Fulfillment.
Evoxup separates the provider-specific communication layer from the internal business lifecycle.
The same internal fulfillment logic can process sales from WooCommerce, ready-made external provider profiles or a Custom Provider integration.
Provider AdapterUnderstands the provider's payload, authentication, API and verification capabilities.
Normalized EventTransforms provider-specific data into a consistent internal transaction model.
Product MappingResolves the external product identifier to the intended EVO Product or plan.
Fulfillment PipelineUses the same internal membership, license and entitlement logic regardless of commerce source.
Integration Methods
Use the Connection Method the Provider Actually Supports.
Signed Webhooks
Verify provider events with a signature or HMAC when the platform supports it.
API Verification
Confirm a transaction against the provider API before fulfillment where supported.
Authenticated APIs
Use API keys or bearer authentication for discovery, verification and synchronization.
Unsigned Events
Use an appropriate verification policy when the provider does not offer native webhook signatures.
End-to-End Flow
From External Transaction to WordPress Access.
1. ReceiveAccept the provider event or order.
2. VerifyValidate authenticity or transaction status.
3. NormalizeConvert data into an internal event.
4. IdentifyResolve the external product ID.
5. MapRoute to the correct EVO Product or plan.
6. FulfillGrant membership, license and entitlements as required.
Provider Options
Ready-Made Profiles for Speed. Custom Provider for Openness.
The listed providers are shortcuts, not the boundary of the platform.
WORDPRESSWooCommerceUse WordPress commerce as a native sales source while Evoxup owns membership and licensing fulfillment.
PROFILEGumroadUse provider discovery and verification capabilities through a guided integration profile.
PROFILELemon SqueezyUse API access, signed webhooks and product/variant discovery through a guided profile.
UNIVERSALCustom ProviderConfigure another provider using the generic webhook/API integration model.
Important: WooCommerce, Gumroad and Lemon Squeezy are ready-made integration paths. Evoxup's architecture is not limited to those providers.
Product Mapping
External Product IDs Should Not Become Your Internal Architecture.
Product Mapping creates a stable route between an external catalog and the internal EVO Product model.
This lets the provider change while your internal membership and licensing structure remains consistent.
EXAMPLE ROUTE
External Product → Internal Destination
Provider Product IDeikdRNgP7vmE7iJIgjlnjw==
EVO ProductStable internal commercial identity
Membership / License PolicyApplied by Evoxup after the route resolves
Security & Trust
Verification Depends on the Provider — Not on a One-Size-Fits-All Rule.
A secure integration respects what the provider actually supports and keeps transaction trust separate from license authority.
Signature Validation
Use provider signatures where they exist.
Outbound Verification
Verify transaction details through the provider API when appropriate.
Duplicate Protection
Prevent the same transaction from creating fulfillment twice.
Secret Protection
Store credentials securely and never render them back into ordinary forms.
Product Sync
Keep Provider Metadata Current Without Changing Business Rules.
Product Sync and Product Mapping solve different problems.
| Capability | Product Mapping | Product Sync |
| Purpose | Route external products to internal destinations | Refresh provider metadata |
| Changes membership logic | No — it selects the internal route | No |
| Sync product name/status/price/URL | No | Yes |
| Controls fulfillment destination | Yes | No |
| Scheduled provider refresh | No | Where configured |
Why External Commerce
Use the Best Commerce Channel Without Rebuilding WordPress Access.
A
Keep Commerce Flexible
Choose the provider that fits the market, product or campaign without giving up the internal WordPress membership model.
B
Centralize Fulfillment
Keep membership, licensing and entitlement decisions in one internal platform.
C
Reduce Migration Risk
Changing an external provider should mainly affect integration and mapping — not the entire customer access architecture.
Do not confuse test/live with trust: a test marker identifies the transaction context. Provider authenticity and verification are separate decisions. Test transactions should still travel through the same verified fulfillment pipeline when used to validate the complete workflow.
Commerce Without Lock-In
Your Provider Can Change. Your Fulfillment Architecture Can Stay.
Connect external commerce to Evoxup and keep the internal product, membership, licensing and entitlement lifecycle under your control.