Your Cart is currently empty!
Product update
Coupon code invalid! Please re-enter!
AJAX loader
You are here: Home

With over 10000 commits, VirtueMart 3.6.0 has been released. This VirtueMart release includes many improvements and small bug fixes for both developers and shop owners.

VirtueMart 3.6.0 is Out

What's New in VirtueMart 3.6.0?

For Shop Owners

In VirtueMart 3.6.0, additional attributes are added like the "is Paid", which allows shop owners to see confirmed but unpaid orders, which is especially of interest for purchases on account and also for paid but refunded orders. Besides, the function for displaying missing medias in the VirtueMart also is improved that can runs the query up to 1000 times, but stops when the first page is filled.

Other changes:

  • new hidden config "hideEmptyCustomfields" hides empty customfields
  • search customfields, removed options of empty customfields
  • new switch "newBackendTemplate". Just add to the virtuemart.cfg newBackendTemplate=1 to try the new backend template. Currently only the configuration view is updated.
  • translateable calculation rule names
  • vendor mail if order status changed has adjustable text per order status now COM_VIRTUEMART_MAIL_VENDOR_CONTENT_
  • removed storing of cart to table for normal cart calls
  • enhanced snippets.php for Searchengines
  • enhanced coupon listing,
  • added published to coupons
  • delivery address get automatically named with the zip and a random number
  • buttons for the add-to-cart popup
  • removed the second button group on top to avoid problems with captchas.
  • validateUserData, validation of the country/state works now also when the state is unpublished
  • fixed custom model, in case of wrong extension_id, updating now to the correct extension_id
  • attachment for emails: Very important fix, views are instances and so attached medias must be set to an empty array to prevent sending wrong attachments

For Developers

VirtueMart 3.6.0 includes new restriction parameters provided by the core which make it more simple to implement shipment/payment. Moreover, there is a major change in vmAccess that will checks for rights without checking a task only for admin/manager.

Other Updates:

  • new loading of Plugins to ensure correct execution sequence. In case of site, they are loaded directly in loadConfig. replaced JPluginHelper::importPlugin against VmConfig::importVMPlugins
  • Important fix for 404 handling to prevent loop when an unpublished category is browsed
  • fixed 404 in case controller was not found
  • moved the classes vmAccess, vmUri in extra files
  • moved Reporting/echo function in an own file
  • product model enhanced sql for omitted products
  • fixed json view for customplugins in edit customs, dropdowns were not correctly loaded and got stored with wrong default values
  • which lead to wrong default order status for some 3rd party plugins, therefor also a fix for the field orderstatus to load comma seperated default values correctly
  • new function getStrByAcl to get Strings from the Request by ACL
  • moved the price display of plugins in an own sublayout.
  • added new permission vm.user.editvendor, IMPORTANT the permission vm.user.editshop should be set for the shop owner respectivly the super admin only!
  • enhanced setStoreOwner function, which considers the multivendor configuration of the shop now
  • changed the initialising of the cart so, that it always loads the userfields with the default values first. Function prepareAddressFieldsInCart is now deprecated
  • extra checks in the table vmusers for user/vendor relation
  • replaced a continue in a switch against break for php7.3 compatibility
  • disabled loading of the jQuery framework from joomla completly if jQuery is disabled in the vm config (by Abhishek)
  • disabled loading of popup fancybox/facebox if jQuery is disabled (by Abhishek)
  • final update for TcPdf,
    a) updated paths,
    b) added an hint why there are no images and removed breaking rendering for missing images
    c) VmPdf got more error messages and should load the defines by itself, class VmVendorPDF is not anylonger wrapped in if(class_exists('TCPDF')){
  • replaced the file_get_contents against the modern JHttpFactory::getHttp
  • product details, fixed canonical URL of the parent product
  • address fields in the cart can now be initialized filled only with default values but without rendered html and js scripts
  • added variable to the cart, which keeps the values set by defaults to determine if a value is set by the user or the system
  • addJScript uses now the defer and async correctly again.
  • Important fix, related to svn 10005 and forum post Important fix, related to svn 10005 and forum post time, a missing customfield is directly added as array to the variantmods array

Updates for Cart

  • loading an old cart does not override already entered values
  • defaults are now correctly loaded not only into the fields but also into the cart address arrays
  • automatic selected ship/payment works now loading all available methods. Before it was only working if there was only one method left.
  • Fixed Paypal Smartbuttons
  • product added popup (padded.php) displays now actually added product amount (set in the cart helper)
  • product model, loading price should now consider the time offset correctly
  • removed dragndrop ordering for products, if there is more than one page (the js is not prepared for)
  • removed print view popup of invoices. It produced a different print, than by pdf.

Performance optimisations

  • userfield model country field, replaced direct sql by VmTableCountry (getTable,...)
  • payment/shipment methods, added cache and own function for getting shoppergroups. This prevents one call per plugin n the cart.
  • VmPlugin, added important cache for function selectedThisByMethodId
  • getPluginMethods is cached
  • router is now using the same parameters as used for product browsing, which saves again a lot sql (products are not extra loaded for router!).
  • product model added cached function getCurrentUserShopperGrps, function getProduct finds the CurrentUserShopperGrps itself before it needed to be called before the getProduct function. Same function used in getProductSingle and getProducts!
  • enhanced the checkIfCached function, so the router can most time find an already loaded product
  • model customfields, enhanced also the cache of the function getCustomEmbeddedProductCustomFields
  • optimization for the functions getCountryByID and getCountryIDByName and the country model, loading a country creates directly multiple keys for the cached entry.
  • added important improvement, removed random in sql, the randomizing of products is done by loading more than needed an array_shuffle
  • router uses now also the cached Table class (reduced sql drastically)
  • added autohashing of tables (if set in the constructor)
  • model userfields replaced single requests in function getIfRequired against one but cached request.
  • Fixed caching in customfields model, loading a product twice with different quantities loaded the customfields plus the cached ones
  • Caching in model state functions getStates and testStateCountry
  • Caching in mediahandler function getIcon
  • getVmPluginMethod set false as default for parameter cache

Thanks for reading!

Related items (by tag)

Love all our templates?

Join our membership clubs starting at $49 only for access to all of our templates

Join Now
Home Pricing
Your Cart is currently empty!
Product update
Coupon code invalid! Please re-enter!
AJAX loader
Magento Themes Magento Extensions Free Magento Extensions Prestashop Themes Prestashop Modules Magento 2 Themes