taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 1d768a28d5976c4a1d521ff90674d8b54da685b1
parent f679adfa438eb7f511ee4e8f54bc2ae0d3991569
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 13 May 2024 13:27:31 +0200

implement protocol spec v15

Diffstat:
Mcore/api-merchant.rst | 93+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Mtaler-merchant-pos-terminal.rst | 13-------------
2 files changed, 91 insertions(+), 15 deletions(-)

diff --git a/core/api-merchant.rst b/core/api-merchant.rst @@ -123,7 +123,7 @@ such as the implemented version of the protocol and the currency used. .. http:get:: /config Return the protocol version and currency supported by this merchant backend. - This specification corresponds to ``current`` protocol being version **v14**. + This specification corresponds to ``current`` protocol being version **v15**. **Response:** @@ -1918,6 +1918,7 @@ Inspecting inventory image: ImageDataUrl; // A list of taxes paid by the merchant for one unit of this product. + // Optional since **v15**. taxes: Tax[]; // Number of units of the product in stock in sum in total, @@ -1933,7 +1934,8 @@ Inspecting inventory total_lost: Integer; // Identifies where the product is in stock. - address: Location; + // Optional since **v15**. + address?: Location; // Identifies when we expect the next restocking to happen. next_restock?: Timestamp; @@ -1943,6 +1945,93 @@ Inspecting inventory } +.. http:get:: [/instances/$INSTANCE]/private/pos + + This is used to return the point-of-sale (POS) configuration with full details on all items in the inventory. + + Endpoint was introduced in protocol **v15**. + + **Response:** + + :http:statuscode:`200 OK`: + The backend has successfully returned the inventory. Returns + a `FullInventoryDetailsResponse`. + :http:statuscode:`404 Not found`: + The backend has does not know about the instance. + + .. ts:def:: FullInventoryDetailsResponse + + interface FullInventoryDetailsResponse { + + // List of products that are present in the inventory. + products: MerchantPosProductDetail[]; + + // List of categories in the inventory. + categories: MerchantCategory[]; + + } + + .. ts:def:: MerchantPosProductDetail + + interface MerchantPosProductDetail { + + // A unique numeric ID of the product + product_serial: number; + + // A merchant-internal unique identifier for the product + product_id?: string; + + // 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[]; + + // Human-readable product description. + description: string; + + // Map from IETF BCP 47 language tags to localized descriptions. + description_i18n: { [lang_tag: string]: string }; + + // Unit in which the product is measured (liters, kilograms, packages, etc.). + unit: string; + + // The price for one ``unit`` of the product. Zero is used + // to imply that this product is not sold separately, or + // that the price is not fixed, and must be supplied by the + // front-end. If non-zero, this price MUST include applicable + // taxes. + price: Amount; + + // An optional base64-encoded product image. + image?: ImageDataUrl; + + // A list of taxes paid by the merchant for one unit of this product. + taxes?: Tax[]; + + // Number of units of the product in stock in sum in total, + // including all existing sales ever. Given in product-specific + // units. + // Optional, if missing treat as "infinite". + total_stock?: Integer; + + // Minimum age buyer must have (in years). + minimum_age?: Integer; + + } + + .. 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; + + // Map from IETF BCP 47 language tags to localized names + name_i18n?: { [lang_tag: string]: string }; + } + + Reserving inventory ------------------- diff --git a/taler-merchant-pos-terminal.rst b/taler-merchant-pos-terminal.rst @@ -106,19 +106,6 @@ The elements of the JSON file are defined as follows: 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; - - // Map from IETF BCP 47 language tags to localized names - name_i18n?: { [lang_tag: string]: string }; - } - .. ts:def:: MerchantProduct