SELL · COMMERCE · HOW IT WORKS

How money moves.

From a shopper's cart to your own Stripe account, and back again when you refund. This page describes how the store behaves, step by step, as of October 2026.

On this pageThe mechanics
  1. The mechanics
  2. The path of one order
  3. Where the money goes
  4. Paying offline
  5. Tax, shipping, coupons and variations
  6. Refunds
  7. Revenue
  8. Paid access
  9. Moving a WooCommerce store
  10. Emails
  11. What Praxis never does
  12. Common questions

The mechanics

The path of one order

  1. The cart becomes a draft order.

    The cart applies the store's coupons and shipping rates. Checkout creates a draft order holding both addresses and the shopper's note. Guests can buy, and their orders join their account once they prove the mailbox is theirs.

  2. A card payment goes to Stripe's page.

    Praxis creates a Stripe-hosted checkout page with your own Stripe key: one payment, one line for the whole total, by card. The card is typed on Stripe's page, never on yours.

  3. Stripe's word makes it paid, once.

    Stripe sends a signed event. Praxis checks the signature, and only then marks the order paid, exactly once. The stock drops, never below zero, and any coupon use is spent. A payment whose amount or currency does not match the order never pays it.

  4. A late event changes nothing.

    The shopper's return page and your order screen both ask Stripe about the order's checkout session, and confirm it through the same single step. If Stripe's event arrives later, the order is already right, and nothing happens twice.

  5. You fulfil it.

    "Mark as shipped" with the carrier and tracking, "Mark completed", or "Cancel order", which puts the stock back and refunds nothing. Each act carries an undo.

Where the money goes

  • To your own Stripe account. You connect it on Commerce › Membership by pasting your Stripe secret key; Stripe checks the key before Praxis stores it, encrypted, and the platform registers its own payment notifications with Stripe for you.
  • The commerce code has no Stripe Connect and no application fee, so Praxis takes no cut of a sale.

Paying offline

  • Bank transfer, cheque and cash on delivery place the order as awaiting payment. When the money arrives, "Mark as paid" records it, with an undo.

Tax, shipping, coupons and variations

Feature On a store moved from WooCommerceOn a store started on Praxis
Tax Tax tables by class and address, with priority and compounding; shipping is never taxed Tax worked out by Stripe Tax at checkout. Coming soon.
Shipping Flat-rate, free and pickup rates from your WooCommerce zones Your own shipping zones and rates. Coming soon.
Coupons Spend limits, usage limits, product rules and expiry, applied at checkout Coupons you create yourself.
Variations Products and their variations, such as sizes and colours, sold at checkout Variations you create, such as sizes and colours. Coming soon.

Everything in the first column arrives with a WooCommerce import and is honoured at checkout.

Refunds

  • Praxis records every refund issued in Stripe on its order, with its own amount, reason and date.
  • A refund that Stripe later fails stays visible on the order and stops counting.
  • Issue a refund from the order screen, through Stripe. Coming soon.

Revenue

  • Analytics counts revenue as purchases minus refunds. A refund counts in the period it happened, and orders are counted once each, by their order id.
  • Money is never converted between currencies, and a window holding two currencies is refused rather than added up.
  • A paid order from a shopper who declined analytics still counts as revenue, without their identity.
  • Every campaign shows the revenue it brought, by first touch or last touch.

Moving a WooCommerce store

  • A WooCommerce import lands in Praxis's own tables: products, variations, reviews, coupons, tax, shipping, orders, refunds, notes, downloads, tracking, labels and settings. Orders from WooCommerce's newer order storage come across too, as history.
  • A moved store runs on Praxis's own checkout.
  • Our engineers scope and test every store move with you.

Our migration service

Emails

  • Four plain-text emails: the receipt, shipped, completed and cancelled. Each is queued and sent through your own email provider, set on Commerce › Customer identity, or through the platform's, and retried on the next change if a send fails. "Send again" resends any of them.
  • Back-in-stock notices are built for stores moved from WooCommerce that had sign-ups on: the shopper's request is kept and one email goes out when the product is back on sale. A switch for stores opened on Praxis is coming soon.

What Praxis never does

Hold your money.

It goes from Stripe to your account.

See a card.

Cards are typed on Stripe's own page.

Mark a card order paid without Stripe.

Only a signed event, or Stripe's own answer, makes a card order paid. An order paid offline is marked paid only by you.

Pay twice for one order.

An order becomes paid exactly once.

Let the copilot near a key.

No copilot tool takes a secret such as a Stripe key.

Act on an order without asking.

Every order act the copilot proposes waits for your approval.

Common questions

What if Stripe's notification never arrives?

The shopper's return page and your order screen ask Stripe directly, and confirm the order through the same step the notification would have used.

Can a shopper be charged twice for one order?

The order becomes paid exactly once, and a payment that does not match its amount and currency never pays it.

Does Praxis take a fee on each sale?

No. The commerce code has no Stripe Connect and no application fee.

What happens to stock when I cancel?

"Cancel order" puts the stock back and refunds nothing; any refund is its own act, through Stripe.