VbzCart/docs/pieces/status: Difference between revisions

From Woozle Writes Code
< VbzCart‎ | docs‎ | pieces
Jump to navigation Jump to search
imported>Woozle
m (Undo revision 20124 by Woozle (talk) - dividing by importance isn't really manageable)
imported>Woozle
(→‎Feature Status: updates; noting critical items)
Line 12: Line 12:
** in the "shopping interface" section, it means I'm writing from scratch or significantly rewriting
** in the "shopping interface" section, it means I'm writing from scratch or significantly rewriting
** in the "administrative interface" section, it means I had this written for the MediaWiki version of VbzCart and am now converting it to the standalone version.
** in the "administrative interface" section, it means I had this written for the MediaWiki version of VbzCart and am now converting it to the standalone version.
* '''bold''' means this needs to be working before the store can open
</small>
</small>
|}
|}
Line 18: Line 19:


# <span class=stat-busy>Shopping interface</span>
# <span class=stat-busy>Shopping interface</span>
## <span class=stat-ok>display of individual {{l/sub|title}}s</span>
## '''<span class=stat-ok>display of individual {{l/sub|title}}s</span>'''
### <span class=stat-ok>display of all active {{l/sub|image}}s for each title, with appropriate annotations and in appropriate order</span>
### '''<span class=stat-ok>display of all active {{l/sub|image}}s for each title, with appropriate annotations and in appropriate order</span>'''
### <span class=stat-ok>display of all available {{l/sub|item}}s for each title, with pricing and stock information</span>
### '''<span class=stat-ok>display of all available {{l/sub|item}}s for each title, with pricing and stock information</span>'''
## <span class=stat-ok>display of groups of titles</span>
## '''<span class=stat-ok>display of groups of titles</span>'''
### <span class=stat-ok>by {{l/sub|topic}}</span>
### '''<span class=stat-ok>by {{l/sub|topic}}</span>'''
### <span class=stat-ok>by {{l/sub|department}}</span>
### '''<span class=stat-ok>by {{l/sub|department}}</span>'''
## <span class=stat-ok>display of {{l/sub|topic}}s</span>
## '''<span class=stat-ok>display of {{l/sub|topic}}s</span>'''
### <span class=stat-ok>search topics (as part of catalog search feature)</span>
### '''<span class=stat-ok>search topics (as part of catalog search feature)</span>'''
### <span class=stat-ok>display individual topic</span>
### '''<span class=stat-ok>display individual topic</span>'''
#### <span class=stat-ok>show topic's place in topic hierarchy</span>
#### '''<span class=stat-ok>show topic's place in topic hierarchy</span>'''
#### <span class=stat-ok>show all available titles for the topic</span>
#### '''<span class=stat-ok>show all available titles for the topic</span>'''
#### <span class=stat-ok>list or show [[/title/retired|unavailable titles]] for the topic</span>
#### <span class=stat-ok>list or show [[/title/retired|unavailable titles]] for the topic</span>
## <span class=stat-ok>display of {{l/sub|department}}s</span>
## '''<span class=stat-ok>display of {{l/sub|department}}s</span>'''
### <span class=stat-ok>same as topics</span>
### '''<span class=stat-ok>same as topics</span>'''
## <span class=stat-ok>display of {{l/sub|supplier}}s</span>
## '''<span class=stat-ok>display of {{l/sub|supplier}}s</span>'''
### <span class=stat-ok>show individual supplier</span>
### '''<span class=stat-ok>show individual supplier</span>'''
#### <span class=stat-ok>show list of departments; if only one department, show its page instead</span>
#### '''<span class=stat-ok>show list of departments; if only one department, show its page instead</span>'''
#### <span class=stat-ok>summarize items available by attributes (e.g. [[/item/type|item type]], size)</span>
#### '''<span class=stat-ok>summarize items available by attributes (e.g. [[/item/type|item type]], size)</span>'''
## <span class=stat-busy>show/search {{l/sub|stock}}</span>
## <span class=stat-busy>show/search {{l/sub|stock}} only</span>
## <span class=stat-ok>add items to {{l/sub|cart}}</span>
## '''<span class=stat-ok>add items to {{l/sub|cart}}</span>'''
## <span class=stat-busy>create an {{l/sub|order}} from cart</span>
## '''<span class=stat-busy>create an {{l/sub|order}} from cart</span>'''
### <span class=stat-ok>enter shipping and payment information</span>
### ''''<span class=stat-ok>enter shipping and payment information</span>'''
### <span class=stat-busy>log in to re-use/manage previously entered shipping/payment information</span>
### '''<span class=stat-busy>log in to re-use/manage previously entered shipping/payment information</span>'''
### <span class=stat-ok>display order confirmation before formal submission</span>
### '''<span class=stat-ok>display order confirmation before formal submission</span>'''
### <span class=stat-ok>send full order information (except card #) via email</span>
### '''<span class=stat-ok>send full order information (except card #) via email</span>'''
# <span class=stat-busy>Administrative interface</span>
# <span class=stat-busy>Administrative interface</span>
## <span class=stat-ok>security</span>
## <span class=stat-ok>security</span>
Line 50: Line 51:
### <span class=stat-ok>edit user information</span>
### <span class=stat-ok>edit user information</span>
### <span class=stat-ok>only allow access to any admin feature if user has the corresponding permission (via group membership)</span>
### <span class=stat-ok>only allow access to any admin feature if user has the corresponding permission (via group membership)</span>
### <span class=stat-busy>automatically add new users to admin-specified group(s)</span>
### <span class=stat-ok>automatically add new users to admin-specified group(s)</span>
## <span class=stat-busy>manage local catalog</span>
## <span class=stat-busy>manage local catalog</span>
### <span class=stat-ok>edit items</span>
### <span class=stat-ok>edit items</span>
Line 60: Line 61:
### <span class=stat-ok>view shopping carts</span>
### <span class=stat-ok>view shopping carts</span>
### <span class=stat-busy>order management</span>
### <span class=stat-busy>order management</span>
#### <span class=stat-ok>view/edit order</span>
#### '''<span class=stat-ok>view/edit order</span>'''
#### <span class=stat-ok>select items from stock locations to put into a [[/package]] for shipment</span>
#### '''<span class=stat-ok>select items from stock locations to put into a [[/package]] for shipment</span>'''
### <span class=stat-busy>process outgoing packages</span>
### <span class=stat-busy>process outgoing packages</span>
#### <span class=stat-ok>calculate proper charges for items</span>
#### <span class=stat-ok>calculate proper charges for items</span>
#### <span class=stat-busy>add charges to payment queue</span>
#### '''<span class=stat-busy>add charges to payment queue</span>'''
#### <span class=stat-busy>print packing list</span>
#### '''<span class=stat-busy>print packing list</span>'''
#### <span class=stat-busy>enter information for estimating cost (cost of postage, materials, time)</span>
#### '''<span class=stat-busy>enter information for estimating cost (cost of postage, materials, time)</span>'''
#### <span class=stat-busy>enter tracking information</span>
#### '''<span class=stat-busy>enter tracking information</span>'''
#### <span class=stat-ok>assign package to a {{l/sub|shipment}}</span>
#### <span class=stat-busy>email user the tracking number</span>
#### '''<span class=stat-ok>assign package to a {{l/sub|shipment}}</span>'''
#### <span class=stat-ok>mark when package was received by customer (if information available)</span>
#### <span class=stat-ok>mark when package was received by customer (if information available)</span>
### <span class=stat-busy>process incoming package</span>
### <span class=stat-busy>process incoming package</span>
#### <span class=stat-busy>calculate refund, add to payment queue</span>
#### <span class=stat-busy>calculate refund, add to payment queue</span>
#### <span class=stat-busy>record stock location where each returned item was placed</span>
#### <span class=stat-ok>record stock location where each returned item was placed</span>
### <span class=stat-busy>process {{l/sub|payment}}s</span>
### '''<span class=stat-busy>process {{l/sub|payment}}s</span>'''
#### <span class=stat-busy>processing page needs to display all information needed for processing in one place</span>
#### '''<span class=stat-busy>processing page needs to display all information needed for processing in one place</span>'''
##### later: use payment processor's API, where possible, to minimize copying-and-pasting
##### later: use payment processor's API, where possible, to minimize copying-and-pasting
#### <span class=stat-busy>record when payment was processed and what its status was (successful or not; error code)</span>
#### '''<span class=stat-busy>record when payment was processed and what its status was (successful or not; error code)</span>'''
#### <span class=stat-busy>add charge to package's or order's transaction queue, so current balance can be calculated correctly</span>
#### '''<span class=stat-busy>add charge to package's or order's transaction queue, so current balance can be calculated correctly</span>'''
### <span class=stat-busy>manage {{l/sub|shipment}}s</span>
### <span class=stat-busy>manage {{l/sub|shipment}}s</span>
#### <span class=stat-ok>create new shipments as needed</span>
#### '''<span class=stat-ok>create new shipments as needed</span>'''
#### <span class=stat-ok>mark shipment as "dedicated" (special purpose)</span>
#### <span class=stat-ok>mark shipment as "dedicated" (special purpose)</span>
#### <span class=stat-busy>mark shipment as mailed (date, carrier)</span>
#### '''<span class=stat-busy>mark shipment as mailed (date, carrier)</span>'''
## <span class=stat-busy>manage supplier catalogs</span>
## <span class=stat-busy>manage supplier catalogs</span>
### <span class=stat-busy>create common groupings of item types/attributes/prices ({{l/sub|suppler/catalog/item-group}})</span>
### <span class=stat-busy>create common groupings of item types/attributes/prices ({{l/sub|suppler/catalog/item-group}})</span>

