Book: Drupal E-commerce with Ubercart 2.x
I am in the middle of several ecommerce website applications right now, so I need all the help I can get. So reviewing this book not only helped me but also served as an excellent acid test for its real world contributions to the hard working ecommerce site builder.
The book follows a natural progression in terms of giving people the info they need to come to grips with building their web app: installation of Drupal and Ubercart, you got Drupal, configure Drupal, you got Ubercart, configure the store and understand its components: Cart, Catalog, Checkout, Order, Product and general Store settings. Then, in-depth Product management, including, with kudos, what everyone ends up needing: importing products from text files; product classes, grouping products together with kits and how to manage the almighty product catalog.
Then, an in-depth chapter guide on shipping and packaging, with a good look under the hood at conditional actions, responsible for triggering all kinds of events as the order passes through its various fulfillment stages. This is the kind of information people need to actually use the system, and the same can be said for the following chapter concerning taxes and payments, including an explanation of payment methods and gateways, and integration with third-party payment gateways and methods, like PayPal and Google Checkout.
Now that you got orders people have paid for and which have been fulfilled. There follows an in-depth chapter which centers mainly on the whole workflow of order management and fulfillment (shipping, etc.), including a look at available Ubercart reports.
The chapter on theming centers mainly on use of the Zen theme, but the Fusion Theming System + Skinr system is also covered. In fact, the theming chapter is very strong, even including a section taking you from a Photoshop template to a Drupal theme.
A User Interface enhancement chapter is excellent in that it shows you how Ubercart can be extended by using a wide range of third-party modules, and even offers a whole new alternative approach via panels.
Too short shrift is given, in my opinion, to often used gateways such as authorize.net, which Ubercart excels in supporting, and on the site building front, to the question of how to use Views with Ubercart (outside of the two page discussion on uc_views, p. 248) at least for products, although without this Ubercart Views module, that is one of the weaknesses of Ubercart (only products exposed to views, but not orders or attributes) which will very likely be addressed by the brand new Drupal Commerce module which re-writes Ubercart from the ground up for Drupal 7. Very interested in that project (http://www.drupalcommerce.org/)! But once I install uc_views, apart from the included examples, it would be nice to see how to use views to greater advantage and customization (only one simple example outside of uc_views), something I have had to do with every ecommerce site I have had a hand in building.
A fascinating final chapter on optimizing and promoting your store includes a wealth of information concerning a number of useful contributed Drupal modules used with advanced sites of all kinds. Particularly valuable and innovating, in my opinion, is the section on how to integrate your Drupal based Ubercart store with Google Base. And the section on security is very valuable.
A complete example site is included in the Appendix, but strangely no code is available for download from the Packt site for this book.
Plus: A great, insightful and practical guide that I sure wish had existed when I started building ecommerce sites, and which can still teach me a few tricks. Goes out of its way to educate on Drupal best practices along the way, so you can greatly profit from the book even if this is your first Drupal project (and the book doesn’t degenerate into generalities in order to accomplish this either).
Minus: No downloadable code on publisher’s site (a drush make file would be super, an install profile a golazo). Short shrift paid to alternatives to the monolithic catalog module, even though the means to do so are covered well in the book (taxonomy, taxonomy menu, views). One minor peeve: Chapter 4, for example, explains all about how to manage product attributes, but doesn’t explain really what they are and why I should care, and what the pitfalls of using them are. Solution: just follow along blindly and later you’ll see the light.
Neutral: There is no caveat in big bold letters regarding the fact that the ubercart views module forming the heart of many of the book’s advanced tips and tricks depends on MySql database views (and its attendent issues and concerns) if you enable the marketing module (fortunately, as of latest version), and that this module may be experiencing some problems as of late. The good news is that I downloaded and installed the latest version and it did work as advertised (mainly to views-enable orders and attributes), but back up your database and make a nice tidy commit to whatever version control you are using before installing to make sure it doesn’t conflict with anything else you have on your system, just to be sure.