Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Image

Drupal E-commerce With Ubercart 2.x 65

Michael J. Ross writes "In the past, a Web developer tasked with building an online store would most likely do so using a dedicated e-commerce system, instead of a content management system (CMS), because even though the leading CMSs offered more features and flexibility, they did not provide robust e-commerce capabilities, such as product listings, bulk import, pricing in multiple currencies, a built-in shopping cart, and integration with tax and shipping information sources. Since that time, e-commerce systems have become more like CMSs, by adding features such as blogging and forums. At the same time, CMSs are continually expanding their e-commerce potential, usually in the form of developers adding plug-ins. For developers using Drupal, there traditionally have been two major e-commerce plug-ins (known as "modules"): Ubercart and e-Commerce. The former has emerged as the leader, and is explored in Drupal E-commerce with Ubercart 2.x." Read on for the rest of Michael's review.
Drupal e-commerce with Ubercart 2.x
author George Papadongonas and Yiannis Doxaras
pages 364 pages
publisher Packt Publishing
rating 7/10
reviewer Michael J. Ross
ISBN 978-1847199201
summary A detailed guide to using Drupal and Ubercart to make a virtual store.
This book was published by Packt Publishing on 22 March 2010, under the ISBN 978-1847199201. (My thanks to the publisher for a review copy of the book.) On the publisher's page, visitors will find detailed information about the book, a table of contents, a sample chapter in PDF format (Chapter 9, "User Interface Enhancement Techniques"), errata (only three reported as of this writing), and links to purchase either the print or electronic versions of the book, or both at a large discount. The authors of this title, George Papadongonas and Yiannis Doxaras, are experienced open-source developers. They both reside in Greece, which may explain why the reader will stumble upon — and sometimes over — many oddly-formed phrases throughout the book, as though they had been written in a foreign language initially, and then translated into English. More on that later. Nonetheless, almost all of the material presented within the 364 pages can be clearly understood by anyone who is comfortable with the basic terminology of e-commerce and Drupal. The authors have their own website for the book, yet oddly it isn't mentioned anywhere in the text.

The book is organized into ten chapters and three appendices. The first chapter is a brief introduction to Drupal, Ubercart, and the test case used in the early chapters — in this case, a store selling electronics online. Chapter 2 explains how to install the minimum required Web technologies, Drupal, Ubercart, and related contrib modules — either individually or using packages such as XAMPP for the Web server and the UberDrupal installation profile for Ubercart. The authors recommend the use of the Thickbox module for lightbox functionality, but that one has since been superseded by the Colorbox module. The reader is told that the extra modules listed on pages 34-35 do not need to be installed immediately, but will be installed in each chapter as required; but this is misleading, because in later chapters the readers will discover repeatedly that they were not told when to install the modules. Readers may be puzzled as to whether or not they are expected by the authors to use UberDrupal, but it is of no consequence, because the end result is the same, namely, the Ubercart site is ready for configuration.

The third chapter covers basic configuration of both Drupal and Ubercart, and begins with a thorough introduction to the admin area of Drupal. Experienced Drupal users could skip most of the first three chapters — aside from the list of needed contrib modules on pages 31 and 32. In the brief section on downloading and installing Ubercart, the authors advise the reader to enable the core modules, but unfortunately provide no guidance on any of the optional ones that should be enabled so the reader can easily follow the test case in the book. The reference on page 48 to "path/x" (where x is a node identifier) is perplexing, because the authors fail to explain what they mean by 'path', since its literal use is invalid, and no directory path is presented. Also, they state that the default Drupal temporary directory (/tmp) does not need to be changed, but that is not true for Windows users who want to use an existing directory, such as C:\DOCUME~1\[username]\LOCALS~1\Temp (where [username] is their current Windows username). The cart settings on page 55 show four panes, instead of the two that will be seen by readers who have followed the authors' instructions exactly up to this point. A similar problem is encountered on page 65, because the text assumes that the reader has enabled product kits, although Chapter 2 recommended otherwise. The "Product features" pane is skipped, without any apparent reason. In general, the authors' coverage of the configuration settings provide little information beyond what is already explained on the settings forms themselves; this chapter would have been much more beneficial had the authors explored the typical cases in which the reader would want to change the settings, and the benefits of doing so.