Revision as of 22:47, 13 July 2014

Concepts

Feature Status

Key

  • green means this is working well enough to be deployed
  • yellow depends on which section is involved:
    • in the "shopping interface" section, it means I'm writing from scratch or significantly rewriting
    • in the "administrative interface" section, it means I had this written for the MediaWiki version of VbzCart and am now converting it to the standalone version.
  • bold means this needs to be working before the store can open

This doesn't currently show testing status; some items marked "working" may have been temporarily broken by work on other items.

  1. Shopping interface
    1. display of individual titles
      1. display of all active images for each title, with appropriate annotations and in appropriate order
      2. display of all available items for each title, with pricing and stock information
    2. display of groups of titles
      1. by topic
      2. by department
    3. display of topics
      1. search topics (as part of catalog search feature)
      2. display individual topic
        1. show topic's place in topic hierarchy
        2. show all available titles for the topic
        3. list or show unavailable titles for the topic
    4. display of departments
      1. same as topics
    5. display of suppliers
      1. show individual supplier
        1. show list of departments; if only one department, show its page instead
        2. summarize items available by attributes (e.g. item type, size)
    6. show/search stock only
    7. add items to cart
    8. create an order from cart
      1. 'enter shipping and payment information
      2. log in to re-use/manage previously entered shipping/payment information
      3. display order confirmation before formal submission
      4. send full order information (except card #) via email
  2. Administrative interface
    1. security
      1. create/edit security groups
        1. edit name and permissions for each group
      2. assign users to groups
      3. edit user information
      4. only allow access to any admin feature if user has the corresponding permission (via group membership)
      5. automatically add new users to admin-specified group(s)
    2. manage local catalog
      1. edit items
      2. edit titles
      3. edit departments
      4. edit suppliers
      5. edit supplier catalogs
    3. order processing
      1. view shopping carts
      2. order management
        1. view/edit order
        2. select items from stock locations to put into a /package for shipment
      3. process outgoing packages
        1. calculate proper charges for items
        2. add charges to payment queue
        3. print packing list
        4. enter information for estimating cost (cost of postage, materials, time)
        5. enter tracking information
        6. email user the tracking number
        7. assign package to a shipment
        8. mark when package was received by customer (if information available)
      4. process incoming package
        1. calculate refund, add to payment queue
        2. record stock location where each returned item was placed
      5. process payments
        1. processing page needs to display all information needed for processing in one place
          1. later: use payment processor's API, where possible, to minimize copying-and-pasting
        2. record when payment was processed and what its status was (successful or not; error code)
        3. add charge to package's or order's transaction queue, so current balance can be calculated correctly
      6. manage shipments
        1. create new shipments as needed
        2. mark shipment as "dedicated" (special purpose)
        3. mark shipment as mailed (date, carrier)
    4. manage supplier catalogs
      1. create common groupings of item types/attributes/prices (suppler/catalog/item-group)
      2. manage supplier catalog
        1. name, effective date, expiration date, catalog this one supercedes
        2. enter/edit all titles available, and items or item-groups for each title
      3. update local catalog from supplier catalog data
        1. deactivate items not in currently active catalog unless they are in (sellable) stock
        2. add new items not already in local catalog