summaryrefslogtreecommitdiff
path: root/design-documents
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-03-19 16:11:32 -0300
committerSebastian <sebasjm@gmail.com>2021-03-19 16:11:32 -0300
commit900c1c0d7f3ca965cdf7a94d44e27f90b7ad4691 (patch)
tree886a82f45e44888990643c8b0318115bb1f1d8be /design-documents
parent34e7ff82ac22a771d5fd97f028cb3973e9b3d737 (diff)
downloaddocs-900c1c0d7f3ca965cdf7a94d44e27f90b7ad4691.tar.gz
docs-900c1c0d7f3ca965cdf7a94d44e27f90b7ad4691.tar.bz2
docs-900c1c0d7f3ca965cdf7a94d44e27f90b7ad4691.zip
inventory mngmt
Diffstat (limited to 'design-documents')
-rw-r--r--design-documents/016-backoffice-order-managment.rst14
-rw-r--r--design-documents/017-backoffice-inventory-managment.rst249
2 files changed, 256 insertions, 7 deletions
diff --git a/design-documents/016-backoffice-order-managment.rst b/design-documents/016-backoffice-order-managment.rst
index eb0d52f5..6716c24f 100644
--- a/design-documents/016-backoffice-order-managment.rst
+++ b/design-documents/016-backoffice-order-managment.rst
@@ -19,15 +19,15 @@ Requirements
Access all information provided from the Merchant Backend API in a
understandable and accesible way
-Proposed Solution
-=================
+User should use the backoffice to manage orders by:
-The propose solution use:
+* searching for orders
+* showing details about the order and the activity history
+* refund order that are refundable
+* create orders
-* listing
-* creation
-* details
-* refund popup
+Proposed Solution
+=================
Listing orders
--------------
diff --git a/design-documents/017-backoffice-inventory-managment.rst b/design-documents/017-backoffice-inventory-managment.rst
new file mode 100644
index 00000000..ef962260
--- /dev/null
+++ b/design-documents/017-backoffice-inventory-managment.rst
@@ -0,0 +1,249 @@
+Design Doc 017: Backoffice Inventory Management
+###############################################
+
+Summary
+=======
+
+This document describe the complete list features for inventory management and how
+will be shown.
+
+Motivation
+==========
+
+
+Requirements
+============
+
+Access all information provided from the Merchant Backend API in a
+understandable and accesible 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
+* accesing detailed information of a product
+
+Proposed Solution
+=================
+
+The propose solution use:
+
+* listing
+* creation
+* details
+* refund popup
+
+Listing orders
+--------------
+
+.. image:: ../backoffice-order-list.v2.svg
+ :width: 800
+
+Will show the SearchBar component that allow multiple filter.
+Filter will allow paid, refunded, wired status and date.
+
+ * paid: yes/no
+ * refunded: yes/no
+ * wired: yes/no
+ * date: 'dd/MM/yyyy'
+
+4 tabs will be show for a easy access to common filter, click on any of this and
+search will reset all filter except date
+
+* paid (default)
+* refunded
+* not wired
+* all (empty filter box)
+
+Columns for the order listings will be:
+
+* date in 'dd/MM/yyyy HH:mm:ss' format
+* amount: value and currency
+* summary
+
+Actions per row:
+
+* refund: pop up with amount and reason (select box and text)
+* copy payment id
+* view details
+
+An export button will allow the user to download the result page in CSV format.
+
+An infinity scroll is propose instead of a pagination, reasons:
+
+* users usually does not jump from one page to anoter using random access
+* if the user want to search, is going to limit the result using filters
+* no need to go back after loading more result
+* it could be triggered by scrollin, with buttons (or both)
+
+Create orders
+-------------
+
+Form with 4 fields:
+
+* amount
+* summary
+* time until refund ( dropdown: 1week, 2weeks, custom )
+* description
+* payment method
+
+Creation order success
+**********************
+
+Example message:
+
+ Creation successful
+
+ We've create an order for for USD:10.00.
+
+ Send url to the customer: ``taler_pay_uri``
+
+action buttons that allow the following:
+
+* create another payment: go to the create payment page again
+* view details: show details of the payment (see page)
+
+Order details
+-------------
+
+Status text should be set with a backgournd color for easier recognition when
+indicated:
+
+* paid: green
+* claimed: light-green
+* unpaid: grey
+* refunded: red
+
+Header
+******
+
+This is a resume of most important information
+
+* big status with color
+* date
+* total
+
+ - deposit_total (if not refunded)
+ - refund_amount (if status is refunded)
+ - deposit_total - refund amount (if refunded partially)
+
+* order_status_url
+* taler_pay_uri (if unpaid)
+* actions: refund (if not refunded), add note, copy order_status_url
+
+Timeline of events
+******************
+
+Event of status changed over time describe vertically.
+Sorted from newest to oldest.
+On line per status updated, with datetime and a short description.
+
+Info taken from:
+
+* refund_details
+* wire_reports
+* wire_details
+* contractTerm.extra for custom notes ({date: timestamp, description: string})
+
+Payment details
+***************
+
+* summary
+* amount (deposit_total)
+* fee
+* refund_amount (if status is refunded)
+* net (amount - fee - refund)
+* current status
+
+
+Contract Terms
+**************
+
+collapsed as default. show disabled if unpaid
+
+* summary
+* amount
+* fulfillment_url, if present
+* max fee
+* max fire fee
+* wire_fee_amortization
+* list of (exchange | auditor) name and url
+* products table: list of products, one row per product
+
+ * description
+ * quantity
+ * total price
+ * total tax
+ * sum at the bottom
+
+* horizontal timeline of importants dates in the contract
+
+ * start at contract creation time
+ * show current date
+ * pay_deadline
+ * wire_transfer_deadline
+ * refund_deadline
+ * delivery_date (immediately if null)
+ * auto_refund
+
+
+
+Last response from exchange
+***************************
+
+collapsed as default, showing a green check if everything is ok or a yellow
+warning otherwise
+
+When open show 2 boxes with text translated from ``exchange_ec`` and ``exchange_hc``
+
+refund popup
+--------------
+
+If there is any refund:
+
+* show total refund from ``refund_amount``
+* a + sign to show more information
+* if exapanded show a timeline vertically showing amount a reason
+ ``refund_details``
+
+Show a small notice telling that the refund is going to take ``refund_delay`` time.
+
+Warn if there is a pending refund when ``refund_pending`` is true
+
+Ask for:
+
+* amount
+* reason: concatenation of the next values
+
+ * drop down options: duplicated, fraudulent, requested by customer, other
+ * aflter selecting, free text for aditional information
+
+Alternatives
+============
+
+
+order list was originaly thought with pagination footer
+
+.. image:: ../backoffice-order-list.v2-pagination.svg
+ :width: 800
+
+ascending boolean flag cloud be eliminated using the load before and load after
+and a design without random access to pages was proposed
+
+
+Q&A
+===
+
+* Shall we show merchant information from the ContractTerm in the order detail?
+
+* Order creation was first thouth as out of scope but should be useful for
+ testing purpose or when frontend is not yet integrated with taler merchant
+ backend. Shall we skip it?
+
+* Do we have the date and time of when the order goes from these states?
+
+ * claimed => paid (maybe last wire_details.execution_time with confirmed = true )
+ * unpaid => claimed (maybe contractTerm.timestamp)
+