The material becomes more interesting with Chapter 4, which gets into the details of managing categories, subcategories, products, and attributes. The authors begin by showing how to enhance products using both admin-created and user-generated tags for products and product kits. Yet in describing the latter type, a critical step in the process is neglected, namely, enabling the "Tags" setting. The reader is then told to create a couple sample products, and combine them into a product kit, which is a straightforward process in Ubercart — although some readers may initially be puzzled by the instructions to go to a Web page on the site http://www.mysite.com/ (also on page 106). More odd is the example product kit having a name of just a single component and a description consisting only of the other component's name. Readers learn how to bulk import a large amount of product data. In the process, we are instructed to "enable this module" (page 89), when actually all three modules need to be enabled. Also, no reason is given as to why the authors opted for the directory name "import" over the module's better default of "imports." The second figure on page 97 shows the first imported record not as a formatted product entry, but as PHP code, which is probably not what was intended. The next topic — product attributes — is important, because any shopping cart system that lacks flexible and powerful attribute management capabilities may appear at first glance to be a workable choice for creating an online store, but eventually those deficiencies will make it difficult if not impossible to implement the e-commerce setup desired by the store owner. The chapter is wrapped up with a brief but valuable description of the three ways to manage the products in an Ubercart site.

When it comes to shipping and packaging — the focus of Chapter 5 — far too many shopping cart systems burden the store admin with limited options and non-intuitive interfaces. Ubercart is relatively more straightforward, and the book shows how to specify destination countries, conditional actions, and shipping quotes — using flat rates, product weight, UPS, and USPS. Unfortunately, conditional actions are given little attention, and even the sample scenario is not demonstrated. This is a shame, because the topic is critical to developing an Ubercart-based store so it will automatically perform actions — such as notifying the customer — based upon a wide range of common events and conditions. Anyone planning on using the UPS shipping method should note that the registration URL provided has changed since publication of the book, but does point to the UPS Developer Kit, which has a registration link and other resources. The last section, on weight quotes, could prove baffling, because it does not match the current behavior of Ubercart in defining such a shipping method.

Properly calculating the appropriate taxes for customer orders, and accepting payments online, are two areas of e-commerce fraught with potential problems, and even greater legal risks. These are explored in the sixth chapter, which gets off to a shaky start with the claim that the overview page for "Tax rates and settings" has policies already configured, when in fact there are none. Readers learn about tax rates within Ubercart, payment workflow options, advantages and disadvantages of accepting credit cards on one's site, the configuration of payment settings, and details on the Ubercart modules available for the major gateway services — with an emphasis upon PayPal and Google Checkout. Oddly, the authors recommend that merchants outside of the United States and UK obtain VAT numbers, even though the former country does not have a value-added tax (at least, not yet). The chapter concludes with a brief overview of how to create your own payment gateway module. The authors mention that they are providing the reader with code samples for two of the most common payment gateway request methods, and yet there is no such code in the chapter, and the book has no downloadable code on the Packt Publishing website.

Chapter 7 looks at the related topics of customer management; order tracking, workflow, search, creation, and modification; and invoicing, payments, packaging, and shipping. Merchants will find much of this information collected into the reports built into Ubercart. Yet more thought should have been put into the diagrams, such as the one on page 160, which includes an unexplained asterisk in one status box, and an order going from the status of "product gathering" to a second status with the identical name. Also, the process of creating a new order as described does not match the current interface in Ubercart 2.4 (the current version as of this writing). The chapter continues with summaries of customer relationship management (CRM) in general, and CiviCRM in particular, and how it can be integrated into an Ubercart site. The authors state that the Ubercart Wish List module is part of the Ubercart "extra" list of submodules, but it is instead a separate project. Other methods of increasing sales are discussed, including newsletters, company blogs, discussion forums, and Twitter.

