- Details
- Written by: Max Milbers
- Category: Latest News
- Hits: 35443
This release is now ready for all our VirtueMart users.
Due to the wide ranging changes we have made to underlying core functions and the removal of old VirtueMart and Joomla compatibility (which was weighing things down and slowing future developments), we have taken more time putting this release together than usual. Initial feedback from our beta testers has shown us that it has been worth the extra effort and time that it took.
Here are some highlights:-
Improved core - VirtueMart core now benefits from using the Joomla classloader providing a more performant and more failproof method for classloading (classes are registered automatically and loaded if need.)
Ready for Joomla 3.9 - The core is ready for Joomla 3.9 and we expect that it will be relatively simple and fast to adapt for Joomla 4
PHP 7.2 - compatible - VirtueMart 3.4 is now php7.2 compatible, users can now benefit from more secure and faster PHP versions.
Javascript updates - We started to rewrite the javascripts to use data-vm instead of classes or ids - fallbacks are provided.
VirtueMart Package improvements - This now automatically installs the VirtueMart Core, AIO, vmBeez3 template and the TCPDF. The installers within the package can still be used individually for those not requiring the full installation.
Next release in progress - Expect to see two new payments, eWay and PayPal's “Smart Buttons”. A new template option which loads for example layouts with a bs4 prefix allows us to develop a completely new frontend template, whilst keeping backward compatibility. We are also planning for a new backend template, for which suggestions are welcome in the forum.
Enhancements
PHP 7.1/2 support
- Encryption and decryption with openssl for PHP 7.2 compatibility.
Order model changes
- New trigger plgVmOnUpdateSingleItem.
- Extra variable $inputOrder to the old triggers plgVmOnUpdateOrderShipment and plgVmOnUpdateOrderPayment.
Products
- New feature "maximum products", "maximum customers" per vendor and "force product pattern".
- Product is loaded for an order even when unpublished.
- New filter for customprototypes in the product listing.
- Products can be assigned a fixed Canonical Category – useful where a product is in multiple categories and the category name forms part of the product URL - product_canon_category_id.
- Admin product list - A bulleted list for categories is now shown. Canonical category is highlighted.
- Product model, getProduct, customfields are always loaded.
- For FE search of items - the product model no longer replaces the search character “-“ with “%”.
- Table change to products_language tables, “product_desc” now set as Datatype “text” (no varchars any longer).
Customfields
- Admin feature to transform a set default list of "S" customfield to another and updates the values in the products that use the transformed customfield. transformSetStringsList.
- Customfields can have the same name using a hidden configuration “unique_customfield_titles” to disable “unique names”.
- New submenu to Joomla to the customfields list.
- New method to calculate the variant price inside the function "getProductPrice" just using TRUE for the second parameter instead of a float
Currency handling
- Calculation of net price rounds final price first (prevents wrong inputs) – calculatorH.
- CurrencyDisplay roundForDisplay we round first before we multiply by quantity (as in the calculator), but not in Rappenrounding mode.
- Rounding in CurrencyDisplay uses "round only display config".
- Small change of rounding in currencydisplay using a different currency.
- New option shared to currency admin views. (Program logic is maybe not complete).
Image handling
- Images createThumb is only executed, when file not available. Forcing of thumb creation is done by deletion.
- Search for unused media in admin.
User switch by admin FE
- New hidden config switches:
- ChangeShopperAlsoUseAdminShoppergroups - Add the shoppergroups of the logged in Admin user to the “switched” user’s shoppergroups.
- ChangeShopperDeleteCart - When a user is chosen by the admin – the cart contents are cleared – prevents accidental inclusion of cart items.
Orders and checkout
- Cart handling a change of the quantity is included in the popup and as extra warning message in the cart.- checkForQuantities changed vmInfo from vmWarn.
- The layout ‘padded’ has a small update to show all quantity warnings in the popup.
- products can use html classes in the cart item row
- Checkout user data is stored, even when the userfield validation fails (the validation is for the checkout process).
- Some work on the $cart->orderdoneHtml = $html; thematic (in vmpsplugin.php).
- Admin Order list, more intuitive sequence for the columns.
- Order editing will only store a Ship To address when STsameAsBT is empty. New order variable- STsameAsBT. With a new checkbox to control the addition of a ST address in order edit.
General
- Added JRoute to action of the user edit form in FE.
- Added filter vendors to user list.
- Captcha for vendor contact form.
- Shop configuration for FE views "set bootstrap layout version X", which adds a prefix for example bs2- for loaded layouts.
- Added function "alt" to vmText.
Modifications
- Important update for VirtueMart System plugin. It tries to load the configuration file of the installer and not the already installed one.
- Exchanged hard coded string against vmText.
- Spaces to Tab and indentation.
- Replaced all id="vm. with id="vm-
- Moved the js validation and setting the chosen dropdowns to required in an extra file.
- Removed double id="reg_text", replaced with “class.
- Language string change in de-DE.com_virtuemart_config.ini and en-GB.com_virtuemart_config.ini.
- Removed mootools from vmbeez3 template.
- Added plugintype vmextended to whitefilter of controllers/plugin.php.
- Membership checker shows error in ajax request (simpler to debug).
- Added JRoute to product link in sublayout products.
- js using data-vm="product-container" instead of classes, fallback provided.
- js now uses data-vm, all dependencies to classes will be removed soon. Fallbacks provided.
- vmpsplugin.PHP methods which cannot be selected are now unset from the array of available methods.
- vmplugin function _getLayoutPath is not public and static.
- getMyOrderDetails, changed unused 3rd parameter. It sets now if the config should be considered for ordertracking. Some 3rd parties need it.
- New fallback for product customfields, when the cart is loaded and had no data in the session.
- Changed reload=1 attribute to data-reload=1 (with fallback in js for the old reload=1).
- Changed activation text in registration email, when set to "activation by administrator".
- prepareViewForMail now uses the generic controller, not a specific one (could make trouble with Admin and FE controllers having the same name).
- Cart helper checkAutomaticSelectedPlug, when no method is available the method_id is set to 0.
- Files of extensions are directly copied from temp directory to the correct place.
- Product_name is now handled in the controller as the other special input fields and follows the ACL for writing raw/HTML or just normal text.
- Added to getInstance of the calculationHelper the parameters vendorId, countryId and stateId.
- Test for country/state improved. Added differentiation between valid and require.
- Improve performance of calculationHelper function setCountryState using a new pattern to load the country and state of the registered user.
- Added hidden feature, "directCheckout", which directly starts the checkout process with redirect
Fixes
- URL of currency_converter/convertECB.php must use https now.
- Cart object small fix which prevents overriding of $customProductData, when trigger plgVmOnAddToCartFilter is used.
- Important fix for correct order status for order history.
- Important fix for order editing was causing wrong calculation results - replaced product_item_price for product_discountedPriceWithoutTax for calculation of the subtotal.
- Checkbox cartfields are now correctly stored in the order.
- Fixed return value of function CreateOrderHead http://forum.virtuemart.net/index.php?topic=140616.0.
- Added $view->mediaToSend = array(); in function sendVmMail to prevent sending of cached medias in order status update emails.
- Fix for order_status vs order_status_code.
- heidelpay, small fixes and changes.
- PayPal hosted, fixed currency.
- PayPal hosted payment iframe little catch for EMAILLINK – handles no PayPal response.
- Standard payment: fix in tmpl.
- Standard payment: update order status now happens before orderdone view rendering.
- eway: fix the CVN in case of cart saved fix invoiceDescription.
- authorize.net plgVmOnShowOrderFEPayment changed to public http://forum.virtuemart.net/index.php?topic=133563.msg492466#msg492466.
- Fix in config.php typo in JLoader::register, creditcart.php to creditcard.php.
- Correct storing of customplugins.
- plgVmOnStoreInstallPluginTable of specification plugin.
- Links to shoppergroups in ship-/payment methods listing.
- Text in Virtuemart Search Module doesn't clear https://forum.virtuemart.net/index.php?topic=139961.0.
- Small fix in admin product edit, which prevents removing the categories if a product is stored before the category tree was loaded.
- Problem with not loaded parent categories in product detail.
- Minor errors and typos (for example a note thrown cloning a product (thx Patrick K.).
- Category cache.
- Sublayout customfield used duplicate keys.
- Corrected small typo in en-GB.mod_virtuemart_product.ini.
- Fixed some Language translation issues.
- Updated de-DE.mod_virtuemart_product.ini.
- replaced JFactory::getLanguage against vmLanguage::getLanguage.
Minors
- vmstore template foundation.
- Added deletion of Media synchronization progress, when finished..
- Removed old VM_VERSION (j2.5 compatibility).
- Removed more DS, also for paths, added vRequest::filterPath().
- Joomla Fullinstaller.
- Removed unused files.
- Replaced old JError against exception.
- Added missing license notes.
- Some old JRaiseError, JREQUEST_ALLOWHTML (also from old comments).
- Removed unused error reporting(0); in Admin/views/orders/view.raw.php.
- Removed old if !class_exists require's.
- Install script.virtuemart.php removed old j1.6 legacy.
- PayPal updated xml field to vmfile to vmfiles.
- Updated vmbeez install file using the method "upgrade".
- AIO installer replaced is_dir against JFolder::exists to prevent false positive error message.
- Removed some more DS, the remaining DS are meant for realpath, which could be outside of the webfolder.
- Textinput plugin, removed old trigger.
- vmuploader, failing the joomla upload filter returns false.
- Enhanced message when no vendor currency is defined.
- Removed unnecessary language keys. Languages keys which are used in a special language file should never appear in the default component language file.
- Package installer: added fallback in vmplugin to get the xml file from the default folder in case the temporary install folder fails.
- Package installer: added check in updatesmigration.php if xml is available.
- Use an internal variable html, to display the messages. It is echoed for normal install and put in the Request for package install.
- Added template to package.
- Updated js of the template.
- Vendor list is now sending the form and ordered by name.
- Changed function getUserList using user_is_vendor instead of is_vendor.
TCPDF
- Moved tcpdf files to libraries/vendor/tecnickcom/ and libraries/src/Document following the new file structure of Joomla.
- Now also deletes the old "libraries" folder in the be folder in case it exists.
- Removed old j2.5, j1.6 stuff and DS.
- Replaced DS for /.
- Fixed wrong path in getTCPDFFontsList.
- Fixed typo in vmpdf.
Work in progress
- Vendor model another idea to handle a multicurrency store (would mean to create invoices in the user selected currency).
- Better refund of invoices
- Details
- Written by: Max Milbers
- Category: Latest News
- Hits: 34881
This fairly serious XSS discovered by Mattia Furlani pertained only the administration area, so most shops are not affected. Shop owners running a multi-vendor store or fearing that their employees may use this leak should update as soon as possible.
The new core has some fixes for php 7.1 - 7.2 compatibility.
Compliance to the new french financial law
At present we have also integrated some fraud protection requirements to comply with the new French law. This includes, for example, the new invoice processing system. When an invoice was changed, the old treatment renamed the originally created invoice and created a new invoice with the same invoice number. The new treatment creates a regular new invoice number while the old invoice remains listed and accessible. We also added an order item history table. The class vmtable can now automatically save a hash to any entry. For example the order entries store a hash of the important data per line, so it is now possible to check the integrity of an entry. This system is not completed yet.
Further features:
- Behaviour of the table object is more consistent and reliable.
- Behaviour of payment plugins after pressing confirm in the cart and cancelling the payment is now more consistent.
- Removed w3c validation errors.
- Corrected routing for orderdone layout.
- Trigger 'plgVmAfterStoreProduct', added array key "new" to $data, so that we know if a product is new or just updated.
- Customfield date has now two extra parameters to set the initial date and year range. The initial date uses as format DateInterval, so the P0D means use the current.
- Language files updated.
- Long desired fix, dropdowns of prices in product edit work now directly.
- Enhanced handling of the orderdone layout.
- Minor compatibility enhancements of javascript and html.
- _triesValidateCoupon is now emptied after entering a valid coupon.
- Coupons are not automatically removed any longer when expired.
- Full installer now also works with multilingual setup.
The full list is available here http://forum.virtuemart.net/index.php?topic=139652.msg490664
- Details
- Written by: Valérie Isaksen
- Category: Latest News
- Hits: 26249
The purpose of the french financial law n° 2017-1837 is to combat VAT fraud. Since January 1, 2018, it obliges French ecommerce websites to use an extension that meets the requirements of inalterability, security, preservation and archiving of data for control of the french tax administration.
Read more: VirtueMart and the new french financial law valid since January 1, 2018
- Details
- Written by: Max Milbers
- Category: Latest News
- Hits: 23983
Just a hotfix update.
Here is the complete list of fixes:
- PayPal: Check IPN provider IP extra config parameter for standard and hosted (disabled by default now)
- Important fix for vmcrypt preventing creation of keys, if there is already an existing one.
- important fix for the date, the call was accidently using "null" as timezone parameter, which returns the server time. Added parameter and replaced the null against a default "false", which uses then the joomla configuration for the Timezone.
- category browse view, added "alreadyLoadedIds" to group product for the feature "omitt already loaded"
- Details
- Written by: Max Milbers
- Category: Latest News
- Hits: 25744
Unfortunately, we were a bit too fast with our security release, having found an error in the testing phase we created another small bug while we were fixing it.
VirtueMart usually sets the default Joomla frontend language as the shop language, it is this function that had an issue. Some multi-lingual shops failed to load products when the shop language was not explicitly set, or not by default in english.
We have tested this new fix and we do not see any bugs.
Finally, we dropped our dependency on SimplePie for RSS feeds and now use the JFeedFactory of Joomla to display the news and product feed on the dashboard.
Here is the complete list of fixes:
- Fixes for search options and display of search results
- Search plugin, added SKU (by Franz-Peter Scherer)
- Shop language is correctly set by Joomla default front end language
- Fixed another problem with the order language
- While loop finding a product alias got increased to 40 (was 20) to prevent errors when child products did not find a proper alias
- Fixed broken new Coupon
- Fixed broken displayLogos function (was missing a DS)
- Fixed version.php revision number
- Fixed lost sorting of product list if a product was stored
- Uncategorized products are listed again in the admin product list
- The fixed thumbnail size in the product list is now set to 90px
- Added layout of customfield to customfields list
- vmLoaderPluginUpdate. Removed buggy isClient() against isAdmin(). So vm3.2.8 should be Joomla 2.5 compatible again
- Browsing for products of a manufacturer now activates the subordinated settings analogous to categories
- Removed links in Order print view (destroyed layouts without correct css)
- Removed ShipTo address in invoice, if the address is the same as BillTo
- Changed RSS feed, dropping simplepie and using jfeedFactory instead, see http://forum.virtuemart.net/index.php?topic=138918.msg487976#msg487976
- fancybox/jquery.fancybox-1.3.4.pack.js got updated. Removed a little bug. See https://forum.virtuemart.de/installation-updates-einrichtung-156/fancybox-fehlerverhalten-loesung-3146/
- Fix for the router when the URL of the product uses the language fallback
- Fix XPF currency
- Paybox: fix min_amount, countries and check server availability new parameter