EasyCommerce 1.0 is here, and it’s the Joomla store I always wished I had
After a lot of late nights, more coffee than I want to admit, and a long list of "wouldn’t it be nice if Joomla just had this," I’m really happy to share that EasyCommerce 1.0 is out.
This isn’t another shopping cart plugin. It’s the full commerce stack I kept wishing existed every time I tried to build a real store on Joomla and hit the same walls. So I built the thing I needed, and now you can use it too.
Here’s what’s actually in the box. No marketing fluff, no roadmap promises pretending to be features. Just the stuff that works today, in the version you can install right now.
One catalog, every kind of product
Most Joomla stores start simple and then run into a wall the moment they want to sell something that isn’t a t-shirt. EasyCommerce treats that as a first-class problem.
In the same catalog you can sell:
- Simple products, the basics.
- Variable products with a proper variation matrix, per-SKU prices, stock, and images.
- Grouped products for selling related items together.
- Bundle products for "buy these three and save."
- Digital downloads with secure, expiring download URLs.
- Subscription products with trials, fixed terms, or evergreen renewals.
There’s no separate "subscription extension" or "digital downloads extension" fighting your main catalog. They’re all the same product table, the same editor, the same admin flow.
Payments that don’t feel like duct tape
The Stripe and PayPal integrations are first-party plugins, not afterthoughts.
- Stripe runs on a proper PaymentIntent flow with signed webhooks, refunds (full and partial), and captures.
- PayPal v2 supports one-time orders and recurring subscriptions, with authorise-then-capture and signature verification on webhook delivery.
- Manual / offline payments for invoiced sales, bank transfers, or "pay at pickup" workflows, with a full audit trail on each transaction.
Webhooks are idempotent, which is a small word that saves you when your gateway delivers the same event twice (and it will). Duplicate notifications can’t double-charge a customer or double-credit a refund.
Refunds, payment captures, and renewal recording all happen through native gateway webhooks, not a polling cron job that fires every fifteen minutes and hopes nothing went wrong in between.
Shipping that talks to actual carriers
EasyCommerce ships with four shipping plugins out of the box:
- DHL
- UPS
- FedEx
- Manual shipping (flat rate, table rate, free shipping, custom rules)
Rates are calculated at checkout. Zone fallbacks and weight-based fallbacks are built in for when the carrier API is having a bad day. You can manage shipments, mark fulfilment, and update tracking from the admin.
Subscriptions that don’t leak
This is the part I’m most proud of. If you’ve ever tried to run a real subscription business on Joomla, you know what a swamp this can be. EasyCommerce handles:
- Trial periods, fixed-term contracts, and evergreen renewals.
- Customer self-service: pause, resume, cancel, switch plan, update payment method, all from the front-end account area.
- Dunning: configurable retry schedules, dunning emails, and a clean "subscription went past due" flow.
- Renewal recording from native gateway webhooks, so renewals land in your store within seconds of the actual charge, not whenever cron next decides to run.
Project & milestone billing is built in too. If you sell services, retainers, or custom development work, you can lock a contract total, plan milestones, add ad-hoc invoices, and your customer gets a "My Projects" dashboard with secure payment links per milestone. It’s the kind of thing you usually have to wire together by hand. Here it’s just a product type.
Software licensing, included
If you’re selling Joomla extensions, themes, plugins, or any other software, the Downloads & Licensing plugin ships with EasyCommerce and gives you:
- License key generation per product, per order, or per variation.
- Domain activation limits, with self-deactivate for end customers.
- A Joomla update server XML feed, so the software you sell can update through Joomla’s normal extension manager, just like any official Joomla extension.
- A customer-side licence manager: "show my keys," "deactivate a site," "renew my license."
You can run your own miniature extension storefront with the same flow the big marketplaces use, on your own domain, on your own terms.
A modern React admin that actually feels modern
The admin is a single-page React 19 application with Tailwind, built fresh for this release.
- It loads instantly after the first paint.
- It works on a phone. You can mark an order paid from a coffee shop, check stock from the warehouse floor, or refund a customer from the bus.
- It’s keyboard-friendly, so power users aren’t hunting for the mouse on every screen.
- Editing a product, fulfilling an order, finding a customer, all take roughly two or three interactions instead of seven.
There’s a real dashboard behind it, not a row of decorative widgets. Live sales by period, top products, recent orders, low-stock alerts, refund tracking, and an action-center inbox that shows you what actually needs you today.
The reports are the kind you can build a business on:
- Sales overview with period-over-period deltas and sparklines.
- Top products, top customers, payment-method breakdown, sales by category.
- Inventory health with low-stock alerts and turnover.
- Coupon usage, discount usage, refund history.
- CSV export on every report, because eventually you’re going to want the raw data in a spreadsheet.
AI translation for email templates
I added one small feature in 1.0 that I think people are going to like more than they expect. The transactional email templates (order confirmation, shipping notification, refund notice, subscription renewal, the whole set) can be translated by the built-in AI translation service, language by language, from the admin. You write the template once in English, then translate it into whatever languages your customers actually use. It uses the Shondalai AICore credits model so you pay only for what you actually translate.
WooCommerce migration, if that’s where you’re coming from
If you’re already running on WooCommerce and you want to move to Joomla without losing your order history, EasyCommerce has a built-in WooCommerce migration adapter that pulls:
- Products (with variations)
- Customers
- Orders (with full historical state)
- Subscriptions (with subscription state preserved)
- Coupons
- Reviews
- Licenses (if you’re using a license plugin on the WordPress side)
No manual CSV re-import, no order-history loss, no "we’re live on the new platform but customers can’t see anything they bought before Tuesday."
Joomla-native, all the way down
This was a hard rule for me. EasyCommerce isn’t a parallel universe sitting on top of Joomla. It uses:
- Joomla’s categories (real Joomla categories, with the full hierarchy).
- Joomla’s tags.
- Joomla’s ACL, with proper core.create, core.edit, core.edit.own, core.edit.state, and core.delete actions.
- Joomla users, with the standard user table. Your customers are Joomla users.
- Joomla language strings. Nothing is hard-coded.
- Joomla routing, sessions, email, and the standard update server pipeline.
If you’re a Joomla developer, every part of this is going to feel familiar. Controllers extend the standard base classes, models are ListModel / AdminModel, services live behind interfaces and are registered in provider.php, and database access goes through QueryInterface with parameterised binding. No raw SQL strings, no surprises.
Security I sleep well over
A few things I made non-negotiable from day one:
- Server-authoritative pricing. Totals, tax, shipping, and discounts are recomputed on the server at every step. A tampered checkout payload can’t sell something for zero dollars.
- CSRF on every mutation. Every POST goes through Joomla’s token check.
- Idempotent webhooks, as mentioned above.
- Encrypted payment credentials. API keys and secrets are encrypted at rest, not sitting in plain text in your database.
- Path-confined media handling. No path-traversal surprises on uploads.
What’s honestly not in 1.0
I want to be straight about this. A first release has limits, and pretending otherwise is how trust gets burned later.
- The customer storefront ships with one well-designed default theme. If you want a radically different look, you’ll customise it.
- The migration adapter today covers WooCommerce. Other platforms (Magento, Shopify, the various other Joomla carts) are on the list but not in 1.0.
- We’re Joomla 5 and Joomla 6 ready, on PHP 8.1+. If you’re still on Joomla 3, this isn’t your release.
That’s the honest list. Everything else above is shipping, not coming-soon.
Try it
If you’ve been waiting for a commerce extension on Joomla that you can actually grow into instead of out of, EasyCommerce 1.0 is for you. Catalog, subscriptions, downloads, licensing, projects, payments, shipping, reports, and a React admin that doesn’t feel like a museum exhibit, all in one package.
I’ve put a lot of myself into this one. I’d genuinely love for you to try it, kick the tyres, and tell me what works and what doesn’t.
Get it, install it, sell something with it.
And if you find a rough edge, please tell me. That’s how 1.1 gets better.
Welcome to EasyCommerce.
Maverick
EasyCommerce is published by BulaSikku Technologies (Shondalai). Support, documentation, and the live demo are at shondalai.com.