See http://groups.drupal.org/node/9650 for more information/to discuss this idea.

Overview
The aim of this project is to overhaul some of the core functionality of ubercart -- It would be good if the student either had experience with e-commerce systems or a strong (and odd) addiction to them. However, if you just look at newegg.com and are at awe at what it does -- this project is for you.

Description
This SoC project will look at some major usability and flexibility issues currently found within ubercart. The project is comprised of the following three sections. These improvements would then be developed in Drupal 5 for Ubercart 1.x and later be integrated into Ubercart 2.x for Drupal 6.

==Ordering System UI==

The student would first take a look at jQuery examples, AHAH framework for forums, standalone POS systems, as well as other new shopping systems to design and code editable pages, such as the ordering admin. Currently the order interface isn't as beautiful or usable as other ecommerce systems or standalone POS systems. Also look at integrating an order API so modules can easily plug into the order form UI.
Just a few examples of UI changes:
* Autocomplete search for users when creating a new order
* Theme admin order form so elements flow easier
* Use autocomplete for 'new line items' so admins can easy get the product they need without using a mouse
* and more!

==Overhaul Shipping, Quotes, Packaging==
Currently there is no way to restrict which shipping options can be selected by product or zone. This project would design and implement a shipping matrix that would allow products and users to have specific shipping options. Additionally, figure out how to calculate shipping based on multiple packages and rewrite the shipping modules (fedex, ups, usps, etc) to work with this new system. Once thats complete, take a look at the different shipping modules to better integrate them into the ordering UI. The end result is that the 'Orders Administrator' can go from creating an order all the way to printing out the individual shipping labels for all the packages that get shipped out for a particular order.

==Dynamic fields==
For 90% of users, a street address, city, state, zip, etc are acceptable fields. However, an increasing amount of customers require specific fields in various places, including shipping, billing, attributes, etc. This project would research different ways to implement this functionality. XML and RDF in Drupal would be researched as possible solutions. This would then need to be integrated into the shipping and billing system to figure out how to pull tax and shipping data out of the RDF or XML data.

Mentors:
Plan to assist the student by providing them with research materials related to the project

  • rszrama
  • japerry
  • mikejoconnor
  • cyu

Difficulty: hard