Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming

Selling Online with Drupal e-Commerce 68

Michael J. Ross writes "Many Web developers wish to create e-commerce sites that also support collaborative editing of content, community forums, and other features that can increase traffic to the sites. But most shopping cart products do not include those capabilities, or, if such third-party add-ons exist, they may be quite limited in functionality. Similarly, most if not all content management systems (CMSs) lack native e-commerce capabilities. Yet that barrier is being overcome, because a handful of e-commerce modules have been created for the most popular CMSs. Perhaps the most promising pairing, at this time, is Drupal and the e-Commerce module — a combination covered in the book Selling Online with Drupal e-Commerce by Michael Peacock." Keep reading for the rest of Michael's review.
Selling Online with Drupal e-Commerce
author Michael Peacock
pages 264
publisher Packt Publishing
rating 7/10
reviewer Michael J. Ross
ISBN 1847194060
summary A thorough guide to the Drupal e-Commerce
This title was published by Packt Publishing on 31 March 2008, under the ISBNs 1847194060 and 978-1847194060, and is a recent addition to their growing lineup of books focusing on Drupal and Joomla. The firm hosts the book's Web page, where readers can download the sample code, submit feedback, post a question about the book, read an online excerpt, and download a sample chapter (number 8) on "Creating a Better Selling Experience," as a PDF file. In addition, readers can purchase the handy e-book version, which contains everything found in the print version.

The first chapter serves as an introduction to Drupal and the e-Commerce module, and also explains how to download the two of them, as well as the additional module (Token) upon which the latter depends. The author explains the purpose of each area within Drupal's "Site configuration" section, and what changes the reader should make, if any. Also, he provides the background story for the sample e-commerce Web site that is built throughout the book — in this case, a dinosaur model shop. It should be noted that the diagram on page 6 does an effective job of explaining the basic idea of how a CMS works (better than the similar figures seen in other CMS books), and it is followed by an explanation of what e-commerce is. However, it is doubtful that any developer who purchased this book would need to be told what are CMSs and e-commerce.

In the second chapter, the author briefly reviews the steps for adding content and navigation to a Drupal-powered site, by adding pages and menus, respectively. Also, some additional modules are enabled, for creating a contact form and a blog, for the sample site. Up to this point in the book, readers will have become accustomed to the author explicitly guiding them through the steps necessary for creating the sample site. Thus it may come as a surprise to such readers when they see the second figure on page 40, showing the navigation menu, including new sections for dinosaurs and the museum, and a link to a contact page. The two new sections were briefly mentioned three pages earlier, but the steps for creating them were not; the steps for adding the contact page link were apparently not mentioned anywhere. However, any experienced Drupal developer should have no difficulty figuring out how to add these navigation menu items.

With the third chapter, the book shifts focus from Drupal basics to implementing an e-commerce site. Aspects of running an online business — such as site accessibility laws, legal issues, and privacy laws — are mentioned, though readers outside of the United Kingdom will most likely not be pleased by the UK-centricity of the material. Other topics covered include product types, groupings, details, photos, and advertising, as well as customer service.

In Chapter 4, readers learn about the e-Commerce product types and their corresponding modules, and how to add products to the store catalog — including specialized types of products, such as apparel, services, and bundled products ("parcels"). Chapter 5 briefly covers users, rules, permissions, settings, rules, registration, e-mail messages to users, users' pictures, taxonomy, requiring registration, customer management, user orders, contacting users, and adding your business's staff to your site. It also touches upon taxonomy and how to use it for controlling user access to content. But the author fails to explain why this is needed for the online store. Providing such a rationale up front is especially important when asking readers to work their way through potentially daunting subjects such as taxonomy, and implementing them in their own test sites, if they are following what the author is doing.

The sixth chapter begins with an unneeded review of the themes built into Drupal version 5.x, with even more space taken up describing three red-based color schemes. This is followed by a discussion of how to modify whichever of those themes is enabled, and, very briefly, how to create a new theme. In this chapter and many others, the author frequently reminds us that the hypothetical client, Doug of Doug's Dinos, is "really pleased" with the "great looking site." Readers can judge for themselves just how great is the site's design. Admittedly, in a book such as this that does not focus on Web design, a sample site can be quite basic. But the constant praise is unwarranted.

