Being that Axsys Technology Group provides website design services and hosting for many online stores, and it's one of the things that we specialize in, I was asked by Packt Publishing to review their recently released book, written by William Rice, on the subject of Magento .
A Little History
Most e-commerce websites today aren't (or shouldn't be) written from scratch. Instead, they should be designed on top of an existing e-commerce engine in order to take advantage of all the hard work and testing that has already gone into the chosen engine.
One of the first engines that I (as well as my team) worked with, is osCommerce. This is perhaps one of the oldest e-commerce engines in existence today. As a result, it has gained from the community that has supported it for years. As security issues and other bugs are discovered, others from the community contribute patches and code to fix them. As a request for a new feature is desired, others provide the fulfillment for the need. This has resulted in a common thread that has spanned across the years, with a huge feature set, able to be fairly easily extended to support just about any needed or desired feature set. However, because of its age, osCommerce has also suffered most recently in terms of being difficult to include some of the newer web 2.0 and Ajax feature set that some of the more recently released engines provide.
Out With The Old, In With The New
Although some can easily turn their backs on older technologies such as osCommerce, we as a company have many years vested in its technology, and continue to update it to support newer features. However, that's not too say that we haven't looked at supporting other e-commerce engines, and in fact, we have been looking at Magento as a potential platform for supporting upcoming clients and websites on.
Thus, immediately after being selected to review the Packt book on Magento, I jumped at the opportunity to finally have an excuse to get comfy with Magento. From the onset, Magento was written to do two things, and do them really well. One: support existing e-commerce functionality and provide a full feature set; two: provide the ability of easily being "skinned". Skinning is the term used to refer to ability of having a new look and feel (from the site visitor's perspective), to differentiate the site from other e-commerce websites. Essentially, it allows you to have a unique look for your website. This means a custom colorset, fonts, images, layout, etc. The collection of these colors, fonts, images, and layout are collectively known as a "theme" in Magento speak.
However, Magento goes above and beyond this, to allow the customization of how products are treated, and the relationship between those products.
William's book concentrates on the installation and configuration of a Magento site. He dives into the aspects of setting up a shop using the default look (or theme) provided by Magento, and stops just short of skinning the actual website with a completely new appearance. As I understand it, Packt is working on releasing a new book to cover the skinning aspects of Magento, and is due out any any day now.
The Book: An Overview of What's Covered
The book begins your tour of Magento with an introduction of the book and what is covered. As with most books of this magnitude, it next provides a step by step walkthrough of installing Magento and even provides some tips for installing the product on various platforms. The installation chapter ends with a check point, to insure that you have understood the concepts that you read, and are ready to begin the next set of chapters. The author has even provided an Appendix that contains step-by-step directions for the installation in one place. It eliminates the explanations, and makes for a wonderful walkthrough and reference, if you've already read the installation chapter, but simply need a quick guide or refresher.
While reading the installation chapter, I did come across one section in particular that left a thought in my head about what new e-commerce developers would think of the subject. That subject being, "the encryption key". As seen on the installation page, the Magento installation software says " Magento uses this key to encrypt passwords, credit cards and more. If this field is left empty the system will create an encryption key for you and will display it on the next page" . I remember thinking to myself, "well, what's the best practice here? Is it to leave it empty or provide one myself". There should have been a little more details provided by the author in order to make that decision.
On the positive side, the author did a great job in this chapter of providing little helpful tid-bits. For example, he points out that one of the most common errors with a Magento installation is to see the "No input file specified" error from the frontend side after installing Magento. Then, he goes onto provide a few different things that should be checked in order to fix the problem.
Another thing that the author did well was to summarize his previously explained concepts. At the end of each section within a chapter, the author provides some kind of wrap up that brings the concept together, either on their own, or in relation to other concepts within the chapter, or across other chapters.
The next set of chapters dive into explaining the various concepts in Magento. He shows how these concepts translate to actually being able to view products online, and how to set them up. The author has done a fair job of explaining the relationship between some of the concepts. Concepts like Categories, Attributes, Attribute Sets, Simple Products, Configurable Products, and Grouped Products are explained very well. Then, the author describes how these all relate to each other, and goes on to explain how to put the pieces together.
During the next few chapters, topics include:
Adding Simple Products
Customization of the Store's appearance (including replacing the default theme with a new one) … note, this doesn't mean that the author shows you how to create your own skin (or theme as they are referred to here)
Going Beyond Simple Products
Customers and their Relationship to the rest of the store
Accpeting payments via gateways and merchant accounts
And finally, Fulfilling an Order
I found the chapters to be near complete (only lacking in just a few little things). For example, I felt at times that the author made mention of certain topics, but didn't get into the details. I also felt that sometimes, the author suggested something, but didn't say why. If there are two choices on the table, I'd like to understand both choices in detail before I make a decision of one. That way, I can make an educated decision, and not based on someone else's opinion.
This book is definitely targeting new Magento users. So if you already have tons of experience in Magento, this book is not for you.
Overall, I thought the book does a great job of interacting with the reader and takes a pretty good approach in breaking up the advanced concepts from the simple ones. I would definitely welcome other books from this author.
There's always an errata here or there and things that others (like myself) feel that could have been done better, or explained differently, but I believe that this books covered about 90% of what most basic newbies will ever want.
If you'd like to see a sample chapter of the book, please feel free to visit the publishers website at Packt Publishing and view the sample chamber they have available on their website.
If you'd like to learn more about getting your online store in Magento started or need help within your existing Magento store, please feel free to contact me. My team will be happy to help you however we can.