Virtuemart Revisited
Over time I have gone through various stages of selling mods and extensions and somehow every time have ended up vowing never to do it again. I think in retrospect this has mostly this has been due to the piracy that seems to go hand in hand with the web extension community and the frustration that you get when you get your hard work ripped off by some snotty little script kiddy. In every case, the mods and extensions that I have written have ended up being released open source and for free. In fact these same mods and extensions are still available on the downloads page.
As you can see by the date on most of those items, it has been a few years since I have actively developed stuff for a wider audience. Most of the stuff I wrote was for the Boonex Dolphin platform, and whilst I ended up moving away from Dolphin to Joomla and JomSocial I never bothered to release any of the modifications, plugins and extensions that I had written for my sites on the Joomla / JomSocial platform.
Recently I have been developing some interesting things and have been toying with the idea of releasing them for sale, I also have the Dolphin to JomSocial migrator that I have up until now not made available to the public. So with a renewed interest in once again selling mods and extensions but this time for the Joomla / JomSocial platform I decided to put a recent plugin that I wrote up for sale.
The plugin is a simple extension for JomSocial that automatically adds new members to a JomSocial group. I wrote this simply because the only available version that I could find to purchase required an expensive 3 month subscription purchase to download. Something as simple as this is not worth the $30 subscription price that was being asked so I decided it would be better/cheaper/easier write my own. Having written it I could also see an opportunity to sell it to others who wanted the plugin but did not want to cough up the subscription for just one extension.
Enter Virtuemart
So with a new extension to sell and a potential market to sell it to all I needed was a vehicle to sell it by. I had originally offered my previous extensions for sale via Virtuemart, so having already once before travelled the road of online store selection I decided to simply cut to the chase and head straight to the Virtuemart site. I must admit I was pleasantly surprised to find that it had been updated and there was a new look website. Whilst I was not too sure about the Windows-8-esque tiled 'surface' layout (regular readers will recall that I'm a bit of a Mac fanboi) it looked a lot more professional and presentable than the previous site which as I recall looked exactly as you would expect an open source project page to look **. So I downloaded Virtuemart and installed it ready to sell my one plugin.
The first thing that I found was that there were a lot of un-parsed language strings in the admin panel. Not a good start. I soldiered on and reinstalled and managed to fix that issue. (it was a file permissions issue - easily preventible by ensuring that the packaged files start off with the correct file permissions). Next up I added in the necessary details to set up my shop and add a product. This process was easy enough, the layout is fairly intuitive, although in my opinion it could do with a bit of a rethink as it is very clunky.
I'm not a big fan of accordion menus in administration interfaces, I much prefer to be able to view a menus contents by hovering over it and this simply does not work with accordion menus, but whatever, this is just a personal preference. Same thing with the choice of menus and location of certain menu items, for example the link to return to the top control panel layout is in the bottom menu, go figure. Also the configuration settings are all housed in their own dedicated menu, all except the configuration for the shop which is in a different menu. It seems to me that there is a mixture of menu philosophies in effect - the configuration menu clearly is based on functionality, whereas the shop menu appears to be based on name. This mixture is most definitely NOT intuitive. I would advocate moving the shop configuration item from the shop menu into the configuration menu and renaming it something like 'storefront' but Like I said that's just my take on it.
Cart Issue
So with a test product set up, the PayPal payment gateway installed and a menu item added to the site it was time to test. Rather frustratingly I could not add an item to the cart. It would go through the motions but nothing would appear. After a rather frustrating search for a solution in the Virtuemart forums it became apparent that this was a rather common problem. The standard response was that it was a javascript conflict and that this was down to the site owner to fix such issues. Hmmnnn, not really a help. Being a developer, things like this are a big frustration of mine and my immediate thought was that the code was simply not robust enough, it should detect for conflicts BEFORE they occur and then serve a fallback so that functionality does not break.
The actual issue relates to the javascript that is used to generate a lightbox popup once the add item to cart button is pressed. The action fails and the item is not added. Fortunately there was at least an option to manually override this in the backend. I eventually solved the solution by modifying the strapped template to call the jquery library in the header rather then the footer as I did not want to rewrite the 'add to cart' function but it would be better if the devs wrote more robust code.
With this final issue fixed everything was working exactly as it should. The PayPal integration was the simplest I have set up. Having gone through the process of integrating PayPal API calls in other payment gateways I was pleasantly surprised to find that this one only required my paypal account email. I spend a little bit of time scratching my head trying to find out where Virtuemart had hidden the other fields for the PayPal API keys but eventually just opted to make a purchase to try everything out. To my surprise is worked first time.
So with everything now working as it should I now needed to upload my first product and set it up for sale. Hmmnnnn, another non-intuitive menu frustration issue. Now where have they hidden this? After trying to figure out where to set up my downloadable product I went back to the forums and searched for some pointers. Well what do you know, another very well reported issue, except that this time it was not actually an issue it was a feature or rather it WAS a feature.
No more downloadable products :(
Somehow in the process of updating Virtuemart from version 1 to version 2 the decision had been made to remove the ability to serve downloadable files. There is a rather verbose discussion on the forums between some irate VM1 users and the devs discussing the reasoning behind this move. The devs standpoint is that it was a little used function and so it was removed. Well at one point in the conversation it is, as elsewhere on the forums they seem to say that they decided to remove it and charge for it to help keep Virtuemart free - after all is is developed by volunteers.
This situation seems all too familiar to me as it seems to echo what goes on over at Boonex where key devs leave out basic functionality so that they can sell their own mods to plug the gaps. The antagonists on the Virtuemart forums point out that they have removed this function to then offer it for sale as a paid extension and that this flies in the face of the open source definition. I somewhat agree with them.
The issue is not necessarily that the downloads extension is commercial, it is that it was a core feature in VM1 that has been removed from a free open source component to be sold for profit. That, as they say just isn't tennis, especially when you consider that they are charging 35 euros for it. There are even rumours that it was still available in beta version of VM2.
The plugin itself is actually rather simple and I'm sure that the devs could have come up with something much better to sell as a cash spinning exercise. It would have been much better to leave the basic download functionality as a core feature and then sell a plugin (or two) to extend it's ability with features such as download limitations or download expirations - features that are often requested.
I think that Virtuemart have alienated quite a few users in this move, especially those VM1 users that used this core feature. Fortunately for me I long ago decided to give all of my VM1 products away for free so I escaped from what must be a frustrating issue for many.
I decided to press ahead with my own endeavour and will use Virtuemarts failings to my advantage by developing a plugin to serve file downloads. What I really want to do is to link Virtuemart sales to the Akeeba Release Rystem (ARS) so that access to releases is only granted when purchased. I will have to figure out a sensible way to achieve this as currently ARS only caters for the Joomla ACL which is role based and not granular.
/DM
** Geeks and art do not usually mix - the technical mind and the artistic mind are located in different hemispheres of the brain. Robert M Pirsig labelled these the romantic and classic minds. Generally you are predominantly one or the other. The extremely technically (classically) minded person exhibits less artistically (romantically) minded qualities as the left brain function exceeds the right brain function.