Allowing customer checkout and payment are critical to any e-commerce site, and those topics are explored in Chapter 7. The topic coverage is fairly complete, though occasionally the author does not make clear where in the Drupal administration section the reader will find the particular topic under discussion, e.g., the global anonymous purchase policy. Chapter 8 offers a lot of valuable information, including how to: add shopping cart and search elements to every page, automatically create user accounts, add images to product listings, offer discounts based on customer role, provide coupons, allow bulk purchasing, set up auction and donation products, and automatically adjust charge prices based on various conditions.

Chapter 9 delves into the particulars of calculating taxes and shipping costs, as well as accepting payments through various gateways, including PayPal, which is explored in detail. The only part that will be misleading to readers, is the claim that PayPal's IPN "pings" your server for each customer transaction. Actually, their server does not ping yours, but instead posts transaction data that you can use for updating your online database.

Chapter 10 presents a number of modules and techniques for making an e-commerce site more secure, and also covers domain name, Web hosting, and site maintenance issues. The security modules discussed are definitely worth considering. Some readers may be confused by the Backups section of cPanel mentioned by the author, since not all cPanel installations offer it.

The last two chapters of the book address invoicing, CRM, and marketing one's site. The discussions of search engine optimization, viral marketing, newsletters, etc., are quite cursory, and readers interested in those topics would fare better by consulting books, online articles, and other resources that are much more thorough. The chapter's topic that will probably be of most value to e-commerce developers, is the demonstration of how to significantly customize the layout of invoices, using CSS. The book's sole appendix explains how to install WampServer.

All the chapters conclude with brief summaries, which, without exception, are a waste of space — especially considering the brevity of most of the chapters. The old oratory principle of "tell them what you're going to tell them; tell them; tell them what you told them" may be terrific for speeches, but not for books. That is primarily because someone in an audience listening to a live speech does not have the luxury of looking into the past to hear a portion of the speech again, nor of looking into the future to anticipate what the speaker will say next. Readers of books, on the other hand, can of course jump backward and forward quickly to review or preview material, as needed.

The quality of the book's writing is noticeably weak, with countless awkward phrases and run-on sentences. Some are downright puzzling, e.g., "Thanks for your custom!" (page 125); did the author mean "order?" Throughout the book, one finds a remarkable underuse of commas, frequent mixing up of "that" and "which," misplacement of commas and parentheses, misuse of commas in place of semicolons and even periods (e.g., page 124), semicolons in place of colons, and missing hyphens from adjective phrases. Most noticeable — and at times laughable — is the excessive use of exclamation marks, reflecting a common misconception that they jazz up otherwise dull material. For example, page 49 contains three completely unnecessary exclamation marks, not counting the two contained within a customer testimonial. In addition, the book contains several errata, such as: "loose" (should read "lose"; pages 8 and 195), "leads customers" (should read "leads to customers"; page 57), "products" (should read "product's"; page 62), "customers' role" (should read "customers' roles"; page 88), "to mentioned" (should read "to mention"; page 131), "its does" (page 159), "If a more" (should read "If more"; page 202), "businesses" (should read "business's"; page 221), and many more.

An additional blemish of the book, albeit minor, is that there is little consistency in how the author describes to the reader the navigation steps for going to a particular area of Drupal administration. Sometimes he presents a breadcrumb-style menu path, starting with the highest level menu item. (The majority of readers would probably find this to be the most logical format.) On other occasions, he reverses the order and describes it narratively. Least useful is his listing of the URL, such as "http://localhost/drupal-5.7/admin/users/roles," which may not even match the Drupal root URL that the reader has set up in their development environment.

Despite the aforementioned problems, Selling Online with Drupal e-Commerce is a welcome addition to the growing list of more specialized Drupal titles, and is currently the premier resource for anyone who wishes to use Drupal and the e-Commerce module for creating a virtual store.

Michael J. Ross is a Web developer, writer, and freelance editor.

You can purchase Selling Online with Drupal e-Commerce from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This discussion has been archived. No new comments can be posted.

Selling Online with Drupal e-Commerce

