MiniVend's demo catalog shows many of MiniVend's features -- list and category building via controlled search or query, random selection of feature items, templating with active elements, etc. But each feature has its cost in complexity and performance. The more you ask the computer to do for every page it displays, the less performance you can expect under high load.
Some things that have been found to be popular:
If you have only a small number of products, hard coded pages are just fine, though you would be surprised how much of a maintenance headache they are compared to database definitions. If you have any number of products though, you will want to categorize them so that customers can easily find them. Pick a field in your database, perhaps named category, and classify them for search by MiniVend.
You can easily place a thumbnail image (perhaps with a link to a blowup) only for those items that have them. The best way to do this is with an image field in the database; if you do file tests for every image in a large list it can degrade system performance.
On a product's individual display page, you can embed searches of similar
products with the [query ...]
or [loop ...]
tags. If you develop customer data, you can even search a past order
database and present products that previous buyers of that product have
selected.
You can key the placement on the existence of a file in a certain directory. This is very reasonable to do when a user is viewing a single product.