From 86e560bbd6db8d7300c6ebc1bcd17abc96eb99d5 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 19 Mar 2021 15:54:27 -0300 Subject: updated info --- .../016-backoffice-order-managment.rst | 282 +++++++++++++-------- 1 file changed, 182 insertions(+), 100 deletions(-) (limited to 'design-documents') 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 -- cgit v1.2.3