Comments Filter:
  • Heh (Score:1, Flamebait)

    by AndGodSed ( 968378 )

    Some of the grammar in this review looks like it came from a google translated page...

  • by will_die ( 586523 ) on Monday July 21, 2008 @01:27PM (#24278161) Homepage
    The site http://localhost/drupal-5.7/admin/users/roles [localhost], is already down and cannot be found.
  • old hat (Score:4, Informative)

    by ne0n ( 884282 ) on Monday July 21, 2008 @01:29PM (#24278191) Homepage
    problem is, Drupal ecommerce (and ubercart, et al) don't run on Drupal's current stable release. And Drupal 4/5 leave a lot to be desired.
    I question the relevance of a book written about outdated, unsupported ecommerce tech.
    • Re: (Score:3, Informative)

      by -noefordeg- ( 697342 )

      What are you talking about?
      Drupals current stable releases are 6.3 and 5.8.

      I, and probably many others, would appreciate you mention at least some of all those missing features in Drupal 5.8.

      I have been involved in several e-commerce sites developed with Drupal 5.8 and UberCart ( http://www.ubercart.org/ [ubercart.org] ) and we really don't find much functionality missing. Actually, the Drupal API ( http://api.drupal.org/ [drupal.org] ) and available modules is far beyond anything else I've worked with.
      Drupal + UberCart is really real

      • Re: (Score:2, Informative)

        by e03179 ( 578506 )

        IAADF (I am a Drupal fanboy) and I've noticed that when posters in the Drupal.org forums suggest features that aren't found in Drupal core or in the 3rd party .module's, they are often told that "This is open source software. You want that feature? Go write it".

        You've got to admit, posting in the Drupal.org forums is a crap shoot. Sometimes your post won't get a reply. Sometimes you'll get heckled and told to go back to WordPress or Joomla. Sometimes you'll get pointed to 3rd party .modules that do hal

      • Re: (Score:3, Insightful)

        by nostriluu ( 138310 )

        The whole problem with Drupal (well, the main problem, every popular software of any size is going to have lots of problems) is the project leads' refusal to make any kind of real API. With every major release of Drupal, modules become orphaned and existing sites get harder to support or upgrade. Because Drupal uses a "hook" system, and PHP (with no data typing), and there are no unit tests, it's really, really, really difficult to tell when things are broken. I've seen evidence of this again and again as e

        • The whole problem with Drupal (well, the main problem, every popular software of any size is going to have lots of problems) is the project leads' refusal to make any kind of real API.

          At least if they'd use an API for core functions this problem would be partially mitigated. They've been talking about an API for years, but no one wants to do it, and to be honest I think this suits the people at the top of Drupal (as opposed to everyone else) just fine - it's certainly not a high priority for them.

          What's this, if not an API? api.drupal.org [drupal.org]

          The API is supposedly stable for each major version number, and even as a not-very-involved Drupal developer and Drupal user, reading the API changes [drupal.org] and updating other author's modules for them on the occasions they've needed the help has been a breeze.

          • That's documentation, not an API. In typical Drupal fashion, they've fudged terms. With the system of hooks, they've basically turned everything upside down, so everything becomes recursive (ones of those things people try to avoid in programming) and there is nothing like a simple oo or functional application programming interface. Most of the time when you're programming in Drupal, you're programming in a switch, which is another thing programmers like to avoid.

            And it's true they have been releasing long

            • With the system of hooks, they've basically turned everything upside down, so everything becomes recursive (ones of those things people try to avoid in programming) and there is nothing like a simple oo or functional application programming interface. Most of the time when you're programming in Drupal, you're programming in a switch, which is another thing programmers like to avoid.

              I don't understand what you're trying to say about "programming in a switch". Nor do I know what you mean by turning everything upside down, so I can't comment on those.

              Aren't "hooks" essentially "mount points", to borrow a term from plug-in architectures, which seems to apply just as well to Drupal modules? But instead of subclassing like you would with mount points, you have to create a function with a specific name. It's not ideal, and seems to be a limitation of the underlying language, PHP.

              Django on Py

        • API: http://api.drupal.org/ [drupal.org]

          Unit tests: http://www.lullabot.com/articles/introduction-unit-testing [lullabot.com]

          Upgrading cues: http://drupal.org/project/coder [drupal.org]

        • by burbilog ( 92795 )
          Yes, that's the main problem. We had to retire one of our sites because it was made in old drupal and old custom modules became broken in version 5. We did not have manpower to modify them and it was easier to reimplement it in APEX. Also Drupal is not flexible enough, Oracle APEX could run circles around it. Yes, I know it's not open source, but we use APEX for some years and it's waaay better than any open source tool around.
    • Re: (Score:1, Informative)

      by Anonymous Coward

      Ubercart just this past month released 1.0 and it will be available for Drupal 6 the next 2 months (I work with the core devs) once it passes all the tests. The problem has been that Drupal has kept up a very rapid core development pace and has broken a lot between major releases. There is chatter about Drupal slowing down core development pace which would help out 3rd party module developers.

      I can't speak about e-commerce's progress towards Drupal 6 compatibility but Drupal 5 is not yet obsolete so this bo

      • Drupal 6 is absolutely unsupported by the rest of the community so far, so it's a nice 'playground' more than anything worth actually developing a site on. Until the majority of Drupal 5 modules work with 6, Drupal 5 will continue to be 'the way to go' for the vast majority of users.

        Unfortunately I didn't figure this out until well after beginning to experiment with 6, but once we got rid of that and went back to 5, Drupal has been a HUGE improvement over the nightmare that zencart and open-commerce are.

        St

        • Drupal 6 is absolutely unsupported by the rest of the community so far,

          We are continuing to base our site development work on Drupal 5 at this point because a couple of key modules aren't ready for 6.

          But there are more than 700 Drupal contributed modules with released versions for Drupal 6, and that's far from "absolutely unsupported."

          The biggest barrier to Drupal 6 implementation has been the Views module, which many of us regard as a requirement. The developer chose to undertake a complete rethink/rewrite rather than porting the existing version. Views 2 is now at Release Ca

  • Ubercart (Score:3, Informative)

    by future assassin ( 639396 ) on Monday July 21, 2008 @01:29PM (#24278193)
    Never used the e-commerce module but I'm currently building two stores using Ubercart http://www.ubercart.org/ [ubercart.org] and even though its still a fairly new module its quite nice and usable for an e-commerce site.
    • Re: (Score:3, Informative)

      by gregmac ( 629064 )

      I've been using it for a small e-commerce site, and it's by far the best online store I didn't write from scratch. From and end-user perspective, it's very easy to use.

      What made me initially choose Ubercart over Drupal e-commerce is the checkout process. Two easy features that really can make or break the store: shipping estimate on the cart page (BEFORE entering any personal information besides postal code/country), and not presenting checkout as having to "sign up" for an account (even though the only dif

  • YADMNRF6 ? If I expended effort to come up with a funny acroynym. ... and congrats to the LDAP module for finally getting an Alpha out yesterday (July 20th) for 6.0.

    Why is 6 so hard to code for? Why is the enterprise module development so lagging?

    • by eh2o ( 471262 )

      Drupal internals don't adhere to standard design patterns... its a mess and hard to program for at any version unless you have deep knowledge of the way it works.

      My experience with D4 and D5 is that the contrib modules typically lag behind the core by about one year. I don't plan to touch D6 for another 6 months or so.

      • by Fred_A ( 10934 )

        Wasn't the module API supposed to be stabilised / standardised at one point (with 6.x or 7.x maybe) ?

        This has been a long standing problem and was supposed to be addressed.

  • by jollyreaper ( 513215 ) on Monday July 21, 2008 @01:35PM (#24278283)

    I don't want to know anything about a product that makes me think of tall black drag queens.

    Reminds me of a funny conversation with a friend who doesn't follow politics closely.

    friend: Man, I don't think the Dems have any good candidates running this year.

    me: Yeah, but i know you won't go Republican.

    friend: Hell, no! But there's one guy they all seem to be going on about, who is it, Rupal?

    me: I think you're thinking about Ron Paul.

    friend: What's the difference?

    me: One's a tall, black drag queen, the other is a fringe libertarian candidate.

    friend: Heh. What are the chances of either of them getting the nomination?

    me: About the same.

  • Honest question. (Score:1, Informative)

    by AltGrendel ( 175092 )
    I've never heard of Drupal [drupal.org] before. Is this another flavor of the month software package?
    • Re: (Score:3, Informative)

      by vux984 ( 928602 )

      I've never heard of Drupal before. Is this another flavor of the month software package?

      No, I wouldn't call it that.

      Its one of the larger and more popular open source CMS systems.
      It is fairly widely deployed and used, and usually shows up in any comparison or discussion of current CMS options from the last few years.

    • by LWATCDR ( 28044 )

      No it is actually a pretty major CMS. If you have no interest in Content Management Systems then it is very possible that you wouldn't hear about it.

    • by Mouse42 ( 765369 )

      I've never heard of Drupal [drupal.org] before. Is this another flavor of the month software package?

      ha, no, certainly not. I for one have been using it as my main CMS since 2004.

    • Re: (Score:3, Funny)

      by amohat ( 88362 )

      I've never heard of this Google.com

      Is it some sort of startup web directory?

      Hrm, maybe I'll look it up on Alta Vista. No, that would be a waste of time, as I pay per-minute for AOL dialup access. Grr, if Granny would just get off the phone first!

      Maybe post a embarrassingly lazy question on the newsgroups! I'll make other people do all this searching for me! There's an endless supply of well-intentioned fools willing to coddle me! There's no downside!

  • Social networking, content management, Web 2.0, and e-commerce in the same program! Think of the fraud opportunities!

    "Creates a direct connection between your wallet and us!"

  • by realmolo ( 574068 ) on Monday July 21, 2008 @01:45PM (#24278461)
    It gets very elaborate, very fast. And there are TONS of security issues, and you will miss most of them. Not to mention that usability is a major concern, and will take a lot of time to get right.

    Bite-the-bullet and pay one of the companies that specializes in e-commerce to do this for you. They have already worked out all kinds of issues that you don't even know exist. You and your customers will be MUCH happier.
    • ecommerce is one of the lumpier drupal modules. I'm not saying it's not possible to build sites with it, lots of people have done it. Just that it's not necessarily straightforward, and if you're not comfortable with PHP, you probably won't be doing much customization outside of theming. Which, come to think of it, depends pretty heavily on PHP too. It's been a long time since I played with the ecommerce module, so I won't comment on those experiences except to say that they were harrowing :)
    • I agree. Unless you want to be in the business of supporting and maintaining e-commerce solutions, this isn't the kind of thing you want to be building on your own. If you want to just sell stuff online, go with a package that's already made.
    • by dave420 ( 699308 )
      Or, you can split the store and the payment into two sections, letting someone else handle the actual payment side. There's nothing worse than an off-the-shelf ecommerce web interface.
    • by Tweenk ( 1274968 )

      In my country people prefer to pay by bank wire before the shipment. As such, there's no payment section in the stores. Another popular option is COD payment. The upside: web stores are straightforward. Downside: the e-commerce software written in the US is completely out of whack, because it assumes people will pay using credit cards or money transfer services. I whipped up my own web store, because removing things from Drupal or Magento or Zencart would take more time than writing it from scratch, and wou

      • I think you will find:
        - Drupal uses UTF8 by default
        - Drupal has a robust multilanguage approach.
        - Drupal includes a COD module and doesn't assume a particular payment flow.
        - The Drupal developers are international. In fact this can be a downside since a good portion of the ec subsystem was developed in Australia (thank you Gordon), and at times it needs to be massaged. I'm thinking of tax issues.

        IMO, having implemented Drupal-based ecommerce systems a few times now, I'd say that it's just short of ready for

  • by Red Flayer ( 890720 ) on Monday July 21, 2008 @01:48PM (#24278505) Journal

    The quality of the book's writing is noticeably weak, with countless awkward phrases and run-on sentences. Some are downright puzzling, e.g., "Thanks for your custom!" (page 125); did the author mean "order?" Throughout the book, one finds a remarkable underuse of commas, frequent mixing up of "that" and "which," misplacement of commas and parentheses, misuse of commas in place of semicolons and even periods (e.g., page 124), semicolons in place of colons, and missing hyphens from adjective phrases. Most noticeable -- and at times laughable -- is the excessive use of exclamation marks, reflecting a common misconception that they jazz up otherwise dull material. For example, page 49 contains three completely unnecessary exclamation marks, not counting the two contained within a customer testimonial. In addition, the book contains several errata, such as: "loose" (should read "lose"; pages 8 and 195), "leads customers" (should read "leads to customers"; page 57), "products" (should read "product's"; page 62), "customers' role" (should read "customers' roles"; page 88), "to mentioned" (should read "to mention"; page 131), "its does" (page 159), "If a more" (should read "If more"; page 202), "businesses" (should read "business's"; page 221), and many more.

    The review seems pre-occupied with errors that were missed by the editors that do not reflect the quality (or lack thereof) of the writing itself. While the reviewer does touch on some serious issues (awkward phrases, run-on sentences), using over 10% of a review to harp on editorial gaffes is a waste of space. This is especially true considering that some of the "mistakes" are not mistakes at all, but instead, use of British English instead of American English. "Thanks for your custom!" is perfectly acceptable in England, it is equivalent to saying "Thanks for your business!" in the US.

    In short, grammar Nazism doesn't belong in a book review, other than perhaps making a slight mention of it. I'm also very curious as to whether the review read a review copy, or a retail copy. Review copies are frequently filled with errors that will be caught later during final copy editing.

    • Whether or not the author(s) or the editor(s) are to blame, unclear language makes ideas harder to understand. The review was of the book and the ideas and information it conveys, and if those errors made the book harder to understand, then the complaints in the review are legitimate.

      • You're right in some ways, but I'd still like to see the info on what copy he reviewed. Either the publisher is terrible (in which case, reviewer may be correct), or he got hold of a review copy... in which case the reviewer comes off as amateur at best.

        However, given his complaint about "Custom", I'm taking every error the reviewer found with a grain of salt. I am not confident of his capacity to identify errors, even grammatical ones -- particularly since no context was given for them.
  • I'm having trouble (I wonder if IE7 isn't compatible with Slashdot's new format) posting this as a reply to the subject "Ubercart", but I'm hoping the poster of that comment will notice (and respond to) this. All else are welcome to response, of course: How do you mean "usable"? Is "usable" truly good enough in a site in which security and usability is of utmost importance? I'd just like for you to (please) explain your perspective of this term. I want to know if I can really expect to use an open source C
    • Re: (Score:2, Informative)

      by criznach ( 583777 )
      I've rolled out sites using Xcart, Squirrelcart, Drupal Ecommerce, Drupal + Ubercart, and even Miva Merchant. Many of these packages work great "out of the box" for simple stores. Customizing and theming is where things go to hell. The commercial packages always seem to want to sell you the customizations and make it hard (or miserable) to do it yourself. The theming experience ranges from clunky custom template syntax (miva merchant) to logic embedded in the templates (squirrelcart). I set my projects
  • by crypie ( 111943 ) on Monday July 21, 2008 @08:30PM (#24283167)
    Finding a good ecommerce package that's not written in PHP is a big pain. If you'd prefer to use Python and want to combine your store with CMS type functions you can use the Django framework along with Satchmo - http://www.satchmoproject.com

    To be fair, I'm one of the developers but I figured I'd chime in with some alternatives if you don't like the current PHP-based offerings.
  • In light of the current Drupal release being 6.3, I hope this review will prompt the developers to shift priorities to getting a v6 compatible module [drupal.org] out for testing.

    In the mean time, you might want to take a look at Ubercart [drupal.org], another Drupal module.

  • "most if not all content management systems (CMSs) lack native e-commerce capabilities."

    Wrong.

    We just started a large development project using KenticoCMS and, while we don't need it, it comes with e-commerce built-in.

    If support for e-com is anything like the rest of the framework, I'd say it's outstanding. We've been beating up on Kentico for almost two months and haven't run into any bear traps yet.

    .Net 3.5 compatible, full API, web and VS development environments, and good support.

    It's not open sour

Some people manage by the book, even though they don't know who wrote the book or even what book.

Working...