23 API Resources
In core: Web Services plugin
Read and write products, orders, customers, inventory and coupons, so every connected system works from the same data.
Developer Hub
J2Commerce extensions use Joomla’s own MVC, events and service providers, so you build them with the Joomla skills you already have.
Opens the J2Commerce documentation at docs.j2commerce.com.
References
Each reference is current as of release 6.6.5.
Products, orders, customers, inventory and tax over Joomla’s own web services layer. Current as of 6.6.5
A plugin scaffolder, sample data, data repair tools and seven scheduler tasks. Current as of 6.6.5
What changed in each version, grouped into Added, Changed, Fixed and Security. Updated every release
Architecture
Extensions resolve from Joomla’s own container, ship in Bootstrap 5 or UIkit, and run on vanilla JavaScript with no bundler step.
Extensions register a service provider and pull their dependencies from the container. No static factories, no legacy loader.
Bootstrap 5 and UIkit ship in core, and a layout override service lets your template take over a single layout without forking the view.
ES modules, fetch() and event delegation. No jQuery, and no build step needed to read the storefront code.
Recurring work runs as Joomla Scheduler tasks, so it is configured, logged and triggered the same way as everything else on the site.
Products join Smart Search as soon as the J2Commerce Smart Search plugin is enabled, and the article each product is linked to is left out so results do not appear twice. No separate index to build or run.
Requires Joomla 6.0+ · PHP 8.3+
A controller is a Joomla controller, a model is a Joomla model, and events are dispatched through the Joomla dispatcher. There is less to learn, and your store upgrades along with Joomla.
REST API
J2Commerce adds 23 API controllers to Joomla’s own API application, and every request is authenticated with a Joomla API token.
The web services plugin registers the J2Commerce routes, so your store answers at /api/index.php/v1/j2commerce/…. These are the resources it exposes:
Related records sit under their parent: an order’s items, history, status, tracking and fulfillment, a product’s variants, a customer’s addresses and orders, and a country’s zones. The fulfillment route can buy a shipping label through the shipping plugin that serves the order, and it checks the order first so the same label is not bought twice. Full parameter tables are in the documentation for each release.
Send your Joomla API token as a bearer token, then call the route. Every route, read or write, requires an authenticated request.
curl -H "Authorization: Bearer $TOKEN" https://example.com/api/index.php/v1/j2commerce/orders CLI
The console plugin adds four J2Commerce commands to Joomla’s own CLI.
The scaffolder writes the manifest, service provider, extension class and language files for a new payment or shipping plugin. It takes a type and a name. Add --install to register the plugin right away, or --path to write it somewhere other than the plugins directory.
php cli/joomla.php j2commerce:create:plugin payment mygateway --install Load the sample store so you have a catalog to build and test against.
php cli/joomla.php j2commerce:load:sampledata On a store upgraded from an older version, this one-time command copies the payment records saved on older orders into the order ledger, so refunds and reports read one history.
php cli/joomla.php j2commerce:seed:order-ledger If a product’s option settings ever become double or triple encoded, this command finds and fixes them. It runs as a dry run by default. Add --apply to write the changes.
php cli/joomla.php j2commerce:repair:optionparams Scheduler
They are standard Joomla Scheduler tasks, so you turn them on and monitor them from the Scheduled Tasks screen like any other task on your site.
Included in Core
All three install with the core package, so you can build on them from your first commit.
In core: Web Services plugin
Read and write products, orders, customers, inventory and coupons, so every connected system works from the same data.
In core: Console plugin
Scaffold a payment or shipping plugin, load sample data, repair option data and backfill the order ledger without a one-off script.
In core: Task plugin
The Scheduled Tick event hooks your extension into periodic work, with no task plugin of your own to ship.
Before You Integrate
See what is planned, read the source, check service status and review how security fixes are published.
When you recommend extensions to a client, the stack finder suggests a set that fits their store. Find Your Stack
Opens the J2Commerce documentation at docs.j2commerce.com.