Recently I started a job and was tasked with setting up a Magento based website. For those that don't know Magento is an open source e-commerce php/mysql software platform.
Installation
Installation was super easy, a simple upload of files, create the database, set some permissions and run the install script. I did the install on a private server but I know Bluehost offers a one click install, and I'm sure many other hosts would as well.
You should set up the cron job or you may unexpectedly see your pricing rules disappear.
Cool Features
Magento allows you to run multiple stores (using multiple domains, subdomains or subfolders) with one installation. That is you have one admin panel and one set of inventory. Each store can have it's own template, or you can have the same template with different inventories (this is what I did for a Canada/US store and different labelling requirements on products).
Magento allows for an extra temporary theme to replace your current theme, and the ability to set a duration on the change. For example you could create a Christmas theme that over rides your current one. This can be done at a site, category or even product level.
Magento handles newsletter registration and sending, inventory, a variety of shipping option, many types of payment gateways are built in, as well as pricing rules at the catalogue and shopping cart levels.
Things I didn't like...
Magento has a module system which can add a lot of funtionality but there are some core features I think that are missing.
- In the wysiwig editor inserting a link to a page in the site requires a cut and paste from a browser. I like the Concrete5 method of having a sitemap open and selecting a page. Seems like a feature most CMS' lack but should be available.
- Lightbox style gallery. I manually added one to the site but it would be nice to have out of the box, the pop up box used for products is not particularly attractive.
- A quality set of default emails. Some of the emails have a hard coded "Demo Store" in them, while others use the proper variables to create the store name. A really simple fix if you ask me.
The administrator user interface can be a bit confusing with options spread out all over the place, and multiple levels of settings based on websites and stores. It is very easy to miss a setting that is hidden in another view. A trade off for the power of having multipe websites/stores, but could be presented better.
Customizing Magento Templates
The template system in Magento is not for beginners, there are numerous files spread across a number of directories. For example the you have the "skin" directory where you keep css, js and images, then you have the app directory which you dig down into until you find your templates layout and template directories where you have the xml files that control layout blocks and the individual .phtml (php) template files.
Admittedly once you get used to it it's not as bad as it sounds. The template systems is based on a base template with your custom files over-riding the base set, so if you don't have all the files built into your something will still likely work. I would say you need some php experience in addition to skills in html and css to do basic customization, and good php skills to do more than that.
I also discovered some of the templates other people built have hard coded elements like banner images, logos etc. This isn't a fault with Magento but with the template designer. Magento allows for static blocks which can be used as place holders for these items, not forcing people to rename images to match the existing file or having to delve into the template code.
Getting the store running.
This is a very tedious process. Product creation is pretty slow, I created each product one at a time, entering the basic data and using the editor to layout the product descriptions. Getting a properly resized image can take you a lot of time as well but these details are necessary to make the store look good. There is the ability to import data from a spreadsheet but you still need to upload images manually and select them for each product.
After creating products and categories, you also have to check out tax rules, shipping rules, create good transaction emails and set up the payment system to start. There's much more to it and I found a handy checklist online just prior to launching the website. You can find it at
http://retailevolved.com/blog/cat/magento/post/magento-launch-checklist/, click on the link in the page for a 9 page pdf - a great resource for creating a well functioning store.
Final Thoughts
Now that I've worked with it for almost a month I'd recommend it, especially if you are making a large e-commerce site with numerous products. If you don't need to sell alot of products or carry a very small catalog, you do lack many of powerful cms tools you find in Concrete5 or even wordpress, for a robust ecommerce solution.
Check out the magento site in action
http://www.4everfit.com/