summaryrefslogtreecommitdiff
path: root/design-documents
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-03-19 15:54:27 -0300
committerSebastian <sebasjm@gmail.com>2021-03-19 15:55:08 -0300
commit86e560bbd6db8d7300c6ebc1bcd17abc96eb99d5 (patch)
tree98b201f94908fd1ed339168626457ae48806f665 /design-documents
parent246d1148208f28d1ac525ce5f1d75844425ef094 (diff)
downloaddocs-86e560bbd6db8d7300c6ebc1bcd17abc96eb99d5.tar.gz
docs-86e560bbd6db8d7300c6ebc1bcd17abc96eb99d5.tar.bz2
docs-86e560bbd6db8d7300c6ebc1bcd17abc96eb99d5.zip
updated info
Diffstat (limited to 'design-documents')
-rw-r--r--design-documents/016-backoffice-order-managment.rst282
1 files changed, 182 insertions, 100 deletions
diff --git a/design-documents/016-backoffice-order-managment.rst b/design-documents/016-backoffice-order-managment.rst
index a8e86878..738b2bd2 100644
--- a/design-documents/016-backoffice-order-managment.rst
+++ b/design-documents/016-backoffice-order-managment.rst
@@ -1,161 +1,243 @@
-Design Doc 015: Merchant backoffice Routing
+Design Doc 016: Merchant backoffice Routing
###########################################
Summary
=======
-This document describe the complete list features for orders management and how will be shown.
+This document describe the complete list features for orders management and how
+will be shown.
Motivation
==========
-User will use the backoffice to manage their orders and verify the status of the current and past orders.
+User will use the backoffice to manage their orders and verify the status of the
+current and past orders.
+
+Requirements
+============
+
+Access all information provided from the Merchant Backend API in a
+understandable and accesible way
+
+Proposed Solution
+=================
+
+The propose solution use:
+
+* listing
+* creation
+* details
+* refund popup
Listing orders
-==============
+--------------
-.. image:: ../backoffice-order-list.png
+.. image:: ../backoffice-order-list.v2.svg
:width: 800
Will show the SearchBar component that allow multiple filter.
-Filter will allow paid, refounded, wired status and date.
-4 tabs will be show for a easy access to common filter
+Filter will allow paid, refunded, wired status and date.
+
+ * paid: yes/no
+ * refunded: yes/no
+ * wired: yes/no
+ * date: 'dd/MM/yyyy'
- * paid (default)
- * refounded
- * not wired
- * all (empty filter box)
+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
+* date in 'dd/MM/yyyy HH:mm:ss' format
+* amount: value and currency
+* summary
Actions per row:
- * refound: pop up with amount and reason (select box and text)
- * copy payment id
- * send receipt (pop up with email)
- * view details
+* 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)
+* 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 refound ( dropdown: 1week, 2weeks, custom )
- * description
- * payment method
+* 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.
-Success page
-------------
+ Send url to the customer: ``taler_pay_uri``
-Payment successful
-We've processed your charge for $10.00.
+action buttons that allow the following:
-actions:
- * create another payment: go to the create payment page again
- * view details: show details of the payment (see page)
- * send receipt: pop up asking for email
+* 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:
+Status text should be set with a backgournd color for easier recognition when
+indicated:
-(paid: green, claimed: light-green, unpaid: grey, refounded: red)
- * paid: green
- * claimed: light-green
- * unpaid: grey
- * refounded: red
+* 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 refounded)
- * refund_amount (if status is refounded)
- * deposit_total - refound amount (if refounded partially)
- * order_status_url
- * taler_pay_uri (if unpaid)
- * actions: refound (if not refounded), add note, copy order_status_url
+* 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 time and short description.
+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})
-Do we have the date-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)
+* 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 refounded)
- * net (amount - fee - refound)
- * current status
+* summary
+* amount (deposit_total)
+* fee
+* refund_amount (if status is refunded)
+* net (amount - fee - refund)
+* current status
+
Contract Terms
---------------
+**************
-collapsed as default
-disabled if unpaid
-
-should show merchant information?
-
- * 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
+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
-Exchange responses
-------------------
+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)
-collapsed as default