MiniVend—the Electronic Shopping Cart
At the heart of MiniVend is the Products database. Normally, it is just an ASCII file with fields separated by tabs. The field names are given in the first row and MiniVend indexes the database with GDBM (GNU Database Manager) automatically. You can even hook up to a real SQL database through Perl's unique DBI interface, if you already have one.
You can update the database on the command line with the offline command, or if you just want to change one record, you can use the update command.
It is possible to import data from any source, provided the data can be formatted with the fields separated by tabs. If you want to adjust all the prices in the system, it is easy to do so with the commonadjust feature.
MiniVend records all sessions for future use. Obviously, some session data will become obsolete after a while, so it is a good idea to put an expire script in your crontab file:
44 4 * * * /home/httpd/mvend/bin/expireall -r
This will prevent your session databases from growing too large.
MiniVend is very impressive, almost awesome. This is software of a kind that other companies ask thousands of dollars (or euros) for, and MiniVend is free through the GPL. It is also a showpiece, demonstrating the versatility of Perl. A shopping cart system is not a small piece of code; MiniVend is a full-featured, powerful example.
MiniVend is a big system, not something you can cover in one session. It has scores of features I didn't even have time to try out yet. I've had a few problems with it, but I firmly believe that MiniVend is a system that can be used for any kind of electronic commerce. As I learn the features and study the code, I will become more familiar with it and can make it do all the things I want it to do.
If you're looking for a turn-key system, MiniVend is not it. On the other hand, if you are looking for a powerful, flexible and easy-to-use system, MiniVend is for you. The documentation is great, the source code is all there and if the support on the mailing list scales up a bit, there is nothing to fear.
Kaare Rasmussen (firstname.lastname@example.org) is a software engineer and developer, responsible for the software direction of a small Danish ISP known as Webline when work, family and other duties allow the time. Kaare has been working with almost all aspects of the IT industry for the last twenty years or so. He has written several books in Danish during the past five years—the latest one about using the Intranet with Linux.
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- SUSE – “Will not diverge from its Open Source roots!”
- Dealing with Boundary Issues
- Vagrant Simplified
- Libreboot on an X60, Part I: the Setup
- October 2015 Issue of Linux Journal: Raspberry Pi
- System Status as SMS Text Messages
- Bluetooth Hacks
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- New Products
- October 2015 Video Preview