Our New Online Store (or setting up e-commerce online store using Drupal)!
We're very proud to finally have gotten our on-line store up and fully functional.
We're using the E-Commerce Module available for Drupal 4.7 which provides a ton of functionality. Shopping Cart, different types of Products, Shipping Calculator, Tax Calculator, and more. Great stuff!
This blog post is a very basic and short primer for getting up and started with a online store via Drupal, all the issues we ran into, and how we (mostly) solved them.
First off, you'll need to get the E-Commerce module, place it in your /Modules folder, and then activate it's various parts under Admin/Modules. You only need to activate a few parts to get it working, but as you'll see it's got a lot of parts. For example, we're not selling anything that's a down-loadable product, so we haven't turned on that module that allows for such products. But you'll want at least the Store, the Card, whatever Payment module you'll be using (ours is Paypal for now), the Shipping Calc, the Shipping API, and the various Product modules you'll need.
The Shopping Cart is just a Block, that will now be available on the admin/blocks page for you to configure. We just set ours to be in the upper left-hand corner, and to not show up unless there are items inside of it.
The Payment modules give Drupal the ability to talk to various billing systems. We're starting out small, so we just used the Paypal module. You just set up a Paypal merchant account, and then give the Paypal Payment module the details. Once done, Drupal can 'pass' the order info to Paypal automatically for you, and take the person there at the end of the checkout process for you too.
The Store module adds a ton of features and settings. It has it's own menu, which you'll need to go into to get to the Store settings. Here you can set your orgin for shipping, the language of your confirmation e-mails and such, and a whole lot more. You can also set up inventory management and more. We opted to keep it simple, so we just edited the language of the confirmation e-mails, set up the sales tax collection, and set our address for shipping.
The Shipping Modules allow you to set up an automated shipping calculator where you'll put in the information on your shippable products their weight and dimensions and it will give the customer different shipping options, with prices, and let them pick which one they want and then it adds it to the order cost automatically. You have to first set up what Shipping services you want to use.
The various Product Modules add Drupal-standard Nodes that represent your products. Most of the time it's One Node = One Product, but there are special Product types that allow for configurable products, collections of products, subscriptions, and more. So to make a Product for your site you'll go to the standard 'Create Content' page, and pick your project type there, and Drupal will then give you what amounts to an extended 'Page' node, where you've got a title, body, and any other 'special' fields other Modules are giving your other Drupal pages, but with the added Shipping options, prices, availability, and more.
Sounds easy yeah? So then, Here are the issues we ran into, and how we solved them:
- First off, the shipping calculator will only work for UPS, even though other shipping options show up as available. If you know PHP mojo you can get other services to work, and apparently it's under development, but we just decided to go with UPS for the time being.
- Second, there's a strange problem we hit with the Taxes being figured in. They don't see to work unless the Customer has made a Drupal account on your site. This lead to...
- Third, we wanted to have our customers sign in, so that we have their info and such and it's not just anonymous, but Drupal normally requires a long and confirmation e-mail process. No customer is going to sign up, then go back to their e-mail, and then back to our site, and then finish their order. Enter in the Login Toboggan Module, which allows for someone to sign up and get instant access to your Drupal site. Buy simply setting up Login Toboggan to allow for someone to sign up without the confirmation e-mail, and then setting it to take them back to their shopping cart once they have signed up, it solved the problem. Now a customer just needs to click Checkout, give us their info, pick their shipping, and then get passed onto Paypal for payment.
- Fourth, the standard 'Product' page is a problem, for it shows the standard node 'teaser' which is usually just the first 'x' number of characters of the Node itself. So you'd wind up with silly and incomplete product listings on the store page, and we wanted control of that to make a nice Product page. Enter in the Excerpt Module. This allows you to set a separate Teaser for a Drupal Node, so that you can make nice, short product descriptions with a small photo for the Products page, yet have a full length page with nice big photos for the actual product description node.
So, by combining together a few Drupal Modules, we were able to build ourselves a nice, solid, and stable e-commerce store for free that integrates seamlessly with the rest of our site. Viva la Drupal!