VM Theon

Axxen Shop Joomla Template For Virtuemart

Build a mobile friendly ecommerce website today with the Axxen shop virtuemart template for Joomla

 
  • Change Log:
    October 2, 2026

    Version 5.4.9.1

    Quickstart install fix. The quickstart now installs completely on MySQL databases. Before, the Joomla installer stopped part-way through on MySQL hosts; MariaDB hosts were not affected. Thanks to Iryna for reporting this.

    Quickstart. Removed leftover files from the quickstart's top folder.

    September 30, 2026

    Version 5.4.9

    Joomla 5.4.9. Updated for Joomla 5.4.9, a security and bug-fix release. The quickstart now installs Joomla 5.4.9.

    September 30, 2026

    Version 5.4.8.3

    Fix for the previous update. After the security update of 28 September, pages the template shows in its "component" view stopped with a server error ("Call to undefined function phEsc()"). That view is used for print pages, pop-up windows and the VirtueMart cart and checkout steps. The helper those pages need is now included, and they work again. There are no other changes. Recommended for every site that installed the previous version.

    September 28, 2026

    Version 5.4.8.2

    Security update. Every template setting that is written into your pages is now escaped for the place it lands in (HTML, attributes, CSS and JavaScript), including the site name and slogan in image alt text, and module, menu and tab titles wherever the template prints them (module headings, title attributes and the mega menu). A setting or title containing a quote or markup can no longer break out of its place in the page. The error page escapes its message and title too. There are no visual changes. Recommended for all sites.

    September 3, 2026

    Version 5.4.8.1

    Maintenance release.

    • Joomla 3 compatibility code removed throughout the template. The template's PHP now uses Joomla's current API everywhere — the template files, the component override and every layout override (cart, checkout, product details, login and the modules). The old code only worked while Joomla's Behaviour – Backward Compatibility plugin was switched on, and will not work at all on Joomla 6. The most serious case was the error page: when it failed, Joomla could not display any error page, so an ordinary “page not found” was served to your visitors as a 500 server error.

    Both the template package and the Quick Start have been rebuilt for this release. Download the latest from your member area.

    August 18, 2026

    Version 5.4.8

    Axxen 5.4.8 — 2026-08-18

    • Version numbering has changed. From this release the template version matches the Joomla version it is built and tested against, so this is the 5.4.8 build for Joomla 5.4.8. The previous number for this template was 5.4.1.3. Nothing about how you install or update the template changes, and Joomla still treats 5.4.8 as newer than 5.4.1.3.
    • The Quick Start now installs Joomla 5.4.8. The previous Quick Start bundled Joomla 5.4.7. Starting a new site from the Quick Start now gives you the current Joomla release without an immediate update afterwards.
    • VirtueMart has been updated to 4.8.0 — a security update. The Quick Start previously bundled VirtueMart 4.6.8. VirtueMart 4.8.0 is the current release from the VirtueMart team and carries their security fixes, so a site started from this Quick Start begins on the patched version. If you already run this template on an existing site, update VirtueMart there through Joomla's own Extensions → Update screen — the template package does not carry VirtueMart itself.
    • Invisible characters were breaking the page's JavaScript. 672 zero-width characters (U+200B) had been scattered through index.php, including inside a block of inline JavaScript. They cannot be seen in an editor and they survive copy-and-paste, but to a browser they are a syntax error, so the whole script block never ran. On this template they landed in the legacy browser-detection block. All 672 are gone and every inline script on the page now parses — 1 uncaught page error in the browser console, now 0.
    • The packaged changelog was missing its most recent entry. CHANGELOG.html inside the template folder stopped at 5.4.1.2 while CHANGELOG.md beside it already carried 5.4.1.3. Both files are now in sync.
    • The Quick Start no longer installs the retired vmbasic template. VirtueMart's own package reinstates an old vmbasic site template. It was riding into the Quick Start as 88 files plus two registration rows, and appearing in your Site Template Styles list for no reason. It is gone.
    • A stray copy of the template itself has been removed from the Quick Start. A leftover axxen.zip — a stale copy of this very template — was sitting in the Quick Start's templates/ folder and being unpacked alongside the real one.

    No template file other than index.php and the packaged changelog changed between 5.4.1.3 and 5.4.8.

    July 22, 2026

    Version 5.4.1.3

    Maintenance release — fixes for issues found in real-world use on a live production site. With thanks to Michael Mullan, whose Expression bug report led to this maintenance pass across our templates.

    • Fixed: search-module icon rendered as a stray character — the Joomla 3 jui icon font was removed from Joomla core in Joomla 4, so the glyph fell back to a literal character and the dead font reference 404'd on every page. The icon is now a self-contained SVG.
    • Fixed: pagination arrows (first/previous/next/last) rendered as empty squares — Joomla 4+ uses newer icon class names the template never mapped. Now self-contained SVGs.
    • Fixed: featured/blog articles showing only their title — tall single-column intro articles were clipped by the blog layout CSS.
    • Improved: search button sits snug against the search input.
    • Fixed: the template version shown after install now tracks the real release version.
    July 16, 2026

    Version 5.4.1.2

    Bugfix release. Fixes a legacy Joomla 3 form-validation call (behavior.formvalidation, removed in Joomla 5) in the VirtueMart login template override, which could cause a 500 - behavior::formvalidation not found error on pages where the login block is shown to guests — for example the cart, depending on your VirtueMart settings. The override now uses the Joomla 5-native behavior.formvalidator.

    Found during the follow-up on the 2026-07-15 report — thank you again, Zoltán!

    Also neutralized a dormant legacy behavior.framework call in a parked override folder (never loaded, but a latent fatal if re-enabled).

    July 15, 2026

    Version 5.4.1.1

    Bugfix release. Fixes a PHP 8 fatal error (count(): Argument #1 ($value) must be of type Countable|array, null given) on the cart "Bill To / Ship To" address edit page. The edit_address.php template override — and its Bootstrap-3 layout variant — now guard the optional user-fields block with !empty() instead of count(), so guest checkout address editing works on all PHP 8 versions. Recommended update for everyone running Axxen 5.4.1.

    Thank you, Zoltán, for taking the time to report this!

    May 30, 2026

    Version 5.4.1

    5.4.1 2026-05-30

    Maintenance release — Quickstart and standalone rebuilt against VirtueMart 4.6.8 Pro. Quickstart now formally ships as a release artifact. Axxen 5.4.0 (2026-05-28) shipped standalone-only; a Quickstart bundle was assembled mid-modernization but never formally released. This 5.4.1 release formalizes the Quickstart as a first-class release artifact alongside the standalone template package, and rebuilds both against current VirtueMart 4.6.8 Pro (Revision 11258, March 12 2026).

    Changed — Quickstart bundle (axxen-quickstart-J5.4.6-30.05.2026.zip)

    • Joomla: 5.4.6 (current stable release as of 26 May 2026).
    • VirtueMart: 4.6.8 Pro (Revision 11258, March 12 2026).
    • Axxen template: 5.4.1 (this release).
    • Bundle ships with all 5.4.0 J5-native modernization in place — Bootstrap 5.3.8, Swiper 11 slideshow, vanilla-JS menu, modern social-network set, security helpers.

    Changed — standalone template package (pkg_axxen-5.4.1.zip)

    • Axxen template: 5.4.1.
    • No code changes vs 5.4.0 inside the template tree itself — all 5.4.0 J5-native modernization work (Bootstrap 5.3.8, Swiper 11 slideshow, vanilla-JS menu, modern social-network set, security helpers) remains in place. This release is a rebuild against current VirtueMart + a version bump so the released package reflects ongoing maintenance activity.
    • The standalone template installs cleanly on top of any Joomla 5 + VirtueMart 4.x site; for the cleanest maxdebug experience, run against VirtueMart 4.6.8 Pro (or newer).

    Notes

    • Server PHP version when this release was prepared: PHP 8.3.31 on green's ea-php83 handler.
    May 29, 2026

    Version 5.4.0

    5.4.0 2026-05-28

    First Joomla 5 native release. Axxen has been rebuilt for Joomla 5.4.6 + VirtueMart 4.6.4 + PHP 8.x + Bootstrap 5.3.8 + vanilla JavaScript, with no carry-over of the Bootstrap 2 / jQuery 1.x / Camera.js / Superfish / Dropkick / Backstretch dependencies that defined the earlier 5.1.x-era codebase. This is the first Axxen release that ships with no template-side jQuery and no BS2 markup in any rendered output.

    Added

    Joomla 5 native API

    • Full Joomla 5 namespace compliance across template files, overrides, and helper utilities — every Joomla\CMS\* class accessed through its namespaced form (Factory, Text, HTMLHelper, Uri, Route, ComponentHelper).
    • templateDetails.xml updated to declare J5 compatibility (<extension version="5.0" ...> with method="upgrade") so existing Axxen customers can update in place without uninstall-first.

    Bootstrap 5.3.8 native rendering

    • Template now loads Joomla 5’s bundled /media/vendor/bootstrap/css/bootstrap.min.css directly. The three legacy BS2 stylesheets that previously loaded from templates/axxen/css/ (bootstrap.min.css v2.3.2, bootstrap-responsive.min.css, bootstrap-extended.css) are no longer enqueued.
    • css/axxen-fixups.css ships as the final cascade layer to harden VirtueMart 4 + Joomla 5 admin classes that have no BS2 equivalent (VM product-grid <ul> bullet resets, VM tab-module BS3-markup bridge, .vmdebug suppression, menu-vanilla parent-arrow indicators, native currency-selector chrome).

    Modern slideshow — Swiper 11

    • Custom legacy Camera.js plugin replaced with Swiper 11.
    • templateDetails.xml keeps the existing cam_* template-parameter set (pagination, navigation, autoplay timings) so site-builder muscle memory is preserved; Swiper is configured from those same params at render time.
    • Slide markup migrated from .camera_wrap / .camerasrc / .camera_caption to .swiper / .swiper-wrapper / .swiper-slide.
    • Slideshow container id="ph-camera-slideshow" preserved so any external CSS targeting that ID continues to work; new classes .swiper.ph-swiper-slideshow are what the new Swiper config targets.

    Vanilla JavaScript menu

    • New js/menu-vanilla.js — self-contained IIFE replacement for the legacy superfish.js + supersubs.js + inline jQuery menu handlers.
    • WeakMap-backed 500 ms mouse-out delay preserves the original menu-hover feel without any jQuery dependency.
    • Parent-arrow indicators and submenu width handling moved to pure CSS in axxen-fixups.css (replaces what supersubs.js calculated dynamically).

    CSS-driven background images

    • jquery.backstretch removed. Section backgrounds (.panel1 side-panel, hero areas) now use CSS background-image + background-size: cover + background-position: center — the standard modern technique that ships with no JS payload at all.

    Native currency selector

    • jquery.dropkick removed. The VirtueMart currency selector now renders as a styled native <select> element. Custom chrome (border, padding, custom SVG dropdown arrow, Axxen teal focus ring #29becc) lives in axxen-fixups.css so the visual integration with the rest of the template is preserved.

    Modern social network support

    • Seven new social services added to the Community Links section: Bluesky, Threads, Mastodon, TikTok, Pinterest, Discord, Instagram.
    • X (the Twitter rebrand) replaces the legacy Twitter icon; per-link icon file x.png ships with the template.
    • All new fields are surfaced in the template-options panel with show/hide toggles and URL entry, defaulting to #TYPE-URL-HERE so site builders see a clear placeholder rather than a broken link.
    • Three locations in index.php updated in lockstep (outer multi-line OR chain that gates the entire Community Links container, inner single-line OR chain that sets the $socials flag, and the <ul id="social-links"> rendered list) so a single missing show-toggle can no longer leave an orphan <li> in the rendered markup.

    Security helpers

    • New escape and validation helpers added to index.php:
      • phEsc() — HTML attribute escaping for href, src, alt, title, and Swiper caption output.
      • phHexColor() — color parameter validation (^#?[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$) with fallback to #000000 on bad input.
      • phCssDim() — dimension parameter validation accepting px / em / rem / % / vh / vw / pt / ex / ch / cm / mm / in.
    • Active .htaccess at the template root replacing the historical htaccess.txt placeholder, with a <FilesMatch> 403 rule for backup-extension patterns (.bak, .bak-*, pre-*, .orig, .old, .swp, .swo, .tmp, ~).

    Documentation

    • CHANGELOG.md and CHANGELOG.html ship inside the template tree.

    Changed

    J3 → J5 API migration

    • Every deprecated J* static class call migrated to its namespaced equivalent: JFactory → Factory, JText → Text, JHtml → HTMLHelper, JUri → Uri, JRoute → Route, JComponentHelper → ComponentHelper, etc.
    • JDocumentHTML::countModules() → $this->countModules() (J3 helper static deprecated in J6).
    • JModuleHelper::getModules() → \Joomla\CMS\Helper\ModuleHelper::getModules().
    • new JRegistry() → new \Joomla\Registry\Registry().

    Template-override architectural updates for Joomla 5 dispatcher

    • html/mod_login/default.php — added $type = $type ?? 'login'; fallback at the top of the file. Joomla 5 split mod_login into two separate template files (default.php for login state, default_logout.php for logout state) and the dispatcher no longer passes $type to default.php. The legacy Axxen override carried an if ($type == 'logout') branch from the pre-Joomla-5 era when both states lived in one file; the fallback silences the resulting Undefined variable $type warning while preserving that branch as a safety net.
    • html/mod_breadcrumbs/default.php — added $moduleclass_sfx = $moduleclass_sfx ?? ''; fallback after defined('_JEXEC') or die;. Sibling pattern to the mod_login $type fix — Joomla 5’s mod_breadcrumbs dispatcher no longer passes $moduleclass_sfx to override templates that previously relied on it. (This finding has been recorded in Cybersalt’s J5-modernization skill as a reusable check for any future legacy template that overrides mod_breadcrumbs.)

    VirtueMart 4 template overrides modernized for BS5

    • html/com_virtuemart/cart/default_pricelist.php — legacy <?php defined ('_JEXEC') or die('Restricted access'); ?> opener rewritten to a modern multi-line PHP header with use Joomla\CMS\Router\Route; / use Joomla\CMS\Language\Text; / use Joomla\CMS\HTML\HTMLHelper;, and every JText::_() / JRoute::_() / JHtml::_() call migrated to the corresponding namespaced helper. BS2 hidden-phone utility classes converted to BS5 d-none d-md-table-cell.

    Fixed

    • PayPal plugin plgVmDisplayLogin() fatal under VM4 + J5 namespace migration: dropped the legacy VmView type hint on plugins/vmpayment/paypal/paypal.php line 285 (argument is passed as \VirtueMart\VmView in the namespaced runtime). Same fix shipped in the Avant 5.4.0 release for the same upstream issue.

    Removed

    • Bootstrap 2.3.2 stylesheet block from index.php (3 legacy <link> lines).
    • jQuery 1.8.1 and the jquery.noConflict.js shim — Joomla 5’s bundled jQuery slim build is loaded on demand by VirtueMart 4; the template itself has no jQuery dependency.
    • Camera.js slideshow vendor block — replaced by Swiper 11.
    • Superfish + Supersubs menu plugins — replaced by menu-vanilla.js.
    • jquery.backstretch — replaced by CSS background-size: cover.
    • jquery.dropkick — replaced by native <select> with custom CSS chrome.
    • Five retired social services: Google+, StumbleUpon, Digg, Blogger, and the legacy plain-Twitter slot (replaced by X). Associated icon files and language constants removed.

    Security

    • Active .htaccess at the template root blocks direct HTTP access to common backup-file extensions, protecting against accidental exposure of .bak / .orig / editor-swap-file content created during template customization.

    Built against (VirtueMart + Joomla baseline)

    • Joomla CMS: 5.4.6 (current as of release date)
    • VirtueMart core: 4.6.4
    • VirtueMart AIO: 4.6.4
    • VirtueMart TcPdf Library: 6.8.2
    • Akeeba Backup Core for Joomla: 10.3.3
    • Weblinks Extension Package: 5.1.0
    • Bootstrap (CSS): 5.3.8 (Joomla 5 bundled)
    • PHP: 8.3.x verified (compatible with 8.2 / 8.3 / 8.4)

    Package format

    • Standalone template: pkg_axxen-5.4.0.zip — Joomla package wrapper that installs the tpl_axxen template extension and registers it under the package manager. <blockChildUninstall>true</blockChildUninstall> prevents customers from removing the template directly via the Extensions Manager (must uninstall the package instead).
    • No Quickstart bundle: Axxen 5.4.0 ships standalone only. Customers install over an existing Joomla 5 + VirtueMart 4 site.
    Known remaining warning at maxdebug — out of standalone-template scope. One PHP 8.2 deprecation still fires on the cart view at error_reporting='maximum':
    Creation of dynamic property VirtueMartControllerCart::$address_type is deprecated
    in components/com_virtuemart/controllers/cart.php on line 87
    This is a VirtueMart-core file, outside the templates/axxen/ tree. Since this is a standalone template release (no Quickstart bundle), VM-core patches are intentionally not shipped — that’s upstream VirtueMart’s territory and is expected to be addressed in a future VirtueMart release. At the default Joomla error_reporting level (which is what production sites run), this deprecation is invisible.
    August 11, 2025

    Version 11.08.2025 5.3.0/4.4.4

    • Upgraded - Now compatible Joomla 5
    • Upgraded - Now compatible Virtuemart 4.4.4
    • Fixed - Minor bugs
    November 29, 2024

    Version 29.11.2024 5.1.2/4.2.12

    • Fixed - Minor bugs with cart
    August 15, 2024

    Version 13.08.2024 5.1.2/4.2.12

    • Upgraded - Now compatible Joomla 5
    • Upgraded - Now compatible VirtueMart 4.2.12
    • Fixed - Minor bugs
    December 18, 2023

    Version 23.11.2023 4.3.4/4.2.0

    • Updated - Compatible with PHP 8.2
    • Updated - Compatible with Joomla 4.3.4
    • Updated - Compatible with VirtueMart 4.2.0
    • Fixed - Minor bugs
    June 30, 2023

    Version 26.06.2023 4.3.0/4.0.13

    • Fixed - VirtueMart Products Module bug
    • Fixed - Double ReCaptcha on VirtueMart Registration page
    • Fixed - Template toggle button not displaying
    June 23, 2023

    Version 16.06.2023 4.3.0/4.0.13

    • Fixed - Menu Params error for adding in image on menu
    May 20, 2023

    Version 20.05.2023 4.3.0/4.0.12

    • Fixed - Template updated to be compatible with Joomla 4.3
    September 9, 2022

    Version 09.09.2022 3.10.11/4.0.6

    • Fixed - Joomla 3.10.11
    • Fixed - Template updated for PHP 8.0