Posted
by
samzenpuson Monday October 14, 2013 @02:08PM
from the read-all-about-it dept.

Michael Ross writes "An online store is one of the most common use cases for a website nowadays. For those web developers and business owners who choose the current version of Drupal as a basis for such an e-commerce project, the canonical solution is Drupal Commerce. There are numerous online resources for learning Commerce, and yet for the longest time no printed book. Now we have Getting Started with Drupal Commerce, written by Richard Jones." Read below for the rest of Michael's review.

Getting Started with Drupal Commerce

author

Richard Jones

pages

152 pages

publisher

Packt Publishing

rating

7/10

reviewer

Michael Ross

ISBN

978-1783280230

summary

An introduction to the leading Drupal e-commerce solution

This title was released by Packt Publishing on 24 September 2013, under the ISBN 978-1783280230. (This review is based upon a copy of the book kindly provided by the publisher.) On the book's website, visitors can read information about the book, including its table of contents, errata (none listed, as of this writing), and a sample chapter (the third one, on "Planning Your Store").

At first glance, 152 pages may seem wholly inadequate for explaining how to build an online store using Drupal Commerce. However, the table of contents suggests that, within the book's 10 chapters, the author addresses most of the critical topics: installation of the Commerce project, product catalog and classification, product data, shopping cart functionality, the checkout process, shipping services, taxes, order management, discounts, and coupons. A bonus chapter, "Extending Commerce," is not included in the book itself, but is available as a free download. (Readers should note that the URL provided in the book is incorrect, as it is missing the last underscore.)

Prospective readers do not need to know how to program in PHP or Drupal; however, a working knowledge of Drupal site building through the user interface, would be helpful. Anyone who wishes to follow the steps performed in the book for creating the example Commerce site, must have access to a Drupal 7 installation, with sufficient privileges to install and configure modules and set permissions, as needed.

The first chapter, "Introducing Key Concepts," as the title suggests, introduces the reader to the Drupal Commerce package, its overall capabilities, its submodules, and its dependencies. The module list (on page 6) is missing nine entries. Other than that, the material provides a good sense of what is to come. The first chapter, like all the others in the book, concludes with a brief and utterly useless summary. In this case, it states that the readers now "understand the motivation of the developers," even though that was not discussed in the chapter.

Installing Drupal Commerce is the subject of the next chapter. MySQL is listed as a requisite download, but actually MariaDB, PostgreSQL, and SQLite are equally usable. The author mentions Mac OS X and Windows as possible environments, but neglects Linux. Most of the chapter assumes that the reader has elected to use the Acquia Dev Desktop, and it consequently may prove frustrating to anyone who uses a different distribution to get started, or who installs the needed components individually.

As an e-commerce website is developed and (usually) later modified, the participants discover the value in all of the time and effort invested upfront in planning the information needed to track products, customers, payments, and other facets of the operation. Thus the third chapter is arguably one of the most valuable in the book, and should prompt site designers and developers to ask plenty of questions of their clients.

With Chapter 4, "Products," the author begins describing and illustrating the creation of the example website — in this case, a wholesale coffee and tea store based in the UK. At a critical juncture (page 35), the reader is instructed to enable "Commerce Backoffice (Commerce package)" and "Commerce Backoffice (Product package)," which is odd, since all four Commerce Backoffice submodules are in the "Commerce (contrib)" package, and none have those two exact names. Readers may presume that Commerce Backoffice and Commerce Backoffice Product were intended. It later turns out that "Commerce Backoffice content" was also needed. It is possible that the author was using an earlier version of Commerce that had different names, but that's difficult to ascertain because he apparently does not mention which version of Commerce is used in the book.

Chapters 5 and 6 demonstrate how to set up a shopping cart and configure the checkout process. The material should be comprehensible to the typical reader, and possibly a pleasant relief if his head is still spinning from the terminology soup encountered in the fourth chapter. The author explains how to use PayPal for accepting customer payments, and what permissions to set so that visitors to one's store can check out. Strangely enough, there is no discussion as to what permissions, if any, visitors will need for viewing products and adding them to the shopping cart. This might seem obvious to those experienced with Drupal Commerce, but likely will not be to neophytes.

The next two chapters show how to set up flat rate shipping as an option for one's customers, and how to apply a value added tax to each order, including the use of the Rules module for handling special cases flexibly, such as offering free or discounted shipping when the checkout balance exceeds a certain amount on any order not being shipped internationally. Lastly, readers learn how to set up order tracking.

The last three chapters demonstrate how to apply various tax rates to customer orders, how to manage orders on the back-end (such as setting status codes and viewing payment transactions), and how to define discounts and coupons that can be offered to prospective customers. The 11th chapter, on extending Drupal Commerce, should have been included in the published volume itself, as it certainly would not have pushed the page count beyond a reasonable level.

