13.18. Design Doc 017: Backoffice Inventory Management

13.18.1. Summary

This document describe the complete list features for inventory management and how will be shown.

13.18.2. Motivation

User will use the backoffice to manage their inventory, prices and update stock.

13.18.3. Requirements

Access all information provided from the Merchant Backend API in a understandable and accessible way

User should use the backoffice to manage inventory by:

  • creating new products
  • updating the products information
  • inspecting inventory list
  • deleting products from the inventory list

13.18.4. Proposed Solution

Inspecting inventory


Listing the product will shown this columns:

  • image
  • description
  • sell price
  • stock left (with next_restock in days if present)
  • stock sold

Actions will be

  • modify
  • delete: with a confirm popup, it may fail if have some locked

Create and Update Product form


Update product will use the same form except for the product_id

  • product_id: BACKOFFICE_URL + id
  • description: split in two fields, concatenated with a line separator
    • name: required, one line
    • extra: optional, free text area
  • description localized: list with
    • lang: dropdown list with supported lang + custom
    • description: text area
  • unit: string
  • price: amount
  • image: image box that allows upload when clicked
  • taxes: list with
    • name: string
    • value: amount
  • Stock: button that opens more fields for stock control
    • stock remaining: number
    • address: first collapsed, then field for Location
    • next_restock: date
    • cancel: button to set the stock to infinity, closing the section

Stock management

  • manage stock button will open the dialog below
  • without stock will close the dialog and set stock props to not defined
  • set/change button will open next restock sub dialog
  • update button will close subdialog and set the next restock value to input date
  • not known button will close subdialog and set next restock value to undefined
  • never button will close subdialog and set next restock to never
  • add button will show an input to increase the stock
  • if stock as added add button will be add more and a label with + <number> will be shown
  • when updating the product, the option without stock will no be available if the product already has stock
  • when creating the product, current stock will be an input number
  • when updating the product, current stock will be read only with a button update
  • when updating the stock, a new subdialog will appear with a confirm button.

13.18.5. Alternatives

  • price and stock columns in the list can be merged into a more complex column with the same information
  • rows in the table can be expandable when clicked to get access to some common actions like increase stock or change price
  • detail page was intentionally left out since all information can be access from the update page

13.18.6. Q&A

  • can we add the quantity locked in the product description? so we can add it to the inventory list to reflect the current activity.
  • can we allow add extra data like order has in contractTerm?, this could be useful for frontend apps. example of usage: country/state to where the product is sold since taxes may vary