Drupal as eCommerce for online book store. Performance concerns, customizability, etc.
Hello everyone :)
I've started new work, helping a university bookstore that services mainly the students, replacing their currently horrible and buggy webshop. The new website is basically supposed to do what Amazon does (including the semantic features, like "Other people who bought this book also bought..." - that kind of stuff).
As said, right now their website is really quite bad, not quite dynamic, too rugged, and the company who developed it has seized to be, and thus it's no longer supported. My task is to replace it completely and add a range of nice features, like the ones found on Amazon, Blackwells and similar places.
The current hardware on-site is entirely Microsoft controlled, and the book database is populated by an MSSQL server. I've been told that there has to be really, really good arguments for switching to e.g. a Debian server for the website (which would be my preference), and I'm not in any way fanatical about it (at least not when I'm getting paid by someone else ;), so if it's at all possible to stick with the current MS setup, that's the way we're gonna go. Of course, PHP can be installed, no issues there, and a MySQL database migration could also be undertaken, although they really do prefer to stick with the current MSSQL server as other systems are running ontop of it. I've searched Drupal post about this, and it seems that it used to support MSSQL, then in 2004, it stopped being maintained, and there's currently a feature request accepted for upcoming versions to implement MSSQL compatibility, although no developer has been assigned to the task. I.e., my hopes are not up ;)
But, as said, we could migrate (or run MySQL alongside MSSQL), provided that Drupal is otherwise a good solution for us.
Basically, we have these needs, that we're hoping we might meet if we use Drupal:
- Runs on MS IIS.
- Can use an MSSQL server. As suggested, not necessarily for its own data. At least we must be able to access our book database on the MSSQL server, and use the data for (some of the) content generation, and for order registration/stock management/etc. At least this should be possible for me to program my way out of without dissecting the system in two.
- The system should be highly customizable. That is, I should never have to say, "I'm sorry, you can't have that feature, because Drupal doesn't support that".
- Performance should be high. By this, I mean that search and page rendering times shouldn't be noticably affected as the product list exceeds 2.5 million books (the store adds books from Browker and other suppliers, in order to let people order anything, even if not in stock). As this data is in the MSSQL database, that shouldn't really be a CMS-specific issue, but at least the CMS/CMF should have a priority regarding performance.
- Support for multiple languages (as in integrated, and easy to manage).
- Breadcrumbs for navigation.
- Forums for discussing books.
- Automatic image processing (à la ImageMagick) for scaling uploads to preset sizes (thumbnails and so on). Bearing in mind it'll be running on a Windows server.
- Commerce support (cart etc.). Either through plugins or easy to implement (as in we wouldn't be "making the system do something it wasn't really intended to do"). I've looked at the eCommerce Drupal project, and it seems promising.
- Newsmail support (generation, easy creation, list management...)
- PDF creation (for invoices).
- Support for AJAX (as in it won't break the system to add some AJAX to some of the pages. Not even sure if this makes any sense to put on the list, just ignore it if you go, "Huh?")
Okay then. With the list of wishes above, combined with the declared purpose of the system (think "This guy basically just wants to copy Amazon"), I would be very grateful to receive thoughts about this and/or experiences with similar projects. Would you consider Drupal a viable option for this?
I'm also looking at TYPO3 and osCommerce, where TYPO3 seems to be more in the ball park of Drupal, only Drupal is described elsewhere as particularly "content oriented", as in putting the content in the center, then building systems that match the content rather than the other way around, which seems to match our philosophy better. The osCommerce option really is only viable if it's highly customizable and fairly easy to customize, as it's pretty far-off out-of-the-box.
Thank you in advance for any feedback and ideas that you provide :)
Best regards,
Daniel Buus, Denmark

From a performance stand
From a performance stand point, the new version of drupal, Drupal 5.0, will be more efficient and give the option of implementing other options of caching. You don't have to wait for that, but, just keep in mind that you should upgrade to that when it comes out. See some things you can look forward to: http://www.robshouse.net/drupal-performance-issues
Running both MySQL and MSSQL databases will be tricky. You can try to write the database abstraction layer for MSSQL, but it will be tricky. If you don't write the database abstraction layer, you will need to, on a nightly basis, synchronize the databases.
Cheers
Hi Michael :)
Thanks for the reply. It seems the optimizations are just around the corner, which is good. The system is scheduled for R1 (test version) 1st of March next year, so that should be plenty of time.
Also, I'm thinking about (if we choose Drupal) migrating the book database to MySQL instead of fiddling with an abstraction layer for Drupal, that would possibly introduce bugs and have to be updated as the Drupal code was updated, too. Rewriting the code that synchronizes the local MSSQL database with the secure server's database to use MySQL instead would (in my opinion) be a better, and more durable option. I have no idea how MySQL performs compared to MSSQL (guess I'll go find out in a second), but I don't have much respect for Microsoft's products in general, so I don't expect to have to suffer a performance hit if migrating to MySQL.
If you (or any one else reading this) have any thoughts on the other issues regarding how suited Drupal is as a base system for this project, I'd be thrilled to know :)
Thanks again,
Daniel Buus
The question is not IF
The question is not IF drupal can do it. The question is: Do you have the trained staff to actually complete this task? You can always start with contributed modules, but, that doesn't mean that they will all work for you or work the way you want it to work. You might have to modify small parts of the modules.
You might be interested in the following post on IIS: http://drupal.org/node/82200
I would recommend starting ASAP on your test site. This way, you can see the advantages to everything: IIS, MySQL, Drupal, contributed modules, etc. You will gain insight on how drupal can handle things. You should also keep a list of things to do and things to modify. That way, when it comes time to actually build the final system, it will launch with few problems.
Gone...
Hi Michael, sorry for replying so late!
As it turns out, we went with TYPO3 for this deal, partly for strategic reasons, and partly for compatibility reasons also.
Thank you, though, for your help! It was very much appreciated :)
Cheers,
Daniel
No problem...
I hope it works out. Did typo3 come out with the new version that was anticipated?
----
http://eUploads.com
Typo3 ??? is very expensive
Typo3 ???
is very expensive and complex to use...
Martin GERSBACH,
Paris, FRANCE
Free
Actually, Typo3 is free. But, you are right: typo3 is complicated/complex. I did hear that a new version will come out or is coming out. The previous version was out dated.
----
http://eUploads.com