Throughout the book, almost all of the explanations are clear and straightforward, with the only exceptions being the puzzling reference to a "uid property" (page 10), which is not explained, and the use of several different phrases to describe product display nodes (in the fourth chapter). Unfortunately, all of the material apparently assumes that the reader will encounter no problems in trying to perform the same steps, because no troubleshooting resources are mentioned.

Like so many other books in the computer field, this one contains other flaws in the writing, such as semicolons used where commas are called for (e.g., page 5), and the mixing of singular and plural terms (e.g., page 28). However, its quality of writing is better than that of the majority of Packt Publishing's offerings.

Most of this book's screenshots are quite helpful, although a few might cause some confusion, mostly in that they do not reflect what the reader will see in her own installation. Consider only a handful of examples: An image field "Progress indicator" is mentioned (page 39), but not evident in any screenshot nor on the "Product image" edit page in my own installation. The screenshot on page 45 does not include the "Description" field that the reader is instructed to create, two pages earlier. A "Product: Tax code" field is shown (page 57), prior to any tax functionality being implemented in the narrative. The checkout web page is missing a field for an e-mail address (page 80). Alert readers will immediately wonder where in Drupal Commerce they would go to modify the billing fields, but that doesn't seem to be covered (but I could be mistaken).

One may level the charge that this book provides only the information needed to create a fairly simple e-commerce website. But that would be missing the point, because this book is not intended as an exhaustive exposition of the subject. Getting Started with Drupal Commerce is a valuable starting point for anyone interested in learning how to build online stores using Drupal 7.

Here's my review... after using Drupal extensively on several projects, I can tell you the best way to make money with Drupal is not to use it in the first place.
It's absolutely amazing how quickly trying to do anything even remotely interesting in Drupal turns your codebase into a nightmarish, unmanageable mess.
Well, at the least first six time you build a Drupal website. After that you'll have learned enough to realize the investment will never quite pay off. You might as well code up a site from scra

There's one of you retards in every thread... If you cannot put a Drupal website together, you should find a more suitable profession. If you think you can do that type of user registration, permission and access management, theming, content and extension management from scratch, you're deluded. I'll take Drupal over your barely tested shitpile any day. Kthanxbye.

Richard Stallman has absolutely no problem with people making money with software, provided their business model doesn't involve keeping the source to themselves. You'd think that Slashdot posters would have a better understanding of the man than this ignorant caricature.

Last time I tried it, Drupal was a major processor hog. you were doomed if you had shared hosting instead of a dedicated box in the rack. Has this changed? has drupal fixed all the code so it's a lean and mean speedy system now?

What I am curious about is why someone is trying to run an e-commerce site on shared hosting.

If you build a brick and mortar store, do you also go cut-rate and have the walls built by some highschooler with a hammer and a saw?

If you intend to make money selling things online, do yourself and your customers a favor and fork out the necessary $50-100/mo (and up, depending on traffic) for proper hosting. I have been a customer of Nexcess [nexcess.net] for a handful of years, and not only are their servers highly tuned for

I maintain my companies site on Drupal 7 and it is in fact a resource hog. We have had to add more RAM to our servers twice because when our users go to checkout, our server times out and our users get a 502 error page. To be fair our Drupal site was poorly developed and only halfway done before I got my hands on it so I guess its possible building a site properly and completely would change this.

I maintain my companies site on Drupal 7 and it is in fact a resource hog. We have had to add more RAM to our servers twice because when our users go to checkout, our server times out and our users get a 502 error page. To be fair our Drupal site was poorly developed and only halfway done before I got my hands on it so I guess its possible building a site properly and completely would change this.

No, no it's not. Drupal is a terrible system and anyone with any virtual load and reasonable complexity will soon be looking for something to migrate to. I have migrated several sites off of Drupal, as they grew beyond it capacity to support a user for a reasonable cost. There are other issues with Drupal, but we don't need to go down that road.

Drupal is a beast. IMHO, To make Drupal function at the state-of-the-art requires solid internet programming skills. The kind of skills you can't make an "API" for...

Drupal's speed issues are, IMHO, a symptom of too many abstraction layers in the 'development stack' (i hate that term)...

see, you have a 'frame' and in that frame you can put any number of 'units'...each 'unit' has community-contriubted 'modules' that allow you to integrate functions like a web-sign up form or picture slideshow...to download a

Drupal Commerce is a well designed and crafted module suite. It fixes all the failings of the predecessor Ubercart as a complete rewrite and transforms it into a new and powerful ecommerce system. Drupal Commerce allows for the development of a flexible and secure ecommerce solutions. We've been using it for a while now on several projects and are very happy with it as a robust, reliable ecommerce system. Great stuff.