Release of 3.0.10

The last stable version vm3.0.8 was 5 months ago. Development has continued during this time, we just spent additional time testing and checking to deliver a more stable version.

We added the ajax script to the cart, so that the new cart is almost like an OPC, you will still add/edit addresses in a separate page. It is backward compatible as long any 3rd party developer/templater uses our javascript handler

The ACL (Access Control List) has been extensively extended and modified. It now supports seperate settings for frontend and backend management.

The important store views allow control of key maintenance options "access","edit","create","delete","edit state".
The managing right to switch the vendor gives almost full control in multivendor shops.
The ACL feature will allow you to have vendors that are only allowed to control their own items, or managers who are allowed to change for example all products of all vendors, but dont have access to something else, or even managers only for the main vendor.
Function access rights are not cumulative, so the right to "edit" an option does not grant the right to "edit state" of that option. Although we have tested the ACL control for months on live shops, inconsistencies could still happen, so please just give feedback in our forum


The next milestones on the roadmap are a fullinstaller based on joomla 3.5, without the joomla dependencies.

We have spent some time editing the General general concepts section of our documentation. This should help with some VirtueMart background explanations.

The new random string generator can be fed with an own set of chars. So VM can create now passwords, which are adjusted to readability. So our new ordernumbers are created with all chars upper case, but 0 and O are omitted. The new function is now checking for the best available method. There will be a blog entry with more information.


- ajax for the cart
- new js for cart module, which makes it possible to have more than one cartmodule (interesting later for multivendor)
- different vat are now displayed as summary per tax on the bottom


Lean more about ACL and VirtueMart:
- new ACL system, added new class vmAccess
- complete Frontend managing system
- actions use the permissions of the user logged in the background (Shopperswitcher)

Hidden Configuration Parameters

Lean more about Hidden Configuration Parameters :
- new hidden config by Valerie Isaksen full_catname_tree, shows in the category dropdowns the parent category within the name
- new hidden config to configure language depended language fallbacks
- new hidden config option pricesbyCurrency to use for multiple prices the new criteria "selected currency"

Security (also in vm2.6.20)

- Added better random generator, using openssl_random_pseudo_byte. Works now with true 192-bit by default, the function getToken checks now for available methods and tries to use the best available
- new key file is automatically created
- check if someone tries to open an order by password too often


- Added restriction categories for shipment method to prevent/allow a shipment method to be shown when an item from the configured category/s is in the shoppers cart weight_countries.php

Templating /SEO

- added rich snippets for microdata in search engine display

Learn more about templating and layouts:
- field vmlayout works now also for override layouts of modules (see the mod_virtuemart_product.xml as an example)


- added parameter for list type for customfields Media, String and Image
- moved rendering of customfields displayProductCustomfieldSelected to renderCustomfieldsCart, overridable
- added customfield Property
- added automatic empty Option for customfields.

Joomla fields

- vmcategories field works now also for multiple selection

Minors bug fixes, enhancements

