Put a real cart on your site.
Get paid in your own Stripe.
Xuda Commerce gives you a real product catalog, a cart and a checkout that drop onto any website with one script tag. Every charge is a direct charge on your own Stripe account, so the payouts, the refunds and the disputes stay yours.
Every amount above was computed on the server from your stored products. The page never sends a price.
Puts a working cart on a site you already have
Charges land on your own Stripe account
Stock held, and only at the payment step
Separate storefronts on a single account
A checkout you own, not a storefront you rent.
Commerce does not ask you to rebuild your website somewhere else. You keep the pages you have, add one script tag, and mark your buy buttons with a SKU. Behind it sits a real catalog with variants, stock, delivery pricing and discount codes, and an order record that tells you what you were paid and what the delivery actually cost you.
Four steps, in the order the dashboard asks for them.
Each step is a screen in the Commerce module. Nothing goes live until you list the websites allowed to run your cart, so you cannot accidentally publish a half-built store.
- 01
Switch Commerce on
Open Commerce in the dashboard and pick a tier. That single choice turns the module on and opens your first storefront in the same click, so there is nothing to provision.
- 02
Point it at the account that gets paid
In Getting paid, choose one of your connected Stripe accounts. Every charge is made directly on it, so you are the merchant and the payouts are yours from the first order.
- 03
Add what you sell
Title, price, kind and status, then variants with a SKU, an option, a price and a stock count. A shippable product also wants a weight, a country of origin and an HS code before it goes live.
- 04
Publish the cart on your site
Copy the script tag, mark your buy buttons with a SKU, then list the domains allowed to run the cart. Until that list has something in it, the cart stays off.
Everything between a product page and a paid order.
Catalog, cart, checkout, stock, delivery, discounts and orders. All of it priced and enforced on the server, because that is the only side a buyer cannot edit.
A real product record
Title, handle, descriptions, physical, digital or service, price, compare-at and cost, media, tags, and up to three option axes turned into variants. Not a price glued to a button.
Server-side pricing, twice
A cart line holds a product, a variant and a quantity. Subtotal, discount, delivery, handling and total are computed from your stored records on every read, and recomputed at payment time.
Stock that does not oversell
Track stock per variant. A checkout reserves every line or none of them, and the counters use a conflict-safe write loop so two people counting stock at once cannot merge a stale number forward.
Delivery priced your way
Flat rates by country with delivery days, a free-over-this-amount threshold and a separate handling fee, or live carrier rates quoted through Xuda Shipping at checkout.
Discount codes with rules
Percent off, a fixed amount or free delivery, with a minimum subtotal, a usage cap and a start and end date. Codes belong to a storefront, so two of your stores can each run their own.
Orders that separate the facts
Order state, payment state and fulfilment state are three separate fields, never squeezed into one status column, and each order carries what delivery was charged next to what the label cost.
More than one storefront
Each store has its own key, domain list, catalog, discount codes and order numbering, while the monthly order allowance stays one pool across the account.
Payment read from Stripe
The thank-you page asks Stripe what happened rather than trusting the redirect, then commits the stock, numbers the order and records the payment. Calling it twice is safe.
Publish checks that prevent wrong prices
A shippable product cannot go live without a weight, and nothing goes live without a price. A missing HS code or country of origin comes back as a note on a successful save, not a wall.
One script tag. One attribute per button.
Copy the snippet from your store settings, paste it into your site, and put a data-xuda-sku attribute on the buttons you already have. The loader paints the buy buttons and opens the cart drawer. It never reads a price off the page, so the numbers written into your HTML are decoration and the server decides what anyone actually pays.
- The loader paints your buy buttons and opens the cart drawer at the corner of the page.
- Every storefront call happens inside a same-origin iframe, so no third-party cookie is involved.
- The cart token lives in your own page storage and travels back by message, not by cookie.
- List up to 25 domains. Subdomains of a listed domain are allowed automatically.
<!-- once, anywhere on the page -->
<script src=".../dist/runtime/js/store-loader.js"
data-store="st_9f4c2b81e07a3d16"></script>
<!-- on every buy button you already have -->
<button data-xuda-sku="TEE-BLK-M">
Add to cart
</button>Subdomains of a listed domain count. Anything else is refused, and an empty list means the cart is switched off.
Two shipping pots, side by side, on every order.
Most order lists tell you what the buyer paid for delivery. This one also carries what the label cost from your Xuda Shipping wallet, and the difference between them. When that difference goes negative you are paying to ship, and the screen says so instead of hiding it inside your monthly total.
You are charging less for delivery than the labels cost.
| Order | Buyer | Payment | Fulfilment | Delivery net | Total | Placed | |
|---|---|---|---|---|---|---|---|
| #1004 | [email protected] | Paid | Not shipped | -$4.10 | $128.00 | 2 hours ago | Ship |
| #1003 | [email protected] | Paid | On the way | +$1.20 | $64.50 | Yesterday | |
| #1002 | [email protected] | Unpaid | Not shipped | $0.00 | $39.00 | Yesterday | |
| #1001 | [email protected] | Paid | Delivered | -$2.35 | $212.40 | 3 days ago | |
| #1000 | [email protected] | Paid | Ready to ship | -$0.90 | $88.00 | 4 days ago |
Where the order itself stands, from the moment it is created to the moment it is closed out.
Whether you have the money. Refunds and disputes are settled in the Stripe account the charge was made on, which is yours.
Where the parcel is. Read back from Xuda Shipping when you open the order, so the screen does not depend on a webhook having arrived.
A public checkout is a target. This one assumes it.
The moment a cart endpoint is reachable from the open web, someone will point a script at it. These four rules are in the product because of that, not as options you have to find and switch on.
Only your domains
The cart is refused unless the page asking for it is on a domain you listed, taken from the request headers rather than a query string. The list is never handed back to the page.
Stock held late
Nothing is reserved when a buyer adds to the cart, only when they reach the payment step. The hold lasts 20 minutes and is committed once Stripe confirms the payment.
Payment proven, not assumed
Anyone can open a success URL, so the confirmation reads the session back from Stripe before anything is committed, and it is safe to run again on a reload.
The pay step is throttled
Catalog, product and cart calls are limited to 300 requests per 15 minutes, and the pay step to 10 in the same window, which is what makes card testing expensive rather than free.
Pick the shape of the store you are running.
A tier sets four things that matter: how many products you can publish, how many orders a month are included, how many storefronts you can open, and whether you can use live carrier rates. Moving up takes effect immediately; moving down is refused with a sentence naming what to clear first.
Free
Start hereSell your first thing, and prove the whole flow before you pay for any of it.
- Flat delivery rates by country, with a free-over-this-amount threshold
- 2 percent of each order, delivery and handling included, goes to Xuda
- Products you can publish
- 10
- Variants per product
- 3
- Past the allowance
- Store stops for the month
- Storefronts
- 1
- Discount codes
- 1
- Live carrier rates
- Xuda fee per order
- 2%
Starter
Run a real store, with delivery priced by a carrier rather than a guess.
- Live carrier rates quoted through Xuda Shipping at checkout
- No Xuda transaction fee on an order
- Orders past the allowance keep selling, metered as overage
- Products you can publish
- 100
- Variants per product
- 25
- Past the allowance
- Metered as overage
- Storefronts
- 1
- Discount codes
- 25
- Live carrier rates
- Xuda fee per order
- None
Growth
Most room to growSell across channels, from three separate storefronts on one account.
- Three storefronts, each with its own key, catalog, codes and order numbers
- Unlimited discount codes
- Flat rates stand behind live carrier rates when a quote comes back empty
- Products you can publish
- 1,000
- Variants per product
- 100
- Past the allowance
- Metered as overage
- Storefronts
- 3
- Discount codes
- Unlimited
- Live carrier rates
- Xuda fee per order
- None
Scale
Sell at volume, with no ceiling on the catalog and the lowest overage rate.
- Unlimited products
- Ten storefronts, sharing one account-wide monthly order pool
- The lowest overage rate on the ladder past the allowance
- Products you can publish
- Unlimited
- Variants per product
- 100
- Past the allowance
- Metered as overage
- Storefronts
- 10
- Discount codes
- Unlimited
- Live carrier rates
- Xuda fee per order
- None
Commerce is in early access and no plan is being billed yet, so choosing a tier today simply sets these limits and nothing is charged. Prices will be published here before that changes. Every limit above is enforced in code today. Checkout is hosted by Stripe on every tier, and the external API, outbound webhooks, subscription products and digital file delivery are not built yet.
Keep your website. Add the part that takes money.
The usual choices are rebuilding your site on a hosted store platform, or dropping in a payment button and living without a catalog. Here is what each one actually gives you.
Xuda Commerce You | A hosted store platform | A payment button | |
|---|---|---|---|
| Add it to the website you already have | Rebuild on their platform | ||
| Catalog with options, variants and SKUs | |||
| Stock counted, and held at the payment step | 20 minutes | ||
| Delivery priced per country, with a free-over threshold | |||
| Live carrier rates from your own shipping wallet | Varies | ||
| What the label cost, next to what the buyer paid | Varies | ||
| Charges made directly on your own Stripe account | Varies | ||
| Discount codes with a usage cap and a date window | Varies | ||
| Cart refused on any domain you did not list | Varies | ||
| Several storefronts on one account | Up to 10 | Varies | |
| Order numbers a buyer can read out over the phone | |||
| Best for | Selling from a site you already run | Starting from a blank storefront | A single product or a one-off |
The things a seller asks before trusting a checkout.
Your catalog. Your cart. Your Stripe account.
Switch Commerce on, connect the Stripe account that gets paid, add your first product and paste one script tag into the site you already have. The cart stays switched off until you list the websites allowed to run it.