A few weeks ago I pushed live my first non-trivial Drupal site, a web greeting card store at http://www.smartwitcards.com. This is a brief sketch of what went well, what didn't, and what I might do differently if I knew then what I know now.
My charming and lovely wife Jennifer owns and runs a toy and cartoon company called Teetersaw. Her brochureware site, at http://www.teetersaw.com, is a very basic Drupal site I built that uses only one non-standard module, Acidfree (for samples and cartoons). That went very well, so for the new store I decided to use Drupal as well.
Here's how I built it:
- There is a single new content type, greeting_card, built with CCK. Each card is in one and only one line (brand), so that is a basic CCK field; but each card can be in one or more occasions (both Birthday and Friendship, for example), so I used taxonomy for that.
- The theme is a modified Abac (http://drupal.org/project/abac), which I loved working with -- very clean look and excellent CSS. There's a single template file that renders the greeting card simply.
- We use Paypal as a payment processor -- it's really simple and cheap. I didn't use a module at all here; the PHP template simply renders the pay now button with values from the node's fields. I have no worry about sneaky hackers posting HTML with different prices because they're all $2.50 or $2.75, and order fulfillment is manual.
- The pager above the card was surprisingly tricky: I use the Custom Pager module, and themed it specially so that the teeny card images are shown instead of boring Next and Prev links. However, one card can be in more than one view at a time: for example the card "Pollygags Dog Dressed" can be found via the browse-by-line view under Pollygags (http://www.smartwitcards.com/greeting-card/pollygags-dog-dressed?vid=4) AND the browse-by-occasion view under Birthdays (http://www.smartwitcards.com/greeting-card/pollygags-dog-dressed?vid=5). Obviously we want the "next" to go to the next Pollygags card in the first instance, and the next Birthday card in the second instance. But although it's not documented as such, when one node is in one or more views, Custom Pagers creates pagers for BOTH. I couldn't figure out how programmatically to determine which view the user is "in" -- so I decorated the URLs with an argument "vid". (You can see this in both URLs above.) I am not wild about this solution, but it's all I could come up with. (If there's a better way, please do educate me.)
- Other modules used are pathauto, sitemap, views, imagecache, and all the other basic ones that you might expect.
Two things I might do differently if I were starting from scratch:
- I looked briefly at Ubercart (http://www.ubercart.org/), but I decided that (a) it was overkill for such a simple site; and (b) I'd learn more if I built it from scratch. I now wonder if that was the right decision: the integration with PayPal is kind of lame, in that you leave the SmartWit site for the Paypal shopping cart.
- I am hosting at GoDaddy's economy hosting, which can be very very slow. It sure is cheap, though. We'll see how it goes.
In general, I am *really* pleased with Drupal and looking forward to converting my own consulting site, at http://www.ideograph.net -- one of these days! Thanks to all from the community who have built such a great CMS.
-Jon Peterson
Comments
Nice job!
Thanks Jon, for sharing this. I'm a Drupal newbie aiming to put together a simple site which would do exactly what you're doing here with cards. Your description will help me get started, but I think I'll take your advice and see if I can figure out how to aim for a simple ubercart solution.
you should be pleased
the site looks and functions great, dont see many sites using drupal for ecommerce yet.. well done!
There are over a hundred
There are over a hundred listed in our live sites directory for Ubercart if you want to see some and many more that just don't get listed. : )
The site looks nice and the cards are quite funny... I like the art style and the wit. You PayPal implementation seems to fit in quite nicely.
Great job for your first go at a Drupal store!
----------------------
Drupal by Wombats | Current Drupal project: http://www.ubercart.org