- checkout no longer possible without products in cart
- fixed generic child tab for other values (was checking with isset, need property_exists)
- dynamic child: The parent was orderable if itself derived
- the child tab of a product does now disable the second child product name if displayed twice
- ' was not decoded in the email title
- changed Sampledata generic child is now cartattribute
- Small error prevented error output for plugins using plgVmOnSelfCallFE
- update function fixCustomsParams returned the joomla backend without content (not just blank), was missing redirect
- Fixed reentering of coupons, removed caching the results of payment/shipment plugins.
- fix when customfield position = normal
- added a dummy var to the links, which create the pdf, to prevent caching of the server.
- other minors
- creation of invoice is now protected by create_invoice_password
- added rel="next" and prev to the pagination
- added UNIQUE to currency_code_3
- netherland/belgium states
- replaced jquery-ui.min.js to prevent conflict with j3 jquery-ui.min.js (Thank you Petrakis)
- cleaned and removed small glitches in notify.php (thank you Petrakis)
- fixed manufacturer_id for products sortSearchListQuery
- for performance reasons, most tables run with int now (not mediumint or similar)
- cart/order/invoice use now a new function getTaxNameWithValue to show the taxrate, it is checking for the tax rate in the given name
- the customfield function displayProductCustomfieldFE is now overridable, check the sublayout customfield.php to get the idea how.
- edit of orders should be fixed. new line is now the last product
- Media upload works now per vendor
- Media model getFiles considers now the vendor id
- added option for priceDisplay to force display (even price is disabled in vm config) usefull for cart
- mediahandler works now with own sub array "media" to seperate other values from the media values
- added logic for jsvar vmLang using JLanguageHelper::getLanguages('sef');
- added language fallback for getParentsList
- added deletion of more caches editing a category
- fixed wrong category of products
- fix for disabling of checkbox of cartfields
- added lang tag for continue link
- removed old params j1.5 in xmls
- some little changes for category itemId routing
- check complete category url to find the joomla menu itemId
- changed js validation for some edit windows
- Product searchfields for admin now merged with the site fields
- fix for recommend a product form (changed also askquestion form to prevent copypaste errors)
- enhanced getCartHash
- fixed search for values like " and '
- little cache for getUserFieldsFor
- Removed another source of error for TCPDF ERROR: [Image] Unable to get the size of the image:
- added cart fix for router
- links in the add to cart popup are not sef now
- fixed getClientIP
- added $vmLangSelected to reflect the choice of the user
- added vmlang/ itemid to js for add to cart popup to solve the problem with wrong language in add to cart popup
- function utf8ize uses mb_convert_encoding if existing
- enhanced method in store custom to get the right plugin id
- multivariant can handle now unpublished and products out of stock
- added function safe_json_encode. Throws proper error and tries to reencode using utf8_encode in case of utf8 error.
- COM_VIRTUEMART_CART_FEE key uses now currency symbol with %1$s
- the function store of the custom model fixes now broken relations of customs to customplugins
- added trigger $dispatcher->trigger ('plgVmOnAskQuestion', array(&$VendorEmail, &$vars, &$view));
- small fixes for more robustness


- cleaned up format of js
- added var to variables to prevent that they are in the global scope
- more renaming of $ to jQuery


- adjustments for avatax, new avatax library
- Amazon: emails sent when NO IPN
- Amazon: fixed notify customer, and sending emails
- amazon: fix: cannot checkout with another payment method
- amazon:
- amazon system plugin: force local touch file
- amazon payment plugin: task updatecartJS in VM3, removing console.log
- amazon: using plgVmOnCheckoutAdvertise instead of displayListFE: when VMOPC= no
- Paypal API strict standards fix
- Realex: table userfield_plg_realex_hpp_api not created,
- Paybox: check Ips


- updated chosen to the last before 1.0.0 (so the old css is still correct)
- Absolute Positioning removed from AddToCart-Button and min-height added to avoid overlapping of description, custom fields, prices and cart button.
- css added for products_horizon.php for a horizontal view with 100% width regardless of products per row.
- css changes by Spyros Petrakis,
1) formatted
2) cleaned & corrected
3) validated
4) ems replaced with pixels for unified layout across different templates.
Several minor styling changes made , cart table, details buttons on hover , font sizes for product titles, chosen dropdowns.
- product list does not use the min width of thumbs, if no thumbs are displayed
- added customfields-wrap and other css fixes (thx Stefan Schumacher)
- fixed currency instancer, using an hash key for the instances.
- added classes for cart table .vm-cart-item-name, .vm-cart-item-sku, .vm-cart-item-basicprice, .vm-cart-item-quantity, .vm-cart-item-tax, .vm-cart-item-discount, .vm-cart-item-total
- function getAddToCartButton is deprecated uses now self::renderVmSubLayout('addtocartbtn',array('orderable'=>$orderable));
- added container for order_done.php
- rounding for showing stroken price

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.