QuickSub Requirements Overview We are producing a website that allows a group of marketers to create sales offers involving Rodale's books and magazines. The sales offers will be visible on a public website; each offer will have a unique url key and are intended to be reachable by placed online ads, direct mail/email or other forms of marketing where a url can be distributed. Sales offers will also include an upsell offer to be displayed after the user has purchased the offer, but before they recieve a sales reciept. Basic requirements for marketing tool The marketing tool needs to perform the following functions Allow a user to login with a unique username and password. Allow customization of the display based on the current user. Keep a library of display templates (for the public site) Variables in the template can consist of: Text fields An array of product, with a method for looping through the array Images (Selected by a pre-defined list) Allow the user to define new offers. New offers consists of: A url key An optional short url to the offer A price A product specification (may be copied from existing offer) A selection of product The number of product the consumer needs to select for the offer The subset of the product selected that is required for the offer A start date An expire date Last accessed dates (one for each marketer) This date is updated when an offer is edited or referenced by another offer A list of offers to display instead if offer is expired. Which visual template to use when displayed to the consumer Values for the template's variables The marketer who authored the offer Available shipping methods Available payment methods The upsell offer The marketer can define thier own upsell consisting of: The upsell displayed to the user can be branched based on: Payment method used Shipping method used Product selected Credit available The upsell will be defined as: A reference to another offer in the system A delta price change for changing the payment method A delta price change for changing the shipping method A skip, in other words, do not show an upsell. Or the marketer can use the upsell offer as defined in an existing offer. (When using this method the upsell specification is copied, so the upsell can be altered without altering the orginal) A flag to define an offer as an upsell-only offer A private title A private subtitle A public headline Private notes A category, which is one of the following: Magazines Books Books and Magazines The 3rd party upsell offer In addition offers will store the following usage data: Total days active Total gross sales Total net sales (profit) Total units shipped Total orders proccesed Total upsells accepted Allow the user to manage current offers. View offers based on combinations of usage statistics dates authors categories Edit offers (only certian fields can be edited once an offer is active) A method to select existing Rodale product for offers A method to select existing offers for references for new offers Keep a visual library, in various sizes of all Rodale product The public site needs to perform the following functions: Display an offer based on a unique key in the url Allow the consumer to select product based on the specifications in the offer Allow the consumer to submit shipping and payment data Bill and verify the consumer's credit card Submit the order to current fufillment operation Display and process upsell offers Display upsells to 3rd party websites Keep track of sessions and act when they time out Update usage data for the offers