This project is for the development of a web-based order management and fulfillment system that extracts orders from PayPal (via SOAP API) and allows the user to quickly and easily edit order data, and create shipments by choosing which items from the order to ship. The pending shipments should be available via an ODBC connection.
The emphasis in this application is on speed, ease of use, and simplicity. Your application should be web-based and written using mainstream technology. HTML5 (preferred), ASP.NET 4.0+, PHP, Silverlight are all acceptable. Java is discouraged. Flash is not acceptable.
At a minimum this initial phase / trialsourcing project needs to have the following features:
* extract orders from PayPal via SOAP interface (you will receive API keys; source code in C# that already performs this function is also available for you to use as a model)
* store orders in a mainstream database (MySQL or SQL Server)
* list orders on a web interface; each row expands to allow the user to easily see what items are in the order, when the order was shipped, etc.
* * if there are up to two items they are visible in the order row (i.e. without expanding)
* user can scroll through large order lists easily (no complicated pagination; infinite paging is ideal)
* user can search orders (by name, email, SKU)
* user can filter orders by status
* user can edit order information (e.g. shipping address)
* user can add and edit order notes; orders with notes have an icon to alert user that notes have been entered
* user can select one or more orders (e.g. checkboxes; must support selecting a range of orders easily by holding SHIFT and clicking)
* by default all items in the order will be selected if the order is selected; user can unselect one or more items, or select items from an unselected order (in effect selecting the order)
* orders or individual items that were already shipped (see below) can no longer be selected
* user clicks a button to create shipment records from the selected orders
* shipment records that have Status=Not Shipped can be queried and updated via ODBC (e.g. exposed in a view)
Your database will probably have the following tables and columns (there will probably be more columns; these are examples)
o Source (e.g. PayPal)
* * *This broadcast message was sent to all bidders on Friday May 25, 2012 3:15:38 PM:
If you prefer, instead of extracting orders from PayPal via the SOAP API you can retrieve them from a SQL Server database (the code to extract PayPal orders has already been written and the records are placed in a database automatically)
* * *This broadcast message was sent to all bidders on Sunday May 27, 2012 9:52:03 AM:
Several of you have inquired about reading PayPal orders from a database instead of directly from PayPal (which is of course more work). If you decide to use our existing process that imports transactions from PayPal, and read them from a SQL Server database, then you may consider the following: * There are multiple types of transactions in PayPal, and not all of them represent orders. You should apply the following filter to the Transaction table in order to retrieve only the orders: from [Transaction] t where [url removed, login to view] > 0 and Type = 'Payment' and Status != 'Refunded' * in order to keep track of which transactions are new and which were already imported I recommend you create columns [url removed, login to view] (willl always be "PayPal" for this first phase), [url removed, login to view] (PayPal's TransactionID value), and Order.PaymentTransactionStatus. This last column is necessary because sometimes the PayPal transaction takes several days to clear. In that case the status will be "Pending" instead of "Completed." The user should be able to see this status on the order page so that they don't ship orders that are not cleared yet.
* * *This broadcast message was sent to all bidders on Wednesday May 30, 2012 8:44:01 AM:
You can download the PayPal database schema and sample records from here: [url removed, login to view] Your code should import records from this table into a separate Order table. No user interface code should query PayPalTransaction directly.
* * *This broadcast message was sent to all bidders on Tuesday Jun 5, 2012 2:50:43 PM:
You can see user interface wireframes at the links below. These are intended for the final application. The contest does not cover all of these features. It might give you ideas for how to complete the contest though. [url removed, login to view] [url removed, login to view]