Moved to official ideas list at http://drupal.org/node/237902
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
The Ubercart project will look at the following six sections, which could easily be done by two students, or one very ambitious one.
==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

Comments
Rules engine is already on its way...
The author of 5.x workflow_ng is upgrading his work as Rules Engine.
See this blog post for more details:
https://more.zites.net/workflow-ng/wishes_for_the_rules_engine
Kyle Mathews
Kyle Mathews
right... and its been
right... and its been sitting there with no action since November. Although I just noticed too that he posted more about rules today! Perhaps this will not be an issue for ubercart after all.
no action?
Well, "no action" is a bit of a stretch, because fago worked hard on the 5.x version of the rules engine, still named "workflow-ng" there. He's only now getting to the Drupal 6 port, but there's no way you could combine this module and "no action" in one sentence.
erhm -- I wanna see some
erhm -- I wanna see some code ;-)
https://drupal.org/project/rules -- notice that there is no action since november here.
but yah I'm following his blog, and suggested it'd be nice to see some development code in cvs. Its good to see the update today, so I crossed off rules
oh my.
http://drupal.org/project/workflow_ng
http://drupal.org/project/cvs/156279
And yeah, most of this code will be transferred to the "rules" project.
*sigh*
I want to see D6 code.. yes workflow_ng is great, I know about that ;-)
From what fago said in his post there are lots of changes from workflow_ng --> rules engine I'd like to see whats been done there, if anything, since its not going to be trivial. If nothing has been done in the conversion, then I know we have at least a few weeks if not a month before its done.
http://drupal.org/project/cvs/190124 -- nothing?
Some great ideas here
There are some really good ideas here. I'm thinking there are at least two SoC sized projects here. Some like the rules system and the import/export frameworks would be great if they were considered in a more universal form, keeping an eye on the Ubercart needs but having a system that creates rule sets and conditionals for rule processing for any actions one might come up with.
--
Blog: Adding Understanding | Drupal Developer Search | Drupal Services: Brauer Ranch
--
Blog: Joshua Brauer dot com
Hmm... my general feedback
Hmm... my general feedback is available in this thread on Ubercart.org. Basically, none of these are full proposals, and I don't think all are good ideas for the scope of SoC.
I think the UI improvements and the export framework have good potential to be fleshed out and turned into actual proposals. The help framework can be a general improvement to Drupal help that Ubercart can integrate with after the fact, and I wouldn't be opposed to that.
The Order Administration UI can be generalized by making a general system to turn a form into a set of inline editable/savable fields. This could be applied to any form using a specific theme function, and the implementation task for it can be to integrate it with the Ubercart order administration interface. In other words, if you were looking at something like this:
Name: Ryan Szrama
You would click on Ryan Szrama to turn it into a textfield, and onblur it would pass the new value on to be saved. Maybe this already exists? Maybe this isn't even what you're referring to above? It's hard to tell. :-/
from what I gathered, this
from what I gathered, this doesn't need to be that verbose. Take example the case-tracker project last summer. It consisted of many smaller projects into one lump sum project. And their proposal was, umm not too long:
http://code.google.com/soc/2007/drupal/appinfo.html?csaid=D5B05BEC5466AE4C
Oh, don't go by that...
That's just the Google application reading out the first paragraph of the student's application.
This is an example of a project idea proposal from last year: http://drupal.org/node/121112. Leslie hinted that we don't necessarily need quite that much detail, but it should be clear to the student what they'll be expected to do and who they can turn to for help, at least.
isn't current UC import module handling export functionality?
Isn't current UC import module handling export functionality? However, I find it too limited and not flexible to do data exchange with external applications. I am thinking of something like Dataflow of Magento would be useful for UC. Is it what you are referring to?
Then, I would be submitting a proposal for that.
Proposal for DataExchange Framework
Talked with Chris, and Jakob about DataExchange for Ubercart... and I managed to squeeze in before the application closes
below is my proposal:
ABSTRACT:
This project aims to create DataExchange framework for Ubercart to handle exporting and importing of data in reference to DataMaps. This will make Ubercart easily extensible to communicate with external applications such as Google Base, BaseCamp, Salesforce and Quickbooks through DataMaps. This framework has potential to be extended to support Drupal's core and module data in the future.
BENEFITS TO DRUPAL/OPEN SOURCE COMMUNITY:
The outcome of this project will benefit Ubercart users greatly. Basically, the framework will enable batch updating/editing of Ubercart data with preferred data editor outside then importing into Ubercart. Moreover, it can communicate with custom external applications through custom DataMaps which can be easily created in the framework. Hence, exchanging data in and out of 3rd party applications or web services (Google Base, Shopping.com, Amazon, QuickBooks, BaseCamp, Salesforce etc.) could be easily handled with just a few clicks.
BACKGROUND:
This proposal is written after my expertimentation with Magento for my another GSoC proposal to Drupal and my talk with "catch" in IRC. After reading through the comment by Ryan from Ubercart, I am excited to work on the DataExchange framework for Ubercart as it will help out a lot of Ubercart users. The framework is inspired off from Magento's Data Exchange Engine: DataFlow. screencast
PROJECT DETAILS:
The framework is based on four components: Adapters, Parsers, Mappers and Validators. The framework will be packed as a Drupal Module.
= Adapters fetch data and files from external resources. Supported resources are Local files, FTP & SFTP servers, Web Services, HTTP interface, and Database tables of Ubercart.
= Parsers convert one data from another as needed by data exchange process. Supported formats are CVS, XML, Excel XML and Database tables of Ubercart.
= Mappers do the data brokering as defined by DataMaps.
= Validators verify that certain conditions are met. This project will support XML validation against DTD.
The project will focus on handling Ubercart product data with attributes before other Ubercart data types.
DELIVERABLES:
= DataExchange Module
-- Robust framework built on four components that are extensible
-- Interface to easily create DataMaps
-- Support for various Ubercart data; products, customers, orders
= Sample DataMaps for Google Base, SugarCRM, Shopping.com etc
= Screencasts
-- Creation of DataMaps
-- Importing and exporting process
PROJECT SCHEDULE:
= Before May 26:
-- Communication with four mentors from Ubercart
-- Going through Ubercart forum to understand the relevant issues
-- in-depth analysis of DataFlow, Ubercart, and Drupal
-- Study of existing parser libraries
= May 26 to June 8 (2 weeks):
-- Initial designing of framework with mentors
-- Selection of parsers and other libraries
= June 9 to June 22 (2 weeks):
-- Start coding for framework base based on the finalized design
-- Start coding on adapters and parsers
= June 23 to July 6 (2 weeks):
-- Finalize adapters and parsers
-- Mid-term Report
= July 7 to July 20 (2 weeks):
-- Manual creation of DataMaps for testing
-- SimpleTests & Bugfixing
-- Start working on mappers
= July 21 to August 3 (2 weeks):
-- SimpleTests & Bugfixing
-- Finalize mappers
-- Start working on mapping interface
= August 4 to August 10 (1 week):
-- Finalize mapping interface
-- Code validators
-- SimpleTests & Bugfixing
= August 11 to August 17 (1 week):
-- Final Report
-- SimpleTests & Bugfixing
Continue with bug fixing and documentations/screencasts till August 27; one week before September 3.
I am not sure if you are
I am not sure if you are very familiar with the shopping.com api or not so I hope I don't offend you. The shopping.com api is highly complex and to use with a dataexchange framework will be complicated to build and theme. Shopping.com has a plan to change their API in the future and my guess is they will limit what you can do with it. Much of the shopping.com api is not public knowledge to most "partners" - but can be utilized if you know how.
I have a few sites using Drupal + a custom Shopping.com API module. I am working on offering a revenue sharing shopping.com module right now. I am hoping to deliver it by mid summer.
I am not sure of what help I can be with your efforts but if you need help dealing with the shopping.com api let me know. I didn't want to sound discouraging but wanted you to know upfront it would be a heavy challenge (strictly speaking about shopping.com api).
===
Elvis McNeely
Blogging about Drupal and web development: http://www.elvisblogs.org/drupal
==============
Twitter: http://twitter.com/elvismcneely
Facebook: https://www.facebook.com/elvis.mcneely
LinkedIn: http://www.linkedin.com/in/elvismcneely
Company: http://www.lafayetteweb.com
Blog: http://www.elvisblogs.org
shopping.com merchant account
The framework's support for shopping.com is specifically its Merchant program where products in Ubercart can be listed in shopping.com product database through product feed created via a DataMap for shopping.com. That's attainable.
I guess the one your are referring to is integration with Partner program to bring in products from shopping.com product database. Full support for real-time product querying and listing is out of scope of this project as this project aims to just facilitate data exchange in and out of Ubercart. However, products info from shopping.com Partner program can be taken in through a custom DataMap.
It would be good if I could have a look at your sites to see how shopping.com ties in nicely.
Ah, my bad, the data mapping
Ah, my bad, the data mapping for the shopping.com merchant program. Yes, that can and should be done for Ubercart. I like the idea.
As for the shopping.com partner api and data mapping, you should visit the shopping.com api white paper, that is the limited version, probably 45% of the whole api. And even at 45%, they don't share with partners all the flags and parameters that can be used to get certain results.
The remaining 55% of the api is for "special" partners, another words, those partners who make shopping.com a lot of money. Shopping.com gives them access to much more data. Here are a few sites using Drupal + a custom Drupal module:
http://www.cameraprices.com
http://www.pricemusicgear.com (many parts are broken)
I am interested in the data mapping idea but I also know that their api is not friendly. I know three developers (none of which know eachother) all said that this api is too complicated (in nice words). Hopefully they will change that by the 3qt this year when they release version 3 of the api.
I am subscribed so I will keep my ears tuned to this conversation.
Regards
===
Elvis McNeely
Blogging about Drupal and web development: http://www.elvisblogs.org/drupal
==============
Twitter: http://twitter.com/elvismcneely
Facebook: https://www.facebook.com/elvis.mcneely
LinkedIn: http://www.linkedin.com/in/elvismcneely
Company: http://www.lafayetteweb.com
Blog: http://www.elvisblogs.org
data mapping will work fine
I have checked out the api for merchant program and the mapping would work fine.
Regarding partner program api, in addition to tight control, I think only a small numbers of people would need that feature. As the check out is done at the external site, the use case is not relevant to Ubercart. I do appreciate your feedback on that.
Hopefully, you would give more comments on other aspect of this project as I want to make the framework components as comprehenvise as they could be to accomodate various use cases.
I'd like to see one or more ubercart-related proposals
But unless we get something a bit more "proposal-like" by tomorrow evening, that doesn't look like that's going to happen. :(
updated to be a little more
updated to be a little more complete, and set out goals. Let me know what you think!
The scope of the above is a
The scope of the above is a little daunting, but they are in well-defined chunks, so a student could get to two of them and still make a great contribution. It all seems like really useful functionality as well. The dynamic fields is particularly interesting. +1
yah I'm not quite sure how
yah I'm not quite sure how to change that -- its sorta whats been on my mind. Just taking on one of these topics would be to little for a summer project. However, I think all combined together would make for a good project.
I've taken steps to make it sound a little more proposalish, laying problems, the tasks at hand, and the end goals. Anything else to be added?
Interested as a student
Hi,
I have started using Drupal to develop website for my new company and have been using Ubercart. I won't claim to be an expert but I did end up hunting down bugs in couple of contrib modules and writing one of my own to support lulu style functionality with Drupal.
I see this project as a good fit with what I would like to have in Ubercart as I work on my website. If this project is still on and somebody is willing to mentor, I would like to submit a proposal for doing this. Please let me know how to go about this.
Abhaya Agarwal
www.pothi.com
Abhaya Agarwal
www.pothi.com
abhaga, there are 4 people
abhaga, there are 4 people who have expressed interest in mentoring/co-mentoring, one of them even being the creator of Ubercart....so I don't think you'll have any problems there. I'd love to see a student submit a proposal before the deadline and tackle a couple of these issues for SoC. As a guide to writing a proposal, you'll probably want to check out HOWTO: Write a Summer of Code application.
If you have any questions, you can normally find help in #drupal-ubercart IRC or post them here.
XHTML Compliant
It would be cool if Ubercart was XHTML compliant.
There seem to be still issues with table related tags and input tags.