DOCUMENTATION
Revolutionary eCommerce Documentation
Run a fast, lightweight store inside WordPress: products, a slide-in cart, Stripe and PayPal checkout, coupons, digital downloads, tax, shipping and order management, plus a complete developer API, all without a heavy stack of add-ons.
Getting started
Install, create a product, and take your first order.
Products & variations
Simple, digital, variable, bundle, and external product types.
Cart & checkout
A slide-in Ajax cart and single-page checkout.
Payment gateways
Stripe and PayPal ship in core, with Apple Pay and Google Pay.
Orders & customers
Coupons, tax, shipping, refunds, and order management.
Integrate & extend
Shortcode, block, and a developer API of hooks and filters.
Introduction
Revolutionary eCommerce turns any WordPress site into a working store without the weight of a full commerce platform. Products are a native custom post type, the cart is a fast Ajax drawer, and checkout ships with Stripe and PayPal ready to go. Coupons, tax, shipping, digital downloads and order management are all part of the core plugin, not paid add-ons.
Whether you sell a single digital preset or a full catalog of physical goods, the workflow is the same: create a product, place an Add to Cart block or the [rev_add_to_cart] shortcode, and start taking orders. Every sale is stored as an order in your database, with the customer record, line items, payment status and download log attached.
This guide walks you from installation through the developer API. If you just want to sell something in five minutes, jump to Your first product.
Tip: The Add to Cart button consumes your theme's button tokens automatically, so the storefront matches the rest of your site with zero CSS. Change your theme's primary color and the buttons follow.
Installation
Revolutionary eCommerce installs like any standard WordPress plugin, from the bundled .zip archive or directly from the Revolutionary Plugins hub.
- Upload the plugin. In your WordPress admin, go to Plugins - Add New - Upload Plugin and choose
revolutionary-ecommerce.zip. Click Install Now. - Activate. Click Activate. A new Store menu appears in the admin sidebar, and the setup wizard runs on first launch.
- Run the setup wizard. The wizard creates the orders and products tables, sets your store currency and base country for tax, and generates the Shop, Cart, Checkout and Order Confirmation pages.
- Connect a gateway. Under Store - Settings - Payments, connect Stripe and/or PayPal. Until at least one gateway is live, checkout runs in test mode only.
- Verify your license. Paste your license key under Store - Settings - License to unlock automatic updates, digital downloads, variations and priority support.
Heads up: Live payments require HTTPS. If your site is not served over SSL, gateways stay in test mode and the checkout displays a warning until a valid certificate is in place.
Your first product
Let's create a product and put a working Buy button on a page. The whole loop takes about three minutes.
- Add a product. Go to Store - Products - Add New. Give it a title, set a price, add a featured image, and pick a category. Click Publish.
- Choose the type. In the Product data panel, set it to Physical (enables shipping) or Digital (attach files for download). For options like size or color, add Variations.
- Place it on a page. Open any page, insert the Add to Cart block and select your product, or paste
[rev_add_to_cart id="5"]into a page builder. - Test the cart. Preview the page, click Add to Cart, and the drawer slides in. Proceed to checkout in Stripe test mode using card
4242 4242 4242 4242. - Go live. Once your gateway is connected and your site is on HTTPS, switch Payments out of test mode. Your first real order will appear under Store - Orders.
That's the full loop: create, place, test, sell. Everything else in this guide builds on these same pieces.
Products & variations
Products are a custom post type, so they support categories, tags, featured images, galleries and SEO just like posts. The Product data panel adds the commerce fields. Variation support is available on Pro licenses.
| Product type | What it's for | Key settings |
|---|---|---|
| Simple | A single physical item with one price and optional stock. | Price, sale price, SKU, stock, weight |
| Digital | A downloadable file, preset or license delivered after payment. | Files, download limit, expiry, no shipping |
| Variable (Pro) | One product with options like size or color, each its own price and stock. | Attributes, per-variation price, image, stock |
| Bundle (Pro) | A set of products sold together at a combined price. | Included products, bundle price, stock sync |
| External | A product listed on your site but purchased on another URL. | Product URL, button label |
Each product supports a sale price with optional start and end dates, low-stock thresholds, and a per-product setting to allow or block backorders. Featured products can be flagged for use in the Featured filter of the product grid block.
Cart & checkout
The cart is a slide-in drawer that opens over the current page, so shoppers add items and keep browsing without a reload. Quantities, coupons and totals update live over Ajax. Checkout is a single-screen flow designed to minimize drop-off.
- Slide-in drawer: add, remove and change quantity without leaving the page.
- Single-page checkout: contact, shipping, payment and review on one clean screen.
- Guest or account checkout: let buyers check out as guests, or require an account.
- Express buttons: Apple Pay and Google Pay appear automatically when the device supports them.
The cart persists across sessions for logged-in customers and via cookie for guests, so an abandoned cart is still there when the visitor returns. You can set how long a stale cart is kept under Store - Settings - Cart.
Digital downloads
Mark a product as Digital and attach one or more files. When the order is paid, the buyer receives secure download links in the order-confirmation email and on their account page. Links are signed and expiring, so they cannot be shared indefinitely.
- Download limit: cap how many times each file can be downloaded per order.
- Expiry window: set links to stop working after a number of days.
- Protected storage: files live outside the public uploads path and stream through a signed URL.
- Per-file delivery: a single product can deliver several files, each logged separately.
Security note: Never store downloadable files in a publicly guessable directory. Revolutionary eCommerce stores them in a protected path with an .htaccess deny rule and serves them only through signed, expiring links tied to a paid order.
Payment gateways
Two gateways ship in core: Stripe and PayPal. Connect either or both under Store - Settings - Payments. Stripe is connected with publishable and secret API keys (or via Stripe Connect), and PayPal with your client ID and secret.
- Stripe: cards plus Apple Pay and Google Pay, with strong customer authentication (SCA) handled for you.
- PayPal: PayPal balance, cards through PayPal, and Pay Later where available.
- Test mode: a global switch runs every gateway against its sandbox so you can place fake orders end to end.
- Webhooks: the plugin registers the gateway webhooks it needs to confirm payment and refunds; verify them with the built-in status check.
Tip: Use the Stripe test card 4242 4242 4242 4242 with any future expiry and any CVC to walk through a full paid order in test mode before you go live.
Coupons, tax & shipping
Coupons are created under Store - Coupons. Each code can be a percentage off, a fixed amount, or free shipping, with usage limits and dates.
- Discount types: percentage, fixed cart amount, fixed per product, or free shipping.
- Limits: total uses, uses per customer, minimum spend, and an expiry date.
- Restrictions: include or exclude specific products and categories.
Tax is calculated from the customer's address against the rate tables you define per country, state or zone, with optional automatic rates. Shipping supports flat-rate, free-over-threshold, and per-zone methods, calculated live in the cart and shown on checkout before payment.
| Setting | Where | Notes |
|---|---|---|
| Tax rates | Store - Settings - Tax | Per zone, prices entered with or without tax |
| Shipping zones | Store - Settings - Shipping | Match by country/state, flat or free methods |
| Coupons | Store - Coupons | Stackable toggle, per-customer limits |
Orders & customers
Every checkout creates an order under Store - Orders, even if payment is still pending, so you never lose track of a sale. The order screen shows line items, totals, the payment and fulfillment status, the customer's details, and a full activity log.
- Statuses: pending, paid, processing, fulfilled, refunded and failed, with email notifications per change.
- Refunds: issue a full or partial refund straight to Stripe or PayPal from the order screen.
- Resend & edit: resend the receipt, add an order note, or adjust quantities before fulfillment.
- Customers: each buyer has a record with order history, lifetime value and saved addresses.
Orders respect WordPress capabilities. By default only administrators and shop managers can view them; grant the revcommerce_manage_orders capability to give a custom role access.
Shortcode & block
Place a Buy button anywhere with the shortcode. The only required attribute is the product id, which appears in the product list and the editor URL.
// Add to Cart button for product #5
[rev_add_to_cart id="5"]
// Custom label, preset quantity, skip the cart and go straight to checkout
[rev_add_to_cart id="5" label="Buy now" qty="1" direct_checkout="true"]
In the block editor, search for "Add to Cart" or "Product Grid", insert the block, and pick a product or a category, you'll see a live preview right in the canvas. The block exposes the same options as the shortcode through the inspector sidebar.
You can also render an Add to Cart button from PHP in a template using the helper function:
if ( function_exists( 'revcommerce_add_to_cart' ) ) {
echo revcommerce_add_to_cart( 5, [ 'label' => 'Buy now', 'qty' => 1 ] );
}
Hooks & filters
Developers can extend the checkout and order lifecycle with WordPress actions and filters. Two of the most useful are shown below.
Use the revcommerce_order_complete action to run custom logic when an order is paid, fulfilling a license, syncing to a CRM, or notifying a fulfillment service:
add_action( 'revcommerce_order_complete', function( $order_id, $order ) {
foreach ( $order->get_items() as $item ) {
if ( 'license' === $item['type'] ) {
my_issue_license( $order->get_email(), $item );
}
}
my_crm_sync_order( $order );
}, 10, 2 );
Use the revcommerce_cart_item_price filter to adjust a line price before totals are calculated, here we apply a member discount:
add_filter( 'revcommerce_cart_item_price', function( $price, $item, $cart ) {
if ( is_user_logged_in() && current_user_can( 'member' ) ) {
$price = round( $price * 0.9, 2 );
}
return $price;
}, 10, 3 );
Other commonly used hooks include revcommerce_order_status_changed, revcommerce_payment_complete, revcommerce_email_recipients, and revcommerce_download_url (sign or rewrite a download link). See the full reference in the developer docs.
Troubleshooting
Most issues come down to gateway configuration or caching. Work through these first:
- Payment fails or stays pending: confirm the gateway is out of test mode, the API keys match the live environment, and that the gateway webhook shows a green status under Store - Settings - Payments.
- Cart shows the wrong total: a page cache may be serving a stale fragment. Exclude the cart and checkout pages from caching, and clear your cache after editing prices.
- Download links 404: verify the protected uploads path is writable and that the order is marked paid, expired or over-limit links return a clear message rather than the file.
- Tax not applied: check that a rate exists for the customer's zone and that prices are configured as entered with or without tax consistently.
- Add to Cart does nothing: usually a JavaScript conflict. Open the browser console, then temporarily disable other plugins to isolate the culprit.
Tip: Enable Store - Settings - Logging to record gateway responses and webhook events. The log captures the exact reason a payment or download failed, which makes most issues a two-minute fix.
FAQ
Frequently asked questions
No. You can list unlimited products and store unlimited orders. Everything lives in your own WordPress database, so the only practical limit is your hosting storage.
No. You pay Stripe or PayPal their standard processing rate and nothing extra to us. The license is a flat annual price regardless of your sales volume.
Yes, as long as you exclude the Cart, Checkout and account pages from full-page caching. Product and shop pages cache normally; the cart loads its live state over Ajax.
Core covers one-time purchases of physical and digital products. Recurring billing is on the roadmap and will hook into the same Stripe and PayPal connections through a Pro extension.
No. The core store, Stripe and PayPal checkout, coupons, simple and digital products, and order management are fully functional. Pro unlocks variations, bundles, automatic tax and priority support.
Was this helpful?
Browse the rest of the documentation or see what is included in each plan.
Back to all docs