I recently built a simple e-commerce site for a friend. As the design of the site was paramount, she found that starting with WordPress and building up a theme gave her the look and feel she was going for. Now, the difficult part of that is the lack of integration between WordPress and e-Commerce systems. ZenCart has long been considered the granddaddy of open source shopping carts, but I have yet to see an effective paring of ZenCart and WordPress.
There does exist a WP e-Commerce plug-in produced by Instinct in New Zealand. So, using their latest version (3.6beta3) I began building this site. Now, the front end of the Instinct package is quite nice. It installs quickly and the user facing interface is easy for beginners to understand.
The problems start when you try to extend it. It has absolutely no data abstraction of any kind. SQL is all over every module of code, including making the same static query inside loops. I made some significant changes to the instinct package and tried to push my changes back to the original developers at Instinct. I’ve had very little response from the developers about including my changes in their releases. (one or two emails and then nothing). I’m considering forking the code and releasing my changes so the large installed base of this application has somewhere to turn to. Their forums are filled with people having problems with the plug-in and most of the problems could be fixed with better SQL handling.
I’ve added features such as:
- Support for Nova Virtual Merchant
- Saving card number and exp
- Saving response (particularly response code) from merchant
- Setting Order Status based on response code from merchant
- Displaying Card information in purchase log
- Many speed-ups; removing redundant queries from loops
There are still _many_ features that this plugin is missing to make it a full featured e-Commerce platform (most notably, a till). The code isn’t very well organized, so adding the requisite features will take a long time. OH, and don’t me started on shipping calculation!
The other viable option is to give up and write plug-in that integrates ZenCart with WordPress “the right way”(tm) and build a migration script between WP e-Commerce and ZenCart. This has the advantage of limiting the actual size of the code I would have to maintain and letting the WordPress and ZenCart groups do the heavy lifting. I believe the licenses are all compatible so pulling elements between them shouldn’t be a problem.
If there’s a response from the community for me to release my WP e-Commerce changes, I’ll gladly package them up for download. However, when my friend decides that new features are needed to support her growing business, I’ll most likely migrate to another package.
Hello, I found this post extremely interesting. I believe the idea of releasing your WP e-Commerce changes is good. I have been trying to modify myself the code in plugin, as the plugin totally lacks support from the creators and I am receiving different kind of errors. Is there any way I could contact you please? Thanks.
Left by Mimos on January 23rd, 2008
You can email me at codebudo@gmail.com, but if you post your errors on this blog page it may benefit others as well.
Left by admin on January 23rd, 2008
The problem I had encountered is while upgrading from version 3.51. of the plugin to 3.6 beta 7. I am not sure how this update is suppose to be done, but I just replaced the old files and now I am presented with a blank page. I would need version 3.6 beta 7 for the Google Checkout feature .. How is this update really suppose to be made ? What am I doing wrong ? :s Thanks.
Left by Mimos on January 24th, 2008
In the email you sent me, you said you’re running WP 2.0. I’m betting this is the problem. The plugin relies on certain calls being available.
If you currently have version 3.51 running and you just need the Google Checkout feature, you can probably copy the required gateway files from the wp-content/plugins/wp-shopping-cart/merchants/ under 3.6 beta 7 to the wp-content/plugins/wp-shopping-cart/merchants/ directory under your 3.51 installation.
I’m not positive the gateway files are backward compatible, but it’s such a quick test it’s worth a try.
Do you get anything interesting in your error logs when you get the blank page after activating the plugin? (blank page usually means there’s a php syntax error)
Left by admin on January 24th, 2008