VbzCart/docs/pieces/status: Difference between revisions

From Woozle Writes Code
< VbzCart‎ | docs‎ | pieces
Jump to navigation Jump to search
imported>Woozle
(split list into "minimal" and "maintenance" sections)
m (Woozle moved page VbzCart/VbzCart/pieces/status to VbzCart/docs/pieces/status without leaving a redirect: part 2)
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
==Concepts==
==Status==
* [[/title]]s
* [[/item]]s
==Feature Status==
{| style="border: 1px solid black; float: right;" width=30%
{| style="border: 1px solid black; float: right;" width=30%
|-
|-
Line 12: Line 9:
** 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>
|}
|}


This doesn't currently show testing status; some items marked "working" may have been temporarily broken by work on other items.
This doesn't currently show testing status; some items marked "working" may have been temporarily broken by work on other items.
===Minimal===
 
These features must be working if the store is going to receive and process orders, i.e. function as a business for even a short time.
# <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-busy>allow regular users to access their own information without being able to access that of other users</span>'''
### <span class=stat-ok>send full order information (except card #) via email</span>
### '''<span class=stat-ok>display order confirmation before formal submission</span>'''
# <span class=stat-busy>Administrative interface</span>
### '''<span class=stat-ok>send full order information (except card #) via email</span>'''
## <span class=stat-busy>order processing</span>
### <span class=stat-ok>view shopping carts</span>
### <span class=stat-busy>order management</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-busy>process outgoing packages</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>print packing list</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-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-busy>process incoming package</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-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>
##### 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>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-ok>create new shipments as needed</span>
#### <span class=stat-ok>mark shipment as "dedicated" (special purpose)</span>
#### <span class=stat-busy>mark shipment as mailed (date, carrier)</span>
===Maintenance===
These functions are necessary for the proper maintenance of the store, but the store can still function on a day-to-day basis without them.
 
# <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 80: Line 49:
### <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 87: Line 56:
### <span class=stat-ok>edit suppliers</span>
### <span class=stat-ok>edit suppliers</span>
### <span class=stat-busy>edit [[/supplier/catalog|supplier catalog]]s</span>
### <span class=stat-busy>edit [[/supplier/catalog|supplier catalog]]s</span>
## <span class=stat-busy>order processing</span>
### <span class=stat-ok>view shopping carts</span>
### <span class=stat-busy>order management</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-busy>process outgoing packages</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>print packing list</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>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-busy>process incoming package</span>
#### <span class=stat-busy>calculate refund, add to payment queue</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>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
#### '''<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>manage {{l/sub|shipment}}s</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-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>
Line 95: Line 90:
#### <span class=stat-ok>deactivate items not in currently active catalog unless they are in (sellable) stock</span>
#### <span class=stat-ok>deactivate items not in currently active catalog unless they are in (sellable) stock</span>
#### <span class=stat-ok>add new items not already in local catalog</span>
#### <span class=stat-ok>add new items not already in local catalog</span>
## <span class=stat-busy>user profile management</span>
### <span class=stat-ok>allow users to manage their own stored contact info</span>
### <span class=stat-busy>allow users to retrieve/manage un-checked-out shopping carts</span>

Latest revision as of 01:55, 25 February 2024

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
        1. allow regular users to access their own information without being able to access that of other users
      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
    5. user profile management
      1. allow users to manage their own stored contact info
      2. allow users to retrieve/manage un-checked-out shopping carts