You have chosen to sponsor your bid up to a maximum amount of .
Ok, I need a shopping cart to build an ecommerce site around.
This entire cart will need to be portable in the sense that it can be integrated into other sites, so enough documentation will be neccesary to accomplish this. A central config file would be used for database setup, site global paths etc. The shopping cart is going to be java based drag drop which is easily done by using scriptaculaous/prototype/mootools libraries. The cart needs to be built first WITHOUT java functionality to ensure gracefull degredation if user does not have java enabled/supported in their browser, then the AJAX/JAVA functionality added in. Obviously the drag drop portion will not be available if java is disabled, in that case a simple add to cart button will be used. The add to cart button will always be available in case a user may not understand the drag drop function. The backend will need to be MySQL. The cart will need to support multiple payment gateways but I will be using paypal for now. The cart portion, (the part where you drag your items to purchase) will need to be user placeable defined in a admin/backend interface options being side bar, bottom bar, top bar, or static div somwhere on the page(i guess you could specify the ID as an option). When a user clicks on an item, a popup window effect such as found here, http://prototype-window.xilinus.com/, is displayed with more info on the product found in the database inventoryId "description" field. If the user hovers over an item, a netflix style effect such as found here http://www.netflix.com/BrowseSelection?lnkctr=nmhbs is displayed from content found in the database inventoryId "popup field". The entire checkout experience will need to take place never leaving the site cart area similiar to RightCart See link below, example being a user has items in the cart which can also can dynamically update quantities, when they click checkout, the cart fades in/out (scriptaculous libraries) and user inputs info and email address for shipping which generates a user account for the website and emails the user a dynamically generated password with account info which they can change when they login subsequently, cart area fades in/out and they fill in credit card info unless in the case of paypal then do whatever paypal requires using their IPN stuff as much onsite as can be done, then return with success or failure and update the site's enventory using paypal's IPN as neccesary. An option in the admin backend will allow the admin the option of displaying "Out of Stock" items or removing out of stock items so they are not displayed to the user. In the case of multiple users placing an order for the last item in stock, whomever places their order first will obviosuly get the item, and the second user will get a notice that the item is out of stock and be given the option to remove the item or wait for it to be shipped when it becomes available. Lack of inventory WILL NOT interfer with the checkout procedure, but will notify the user about "out of stock" items when the user clicks checkout and give them the option to be shipped the item when it is in stock, or remove the item from their cart. The admin/backend will be used to modify enventory that is dynamically updated by the checkout procedure. The admin will also have the optioin in the backend to enable "Low Enventory Dynamic Pricing", this option will increment the price of the item as inventory gets low. The threshhold for this increment and a cap on the price will be user configurable as a percentage of the original price. The price would then fall back to the original price as the admin increases inventory. The admin group will also be emailed when inventory is low, this setting will be admin configurable. Inventory will be able to be modified via the admin backend the admin group members can upload multiple images (resizable by gd (or other image resizing package) libraries etc if available on the server) for an item and configure attributes for the item such as price, weight & dimensions (for shipping calculation integrated with ups, usps, dhl, and fedex (configureable as shipping carriiers in admin backend) for shipping charge calculations dynamically generated upon checkout). Admin can also have the option to turn off dynamic shipping calculations and set static shipping charges based on total dollar amount of order. State tax calulations will also need to be supported based on if the user's zip code matches a set list of taxable zip codes set in admin back end. Coupon/gift codes with expiration dates and alternate shipping destinations for gift orders needs to be supported. Custom notifications about sales or special offers will need to be supported configurable in admin backend using the cool window effect found below to be shown to the user when they visit the site SHOWN ONLY ONCE so as not to annoy the user, this can be done via a cookie unless there is a better way suggested. If a user logs into the site, past order info, current order tracking, update user info, send admin a message/email, comment on purchased items. User comments on purchased items will need to be supported, displayed on the more info popup discribed above. Also, send/recommend item to a friend and post link to individual items to places like Digg, slashdot etc will need to be supported.
An import function will need to be available to inport large amounts of inventory data instead of one at a time in the admin interface.
An export function will need to be available to export user info or inventory info for backup purposes, or import into excel.
Divs should be used whereever possible, tables only as a last resort.
All table names, function names, etc will be name us the style functionName and tableName instead of Function_name, or table_Name , I do not like underscores The fist word will be lowercase and any following words will be uppercased like functionNameLikeThis or tableNameLikeThis Try and be as descriptive with your table/function names as possible to aid my following what is going on where :) And put documentation, yes I said DOCUMENT!! your code, the following article is a good read if you are not familiar with proper code/function documentation. http://www.gamedev.net/reference/programming/features/codedoc/page2.asp
One more thing, for the send link to a friend and posting to digg, slashdot etc, individual pages for the items need to be supported, the main thing to consider when putting these pages together are the address/links and the content need to be SEO (search engine optimzation) firendly, htaccess using mod_rewrite etc. MUST READ links describing some good practices can be found below:
Some sample sites to checkout for design references are:
Permission will be based on roles or groups and members of a role/group
Amin role - Members can edit all aspects of the cart
Inventory manager role - members can add, modify, delete inventory
User manager - Add, modify, delete member accounts
Once the project has begun, I would like to monitor progress via a demo/testing site so that if there is any misunderstanding on a feature/function that not too much time gets spent in the wrong direction.
Thanks for reading and I look forward to working with you.