In some respects, the remaining three chapters can be thought of as a second part of the book, because they presume that you have completed all of the elementary components of your online store, and are now ready to customize its appearance, and begin marketing the site. Chapter 8 elucidates how to find, install, and modify a Drupal theme for your needs — as well as how to create your own, based upon the popular Zen and Fusion starter themes. The material is generally clear, except for the authors' claims that site visitors cannot "perform proper searches" using the default Drupal 6 theme (Garland), and that you the site creator "cannot interfere with UI" (whatever that means). Confusingly, pages 200 and 201 list all sorts of advanced theme configuration settings for Garland which don't exist. The chapter finishes with a demonstration of how to create a new Drupal theme from either a static HTML site or a Photoshop template (despite an earlier claim that the chapter would end with a reference to the Fusion Theming System, which is absent).

Chapter 9, "User Interface Enhancement Techniques," shows you how to improve an Ubercart-based site using taxonomies and recommendation systems (for product cross-selling), the Panels and Views modules (for greater flexibility in information display), discounts, and other techniques. This discussion has more wheat than chaff versus the earlier chapters, probably because the authors are exploring higher-level methods, and not stepping the reader through forms. But again, configuration settings are mentioned that will not be seen by the reader, evidently because the authors do not provide timely instructions as to the modules to install and enable, such as XML Sitemap (page 231).

The final chapter first explores a host of Drupal contrib modules aimed at online promotion, and then shows how to improve a site's security with backups, security reviews, and spam blocking. The final material comprises three appendices, covering a hotel booking system, lists of the modules used in the book, and some of the free and paid themes suitable for an Ubercart site.

The book contains numerous errata: "contributed systems" (page 1; should read "contributed modules"), "innovated" (page 7; should read "innovative"), "constrains" (page 7; should read "constraints"), "hundreds and thousands" (page 8; should read "hundreds of thousands"), "It is [a] social media ready" (page 8), "brooking" (page 10), "flash animated" (page 10; should read "Flash-animated"), "depreciated" (page 20; should read "deprecated"), "[the] Drupal installer" (page 27 twice, and 28), "[the] time zone" (30), "their home page[s]" (32), "to [the] site" (48), "such [a] service" (58), "customer [to] enter" (65), "ipod" (80), ."com//node" (86), "types or files" (88; should read "types of files"), "know, exactly" (106), "it it" (111), ", [the] shipping rate" (112), "charge[s] you" (128), "customers['] geographic locations" (132), "statements[,] discussed" (134), "logics" (134). That last one — an amusing non-word — seemed a "logical" and thus appropriate place to stop recording errata, even though I had yet to reach the halfway point in the book.

Earlier I noted that many of the phrases — and entire sentences — are awkwardly constructed. A few of them are unintentionally humorous, such as the phrase "to mess with" getting turned into "to mess up with" (page 205), and the phrase "a check for the balance" getting shredded into "a balanced check" (page 147) — which immediately brings to mind the question, What would be an unbalanced check? This problem worsens as the book progresses; by page 244, "caching time" has been shortchanged into "cashing time," and "number-one ally" has melted into "number-one alloy" (page 292). Some of the problems are present in all the chapters. For example, in countless places, the words "the" and "a" are needed but missing. While programming books generally are known for being grammatically and stylistically weak, there is no excuse for releasing a book to press that has not been thoroughly proofread. The same is true with regards to the technical editing of such a volume prior to publication. Throughout the book, URLs are missing the root directory "/" (which generates an error from the server). In most if not all places where the reader is told to leave a page's settings unchanged, he is then told to click the "Save configuration" button (before going on to the next page) — which is completely unnecessary and a waste of time.

But these are not the flaws of greatest importance. There is too much emphasis throughout this book on how to fill out form fields that are fairly obvious, and yet the most important subject matter is oftentimes glossed over. For instance, the topic of conditional actions arguably deserves its own chapter, or at least an extended section — not one and a half pages up front, and then several paragraphs later. A few key e-commerce topics are absent. A glaring example of this is the lack of discussion of how to sell digital products in one's store, which nowadays is important enough to warrant its own chapter. Subscription services (typically with recurring payments) is another worthy topic completely skipped. These deficiencies may be due to the authors' focus on explaining the admin pages and settings found within the basic Ubercart modules, rather than a much more pragmatic approach of exploring the steps needed to reach a goal (e.g., selling downloadable files) regardless of what modules are utilized. Admittedly, Ubercart and all of its constituent modules comprise enough details and moving parts that could justify a book of greater length. Yet room could have been made for those details and advanced topics by spending less time describing (obvious) form fields. Lastly, if the authors had expected the reader to be able to follow their instructions throughout the book, they should have made it more clear as to which modules and options should be enabled at each step.

