diff options
author | Torsten Grote <t@grobox.de> | 2020-02-21 11:02:13 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-02-21 11:02:42 -0300 |
commit | d10b95e58acba886dd44944ae8433c715dcd13e9 (patch) | |
tree | 5dc9e7b1e10366cba989fafc789ad254541cbbbb | |
parent | 6163c14c53fac1ce23a8b24b09b863a4c5e5bf01 (diff) | |
download | docs-d10b95e58acba886dd44944ae8433c715dcd13e9.tar.gz docs-d10b95e58acba886dd44944ae8433c715dcd13e9.tar.bz2 docs-d10b95e58acba886dd44944ae8433c715dcd13e9.zip |
Add section for taler-merchant-pos-terminal
-rw-r--r-- | index.rst | 3 | ||||
-rw-r--r-- | taler-merchant-pos-terminal.rst | 138 |
2 files changed, 140 insertions, 1 deletions
@@ -33,7 +33,7 @@ while providing anonymity for Customers. Cryptography is used to ensure that none of the participants can defraud the others without being detected immediately; however, in -practice a fradulent Exchange might go bankrupt instead of paying the +practice a fraudulent Exchange might go bankrupt instead of paying the Merchants and thus the Exchange will need to be audited regularly like any other banking institution. @@ -56,6 +56,7 @@ Documentation Overview taler-wallet taler-nfc-guide.rst taler-merchant-api-tutorial + taler-merchant-pos-terminal taler-bank-manual taler-backoffice-manual taler-auditor-manual diff --git a/taler-merchant-pos-terminal.rst b/taler-merchant-pos-terminal.rst new file mode 100644 index 00000000..5107d9da --- /dev/null +++ b/taler-merchant-pos-terminal.rst @@ -0,0 +1,138 @@ +.. + This file is part of GNU TALER. + Copyright (C) 2014-2018 Taler Systems SA + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 2.1, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License along with + TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + + @author Torsten Grote + +GNU Taler Merchant POS Manual +############################# + +The GNU Taler merchant POS (point of sale) terminal allows sellers to + +* process customers' orders by adding or removing products +* calculate the amount owed by the customer +* let the customer make a Taler payment via QR code or NFC + +Android App +=========== + +.. note:: + The Android app is currently optimized for tablet devices, not phones. + +At first start, the Android app asks you for a configuration URL +and a user name as well as a password for HTTP basic authentication. + +At every start of the app, +it uses the saved configuration data +to fetch the current configuration (defined below) +and populates the currency, the products and their categories. + +The Tabled UI is separated into three columns: + +* Right: Product categories that the user can select to show different products +* Middle: Products available in the selected category and their prices +* Left: The current order, the ordered products, their quantity and prices + as well as the total amount. + +At the bottom of the main UI there is a row of buttons: + +* Restart: Clears the current order and turns into an Undo button which restores the order. +* -1/+1: Available when ordered items are selected + and allows you to increment/decrement their quantity. +* Reconfigure: Allows you to change the app configuration settings (URL and username/password) + and to forget the password (for locking the app). +* History: Shows the payment history. +* Complete: Finalize an order and prompt the customer to pay. + +Building from source +-------------------- + +Import in and build with Android Studio or run on the command line: + +.. code-block:: sh + + $ git clone https://git.taler.net/merchant-terminal-android.git + $ cd merchant-terminal-android + $ ./gradlew assembleRelease + +APIs and Data Formats +===================== + +The GNU Taler merchant POS configuration is a single JSON file with the following structure. + + + .. ts:def:: MerchantConfiguration + + interface MerchantConfiguration { + // Configuration for how to connect to the backend instance. + config: BackendConfiguration; + + // The available product categories + categories: MerchantCategory[]; + + // Products offered by the merchant (similar to `Product`). + products: MerchantProduct[]; + + // Map from labels to locations + locations: { [label: string]: [location: Location], ... }; + } + +The elements of the JSON file are defined as follows: + + .. ts:def:: BackendConfiguration + + interface BackendConfiguration { + // The URL to the Taler Merchant Backend + base_url: string; + + // The name of backend instance to be used (see `Backend Options <Backend-options>`) + instance: string; + + // The API key used for authentication + api_key: string; + } + + .. ts:def:: MerchantCategory + + interface MerchantCategory { + // A unique numeric ID of the category + id: number; + + // The name of the category. This will be shown to users and used in the order summary. + name: string; + } + + + .. ts:def:: MerchantProduct + + interface MerchantProduct { + // A merchant-internal unique identifier for the product + product_id: string; + + // Human-readable product description + // that will be shown to the user and used in contract terms + description: string; + + // The price of the product + price: Amount; + + // A list of category IDs this product belongs to. + // Typically, a product only belongs to one category, but more than one is supported. + categories: number[]; + + // Where to deliver this product. This may be an URL for online delivery + // (i.e. 'http://example.com/download' or 'mailto:customer@example.com'), + // or a location label defined inside the configuration's 'locations'. + delivery_location: string; + } |