Syracuse Cultural Workers

Syracuse Cultural Workers logo

Syracuse Cultural Workers have long been an amazing source of Tools for Change, providing a whole range of political and progressive slogans and artwork on a vast array of product types. These folks have built a solid business through their popular mail-order catalogue, and while the majority of the catalog content has been online for sometime, it is only recently that they decided to invest in a capacity to place orders through the web.

As it happened, we were given the opportunity to take on this project shortly after noticing the rise of Ubercart, and were eager to jump in and give it a shot. The requirements of the site were relatively straightforward, and it seemed that Ubercart, even in it's "alpha" state, could do the job.

Several months later, we are happy to say that the site has launched successfully, and the SCW staff are processing a steady flow of orders coming in through the site. Below are some details on how we implemented things, and in particular what pieces of Ubercart we had to hack/mold to our needs.

In general, most of the core functionality we needed was provided by Ubercart "out of the box". We've made extensive use of product classes/attributes to implement all the different types of products sold by SCW. The 'catalog' vocabulary is populated with SCW's Subject/Themes, and used to generate the Subject sidebar along the left-hand sidebar.

We've added some theme hacks to provide a dynamic menu (along the top of the catalog page) of Product Types, and a custom View handles the page-listings (eg. Calendars) linked to by these menu items. Another View overrides the paths provided by uc_catalog.module (the Subject links along the left) so we could customize what those pages looked like, and include a filter dropdown, so customers could browse for certain types of products within a given Subject.

A separate theme hack adds rollover dropdown menus for certain product types (eg. Cards) that have sub-Types, implemented using separate vocabularies which match the product class ID (ie. vocabulary 'CDs/DVDs' has terms 'CDs', 'DVDs', and 'Video Games').

We've used the Search Type module to provide the Search For: dropdown in the header, with some minor hacks to have it exclude certain node types (like Product Kits, which we don't use currently) from the dropdown.

In addition to these handful of minor modifications to the core modules (and possibly a few more that i missed in my review), we used contributed modules to achieve the following key features:

  1. Table-based Shipping
  2. We took the contributed Rate Quote module and modified it to meet our needs. Very impressed with the Shipping API as it stands, although (as noted in the linked comments) it could definitely use a bit of polishing.

  3. Discounts
  4. The Discounts module provided an excellent base to accomplish the myriad types of bulk discounts which SCW offers on their products. We made some heavy modifications to the core functionality, as well as adding some extended features to accomplish all the discounts offered in the SCW catalog.

  5. Order Export and MOM integration
  6. One of the most critical pieces of the site was some backend functionality to integrate SCW's order fulfillment software (MOM) with Ubercart. We built a custom Order Export module for this purpose.

    Down the road, we intend to integrate this with Drupal's Import/Export API, using the entity definitions we have begun to define for this purpose. The hope is that this module can grow into a generalized order export interface, providing multiple export formats to integrate with a variety of order processing/fulfillment software packages.

  7. Miscellaneous
  8. There were a bunch of other minor hacks and fixes that were required to meet the needs of the client, but overall we were extremely impressed with the alpha-grade software.

We are very much looking forward to seeing Ubercart grow and mature, and to doing whatever we can to contribute to ongoing efforts to this end. So far, the SCW staff are quite pleased with the site, although we are still tracking down a few nasty bugs and missing features, so you can expect to hear more from me on this before long.

After that, we are hoping to convince more of our clients to move in this direction (if only so we never have to deal with Zencart/osCommerce ever again!), and eventually provide an Ubercart install profile as a hosted service offering in addition to our regular Standard and Custom Drupal hosted service.

8.5
Average: 8.5 (2 votes)

Re: Syracuse Cultural Workers

Very cool. Congrats on getting the site out and thanks a lot for your write-up and all the patches/modules you're posting. I'd love for this write-up to get cross-posted to the showcase on Drupal.org as well... very helpful for folks evaluating the e-commerce solutions available in Drupal. Smiling

Re: Syracuse Cultural Workers

I get an error when going to the site -

Fatal error: Call to undefined function drupal_get_path() in /home/live-platform-5.x/sites/scw/modules/ubercart/uc_momexport/uc_momexport.module on line 34

doh!

looks like you caught us right in the middle of the update to alpha7e! all is well now, please come visit us again Eye-wink