Nonetheless, the authors have clearly put a lot of effort into making what could be an extremely dry subject more approachable, as they take the reader through the major phases of building a typical online store for selling physical goods. Offering complete explanations and plenty of screenshots, this book could be a valuable resource — as both tutorial and reference — for Web designers, developers, business owners, and anyone else involved in creating a Drupal/Ubercart e-commerce website.

Michael J. Ross is a freelance website developer and writer.

You can purchase Drupal e-commerce with Ubercart 2.x 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.

Drupal E-commerce With Ubercart 2.x

Comments Filter:
  • Past? What "past"? (Score:4, Interesting)

    by iamhassi ( 659463 ) on Wednesday September 22, 2010 @01:23PM (#33666242) Journal
    "In the past, a Web developer tasked with building an online store would most likely do so using a dedicated e-commerce system, instead of a content management system (CMS)"

    Exactly how far in the past are you talking, because MonsterCommerce [juggle.com] (bought by NetworkSolutions (yuck)) has been offering a e-commerce storefront CMS since 2000. [freebase.com]
    • Exactly how far in the past are you talking, because MonsterCommerce (bought by NetworkSolutions (yuck)) has been offering a e-commerce storefront CMS since 2000.

      In the past, a developer tasked with buying an eCommerce solution might have purchased whatever product you are talking about, but one tasked with writing one would have to do something else or get fired.

      • "a developer tasked with buying an eCommerce solution might have purchased whatever product you are talking about, but one tasked with writing one would have to do something else or get fired."

        It does say "Web developer tasked with building an online store", doesn't specify whether they have to write the shopping cart themselves or purchase a solution already done, and going from the ground up when a solution already exists seems like a huge waste of time and money.

        The MonsterCommerce ecommerce system
  • So... (Score:3, Insightful)

    by koterica ( 981373 ) on Wednesday September 22, 2010 @01:30PM (#33666360) Journal
    Its a poorly written tutorial in book form? I don't understand these things. Who buys them? Why don't they use free badly written tutorials from the internet? Is there a lack of organization for these things online? It seems hard to imagine that the market for this kind of thing could be maintained when there are up-to-date wikis out there.
    • It's about as bad as as the Drupal framework itself! (no joke) :)
      • And what exactly is so wrong with Drupal?

        (p.s. "It was like hard n stuff when I tried to setup my 2 page personal website" isn't really a valid complaint. Sort of like complaining a 737 sucks as a hangglider.

          • Re: (Score:3, Informative)

            by Tyler Eaves ( 344284 )

            Umm, yea, I'll take my expirience developing and managing a network of Drupal sites that push over 1M page views a day vs. your urban dictionary link.

            • The humor was that it *is* an urban dictionary reference. ;) Also, a network suggests a collection or farm of drupal sites, implying they are scattered across multiple servers, databases, web sites, and most likely locations. I have my own network of friend too, and come to find out they're all separate entities as well. ;)
              • I manage 3 sites on 3 seperate domain names. One webserver and one DB server are enough for our normal traffic. We have duplicates for failover. More than sufficient.

          • Drupal slow? (Score:3, Informative)

            by kbahey ( 102895 )

            How about a Drupal site that can do 2.8 million page views per day [drupal.org]? And actually the figures have been higher since with a peak of 3.4 million per day, and 92 million per month. And all that is on a single medium box.

            And for the rest of the drivel in that link, how about sites like The White House [whitehouse.gov] using it?

        • Honestly, I'm not sure whether I should start with the fact it calls each module's function twice, that they're attempting to accomplish object oriented programming without objects and then end up using objects anyway, the complete lack of appropriate documentation, or the fact it runs so slow in even the best of environments that Memcached is essentially a built-in requirement for the Content Management Platform (aka, BLOG).
          • Re: (Score:3, Interesting)

            by Tyler Eaves ( 344284 )

            Uh, at least your first two points are flat out in accurate...as for the second, I'll agree memcache is important, but that's a lot more to do with database performance than drupal. We're serving on average 950k-1.1M views a day off a quad core web server and a dual core db server. That's more than acceptable to me.

            Is it as tight as if we'd written everything by hand? Of course not, but if we had not been able to build on the framework and contributed modules, it would have taken us years to develop instead

            • Re: (Score:1, Interesting)

              by Anonymous Coward

              "but that's a lot more to do with database performance than drupal"

              In over nine thousand years of dealing with Drupal, I keep hearing this excuse. In over nine thousand years of dealing with Drupal, the only database performance problems I've run into are Drupal core doing something stupid, third party module developers doing something stupid, or far more rarely people not comprehending that as databases grow larger and larger, they need more powerful (re: MOAR RAM NAO) hardware.

              MySQL (the de facto standa

              • "MySQL (the de facto standard of Drupal) can be blamed for a great many things. PHP rockstars with no clue how to write efficient SQL being allowed to write SQL anyway, is not one of them."

                I'm thinking of playing around with Drupal at home on some spare boxes....I was wanting to use Postgres rather than MySQL...would this be a PITA? Is Drupal more dependent on MySQL 'hooks' for lack of a better word, that say Postgres?

                • by dskoll ( 99328 )
                  I run a bunch of Drupal sites back-ended on PostgreSQL with no problems whatsoever. It's a great combination.
                • Re: (Score:3, Informative)

                  by spxero ( 782496 )

                  I go back to Postres every now and then, but find that some module that I want to install only provides code for MySQL, and I end up having to go back. Most of the major modules will support either, but I've found a lot of "it'd be cool to have that" modules don't. YMMV.

                  • Re: (Score:3, Interesting)

                    by cayenne8 ( 626475 )
                    "I go back to Postres every now and then, but find that some module that I want to install only provides code for MySQL, and I end up having to go back. Most of the major modules will support either, but I've found a lot of "it'd be cool to have that" modules don't. YMMV."

                    Thanks for the reply...can you give any specific examples off the top of your head of modules that wouldn't play nice with anything but MySQL?

        • And what exactly is so wrong with Drupal?

          Fake-assed database independence. Not everything is a node, which makes taxonomy management a PITA. Poor documentation for many modules which aren't in core but might as well be, like VotingAPI. With that said, I think Drupal is the best FoSS CMS out there :)

    • Writing a book (or a good wiki - there are plenty of poor ones out there) is a heck of a lot of work. It takes skills that most people who are technically competent do not have; and even if they do, they may not consider writing to be the best use of their time. With a book, at least there is some compensation - and often help from experienced publishers. Online tutorials tend to be good at specific tasks, but fail to help people grasp the big picture.
      • From TFS:

        There is too much emphasis throughout this book on how to fill out form fields that are fairly obvious, and yet the most important subject matter is oftentimes glossed over. For instance, the topic of conditional actions arguably deserves its own chapter, or at least an extended section — not one and a half pages up front, and then several paragraphs later. A few key e-commerce topics are absent. A glaring example of this is the lack of discussion of how to sell digital products in one's store, which nowadays is important enough to warrant its own chapter. Subscription services (typically with recurring payments) is another worthy topic completely skipped. These deficiencies may be due to the authors' focus on explaining the admin pages and settings found within the basic Ubercart modules, rather than a much more pragmatic approach of exploring the steps needed to reach a goal (e.g., selling downloadable files) regardless of what modules are utilized. Admittedly, Ubercart and all of its constituent modules comprise enough details and moving parts that could justify a book of greater length. Yet room could have been made for those details and advanced topics by spending less time describing (obvious) form fields. Lastly, if the authors had expected the reader to be able to follow their instructions throughout the book, they should have made it more clear as to which modules and options should be enabled at each step.

        Books can provide a good overview of a topic, but it seems as if this particular book is somewhat lacking in that regard, preferring to explain the obvious. Also, the preceding paragraph implies that the book is poorly written and/or edited. Hence my question: Why prefer this to free tutorials and wikis?

  • ...are all equally unnecessarily complicated and bloated, and I've done just fine with straight C, Perl and LISPesque variants, good coding practice and in-house development, just as I have since 1996.

    I remember as a new professional developer the first time I entered a meeting where someone started spouting buzzwords to describe the hip framework of the day, his boss nodding emptily and the more senior developer looking on with the bemused eyes of a mental facepalm. I, meanwhile, bust out uncontrollably wi

    • Re: (Score:1, Insightful)

      by Anonymous Coward

      Job security at its best.
      You are forgetting the COST in "cost/benefit".

      Hand rolling web applications with self service and administration portions takes... TIME and EXPERIENCED DEVELOPERS
      Throwing up a pre-built CMS and modifying the look & feel, adding some enhancements takes... LESS TIME and LESS EXPERIENCED DEVELOPERS

      • I disagree. A well-documented in-house system is far easier to maintain and update than some humongous generic framework.

        What I want is a set of talented people who appreciate engineering simplicity and know how to read and get up to speed. I have no interest in someone with enough buzzwords on their resume that they have earned themselves the title of Jack of all fashions and creator of nothing.

    • Re: (Score:3, Insightful)

      by jimicus ( 737525 )

      Don't forget insecure. Most of them have so many exploits discovered on an almost weekly basis - and those exploits frequently have implications for templates and plugins - that you simply can't manage such a website without spending a significant chunk of time on maintenance.

      Every hour you spend dealing with that is an hour you're not spending updating content and presentation (the same content and presentation that your employer notices and thinks is all they're paying you for).

      (Yes, the website in my si

      • (Yes, the website in my sig is running Drupal. And as soon as I get around to it, it will not run Drupal).

        So THAT'S why you don't want us to click there...

      • Are you arguing that a private development effort with a few developers will be more secure than an open-source project with many developers? Isn't the exact opposite logic used to explain why Linux is more secure than Windows? Drupal has a community bug reporting process, and core and module patches are issued quite frequently.

        • by jimicus ( 737525 )

          I said that most F/OSS CMS systems are horrifically insecure. (They are. Debian doesn't provide packages for most, for precisely this reason. The poor bugger managing the packages would have a full-time job).

          I didn't say anything about what might be more secure. A low-profile site running an in-house developed CMS may never get hacked simply because the CMS is too different to everything else to be caught out by automated tools and the site is too low-profile to attract individual attention. That doesn

  • Drupal hell. (Score:3, Interesting)

    by unity100 ( 970058 ) on Wednesday September 22, 2010 @02:52PM (#33667494) Homepage Journal
    the month i have had to work on a drupal site has been the most horrible month in my web development career. if there is any more developer hostile code than drupal code, it is probably magento.

    to change a single form's design, you had to install a module. or, you need to go through core files of the mess that is called drupal, and change them. supposedly, it has a template system. but, some elements are still hardcoded. not to mention that, there are css items that are defined in the core modules of drupal, forcing you to go mess with them instead of doing changes just in the template css. this is just one of the examples of horror while developing on drupal.

    i cant think that anyone development-sane would want to take on doing a serious ecommerce store with this pile of crap. of course, fans and zealots, aside.

    http://amplicate.com/hate/drupal [amplicate.com]
    • Re:Drupal hell. (Score:5, Insightful)

      by -noefordeg- ( 697342 ) on Wednesday September 22, 2010 @03:51PM (#33668358)

      For the last 12 years I've been working with creating web "pages" and ecommerce "pages". I write "pages" because some of these "pages" are some of the largest sites in my country, for some very well know companies. I've tested a lot of commercial and open source solutions, we even had to write an in house solution at first, because no good alternatives existed at that time. For the last 4-5 years I and my company have been using Drupal and porting over all our customers old solutions to Drupal-based systems.
      Drupal is hands down the best framework we have ever had the fortune to work with. If you have to "mess with the core" in D6 or soon to be D7, you are really doing something wrong. Most probably with Drupal 5 too. Sorry!
      And yes, you do have to write a module if you want to change a form or create a form. That's the beauty of it! Because, if it's a common change, someone else would probably already have written such a module and you don't have to do it, just download it. Besides, if you need to change one of the ordinary forms you most likely have other custom needs for that webpage and would most likely (I hope?) have a custom module to implement all these changes, so you just put your hook_form_alter function in that module.

      So which framework / system do YOU develop in?
      Would be nice to hear some advice from someone with such a wealth of knowledge as you must be packing... =/

      • Re: (Score:1, Troll)

        by unity100 ( 970058 )
        well, same with the other drupalot that immediately jumped in to blurb bullshit defending his/her favorite cms ; i dont have any time to reserve for zealots. i wish you a nice day.
        • Re:Drupal hell. (Score:4, Insightful)

          by snowwrestler ( 896305 ) on Wednesday September 22, 2010 @05:07PM (#33669400)

          I don't think it's unreasonable to expect a developer to learn about the framework they're using. Drupal can be hard to learn and yes that's a knock against it. But if you do learn it, it is powerful and flexible.

          For a skilled developer it might be a faster and better experience to code from scratch. For a content-focused organization, it's better to spend the time and money on developing content than developing code. A framework makes that possible, even if it's not the most perfect solution.

          • "But if you do learn it, it is powerful and flexible."

            Exactly. I have experience in different CMS systems, even one that was developed in house (which was a nightmare) by some Fortune 100 company and to be honest while Drupal can be daunting once you grasp it is an extremely expendable system which you can completely transform.
          • I find drupal a bit difficult to work with ("hell" if you wish).

            I think my two areas of concern are:

            Moving target - drupal changes a fair amount in a short amount of time. This is all relative of course, I'm primarily used to working with in house proprietary CMSes. An example would be the Form API which is nice, but changed too much between drupal 5 and drupal 6 for my preference. Or perhaps there are just too many alternate ways to do things with (for me) no good defined best practices. Whatever the prima

            • by pinkboi ( 533214 )

              [...]Or perhaps if I could just say "if you want that, go ahead and do that in the admin then". As it stands, I feel like drupal is costing me more time than it is saving me, and thus the learning curve doesn't seem worth it.

              Bingo. I wouldn't suggest that Drupal is poorly written or that the documentation is bad. The fundamental problem with it is it creates more work than it saves. If your needs are specific, it's too rigid and if your needs are generic, it's too complicated to be worth it. I suffered from the former problem as every little thing I wanted to do required tapping into the core, meaning I had to redo whatever I did upon an upgrade. If you think Drupal might be a good solution for you, then you ought to try Django

          • For a skilled developer it might be a faster and better experience to code from scratch.

            Thats really alot of wasted work, and hardly faster considering the huge amount of realworld testing most of Drupals core and modules have been through.

            It takes about half an hour to setup a Drupal site with Ubercart enabled, ready to serve an online shop/website along with a complete CMS. It would take one skilled developer several months to create a hardcoded nonflexible similar product.

            I know it takes weeks to develop a solid concept, create the graphic design and implement the stuff just the way you wan

    • Re: (Score:2, Informative)

      by SilenceBE ( 1439827 )
      "To change a single form's design, you had to install a module"

      whut !?

      "you need to go through core files of the mess that is called drupal"

      There are hooks you know... . I have never ever needed to mess in the core files... .

      "supposedly, it has a template system."

      You can template everything from nodes, pages, fields, views, ... . With hooks and templates you can have total control what the system outputs... .

      " but, some elements are still hardcoded. not to mention that, there are css items
      • Re: (Score:1, Troll)

        by unity100 ( 970058 )
        excuse me, but i dont have any time to reserve for mindless zealots. i wish you a nice day.
        • Ok so everyone that argues you with arguments is a zealot ? How old are you !? 10 ?
    • Re: (Score:3, Interesting)

      by Maudib ( 223520 )

      Magento's not unfriendly, its just undocumented. Everything is by configuration/convention. This makes for a very modular and logical system that is entirely unfathomable without documentation. Its a java spring application in a php applications body.

      • not unfriendly ? 54,000 files is friendly ? 3000 db inserts per single item order in cart is friendly ?
    • Drupal is an extremely clever framework. It takes time to get to know how to do certain tasks. Your claims and your links show that you and alot of others expect to understand and master this framework with a few hours of trial and errors. I would like to hear what your own favorite framework is? That would make it easy to compare, and understand what you don't like in Drupal. Any sufficiently complex/general framework requires hours of study and the acceptance that your own expected way of doing things
    • [url=http://www.jerseys-2010.com/wholesale nfl jerseys[/url] [url=http://www.jerseys-2010.com/cheap nhl jerseys[/url] [url=http://www.jerseys-2010.com/football jerseys[/url] [url=http://www.jerseys-2010.com/nba shop[/url] wholesale nfl jerseys [jerseys-2010.com] cheap nhl jerseys [jerseys-2010.com] football jerseys [jerseys-2010.com] nba shop [jerseys-2010.com] [url=http://www.hatonsale.com/winter cap[/url] [url=http://www.hatonsale.com/red bull cap[/url] [url=http://www.hatonsale.com/monster hat[/url] [url=http://www.hatonsale.com/new era hats[/url] winter cap [hatonsale.com] red bull cap [hatonsale.com] mon [hatonsale.com]
  • tl;dr And who reviews a tech book that's more than half a year old? Drupal 7 is about to be released.
  • by PCM2 ( 4486 ) on Wednesday September 22, 2010 @03:31PM (#33668060) Homepage

    Seriously, how many of these "reviews" do we have to put up with? Yes, I realize that 90 percent of the /. audience doesn't bother with them, but how on Earth do they keep making it to the front page?

    1. This is not a review, it is a book report. Why do these reviewers persist in thinking they need to go through every aspect of the book, chapter by chapter? I guarantee you nobody ever picked up a book in a book shop and thumbed through the pages, trying desperately to figure out whether Chapter 8 would live up to the high standard set by Chapter 3.
    2. On the Web, nobody but nobody is going to read 2,500 words' worth of your opinions on anything, let alone some book they've never heard of. All we need to know is whether it's any good -- you ought to be able to get that across in 500 words, maximum.

    That said, here is what this review might look like if /. actually had editors:

    Almost all of the material presented within the 364 pages of Drupal E-Commerce with Ubercart 2.x can be clearly understood by anyone who is comfortable with the basic terminology of e-commerce and Drupal. Unfortunately, as an introduction to e-commerce sites using Drupal, this book is a poor choice.

    Throughout the text, too much emphasis is placed on how to fill out form fields that are fairly obvious, while the most important subject matter is oftentimes glossed over. For instance, the topic of conditional actions arguably deserves its own chapter, or at least an extended section — not one and a half pages up front, and then several paragraphs later. A few key e-commerce topics are completely absent. A glaring example of this is the lack of discussion of how to sell digital products in one's store, which nowadays is important enough to warrant its own chapter.

    Worse, the book also suffers from extremely poor editing. While the authors of this title, George Papadongonas and Yiannis Doxaras, are both experienced open-source developers, they also reside in Greece — which may explain why the reader will stumble upon, and sometimes over, many oddly-formed phrases throughout the book. The text contains numerous grammatical errors; for example, the words "the" and "a" are needed but missing in countless places. While programming books generally are known for being grammatically and stylistically weak, there is no excuse for releasing a book to press that has not been thoroughly proofread.

    The same is true of the technical editing. Throughout the book, URLs are missing the root directory "/" (which generates an error from the server). In most if not all places where the reader is told to leave a page's settings unchanged, he is then told to click the "Save configuration" button (before going on to the next page) — which is completely unnecessary and a waste of time. Confusingly, pages 200 and 201 list all sorts of advanced theme configuration settings for Garland which don't exist. The chapter finishes with a demonstration of how to create a new Drupal theme from either a static HTML site or a Photoshop template (despite an earlier claim that the chapter would end with a reference to the Fusion Theming System, which is absent).

    In short, while the authors have clearly put a lot of effort into making what could be an extremely dry subject more approachable, the finished product suffers from such slipshod production that reading it becomes an exercise in frustration. Steer clear.

  • Surely if I have to buy a book to learn how to install and use something that is simply a module then there's something fundamentaly broken with the documentation for it ?

    Is this a sign of thing to come where projects stop doing real documentation and sell books instead in the same way that Microsoft Press titles have replaced the manuals that used to come with MS software ?

Time is the most valuable thing a man can spend. -- Theophrastus

Working...