summaryrefslogtreecommitdiff
path: root/design-documents/016-backoffice-order-management.rst
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-04-05 15:21:35 -0300
committerSebastian <sebasjm@gmail.com>2021-04-05 15:22:02 -0300
commit091815423d7a852000589911f543920297eb5c6f (patch)
tree4c69a5ae61037c64c3daf5cde4658d1a6565d3d4 /design-documents/016-backoffice-order-management.rst
parent383e625a857dc1067bf93d5248e37290384eeb74 (diff)
downloaddocs-091815423d7a852000589911f543920297eb5c6f.tar.gz
docs-091815423d7a852000589911f543920297eb5c6f.tar.bz2
docs-091815423d7a852000589911f543920297eb5c6f.zip
order creation
Diffstat (limited to 'design-documents/016-backoffice-order-management.rst')
-rw-r--r--design-documents/016-backoffice-order-management.rst67
1 files changed, 63 insertions, 4 deletions
diff --git a/design-documents/016-backoffice-order-management.rst b/design-documents/016-backoffice-order-management.rst
index 61f17d13..d53a23a9 100644
--- a/design-documents/016-backoffice-order-management.rst
+++ b/design-documents/016-backoffice-order-management.rst
@@ -67,10 +67,49 @@ An infinity scroll is propose instead of a pagination, reasons:
Create orders
-------------
-Form with 2 fields from MinimalOrderDetail:
-* amount
-* summary
+
+* ``product``: optional, collapsed by default
+
+ * ``name``: search box to select product by description field. if not found it
+ will be a 'create new' option leading to the create product without loosing
+ context
+ * ``quantity``: mandatory
+ * ``price``: taken from the product, but it can be overridden.
+ * ``add button``: will add the product to the list and calculate the total price
+
+
+* ``amount``: default to the total price of product, but can be overridden. If
+ overridden, show a message with the discount in %
+
+* ``summary``: order description
+
+* ``fulfillment url``: url where the user will land after buying the product
+
+* ``payment``: all values should have default from instance configuration
+
+ * ``exchanges``: default value from the instance, new exchanges will be added
+ using the url and public key will be taken from querying the url
+
+ * ``auditors``: default value from the instance, new auditors will be added using
+ the url and name/pub_key will be taken from querying the url
+
+ * ``wire method``: it should select one of supported from exchanges
+ * ``refund deadline``: calendar type of input
+ * ``pay deadline``: calendar type of input
+ * ``auto refund deadline``: calendar type of input
+ * ``max fee``: default value from the instance
+
+ * ``max wire fee``: default value from the instance
+
+ * ``wire_fee_amortization``: default value from the instance
+
+There were field not considered for this form, check Alternatives for more
+information.
+
+.. image:: ../backoffice-order-create.svg
+ :width: 800
+
Creation order success
**********************
@@ -142,7 +181,7 @@ This section is not going to be shown if there is no error
in the list show hint and error code
* Exchange Error: connection with exchange failed, info taking from exchange_ec
- and exhange_hc
+ and exchange_hc
Payment details
***************
@@ -276,3 +315,23 @@ Discussion / Q&A
* claimed => paid (maybe last wire_details.execution_time with confirmed = true )
* unpaid => claimed (maybe contractTerm.timestamp)
+* Refund button is being show if "not refunded" and "time < refund deadline".
+ should we consider partial refund?
+
+* Field left out in the order creation:
+
+ * contractTerm.summary_i18n: it makes the UI complex
+ * contractTerm.order_id: should be created by the backend
+ * contractTerm.timestamp: defined by backend
+ * contractTerm.merchant_pub: filled by the backend
+ * contractTerm.merchant_base_url: filled by the backend
+ * contractTerm.h_wire: defined by the backend
+ * contractTerm.delivery_location: not used
+ * contractTerm.delivery_date: not used
+ * contractTerm.nonce: not used
+ * contractTerm.products[].description: defined by product_id
+ * contractTerm.products[].description_i18n: defined by product_id
+ * contractTerm.products[].unit: defined by product_id
+ * contractTerm.products[].image: defined by product_id
+ * contractTerm.products[].delivery_date: not used
+ * contractTerm.products[].taxes: defined by product_id