Skip to Content

New J2Commerce 6.6.5 is out. Here is everything in the release.

See What’s New
Account
Enter the email address on your account.
Forgot your username?
Enter your password.
Forgot your password?

Or continue with

Developer Hub

Build extensions with the Joomla you already know.

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.

Two thick programming manuals stacked beside a laptop of code with an extra framework layer piled on its screen and crumpled paper nearby.

References

Look up the REST API, CLI and changelog.

Each reference is current as of release 6.6.5.

  • REST API Reference

    Products, orders, customers, inventory and tax over Joomla’s own web services layer. Current as of 6.6.5

    REST API

  • CLI Reference

    A plugin scaffolder, sample data, data repair tools and seven scheduler tasks. Current as of 6.6.5

    CLI

  • Changelog

    What changed in each version, grouped into Added, Changed, Fixed and Security. Updated every release

    View the Changelog

Architecture

Native Joomla code, two template families and vanilla JavaScript.

Extensions resolve from Joomla’s own container, ship in Bootstrap 5 or UIkit, and run on vanilla JavaScript with no bundler step.

  • Namespaced and Container-Resolved

    Extensions register a service provider and pull their dependencies from the container. No static factories, no legacy loader.

  • Two Template Families

    Bootstrap 5 and UIkit ship in core, and a layout override service lets your template take over a single layout without forking the view.

  • Vanilla JavaScript

    ES modules, fetch() and event delegation. No jQuery, and no build step needed to read the storefront code.

  • Joomla Scheduler Tasks

    Recurring work runs as Joomla Scheduler tasks, so it is configured, logged and triggered the same way as everything else on the site.

  • Indexed by Smart Search

    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.

Read the Docs

REST API

Connect your systems through the 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:

What Is Exposed

  • Products
  • Variants
  • Inventory
  • Orders
  • Order Items
  • Order History
  • Order Statuses
  • Fulfillment
  • Customers
  • Addresses
  • Customer Orders
  • Coupons
  • Vouchers
  • Manufacturers
  • Currencies
  • Countries
  • Zones
  • Shipping Methods
  • Payment Methods
  • Tax Profiles
  • Tax Rates
  • Reports
  • Store Configuration

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.

Reading Orders

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

Scaffold plugins, load sample data and repair data from the CLI.

The console plugin adds four J2Commerce commands to Joomla’s own CLI.

Scaffold a Plugin

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 Sample Data

Load the sample store so you have a catalog to build and test against.

php cli/joomla.php j2commerce:load:sampledata

Backfill the Order Ledger

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

Repair Option Data

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

Run store maintenance with seven core scheduler tasks.

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.

  • Clear Outdated Carts Deletes abandoned carts and their items once they pass the configured retention term.
  • Remove Abandoned Orders Deletes orders still in a New status past a set age, and skips any that already hold payment records.
  • Process Queue Works through pending queue items in batches, releases stale locks and logs every run.
  • Clean Up Queue Logs Deletes old queue logs and completed queue items once they pass their retention window.
  • Update Currency Rates Fetches fresh exchange rates through the Currency Updater app and updates every enabled currency.
  • Clean Up Order Uploads Removes orphaned temporary uploads and files attached to orders in chosen statuses past retention.
  • Scheduled Tick Fires one event so extensions can run periodic work without shipping a task plugin of their own.

Included in Core

Build on the API, CLI and scheduler from day one.

All three install with the core package, so you can build on them from your first commit.

  • 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.

  • 4 CLI Commands

    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.

  • 7 Scheduled Tasks

    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

Check the roadmap, source and status 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

Extend J2Commerce without changing core files.

Opens the J2Commerce documentation at docs.j2commerce.com.