We sell products using the e-junkie shipping cart. This shopping cart e-mails us the sales information. We need something that will run on our VPS, receive these e-mails and parse the information into a database, then display the information on a web page, send out e-mails based on certain criteria, create dynamic forms, and a few more options.
This does not need to be pretty - it needs to work.
This will be installed on a VPS with whm and cpanel.
When bidding, please state realistic project completion timeframe. Please also build in several hours for any small things that might need to be added on.
=== Order / Information Processing ===
2 different kinds of incoming e-mails, program must decide if e-mail is from Google or Paypal, then decipher it accordingly
Pull the following information from e-mail, create a record for this transaction and insert into database (also allow for manual creation of a record):
Transaction ID 1
Transaction ID 2
Order Time (converted to EST)
Product 1 Name
Product 1 Option 1
Product 1 Option 2
Product 1 Option 3
Product 2 (if applicable)
Product 3 (if applicable)
Other Fields (as required)
Have fields for the following admin-supplied information (1 of each for each Product, as each Product will have a specific date):
Casting Date (using pulldowns, auto-populated to 24 days ahead)
Casting Name (pre-populated with First Name from record)
Shipped (yes/no/not applicable), default is no
Have fields for user-supplied information through Dynamic Form (below)
=== Information Display / Search / Editing ===
Create a 3 pane web page that will display all the above information.
Pane 1 should be a vertical pane on the left, going from top to bottom, and will contain several links, as described below:
- Links to all records which have not been assigned Casting Dates
- Links to all records which are marked "not shipped"
- Links to all records with problems
- Links to common reports (eventually)
- When clicked, all links will display in pane 3
Pane 2 will be a horizontal pane across the top, from pane 1 on the left to the right, and will contain the search box and search result links:
- Search box - records should be searchable by first name and/or last name and/or e-mail address and/or casting date
- Search results, which when clicked will display in pane 3
Pane 3 will be the rest of the page, and will display the records requested by pane 1 or pane 2
- Records should display in plain text that can be copied directly from the page
- Shipping address should be copiable without extra spaces - a "copy address to clipboard" button/link would be ideal, but not necessary
- Email addresses should be clickable
- All information should be editable via a "edit" button/link next to each information. This edit link should bring up a small popup or tooltip edit form that is prepopulated with the existing information, and changing this information and submitting will make the change immediately and reload the page showing the new information.
- A "print page" link at the bottom should load only the selected record in a popup that is formatted for proper printing
=== E-mail functionality ===
Application will send e-mails at 4 different occasions, pulling information from the database to select the proper template:
- The first e-mail will be sent at a random time after order is received (between 15 and 100 minutes), and will include link to custom dynamic form (below)
- The second e-mail will be sent when the order is marked "shipped" (only for Paypal orders)
- The third e-mail will be sent on the Casting Date, at a random hour between 10:30am and 11:30pm server time. These e-mails will be selected from a series of templates based on the order information (different options require different templates), and will auto-populate certain areas within the e-mail with information from the record.
- The 4th e-mail will be sent on the birthday date entered by the customer on the dynamic form (below)
=== Dynamic Form Creation ===
When program receives an order, it will dynamically create a custom form for the user to fill out, using a custom URL (for example, [url removed, login to view]) and e-mail the link to this form in e-mail #1 (above). The form answers will be added to the order record. This form will have 3 sections:
- Confirm Order Info: Customer will be presented with his name, e-mail address and shipping address, all of which can be changed,
- General Order Questions: (will only be asked once per form)
- Product-specific Questions: (each product in the order will have it's own set of questions).
Once the form is filled out, it will be removed from the server so it cannot be re-used. The page the form is on will also display some customer information, and some general information (pulled from a template).
=== Statistics ===
Although we will not be implementing statistics immediately, the database should be configured so that statistics can be pulled from it at a future date