taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

017-backoffice-inventory-management.rst (4072B)


      1 DD 17: Backoffice Inventory Management
      2 ######################################
      3 
      4 :Design status: Accepted
      5 :Implementation status: Implemented
      6 :DD shepherd: TBD
      7 :Historical contributors: Sebastian
      8 :First published: 2021-03-19
      9 :Last substantive change: 2021-04-20
     10 :Implementation evidence: merchant (2020-05-02), taler-typescript-core (2026-08-06)
     11 :Normative references: :doc:`../core/api-merchant`, :doc:`../taler-merchant-manual`
     12 
     13 .. note::
     14 
     15    The screens below record the original UI design.  The current merchant API
     16    is authoritative for inventory fields and operations.
     17 
     18 Summary
     19 =======
     20 
     21 This document describe the complete list features for inventory management and
     22 how will be shown.
     23 
     24 Motivation
     25 ==========
     26 
     27 User will use the backoffice to manage their inventory, prices and update stock.
     28 
     29 Requirements
     30 ============
     31 
     32 Access all information provided from the Merchant Backend API in a
     33 understandable and accessible way
     34 
     35 User should use the backoffice to manage inventory by:
     36 
     37 * creating new products
     38 * updating the products information
     39 * inspecting inventory list
     40 * deleting products from the inventory list
     41 
     42 Proposed Solution
     43 =================
     44 
     45 Inspecting inventory
     46 --------------------
     47 
     48 .. image:: ../images/backoffice-product-list.svg
     49   :width: 800
     50 
     51 Listing the product will shown this columns:
     52 
     53 * image
     54 * description
     55 * sell price
     56 * stock left (with next_restock in days if present)
     57 * stock sold
     58 
     59 Actions will be
     60 
     61 * modify
     62 * delete: with a confirm popup, it may fail if have some locked
     63 
     64 
     65 .. _backoffice-create-product:
     66 
     67 Create and Update Product form
     68 ------------------------------
     69 
     70 .. image:: ../images/backoffice-product-create.svg
     71   :width: 800
     72 
     73 Update product will use the same form except for the ``product_id``
     74 
     75 * product_id: a slug identifier
     76 * description: split in two fields, concatenated with a line separator
     77 
     78   * name: required, one line
     79   * extra: optional, free text area
     80 
     81 * description localized: list with
     82 
     83   * lang: dropdown list with supported lang + custom
     84   * description: text area
     85 
     86 * unit: string
     87 * price: amount
     88 * image: image box that allows upload when clicked
     89 * taxes: list with
     90 
     91   * name: string
     92   * value: amount
     93 
     94 * Stock: button that opens more fields for stock control
     95 
     96   * stock remaining: number
     97   * address: first collapsed, then field for Location
     98   * next_restock: date
     99   * cancel: button to set the stock to infinity, closing the section
    100 
    101 Stock management
    102 ----------------
    103 
    104 * ``manage stock`` button will open the dialog below
    105 
    106 * ``without stock`` will close the dialog and set stock props to not defined
    107 
    108 * ``unknown`` button will set next restock value to undefined
    109 
    110 * ``never`` button will set next restock to never
    111 
    112 * when updating the product, the option ``without stock`` will no be available
    113   if the product already has stock
    114 
    115 * if the product already exist then:
    116 
    117   * the option ``without stock`` will no be available, since the product cannot
    118     change from infinite stock to managed stock
    119 
    120   * the option ``manage stock`` will no be available, since the product cannot
    121     change from managed stock to infinite stock
    122 
    123   * ``current stock`` will be managed using ``incoming`` and ``notify lost``
    124 
    125   * a label at the end of the section will inform about the final result
    126 
    127 
    128 .. image:: ../images/backoffice-product-create.stock.svg
    129   :width: 800
    130 
    131 
    132 Alternatives
    133 ============
    134 
    135 * price and stock columns in the list can be merged into a more complex column
    136   with the same information
    137 
    138 * rows in the table can be expandable when clicked to get access to some common
    139   actions like increase stock or change price
    140 
    141 .. image:: ../images/backoffice-product-list.actions.svg
    142   :width: 800
    143 
    144 * detail page was intentionally left out since all information can be access
    145   from the update page
    146 
    147 Q&A
    148 ===
    149 
    150 * can we add the quantity locked in the product description? so we can add it
    151   to the inventory list to reflect the current activity.
    152 
    153 * can we allow add extra data like order has in contractTerm?, this could be
    154   useful for frontend apps. example of usage: country/state to where the product
    155   is sold since taxes may vary