VM Theon

Serenity Shop Joomla Template For Virtuemart

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

 
  • Change Log:
    July 22, 2026

    Version 5.4.0.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.0.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!

    July 15, 2026

    Version 5.4.0.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 Serenity 5.4.0.

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

    June 16, 2026

    Version 5.4.0

    Compatible with: Joomla 5.4.6 · VirtueMart 4.6.8 · PHP 8.x (verified on PHP 8.3.31) · Bootstrap 5.3.8
    First Joomla 5 native release of Serenity. The template has been rebuilt from the ground up for Joomla 5.x + VirtueMart 4.x + PHP 8.x + Bootstrap 5.3.8, with the Bootstrap 2 / jQuery 1.x dependencies that defined the earlier 5.x-era codebase retired in favour of a bridge-CSS aliasing layer that preserves backwards compatibility for legacy module content while the underlying rendering stack is fully modern.

    Added

    Joomla 5 native admin form rendering

    • 56 template-option toggles across templateDetails.xml converted from the legacy class="switch" type="checkbox" value="true" form to the J5-native type="radio" layout="joomla.form.field.radio.switcher" class="switcher" form with explicit <option>JNO</option>/<option>JYES</option> children. The Yes/No pill switcher now renders correctly across slideshow controls, font settings, EU cookie law, drop-down menu, mega menu, site-name flags, and the 5 custom-social-icon slots.
    • templateDetails.xml rewritten to the J5 manifest schema with type="template", client="site", method="upgrade" so existing customers can update in place without uninstall-first.

    Bootstrap 5.3.8 native rendering via bridge layer

    • Template now renders directly against J5’s bundled /media/vendor/bootstrap/css/bootstrap.min.css — no separate Bootstrap copy required.
    • New css/bs2-bs5-bridge.css aliasing layer (~500 lines, ~16 KB) loaded last in the head so it wins the cascade. The bridge aliases legacy BS2 grid classes (.row-fluid, .spanN, .offsetN, .pull-left/.pull-right, .visible-/.hidden-phone/tablet/desktop) so that custom-HTML module content stored in jos_modules.content — which is data, not code, and therefore not rewritten by any template upgrade — continues to render side-by-side instead of collapsing to stacked block elements.
    • Bridge layer also carries defensive image aspect-ratio rules, the megamenu hover-delay fix, sticky-header background, testimonials-section min-height reset, and partners carousel spacing — all template-side fixes that would otherwise have lived scattered across the template’s own CSS files.

    Universal image aspect-ratio handling

    • New img[width][height] universal CSS rule defensively caps every image at max-width:100%; height:auto, with exceptions for icon, socicon, emoji, and separator classes that need exact pixel sizing.
    • Container safety-net selectors cover every VirtueMart marketplace pattern: .main-image, .vm-additional-images, .vmproduct, .productdetails-view, .category-view, .featured-view, .latest-view, .topten-view, .recent-view, .related-products-view, .browse-view, .search-result-products, plus .com-content-article and .article-content for editorial pages.
    • Resolves the tall-narrow image stretching that affected the cart, related-products, category view, single product detail hero, and contact page when VirtueMart emitted its _585x585.jpg resized assets with literal width="585" height="585" attributes under Bootstrap 5 flex parents.

    Modern social-network icon set

    • Font Awesome 6.5.2 social icons replacing the legacy 2014-era set. Facebook, X (the Twitter rebrand), Instagram, YouTube, LinkedIn ship as the active set.
    • Legacy services (Google+, StumbleUpon, Digg, Blogger) removed from the template options panel and the rendered output.
    • 5 custom-social-icon slots retained for site builders who want to add their own beyond the core 5.

    Megamenu demonstration patterns

    • Categories hub ships with a 4-column curated megamenu (For Man / For Woman / Shoes promo / Accessories icon list) demonstrating the editorial showcase pattern customers can adopt for their own e-commerce category hubs.
    • Using Joomla! hub ships with an organic child-menu rendering its 6 real menu children (Using Extensions, Parameters, Getting Help, Getting Started, The Joomla! Project, The Joomla! Community) demonstrating the documentation-hub pattern.
    • Both patterns work with the same menu-position-N-<alias> architecture, so customers can mix and match per hub.

    Changed

    J5 + VirtueMart 4.6.8 compatibility

    • Joomla CMS bumped from 5.1.2 to 5.4.6.
    • VirtueMart bumped from 4.2.12 to 4.6.8 (istraxx channel).
    • PHP supported range: 8.0–8.3 (verified end-to-end on 8.3.31).
    • Bootstrap 2.3.2 → 5.3.8 (J5 bundled).
    • Template version convention updated from the legacy DD.MM.YYYY <jver>/<vmver> form to semver 5.4.0, aligning with the VMT post-Avant catalogue.

    Custom megamenu render loop

    • Replaced legacy $menuitem->params direct property access (which throws "Cannot access protected property" under J5 because \Joomla\CMS\Menu\MenuItem::$params is now protected) with the public $menuitem->getParams() accessor that returns the same Registry object.
    • Added a level == 1 filter to the megamenu loop because $menu->getItems('menutype', $type) now returns every menu item at every level — flat list of 88 items. Pre-J5 versions returned only level-1 items. Without the filter, the entire menu tree (categories, sub-categories, individual articles) rendered as flat siblings across the top bar.
    • Corrected the selectmegamenu template param to point at the actual published menutype (topmenu) instead of the stale legacy value (megamenu) which referred to a non-existent menutype and silently emitted zero menu items.

    Megamenu hover-gap fix

    • Pure-CSS transition: top 0s linear 500ms on the dropdown’s hidden state — the dropdown stays at top: 90px for 500 ms after hover-out before reverting to top: -999em. This mirrors Superfish’s 500 ms hover delay (which the legacy template used for the non-mega dropdown path but never wired into the megamenu).
    • Resolves the long-standing UX bug where the mouse traversing the visual gap between the menu bar and the dropdown would lose :hover and the dropdown would vanish mid-traversal.

    Layout & styling refinements

    • Sticky #top-handler now ships with a white background and subtle shadow so the menu bar stays readable on scroll instead of fading into whatever’s behind it.
    • Testimonials section .container { min-height: 460px } hard-coded value removed in favour of min-height: auto — resolves the over-tall gray box that the BS2-era styling produced.
    • Partners / manufacturers carousel padding-bottom and pagination-dot spacing tightened to match the canonical demo proportions.
    • Cart product images (span.cart-images img) now defensively constrained to width:45px; height:auto; max-height:60px; object-fit:contain — resolves the tall-narrow stretching under BS5 flex contexts.
    • Breadcrumbs cleaned up: bullet markers removed, separator spacing tightened.
    • Auto-generated menu-item alias 2015-02-18-10-15-06 on Template Features renamed to template-features — cleaner admin display, SEO-safe if the item is ever wired to a real page.

    Fixed

    • Stale jos_contact_details.image reference pointing at images/template.png (a file that never existed in any donor history) replaced with a real image, eliminating the broken-image render on the contact page.
    • Donor _update_sites.location URLs cleaned of leading-line-feed + indentation corruption that libcurl rejected as "URL contains whitespace" — this was the source of the red ❌ badge on the cpanel admin dashboard immediately after install.
    • Joomla 5 admin AJAX badge endpoints (com_postinstall/getMenuBadgeData, com_installer/database.getMenuBadgeData, etc.) verified clean through the server-side WAF and rate-limiter so the cpanel ships with all-green badges.

    Removed

    Legacy frameworks

    • Bootstrap 2.3.2 vendored CSS — J5’s bundled Bootstrap 5.3.8 covers everything, with the bridge CSS aliasing legacy BS2 class names in customer-authored module content.
    • jQuery 3 compat shim for legacy plugins — the modernized template runs on J5’s bundled jQuery without the shim.

    Dead JavaScript

    • Backstretch jQuery plugin (used historically for slideshow background images) — replaced with CSS background-size: cover.
    • Dropkick custom <select> styling — replaced with native styled selects (light border, focus ring, SVG dropdown arrow) carried in the bridge CSS.
    • Superfish / supersubs JS dependency on the megamenu — pure-CSS transition-delay now handles the hover timing without any JS.

    Retired social services

    • Google+ (defunct since 2019)
    • StumbleUpon (defunct since 2018)
    • Digg (no longer relevant in current social sharing)
    • Blogger (icon dropped from the active set; site builders can re-add via custom-social-icon slot)

    Donor cruft

    • templates/horme_3/ and templates/vmbeez3/ — stale legacy donor templates left over from the 2016 origin point.
    • templates/serenity/html/old-overrides/ — superseded override stubs (com_virtuemart/cart/default_*.php, mod_virtuemart_cart/default.php) that would otherwise have triggered "overrides exist for this layout" warnings in the customer’s Override Manager.
    • Deprecated extensions: PayPal vmpayment plugin (manifest literally says "deprecated, please use PayPal Checkout" — superseded by vmpayment_paypal_checkout) and file_fof30 (Akeeba FOF 3.x library, superseded by FOF 4 in 2021; Akeeba Backup 10.x doesn’t need it).

    Security

    • WAF false-positive resolved at server level: LiquidWeb ModSecurity rules 5000223 and 5000224 (which were blocking the Joomla 5 admin AJAX badge endpoints with 403/411 responses) are now excluded for com_postinstall and com_installer task=getMenuBadgeData requests in the /etc/apache2/conf.d/modsec2.zz-cybersalt-joomla-ajax-fix.conf server-level override.
    • Apache mod_evasive DOSPageCount raised from 4 to 30 to accommodate the J5 cpanel’s 10–15 badge AJAX calls per second — the previous threshold was tripping false-positives and surfacing red badges on every install.

    Quickstart improvements

    • Article hits counter reset to zero across all bundled content (68 articles, 1305 accumulated hits cleared). A fresh customer install no longer ships with pre-loaded view counts on the demo articles. Automated in the closeout pipeline as Phase 5j so future templates ship clean by default.
    • Post-install messages cleaned up — no spurious red badges on the admin cpanel after install.
    • Update Sites scrubbed of stale and broken vendor entries (whitespace-corrupted VirtueMart URLs, istraxx’s ${PHING.NAME}/${PHING.VERSION} unreplaced build-tool placeholders that polluted the _updates table). 4 broken sites disabled, 1 corrupted URL repaired.
    • Template Overrides Checker pre-checked — the admin opens without "needs review" warnings on shipped overrides.
    • Discover state corrected on bundled extensions so the cpanel Discover panel doesn’t flag the install as having undiscovered components.
    • Deprecated extensions removed from the bundled fileset: PayPal vmpayment plugin and FOF30 library.
    • Browser-cache walkaround guidance: customers performing the test install should open the admin URL in a new incognito / private window for the first walkaround — existing browser tabs accumulate cached HTML during admin clicks and can return 404/403 from stale CSRF tokens that have nothing to do with the install itself.

    Package format

    • pkg_serenity-5.4.0.zip — customer-facing package wrapper. Drop into Joomla’s Install → Extensions → Upload Package File. Wraps the bare template plus any related plugins/modules into a single install action.
    • tpl_serenity.zip — bare template (flat-root), useful for J3/J4 migration paths or third-party developer integration.
    • serenity-quickstart-J5.4.6-16.06.2026.zip — full-site quickstart bundle (~67 MB) with Joomla 5.4.6 core + VirtueMart 4.6.8 + Serenity template + bundled demo content. Unzip into a fresh hosting account, run the Joomla installer, and the demo site comes up matching the canonical demo at demo.virtuemarttemplates.net/Joomla5/Serenity/.
    Upgrade path: Customers already running Serenity on a live VirtueMart store should install the standalone template package pkg_serenity-5.4.0.zip via Joomla → System → Install → Extensions → Upload Package File. The package ships with method="upgrade", so the template updates in place without affecting your existing content, modules, or settings. You’ll also want to update Joomla to 5.4.6 and VirtueMart to 4.6.8 separately (via their normal updaters) to take full advantage of this release. The quickstart bundle (serenity-quickstart-J5.4.6-16.06.2026.zip) is for fresh installs only — it installs the full demo site and is not an upgrade path for existing live stores.
    August 6, 2025

    Version 06.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 8, 2024

    Version 08/08/2024 5.1.2/4.2.12

    • Upgraded - Now compatible Joomla 5
    • Upgraded - Now compatible VirtueMart 4.2.12
    • Fixed - Minor bugs
    June 21, 2024

    Version 21/06/2024 4.4.5/4.2.0

    • Fixed - Tab Bug
    June 13, 2024

    Version 13/06/2024 4.4.5/4.2.0

    • Fixed - Minor Bugs
    February 6, 2024

    Version 06/02/2024 4.2.0

    • Fixed - Minor Bugs
    June 30, 2023

    Version 26.06.2023 4.3.0/4.0.13

    • Fixed - VirtueMart Products Module issue
    • 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