diff options
-rw-r--r-- | design-documents/016-backoffice-order-managment.rst | 14 | ||||
-rw-r--r-- | design-documents/017-backoffice-inventory-managment.rst | 249 |
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) + |