V2 MAPS High-Level Design Notes

V2Master

Introduction

Definitions

  1. User - someone who can log into MAPPS and use products

  2. Customer - some who pays us and manages their product purchases

    1. A customer is also a user
  3. Product sponsor - The customer that pays for a specific product instance

Requirements

Basic

  1. MAPS has
    1. a landing page - Links to web site, product info, demo, etc.
    2. a signup page
    3. a login page
  2. MAPS can
    1. Provide products and services for sale
    2. Accept payment for products and services
      1. Including recussing payments for subscriptions
    3. List a users products, and can dispatch directly to them

Users and Logins

  1. Users are identified by a primary email address
    1. A user's primary email address is also their login name
    2. All email address must be verified
    3. Users can have an unlimited number of alternate email addresses
  2. All product login authentication is done via MAPS
    1. However, users can login directly in a product, bypassing the MAPS system entirely
  3. Users can go directly to a product instance to login and use system bypassing MAPS
    1. This has to be conventient for product users, who are non-customers

Pricing

  1. Coupons give access to special products/prices
  2. Coupons have time limits: valid from/to dates
  3. Coupon types
    1. Reusable
    2. Limited number
    3. Once only
    4. Tied to a specific email address or set of email addresses
    5. Fixed discount on any product
    6. Time limit (start/stop date)
    7. Multple coupons for single purchase?

Purchases

  1. All product and service purchases are made through MAPS
    1. Products know nothing about payment and subscriptions status
  2. Free products/subscriptions/coupons are possible
  3. Payments:
    1. MAPS only manages online payments
    2. All off-line payments are processed outside the system
    3. Payments types:
      1. Invoice
      2. Online
      3. Free systems
      4. Open
  4. Customer loyalty program
    1. Points system? Referrals, etc.
    2. Coupons offered as rewards
    3. Based on referrals (that actually lead to new paying customers)
  5. MAP can generate invoices and receipts
    1. Invoices record a purchase
    2. Payments record one or more payments associated with a purchase

Product Limits

  1. Product limits: Who handles product limits?
    1. Defines and stores definitive limit
    2. Monitors
    3. Informs
  2. MAPS is able to:
    1. Request product limits from product instances and display them
    2. Change product limits
    3. Enable/disable product instances

Use Cases

Web Site

Basically viewing and management of static web pages.

Public Transactions

  1. Product and pricing information
  2. Company information
  3. Product documentation
  4. Testimonials
  5. News...
  6. Request a contact
  7. Request support
    1. Web form
    2. Email address
    3. Telephone number
    4. Chat
  8. Like/promote on social media sites
  9. Direct fedback/comments

Administrative Transactions

  1. Add blog/news article
  2. Product promotions (timed)
  3. Manage web pages
  4. A/B testing
  5. View web analytics

User Transactions

==== Sign-Up ===

  1. Generate account activation email
  2. Process activation token from account activation email

Login

  1. Via user data entry
  2. Via cookie
  3. Via API request from product
  4. Display links to all products
  5. Go to a product's home page (and be loged in already)
  6. Logout

View Product Catalog

  1. Product list
  2. Detail Pricing page per product

Purchase

  1. Purchase (Subscribe) a new product
    1. Sets up a new product instance
    2. Can make a one-time payment, or a regular recurring payment
  2. Renew purchase (Subscribe)
  3. Purchase upgrade (convert one subscription to another)
    1. Updates product's limits
  4. Cancel product subscription (for recurring ones)
  5. Request refund (cancel and send me remaining balance)

Purchased Products

  1. Show list purchased products
  2. Show product usage statistis
    1. Supplied by the product via a web request
    2. Show limits and current usage: Users, Docs, etc.
  3. Generate an invoice/receipt

Manage User Own Account

  1. Manage own user account - add emails, names change, etc.
    1. Including billing details
    2. Can have multiple milling addresses
  2. Delete user account (delete myself)

Referrals

  1. Invite another user
    1. Sends them an email
    2. Gives the user loyalty credits
  2. Referrals can be:
    1. An invitation to use a specific product instance
    2. Information about a specific product specific
    3. Generic referral to our company
  3. View referrals
    1. Who actually took action on a referral

Administrative Transactions

User Management

  1. User search
  2. User list
  3. User edetail
  4. Create new user
  5. Edit user details
    1. Verify email - flag that email is valid
    2. Activate/deactivate email
    3. Activate/deactivate user
    4. Add/delete email addess
  6. Blacklist - based on a regex applied to the login name
    1. Ban user and all emails
    2. Ban email address
    3. Ban a domain or submail
  7. Superuser user management
    1. Role gant/revoke

Product Catalog Management

  1. Add product
  2. Delete product
  3. Edit product details
  4. Change product status
  5. Enable/disable product details

Product Pricing Management

  1. Pricing properties:
    1. Product
    2. Price
    3. Duration: Start /stop
    4. Limitations: Number of users, docs, etc.
    5. Availability: Enable/disable
    6. Visibility: Enable/disable - shows
    7. Coupon
  2. Create a price for a product
  3. List products
  4. Update products
  5. Delete products
    1. Probably via a disable, or if never used, or not in use
    2. First disable, then when no longer used (e.g. no current product instances) you can delete it
  6. Limtations are product specific
    1. Are based on key/value pairs

Subscription Management

Offline payments/refunds are recorded as new subscriptions (or raely updates to subscriptions)

  1. Search
  2. (*) List
  3. (*) Detail
  4. (*) Create
  5. Update
  6. Delete

* means high priority

Payment Management

  1. Offline payemnts
    1. Are purely records of money recieved
    2. Do not cause payement record changes
    3. There are no partial payements
  2. Online payments:
    1. Have a link to the subscription its paying for
    2. Cause a new subscription to be made
  3. Delayed payements - executed, not executed
  4. Failed payments
    1. Failure reason
  5. Search
    1. (*) List
  6. (*) Detail
  7. (*) Create - Phone, cash, invoice, bank transfer payment
  8. Update - Only update in the event of something weird
  9. Delete - Payments are probably never deleted

Product Instance Management

  1. Enable/disable product
    1. Public enable/disable
  2. Limited access - Coupon only
  3. Product kill switch
  4. Product under maintenance
  5. Subscription is ending / has ended
  6. Monitor product instance lmits
  7. Tell limits to product instance
    1. Which features are enabled

Product API Transactions

Transactions that occur between MAPS and the production applications

  1. Login
  2. New User

Data Model

Database Tables

  1. users
  2. email_addresses
  3. products
  4. prices
  5. coupons
  6. product_instances
  7. addresses - Addresses for invoices and receipts
  8. limit_sets - Product limitations associated with products
  9. limits - Individual features limits
  10. subscriptions
  11. purchases
  12. payments - Customer payments
  13. payment_states_ref
  14. payment_types_ref
  15. six_payments - Holds SixPayments specific fields associated with credit card payments

V2MapsHighLevelDesign (last edited 2013-01-14 13:58:13 by 10)

Copyright 2008-2014, SoftXS GmbH, Switzerland