X Store Virtuemart Template Changelog
- Change Log:
- Release Date:
2026-10-31, Version:
5.4.10.2, Notes:
Checkout from the cart panel. The open cart panel offered only a Show Cart link. It now ends with a Check Out Now button, shown once the cart has products and kept in step when products are added without a page reload.
Added-to-cart pop-up. Continue Shopping and Show Cart showed as bare text in a box sized to them. They are now proper buttons, and on a small phone the pop-up fits the screen.
Ask a question. The question pop-up opened collapsed to a narrow strip. It now opens at full size, and its form no longer breaks its labels before the colon; on a phone the Send button and the character counter no longer overlap.
Print view and shop pop-ups in the template's colours. The print view and VirtueMart's pop-up windows loaded Bootstrap after the template's own stylesheet, so their links and buttons came out in Bootstrap blue. They now use the template's colours.
Phone header. Opening a phone panel (search, account, cart) no longer dims the logo and menu buttons at the top of the page. The header no longer turns see-through over the grey overlay.
Cart count badge. The number in the red cart badge sat 4px above the middle of its circle on desktop; it is now centred.
Defaults for a fresh install. The site name / logo now links to the home page and the slideshow is switched on with autoplay on desktop and phones (
logoLinked,cam_turnOn,cam_autoAdvance,cam_mobileAutoAdvancedefault to on). Existing sites keep their saved settings.Quickstart. Guests can now use Ask a question without logging in first, and the demo's Contact Us and Special Offers menu items, which pointed nowhere, now open the contact page and the shop.
Removed. 19 JavaScript and CSS files nothing loads (281 KB), among them jQuery 1.8.1, Superfish, Modernizr and old Internet Explorer stylesheets; template code that read three settings the template never offered.
- Release Date:
2026-10-23, Version:
5.4.10.1, Notes:
Checkout button in the cart panel. Opening the cart now ends with a full-width Checkout button under the total, on desktop and phones; it opens the cart page, where checkout happens. Before, the panel’s only action was a “Show Cart” link above the item list.
- Release Date:
2026-10-23, Version:
5.4.10, Notes:
First Joomla 5 native release. XStore has been brought forward from its previous download (version string
07.08.2025 5.3.0/4.4.4) to run natively on Joomla 5.4.10, VirtueMart 4.8.4 and PHP 8. The template’s own markup keeps its Bootstrap 2 class names —.spanN,.row-fluidand the rest — and renders on Joomla’s bundled Bootstrap 5 through a compatibility stylesheet shipped with the template, so layouts and overrides you may have customised keep working. 263 Joomla 3 static class calls have gone to zero, the bundled Bootstrap 2 stylesheets are no longer shipped, the template options have real colour pickers and Joomla 5 switches, and the phone layout has been rebuilt. jQuery still loads for the camera slideshow, the Slick carousels, the styled drop-downs and the cookie-law pop-up; the old jQuery menu, background, parallax and polyfill plug-ins are no longer loaded. Compared with the previous download: 255 → 250 files, 11 added, 16 removed, 63 modified. The template version is now 5.4.10, matching the Joomla release it ships with.Added
Bootstrap 5 rendering through a compatibility stylesheet
css/bs2-bs5-bridge.css— a new stylesheet that translates XStore’s Bootstrap 2 grid, responsive utilities (hidden-phone,visible-phoneand the rest), tabs, forms, buttons, navigation, pagination and dialogs onto Joomla’s Bootstrap 5. It is loaded last in the page head, with a file-time version marker, so it sits above the template’s own CSS in the cascade.index.phpnow loads Joomla’s/media/vendor/bootstrap/css/bootstrap.min.css(andbootstrap.rtl.min.csson right-to-left sites) in place of the template’s own Bootstrap 2 copies.- The print view and every VirtueMart pop-up (
component.php) and the error page (error.php) load the same Bootstrap 5 foundation and compatibility stylesheet as the main layout. - The login dialog opens as a Bootstrap 5 dialog (
data-bs-toggle="modal"); Bootstrap 5data-bs-*attributes go from 0 to 9.
Rebuilt phone layout
js/cs-mobile-generic.js— a vanilla-JavaScript phone layer. The menu button opens the main menu (Home, Shop, Blog, Features, Contact…) as a slide-out drawer, and a second menu button opens the shop categories.- The shop-category drawer is fed by a new hidden module position,
cs-secondary, declared intemplateDetails.xml, so you choose which menu the second button shows. - A phone toolbar of 44×44 buttons for the account, search and cart controls. The cart button carries an item-count badge, and tapping outside closes the cart panel and the login dialog.
- The phone header sits in the page flow: no blank band above the page, no duplicate submit button in the search panel, and a menu button that always contrasts with its bar. The search box uses 16 px text, so iPhones no longer zoom the page in when it is tapped.
- One 12 px side inset on phones. The logo, breadcrumbs, page content, images and footer now line up 12 px from the screen edge; before, a template wrapper’s padding stacked on an inner container and pushed them 20–40 px in. Desktop is unchanged.
Show / hide on password fields
js/cs-password-eyeball.js— login, registration and account password fields gain an eye control that reveals what has been typed. It sits inside the field row, and the login page’s username and password fields are the same width and height.
Error pages inside the template
error.phprewritten: “page not found” (404) and “access denied” (403) pages now display inside XStore, with its header, menus and footer, and the message comes first on phones. Server errors (5xx) use Joomla’s minimal system page, because the database or a module may be what failed. Before, the error page was a bare stand-alone page with its own stylesheets.
Favicon tool
- A new Favicon tab in the template options (fieldset
faviconsettings, fieldsfaviconandfavicontool, field classfields/favicontool.php). Pick one image and the template creates and outputs the icon set (phFaviconSet(),phIcoBytes()inindex.php). With thanks to Gianluca, whose favicon question inspired this tool. - 10 new language strings (
TPL_XSTORE_FAVICON_*,TPL_XSTORE_FAVICONTOOL_*); the language file goes from 74 to 84 strings.
Modern social network support
- Five new social services, each with its own URL field and show/hide switch: Threads, TikTok, Bluesky, Mastodon and Discord (
threads/threadsON,tiktok/tiktokON,bluesky/blueskyON,mastodon/mastodonON,discord/discordON).
Template options (administrator)
fields/colorpicker.php,css/coloris.min.cssandjs/coloris.min.js— the open-source Coloris colour picker ships inside the template, so nothing is fetched from another site.fields/adminui.php— loads the Options-screen support code: the jQuery the older option scripts rely on, and a dark-theme style for the template’s Details panel.
Supporting scripts
js/cs-parallax.js— drives the parallax backgrounds (slideshow, breadcrumb, tabs, testimonials, footer and the other parallax bands) in place ofjquery.stellar, which does not work with the jQuery 3 that Joomla 5 ships.js/cs-jq-compat.js— a small shim covering jQuery conventions that the remaining jQuery plug-ins and third-party extensions still expect.
Changed
Joomla 3 → Joomla 5 API migration
- 263 Joomla 3 static class calls reduced to zero —
JFactory,JText,JHtml,JRoute,JUri,JError,JDispatcherand the rest, each replaced with its namespacedJoomla\CMS\*equivalent. These aliases exist only while the Behaviour – Backward Compatibility plugin is enabled. - Heaviest files:
index.php(38),html/mod_login/default.php(20),html/com_virtuemart/productdetails/default.php(16),html/com_virtuemart/user/login.php(14),html/mod_virtuemart_product/single.phpandslick-slider.php(13 each),html/mod_virtuemart_product/default.php(11). - 56 of the 68 PHP overrides changed: VirtueMart
user(14),productdetails(6),askquestion,cart,category,sublayoutsandvirtuemart(3 each),html/layouts/chromes(7),mod_menu(4),mod_virtuemart_product(3), andmod_login,mod_search,mod_custom,mod_virtuemart_cart,_category,_currenciesand_manufacturer.
Template options (administrator)
- 97 field type changes in
templateDetails.xml:- 20 colour settings:
type="color"→type="colorpicker". On Joomla 5 each rendered as an empty text box that needed a hex code typed in; each now opens a real picker with a live swatch. Existing values carry over. - 77 on/off settings: legacy
checkboxswitches → Joomla 5radioswitchers (for exampleOverrideDefaultSettings,RSSON,AdditionalGFontON,H1TitleImgText,cam_autoAdvance). With the five new social switches the template has 82 switchers and no legacy checkboxes.
- 20 colour settings:
- Template options: 339 → 337 fields, 15 → 16 tabs. Tab names lose their redundant “Settings” suffix (“Theme”, “Drop Down Menus”, “Built-in Slideshow”, “Color” and so on).
- The Options screen’s Font Awesome stylesheet came from MaxCDN, which has shut down. It is now Font Awesome 6.5.2 with v4 shims, so the panel’s icons display again.
- The template’s Details panel follows Joomla’s light or dark admin theme; it used to be grey text with a white shadow, unreadable on the dark theme.
Icons and fonts
- Front end: Font Awesome 4.7.0 from MaxCDN (
font-awesome.min.css) → Font Awesome 6.5.2 (all.min.css+v4-shims.min.css). Olderfa fa-*class names keep working; they go from 22 to 11 in the template, including the overridescom_virtuemart/category/default.php,category/productsviewarray.phpandmod_virtuemart_cart/default.php. Social icons use Font Awesome 6 brand glyphs. - Google Fonts load through a stylesheet link. Both
WebFontConfigJavaScript loaders, inindex.phpandcomponent.php, are gone.
Menus, backgrounds and scripts
- The drop-down menus open through the template’s CSS hover rules in place of the
superfish.js+supersubs.jsjQuery plug-ins. - A body background image set in the template options is sized with CSS (
background-size: cover) in place of the jQuery Backstretch plug-in, whichindex.phploaded twice. - The
jQuery.browsercompatibility block and the Internet Explorer conditional loaders are gone. - The tablet off-canvas menu opens and closes with CSS transitions and no longer needs jQuery UI.
- Template-side jQuery call sites: 199 → 173. The rest serve the camera slideshow (
camera.js), the Slick carousels, thejquery.selectric.jsdrop-downs, the cookie-law pop-up and smooth scrolling. - Every local stylesheet link carries a version marker (
?v=), so style changes appear straight after an update instead of waiting for visitors to clear a cached copy. css/template.css: 219,932 → 225,810 bytes.
Version
templateDetails.xml<version>07.08.2025 5.3.0/4.4.4→5.4.10, with<creationDate>2026-10-23. TheTemplate Version:span in the manifest description and theindex.php@versiondocblock carry the same value, so the version shown in the administrator matches the download page.method="upgrade"is kept, so existing sites update in place. The manifest’s copyright line is a proper notice and the author URL uses https.
Fixed
Pages that returned a server error
- Every “page not found” could be served as a 500.
error.phpused removed Joomla 3 class aliases (JError::raiseWarning,JText). With the Backward Compatibility plugin off, Joomla could not render any error page. It now raises a proper\Exceptionwith the status code. - Login form validation: the VirtueMart login override called
behavior.formvalidation, which Joomla 5 removed (“behavior::formvalidation not found”, a 500). It now usesbehavior.formvalidator, and its plugin hook no longer usesJDispatcher, which Joomla 5 does not have. With thanks to Zoltán Szász, whose follow-up report led to this fix across our templates. - Guest checkout address form on PHP 8:
html/com_virtuemart/user/bs3-edit_address.phpcalledcount($this->userFields['functions'])on a value that is empty for guests, a fatal error on PHP 8. It now uses!empty(). With thanks to Zoltán Szász, whose report found it. - Slick product slider:
html/mod_virtuemart_product/slick-slider.phpcalledJHTML::_('behavior.modal'), a behaviour Joomla 4 removed. The call is gone. - Store owner’s account page:
html/com_virtuemart/user/bs3-edit_vendor.phpcalledJHtml::_('Select.…')with a capital S, which Joomla 5’sHTMLHelpercannot resolve. All four calls now useselect.genericlist.
Browser errors and dead requests
- Cart and “ask a question” pop-ups logged JavaScript errors.
component.phploaded no jQuery, so VirtueMart’s inline scripts in those pop-ups failed with “jQuery is not defined”. It now loads Joomla’s jQuery. - The template’s cut-down jQuery UI shadowed VirtueMart’s full copy, which VirtueMart picked up in its place. The template’s copy is no longer shipped.
- Stylesheet requests for files that were never in the template. The error page requested
reset.css,text.cssandtypography.css, and the print view requestedtemplate_rtl.csson right-to-left sites. Each returned the site’s “page not found” response. All are gone. - The template Options screen no longer loads the dead
jscolorscript from the template description, which 404’d every time the screen opened.
Home page
- The home page product tabs showed “0 1 2” on phones instead of their titles. They now read the tab titles (HOT OFFER, NEW ITEMS, GREAT SALE in the demo).
Maintenance pass
With thanks to Michael Mullan, whose Expression bug report led to this maintenance pass across our templates.- IcoMoon icon font 404s. An
@font-facerule incss/template.csspointed atmedia/jui/fonts/, a folder Joomla 4 removed: four failed requests on every page load. The rule is disabled and the search icon is self-contained. - Pagination arrows rendered as empty squares. Joomla 4 and later emit
.icon-angle-left,-right,-double-leftand-double-right, which the legacy icon stylesheet did not define. They now map to Font Awesome glyphs. - Featured articles clipped to their title. Tall intro articles in a single-column featured view were cut off;
.blog-featured .blog-itemnow usesdisplay:block; overflow:visible; height:auto. - The search button detached from its input. A global button margin separated them; the margin is cleared inside search and finder modules.
Removed
Legacy stylesheets no longer shipped
- The bundled Bootstrap 2 stylesheet stack:
css/bootstrap/bootstrap.css,bootstrap.min.css,bootstrap-responsive.css,bootstrap-responsive.min.css,bootstrap-extended.css,bootstrap-rtl.cssandbootstrap-tooltip-extended.css. Joomla’s own Bootstrap 5 is used instead. css/k2.cssandcss/k2.print.css— styling for a third-party extension the template no longer carries.- No longer loaded: the Internet Explorer sheets
ie.cssandie6.css, andpresets/style-error.css.
Legacy scripts
- No longer shipped:
js/jquery-ui.min.js(the cut-down jQuery UI described under Fixed),js/jquery.stellar.min.js(replaced byjs/cs-parallax.js) andutils/admin-js.js(a Joomla 3-era admin script). - No longer loaded:
superfish.js,supersubs.js,jquery.backstretch.min.js,jquery.mobile.customized.min.js,modernizr.js,selectivizr-min.jsand thehtml5.jsshim. The files that remain injs/(30 → 33 files) are not referenced.
Files removed
html/modules.php— seven Joomla 3modChrome_functions, which Joomla 5 never calls. The module chromes Joomla 5 uses are inhtml/layouts/chromes/.- The K2 module override
html/mod_k2_content/, including its Slider layout (3 files). - In total the shipped tree moves from 255 files to 250: 11 added, 16 removed, 63 modified.
Retired settings
- Four social slots removed with their switches: Google+ (
gplus), StumbleUpon, Digg and Blogger. - The five Superfish animation settings that went with the old menu plug-in:
dropopacity,dropheight,dropwidth,dropspeedanddropdownhandler1maxwidth. - Two settings the template never read (
testimonialswidth,HRboxspeed), and thecolours_handlersspacer that tried to start the oldjscolorpicker.
Download
- An earlier download of this template contained a server error log. It served no purpose in a fresh install and exposed file paths from our own build server. It was taken out of that download, and the new packages do not contain it.
Security
- 13 output helpers added to
index.php, used 310 times across the template, so every template setting written into the page is escaped for where it lands:phEsc(): HTML text and attributes.phRichText(): the site-name fields (H1Title,H2Title), which may hold simple markup. Joomla’s input filter keeps the markup but stripsscript,styleandiframeelements andon*event handlers.phHexColor(),phCssDim(),phCssNum(),phCssFont(),phCssSelector(),phCssToken(),phCssUrl(): colours, sizes, fonts and image URLs written into the page’s CSS.phJsStr(),phJsLit(): values written into inline JavaScript.phFaviconSet(),phIcoBytes(): favicon output.
htmlspecialchars/ escape calls in the template: 6 → 45. Module and tab titles are escaped in all seven module chromes (megamenu,parallax,slides,testimonial,vmdefault,vmdefaultlogin,vmtab), and new escaping coversmod_custom,mod_login, fourmod_menulayouts,mod_virtuemart_cartand the VirtueMart address-field overrides.- Server paths no longer disclosed on error pages. A caught exception could reach the error page as a string carrying the site’s absolute filesystem path and a stack trace; outside debug mode the error template now shows Joomla’s generic message, keeping the status code. The message it prints is escaped.
- Direct-access
_JEXECguards: 56 → 58 files.
Quickstart
- Bundles Joomla 5.4.10 and VirtueMart 4.8.4, with XStore pre-configured as the active template (styles XSTORE – Joomla Shop Template and its Parallax variant). Also bundled: Akeeba Backup 10.4.0, Weblinks 5.2.0 and MCP For J 2.9.3.
- The site
templates/folder holds onlycassiopeia,xstoreandsystem. Three unrelated templates from the original sample data —horme_3,vmbeez3andvmbasic— are gone. None was the default or assigned to a menu item, and the first two carried error pages built on the removed Joomla 3 class aliases, so activating either would have produced a 500 in place of an error page. - A Shop Menu module in the new
cs-secondaryposition feeds the phone’s second menu button with the shop categories. - The empty “What’s on our blog” custom module, which showed only its heading above the footer, is unpublished.
- A style setting that named a testimonials background image not in the package (
background-1.jpg/background-2.jpg) is cleared, removing a failed request on every page load. The page looks the same. - Joomla 5.4’s “What’s New” guided tour (tour 15) no longer starts by itself (
autostart = 0); it used to send every administrator link to the dashboard on the first visits. It remains available from the administrator. - Joomla’s Statistics plugin is set to never send data.
- A clean starting state: the post-install messages are trimmed to the five worth keeping, the redirect list is empty, and the template overrides are marked as reviewed (no “changes found” warning).
Package
- Standalone template: now a Joomla package (
pkg_xstore.xml) that installs the XStore template and registers it in the package manager. It declaresmethod="upgrade", so an existing XStore updates in place with its settings preserved, and<blockChildUninstall>true</blockChildUninstall>, so the template is removed through the package rather than on its own. - Quickstart bundle: a complete Joomla 5.4.10 site with VirtueMart 4.8.4 and XStore pre-loaded, in place of the previous Akeeba
.jpaarchive with Kickstart. The Joomla 4 download remains available but is no longer recommended for new projects.
Earlier history: the previous download was version07.08.2025 5.3.0/4.4.4, the vendor’s Joomla 5-compatible build, still on Bootstrap 2 stylesheets and Joomla 3 class calls. This 5.4.10 release is the first one rebuilt natively for Joomla 5. - Release Date:
2025-07-10, Version:
10.07.2025 5.3.0/4.4.4, Notes:
- Upgraded - Now compatible Joomla 5.3.0
- Upgraded - Now compatible VirtueMart 4.4.4
- Fixed - Minor bugs with cart
- Release Date:
2024-11-29, Version:
29.11.2024 5.1.2/4.2.12, Notes:
- Fixed - Minor bugs with cart
- Release Date:
2024-08-08, Version:
08.08.2024 5.1.2/4.2.12, Notes:
- Upgraded - Now compatible Joomla 5
- Upgraded - Now compatible VirtueMart 4.2.12
- Fixed - Minor bugs
- Release Date:
2023-11-17, Version:
31.10.2023 4.3.4/4.2.0, Notes:
- Updated - Compatible with PHP 8.2
- Updated - Compatible with Joomla 4.3.4
- Updated - Compatible with VirtueMart 4.2.0
- Fixed - Minor bugs
- Release Date:
2023-06-30, Version:
26.06.2023 4.3.0/4.0.13, Notes:
- Fixed - VirtueMart Products Module issue
- Fixed - Double ReCaptcha on VirtueMart Registration page
- Fixed - Template toggle button not displaying
- Release Date:
2023-06-23, Version:
16.06.2023 4.3.0/4.0.13, Notes:
- Fixed - Menu Params error for adding in image on menu
- Release Date:
2023-05-20, Version:
20.05.2023 4.3.0/4.0.12, Notes:
- Fixed - Template updated to be compatible with Joomla 4.3
- Release Date:
2022-08-24, Version:
23.08.2022 3.10.11/4.0.6, Notes:
- Fixed - Joomla 3.10.11
- Fixed - Template updated for PHP 8.0
- Release Date:
2026-10-31, Version:
5.4.10.2, Notes: