- Details
- Written by: Max Milbers
- Category: Latest News
- Hits: 4724
Yes a new mayor sub version as it would be sub number 24 already. On the other hand, this version works now very well on Joomla 3 and of course Joomla 4.3 and PHP8.2. So most things have settled in 4.0.22 and compared to last autumn we had almost no bugs to fix. So this stability should also be reflected in the version number and therefore 4.2!
Some have already noticed, after years of maintaining our root server on our own, our developer server went down. But thanks to our members, we can leave the do-it-yourself attitude and have our infrastructure repaired and maintained by a professional team in the future.
So there is no feature and bug fix list this time available. I thank our members for their patience and for the forum moderators for the good job keeping my back free. Of course, I will now focus more on the community again.
PayPal Checkout
VirtueMart and PayPal has always been a strong combination. Almost every VirtueMart store used PayPal. PayPal has been VirtueMart's first Platinum Partner for 10 years now. Their steady commissions have supported the funding of the VM project since years. The plugin was revised several times and got new features like SmartButtons, but still on the old API. Our provided plugin became an oldtimer.
The VirtueMart Team and PayPal are very proud to release the new PayPal Checkout Plugin working with the PayPal REST API V2.
You can expect a perfect seamless integration with VirtueMart, all workflows are combined. Just trust the buttons.
The new plugin also introduces Venmo for US merchants. Very interesting for European merchants are the "Country-specific payment methods", which allow local payments. Customers can use their addresses stored at PayPal or provide a new shipping address.
Advanced Credit Card works with 3Dsecure to protect the merchant and the customer. Credit card information is entered in a high-tech secured box and no sensitive data is processed on the shop server.
Read more about the PayPal features here
Simple Configuration
Simply use the convenient merchant onboarding provided in VirtueMart. Just click on the merchant Onboarding button in the paymentmethod edit view. Use the login in the popup and let PayPal configure the basics of the plugin for you. The connection to the iStraxx UG (haftungsbeschränkt) is, in opposite to some other shop systems, without any granted rights. It is just for the convenience.
- Details
- Written by: Max Milbers
- Category: Latest News
- Hits: 7327
It's been a busy few weeks since our last release.
Thanks to our new support members
Funding by membership is progressing towards the way I hoped it would. If the trend goes on I will be able to spend much more time on VM core development. More important, however, is the possibility of financing infrastructure upgrades or paying developers for a specific task.
From our side, there is still a lot of work to be done.
I updated the module displaying the purchased license, whilst still far from perfect, it represents a good initial step.
Apologies for the delay in answering our support tickets
There was a siginificant short term increase in support tickets, in the main these were focussed on very similar root problems.
Answering all tickets immediately would have cost a lot of time, so I used this time to solve the issues and to present the solution as quickly as possible. This approach was the best way of utilising development time and testing, but has taken longer than expected.
The dilemma I faced
Of the problems reported, two were having negative impacts on the operation of our customers platforms and lead to impacts on multiple touchpoints within the VirtueMart component.
Most significant in terms of impact was the registered user experience when trying to login and the report of "cannot use joomla login module". This was due to how Joomla 4 now handles the GET, POST and REQUEST data, which impacts all page calls. This issue lead us to discover that the Joomla 4 implementation of VirtueMart 4 was unexpectedly less than optimal. Joomla 3 handles this area differently and was not impacted. I trust that this problem is now resolved.
Secondly were reports of vendors not being able to use the frontend administration. Obviously very challenging for some of our businesses and resulting in a lot of vendors updating their extensions.Investigating that problem I noticed a big quirk due an old pattern. I just checked it, it is there since we have vmmodel (Mai/2011). This pattern tries to recieve the id for the model in the constructor. Prior the router just used own queries, but new optimisations use the category model to reduce the sql. Remember the router is just finding the GET data, while just calling a model tries to use the GET data, which is not there yet. Removing this lead to a cascade of problems, easy to solve, but needed again a lot of testing and any bug was "serious" directly (cannot register, cannot store user,...)
Both problems lead all the time to "strange" bugs and had to be cleaned up asap.
Rapid development of Joomla, PHP and VirtueMart
The software development and support wheel is turning fast at the moment.
Support for PHP 8.2.xx is progressing fast. In the last weeks approx 40 new commits were made in the repository as you can see here: https://dev.virtuemart.net/projects/virtuemart/repository/revisions.
Significant effort has been expended and I hope you can see that the project is moving forward and is on the right path. We anticipate that we are nearing the point where we will be back to a 6-8 month release cycle.
DOWNLOAD VirtueMart 4.0.20 with the Membership
NOW
The joomla updater for VirtueMart works, but you need at least version 4.0.14. Just download the core one time manually from the Order/Download page.
- Details
- Written by: Max Milbers
- Category: Latest News
- Hits: 13187
Some people from the community have been saying for years, that we should make a paid version for better funding of the project. I was unsure that this would be a way forward. However, the last year has had me re-evaluate the completely "free to use" model and whether such a strategy is sustainable or good for the future of VirtueMart.
One clear issue is that, while I am busy with updating and testing the core, third party developers work to quickly update their extensions and earn revenue immediately on release of the core. Unfortuantely the majority of my ISTRAXX extensions are not able to be updated for compatibility until after the core is released which results in customers being negatively impacted by the delay, a major loss in user installations and significant loss in revenue for my business.
Additionally, in order to make this current business model economically viable, I have to direct significant efforts to bespoke customer projects, effectively further reducing the time available for core developement. This was a major factor in the speed in which the latest version of VirtueMart could be delivered. - Joomla 4 compatibility along with PHP 8.0 support required significant core changes.
We also have our wide user community offering a lot of suggestions, solutions and fixes. A tiny feature, for example, for which 3 community members donate their 30 minutes, has to be discussed, tested and eventually a core solution must be optimised by myself to ensure a compatible and long term resolution.
Many of you will wonder why these tasks fall on me alone and why this work has not beeen distributed to supportive interested parties. Such a distributed and loosely managed approach was used in the past with VirtueMart and it eventually led to a codebase that was a mish mash of confused, personal style, bespoke, often hard coded and short term "solutions" that rendered VirtueMart too unweildy for people to maintain or develop in a cohesive and coherent manner. Today a key part of my role is that of VirtueMart Product Manager, taking ideas and features forward and ensuring code compatibility and flexibility such that it is suitable for multiple ecommerce use cases now and in the future, with the additional workload of creating releases and associated documentation - weeks and months of time is being expended.
Over the many years core VirtueMart has helped secure significant revenues for: customers selling products, agencies selling compatible plugins and agencies building strong revenue generating customer bases throught the use of VitueMart. Unfortunately only a tiny fraction of these businesses and customers have made any contribution to the ongoing work of the VirtueMart business, even when it was obvious how such a contribution could be made. This is not a unique situation, but it is one that is misaligned and unsustainable. VirtueMart clearly needs a better funding model. On analysing the sold memberships over the last years, I have found that less then 1% of virtuemart shops are members, incredible but true!
The new approach is that the core code will still be free in the SVN, but the new installer or package will only be available with a membership on extensions.virtuemart.net.
I have added a small manual showing how to update VirtueMart by the SVN directly https://docs.virtuemart.net/tutorials/installation-migration-upgrade/246-how-to-update-virtuemart-from-svn.html.
Users willing to expend the time and effort to learn how to do this update and implement it via SVN should understand, in a very small way, how much effort one tiny aspect of VirtueMart takes to maintain.
There will be still an older VirtueMart version on VirtueMart.net. This will be updated less frequently than it is currently.
These slightly outdated versions will be good enough to start with VirtueMart, but the convenience to update to the latest VirtueMart version with one click will not be offered unless you support the project with at least a Bronze membership.
You can still install the latest version via our SVN, but for the small price of a basic membership you will save a lot of time and effort as you will be able to update VirtueMart to the latest version with the click of a button.
- Details
- Written by: Max Milbers
- Category: Latest News
- Hits: 3991
Dear VirtueMart users,
a Joomla 4 update is fixing a serious vulnerability today at 4pm UTC.
Please be advised to update Joomla 4 as soon as the update is available.
In a similar case Joomla 3 sites were getting hacked hours after the update was available.
The vulnerability is reported to exist only in Joomla 4 not Joomla 3.
Find the security report here:
https://www.joomla.org/announcements/release-news/5877-joomla-4-2-8-important-security-announcement-patch-available-soon.html
Please update and stay safe
The VirtueMart Team
- Details
- Written by: Joerg Kiekebusch
- Category: Latest News
- Hits: 8701
Improved compatibility with Joomla 4.2 and PHP 8.1 plus category tree loading speeded up by factor 10
This version took longer than expected, as the team faced several compatibility issues this time. Joomla 4.2 caused more problems than Joomla 4.0 did back then. Suddenly, the 'add to cart' function didn't work anymore, opening shipping/payment methods caused a loop, saving with timestamp failed and so on.
In addition, the changes and removed functions/methods/modes in PHP 8.1 caused further trouble. For example, this caused searches with special characters to not work.
When we were about ready, a customer with more than 8000 categories (in 5 levels) tested the new version with a terrible result. A lot of tweaking was done on the category tree loading process with an improved cache. The idea of the new cache was to store the cached array instead of a rendered result, so the cache is used by almost every function to list categories. It was super fast with the cache created, but building the cache took 29 seconds for 8000 categories.
I took a closer look, and the reason for the error was simple: The cache saved the result every time there was a new result. The solution was to save it only once at the end. That helped a lot, but it still took 8 seconds to build the cache. I told the customer that there was another idea to make it faster, and he agreed to buy a membership to finance testing this idea. The new idea loads the entire table at once and does the tree sorting directly in php. The new result is phenomenal, loading the category tree via ajax now takes only 800ms without cache for the 8000+ categories. With cache it is about 650ms. Of course this is all measured on my computer, and of course the result is a bit different each time. But in more than 10 tests it was between 780-830ms. On the customer's real live server it is even a bit faster.
After the release is before the release. There is still a lot to do for a seamless integration of VirtueMart into Joomla 4, because there is still a lot of change in the Joomla 4 development. From my humble point of view, Joomla 4.0 was not really stable when we look at the problems we got with Joomla 4.2. But the real problem pressure comes from the compatibility issues with PHP8. So our current focus is still on a stable Joomla 3.10.x with PHP 8.
and it happened again, that the release was ready. But the new compatibility fixes needed compatibilty fixes ;-)
New Options:
- New option BrowseProductCartattributeOnly. This can enhance the speed browsing products
- Cart; added hidden configs enableCartMerging and enableCartLoad (by stAn)
Improvements FOR users
- Customfields, translation are shown in the BE
- Free shipment is calculated without shipment cost
- Fix for edting order items (by Quorvia)
- J4 fixed popup of related products/categories
- added missing empty option to customlist, customlist shows now by default only published customfieldsadded missing empty option to customlist, customlist shows now by default only published customfields
- customfield dropdown in product edit reacts adding the same customfield the second time
Improvements/Fixes under the hood
- Added extra checks, so that unbrowseable discontinued products cannot be added to the cart or get removed
- GetNeighborProducts enhanced it by parsing for more than one orderby correctly. It is better, but still not perfect. Perfect works only with temporarly lists.
- Removed mf_name from product search
- Important enhancement for router cache. The cache for the routing is now stored within the maincontroller after everything is executed, to ensure just one call
- Enhanced cache in category.php
- Added program cache to getParentsList
- Fixed wrong limit in getCategoryTree
- Calls for category tree without media now.
- Fixed fallback for second language
- 0.0 prices are no longer inherited
- Fixes in router for the manufacturer views
Compatibility
- Added mb_decode_mimeheader to subject of mails
- added check if function exists for mb_decode_mimeheader
- Added setConvertInt analogue to setConvertDecimal to define the variables which must be converted to integer (mysql strict mode) and added some of them (for example userinfo)
- Replaced some overlooked query() against execute()
- Enhanced deletion of cookie, added check if function exists
Developers:
- Use for filtering of strings vmSpecialChars and vmSpecialChars_decode.
- Use for tables setLockable if applicable
- Added vRequest::setRouterVars(); to main controllers
- Enhanced vRequest, can now filter given array
- Removed default for text to avoid compatibility problems with some dbs
- Enhanced the currency object, can now be created with custom exchange rate
- Enhanced vmecho, works now with variables of class vmecho (works standalone)
- Added lastAddedProduct to the cart object
- Added hidden configs for CLI; for max_execution_time use givenMaxTime and memory_limit givenMaxRam
- Added getInt and getFloat to vmConfig
- updated jQuery.UI min to 1.13.2