diff --git a/.eslintignore b/.eslintignore
index 3eaecae5..aac673c2 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,2 +1,4 @@
tools/importer/helix-importer-ui/*
blocks/mermaid/libs/*
+blocks/redoc/libs/*
+blocks/swagger-ui/libs/*
diff --git a/apis/E-Commerce-Store-MKP.json b/apis/E-Commerce-Store-MKP.json
new file mode 100644
index 00000000..d3a25b7d
--- /dev/null
+++ b/apis/E-Commerce-Store-MKP.json
@@ -0,0 +1,6980 @@
+{
+ "openapi": "3.0.1",
+ "info": {
+ "title": "E-Commerce-Store-MKP",
+ "description": "API of E-Commerce Store. For MKP store.",
+ "contact": {
+ "name": "Alan.Gao",
+ "email": "alan.gao@henkel.com"
+ },
+ "version": "v1"
+ },
+ "servers": [
+ {
+ "url": "http://localhost:8081/mall",
+ "description": "Local Server"
+ },
+ {
+ "url": "https://lab-api.raqn.io/dcp-store/mkp/",
+ "description": "MKP Project Dev Server."
+ }
+ ],
+ "tags": [
+ {
+ "name": "Delivery",
+ "description": "Delivery options list"
+ },
+ {
+ "name": "User Address",
+ "description": "User Address Management"
+ },
+ {
+ "name": "notification center",
+ "description": "notification center"
+ },
+ {
+ "name": "Product",
+ "description": "Product Management"
+ },
+ {
+ "name": "User",
+ "description": "User Management"
+ },
+ {
+ "name": "Payment",
+ "description": "Payment Management"
+ },
+ {
+ "name": "Sales Order",
+ "description": "Sales Order Management"
+ },
+ {
+ "name": "TermsRelation",
+ "description": "TermsRelation Service"
+ },
+ {
+ "name": "Wish List",
+ "description": "Wish List Management"
+ },
+ {
+ "name": "Shopping Cart",
+ "description": "Shopping Cart Management"
+ },
+ {
+ "name": "Inventory",
+ "description": "Inventory Management"
+ }
+ ],
+ "paths": {
+ "/user/address/shippingAddress": {
+ "put": {
+ "tags": [
+ "User Address"
+ ],
+ "summary": "Update shipping address.",
+ "operationId": "updateShippingAddress",
+ "requestBody": {
+ "description": "Request body for shipping address",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ShippingAddressUpdateCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ },
+ "post": {
+ "tags": [
+ "User Address"
+ ],
+ "summary": "Create a new shipping address.",
+ "operationId": "createShippingAddress",
+ "requestBody": {
+ "description": "Request body for shipping address",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ShippingAddressCreateCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/ShippingAddressCreateCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/user/address/shippingAddress/default": {
+ "put": {
+ "tags": [
+ "User Address"
+ ],
+ "summary": "Update default shipping address.",
+ "operationId": "updateDefaultShippingAddress",
+ "requestBody": {
+ "description": "Request body for default shipping address",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DefaultShippingAddUpdateCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/wishlist/items": {
+ "get": {
+ "tags": [
+ "Wish List"
+ ],
+ "summary": "Get all products in wish list",
+ "operationId": "dcp.mall.wishlist..search",
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "description": "page, default 1",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "description": "page size, default 10",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/WishlistDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ },
+ "post": {
+ "tags": [
+ "Wish List"
+ ],
+ "summary": "Add product to wish list",
+ "operationId": "dcp.mall.wishlist..item.add",
+ "requestBody": {
+ "description": "Request body for adding product to wish list.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WishListCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/WishListAddItemCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/user/address/billingAddress": {
+ "post": {
+ "tags": [
+ "User Address"
+ ],
+ "summary": "Create a new billing address.",
+ "operationId": "createBillingAddress",
+ "requestBody": {
+ "description": "Request body for billing address",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BillingAddressCreateCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/BillingAddressCreateCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/user/addOrEditUserInfo": {
+ "post": {
+ "tags": [
+ "User"
+ ],
+ "summary": "Add or edit user info.",
+ "operationId": "addOrEditUserInfo",
+ "requestBody": {
+ "description": "Request body for user create",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserinfoEditCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/terms/acceptTerms": {
+ "post": {
+ "tags": [
+ "TermsRelation"
+ ],
+ "summary": "user accept terms.",
+ "operationId": "acceptTerms",
+ "requestBody": {
+ "description": "Request body for accept terms",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TermsAcceptCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/products/stock-notify/remove": {
+ "post": {
+ "tags": [
+ "Product"
+ ],
+ "summary": "Remove stock notify.",
+ "operationId": "removeStockNotify",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "description": "Request body for add stock notify.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/StockNotifyCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/products/stock-notify/add": {
+ "post": {
+ "tags": [
+ "Product"
+ ],
+ "summary": "Add stock notify.",
+ "operationId": "addStockNotify",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "description": "Request body for add stock notify.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/StockNotifyCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/products/skus/price-stock:batchQuery": {
+ "post": {
+ "tags": [
+ "Product"
+ ],
+ "summary": "Get the price and inventory of skus.",
+ "operationId": "getSkuPriceStock",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ProductPriceStockQuery"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PriceStockDTO"
+ }
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/payment/stripe/cards": {
+ "get": {
+ "tags": [
+ "Payment"
+ ],
+ "summary": "Query payment customer cards",
+ "operationId": "dcp.mall.payment.get.cards",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomerCardInfoDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ },
+ "post": {
+ "tags": [
+ "Payment"
+ ],
+ "summary": "The payment method for which the card is saved",
+ "operationId": "dcp.mall.payment.add.card",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomerCardCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/payment/store/{orderId}:getSession": {
+ "post": {
+ "tags": [
+ "Payment"
+ ],
+ "summary": "get payment session for citibank.etc",
+ "operationId": "dcp.mall.payment.payment.getSession",
+ "parameters": [
+ {
+ "name": "orderId",
+ "in": "path",
+ "description": "Identity of sales order",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "X-Store-Id",
+ "in": "header",
+ "description": "Identity of store",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "description": "Request body for session",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaymentSessionCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Result"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/payment/store/queryOrders": {
+ "post": {
+ "tags": [
+ "Payment"
+ ],
+ "summary": "query orders",
+ "operationId": "dcp.mall.payment.query.orders",
+ "requestBody": {
+ "description": "Request payment server id",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueryOrdersCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueryOrdersCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/payment/store/oneClickOrderPay": {
+ "post": {
+ "tags": [
+ "Payment"
+ ],
+ "summary": "Place an order and pay.",
+ "operationId": "dcp.mall.payment.salesOrder.create and pay",
+ "requestBody": {
+ "description": "Request body for placing order.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderSubmitCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "description": "Order pay placed successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderOnePayCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/payment/store/generatePaymentSercet": {
+ "post": {
+ "tags": [
+ "Payment"
+ ],
+ "summary": "generate payment sercet",
+ "operationId": "dcp.mall.payment.generate.sercet",
+ "requestBody": {
+ "description": "Request body for payment",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaymentSercetRequestCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaymentSercetCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Place an order (The interface will later be deprecated, It is recommended to use /salesOrders:create api)",
+ "operationId": "dcp.mall.order.salesOrder.create",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "description": "Identity of Channel",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "MKP-FR-TEST"
+ }
+ ],
+ "requestBody": {
+ "description": "Request body for placing order.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderSubmitCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "description": "Order placed successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderSubmitCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders:summary": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Calculate the total cost of order",
+ "operationId": "dcp.mall.order.salesOrder.summary",
+ "requestBody": {
+ "description": "Request body for order summary.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderSummaryQuery"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderSummaryDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders:pay": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Select the payment method of merging orders.",
+ "operationId": "dcp.mall.order.salesOrder.pay",
+ "requestBody": {
+ "description": "Request body for payment",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaymentCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaymentCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders:payCallBack": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "The payment gateway calls this interface and returns the payment result.",
+ "operationId": "dcp.mall.order.salesOrder.payCallBack",
+ "requestBody": {
+ "description": "Request body for getting payment parameters.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PayCallBackCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders:create": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Place an order.",
+ "operationId": "dcp.mall.order.salesOrder.create_1",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "description": "Identity of Channel",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "MKP-FR-TEST"
+ },
+ {
+ "name": "X-Sub-Id",
+ "in": "header",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "description": "Request body for placing order.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderSubmitCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "description": "Order placed successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderSubmitCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders/{orderId}:pay": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Select the payment method of a single order.",
+ "operationId": "dcp.mall.order.salesOrder.pay_1",
+ "parameters": [
+ {
+ "name": "orderId",
+ "in": "path",
+ "description": "Identity of sales order",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "description": "Request body for payment",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaymentCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaymentCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders/{orderId}:complete": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": " After buyer has received his order, order status change to Completed",
+ "operationId": "dcp.mall.order.salesOrder.received",
+ "parameters": [
+ {
+ "name": "orderId",
+ "in": "path",
+ "description": "Identity of sales order",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders/{orderId}:cancel": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Cancel the specified sales order.",
+ "operationId": "dcp.mall.order.salesOrder.cancel",
+ "parameters": [
+ {
+ "name": "orderId",
+ "in": "path",
+ "description": "Identity of sales order",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders/{orderId}/items/{orderItemId}:complete": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": " After buyer has received his order item, order item status change to Completed",
+ "operationId": "dcp.mall.order.salesOrder.item.received",
+ "parameters": [
+ {
+ "name": "orderId",
+ "in": "path",
+ "description": "Identity of sales order",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "orderItemId",
+ "in": "path",
+ "description": "Identity of sales order item",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders/status": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Update payment status.",
+ "operationId": "dcp.mall.order.salesOrder.updatePaymentStatus",
+ "requestBody": {
+ "description": "Request body for order status",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SaleOrderUpdateStatusCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SaleOrderStatusCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders/address": {
+ "post": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Update order address.",
+ "operationId": "dcp.mall.order.salesOrder.updateOrderAddress",
+ "requestBody": {
+ "description": "Request body for order address",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderUpdateAddressCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderAddressCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/notification:status": {
+ "post": {
+ "tags": [
+ "notification center"
+ ],
+ "summary": "modify.status",
+ "operationId": "dcp.mall.notification.modify.status",
+ "requestBody": {
+ "description": "Request body for notification center.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationStatusCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/delivery/getOptionList": {
+ "get": {
+ "tags": [
+ "Delivery"
+ ],
+ "summary": "Get Delivery options list",
+ "operationId": "getDeliveryOptionList_1",
+ "parameters": [
+ {
+ "name": "storeCodeList",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DeliveryOptionListDTO"
+ }
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ },
+ "post": {
+ "tags": [
+ "Delivery"
+ ],
+ "summary": "Get Delivery options list",
+ "operationId": "getDeliveryOptionList",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderSummaryQuery"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DeliveryOptionListDTO"
+ }
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/delivery/chosenDelivery": {
+ "post": {
+ "tags": [
+ "Delivery"
+ ],
+ "summary": "Get chosen delivery method cost fee",
+ "operationId": "getChosenDelivery",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DeliveryQuery"
+ }
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "number"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/cart/mine": {
+ "get": {
+ "tags": [
+ "Shopping Cart"
+ ],
+ "summary": "Get current user's shopping cart information.",
+ "operationId": "dcp.mall.cart.get",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CartDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ },
+ "post": {
+ "tags": [
+ "Shopping Cart"
+ ],
+ "summary": "Merge anonymous cart to account-linked cart",
+ "operationId": "dcp.mall.cart.post",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CartItemBatchAddCmd"
+ }
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CartDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/cart/items": {
+ "post": {
+ "tags": [
+ "Shopping Cart"
+ ],
+ "summary": "Add item to shopping cart",
+ "operationId": "dcp.mall.cart.item.create",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CartItemAddCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/cart/items:clearAll": {
+ "post": {
+ "tags": [
+ "Shopping Cart"
+ ],
+ "summary": "cart clearAll",
+ "operationId": "dcp.mall.cart.cart clearAll",
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/cart/items:batchRemove": {
+ "post": {
+ "tags": [
+ "Shopping Cart"
+ ],
+ "summary": "Remove items from shopping cart in bulk.",
+ "operationId": "dcp.mall.cart.item.batchRemove",
+ "requestBody": {
+ "description": "Request body for cart item remove.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CartItemQuantityChangeCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/cart/items:batchChangeQuantity": {
+ "post": {
+ "tags": [
+ "Shopping Cart"
+ ],
+ "summary": "Change the quantity of item in the shopping cart.",
+ "operationId": "dcp.mall.cart.item.changeQuantity",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CartItemQuantityChangeCmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/cart/items:batchAddAll": {
+ "post": {
+ "tags": [
+ "Shopping Cart"
+ ],
+ "summary": "Batch add item to shopping cart v2",
+ "operationId": "dcp.mall.cart.item.batch.addAll",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "description": "Identity of Channel",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CartItemBatchAddV2Cmd"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/CartItemBatchAddCmdResult"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/user/userInfo": {
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "summary": "Get current user's information.",
+ "operationId": "getUserInfo",
+ "responses": {
+ "200": {
+ "description": "Get information successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserInfoDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/user/sellerInfo/{storeCode}": {
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "summary": "Get seller information by store code.",
+ "operationId": "getSellerInfo",
+ "parameters": [
+ {
+ "name": "storeCode",
+ "in": "path",
+ "description": "Identity of storeCode",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SellerInfoDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/user/contactInfo": {
+ "get": {
+ "tags": [
+ "User"
+ ],
+ "summary": "Get current user's contact information.",
+ "operationId": "getUserContactInfo",
+ "responses": {
+ "200": {
+ "description": "Get information successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserContactInfoDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/user/address/shippingAddresses": {
+ "get": {
+ "tags": [
+ "User Address"
+ ],
+ "summary": "Get All Shipping Addresses.",
+ "operationId": "getAllShippingAddresses",
+ "responses": {
+ "200": {
+ "description": "Get data successfully.",
+ "content": {
+ "*/*": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ShippingAddressDTO"
+ }
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/user/address/countries": {
+ "get": {
+ "tags": [
+ "User Address"
+ ],
+ "summary": "Get global countries name.",
+ "operationId": "getCountries",
+ "responses": {
+ "200": {
+ "description": "Get information successfully.",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/CountryDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/products/variants/{spuCode}": {
+ "get": {
+ "tags": [
+ "Product"
+ ],
+ "summary": "Get product variants list.",
+ "operationId": "getProductVariants",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "description": "Identity of Channel",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "MKP-FR-TEST"
+ },
+ {
+ "name": "spuCode",
+ "in": "path",
+ "description": "Identity of spuCode",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SkuDistributorDTO"
+ }
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/products/stock-notify/check-exists": {
+ "get": {
+ "tags": [
+ "Product"
+ ],
+ "summary": "Is user stock notify exist.",
+ "operationId": "checkStockNotifyExist",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "email",
+ "in": "query",
+ "description": "Identity of email",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "storeCode",
+ "in": "query",
+ "description": "Identity of storeCode",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "spuCode",
+ "in": "query",
+ "description": "Identity of spuCode",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "skuCode",
+ "in": "query",
+ "description": "Identity of skuCode",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/products/skus/price-stock": {
+ "get": {
+ "tags": [
+ "Product"
+ ],
+ "summary": "Get the inventory of skus.",
+ "operationId": "getSkuPriceStock_1",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "description": "Identity of Channel",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "MKP-FR-TEST"
+ },
+ {
+ "name": "skus",
+ "in": "query",
+ "description": "Comma separated SKUs' identifier, each SKU's identifier has the following format {seller id}_{product id}_{variant id}",
+ "required": true,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "example": "{seller id}_{product id}_{variant id}"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PriceStockDTO"
+ }
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/products/list:search": {
+ "get": {
+ "tags": [
+ "Product"
+ ],
+ "summary": "Get product list(spu list).",
+ "operationId": "getProductList",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "description": "Identity of Channel",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "MKP-FR-TEST"
+ },
+ {
+ "name": "keyWord",
+ "in": "query",
+ "description": "For the keyWord param, fuzzy search by product name",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "Loctite"
+ },
+ {
+ "name": "storeCode",
+ "in": "query",
+ "description": "For the storeCode param, leave empty for no filtering by seller; a comma separated value - e.g. ST001,ST002 for filtering by specified sellers.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "example": "ST001,ST002"
+ },
+ {
+ "name": "availability",
+ "in": "query",
+ "description": "For the availability param, leave empty for no filtering by stock; 0 for filtering products out of stock; 1 for filtering product with stock",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "example": 0
+ },
+ {
+ "name": "startPrice",
+ "in": "query",
+ "description": "For the startPrice param, start price",
+ "required": false,
+ "schema": {
+ "type": "number"
+ },
+ "example": 10
+ },
+ {
+ "name": "endPrice",
+ "in": "query",
+ "description": "For the endPrice param, end price",
+ "required": false,
+ "schema": {
+ "type": "number"
+ },
+ "example": 50
+ },
+ {
+ "name": "sortName",
+ "in": "query",
+ "description": "For the sortName param, price for sort by price; availability for sort by availability state - w/ or w/o stock",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "price"
+ },
+ {
+ "name": "sortValue",
+ "in": "query",
+ "description": "For sortValue param, ASC for sort in ascending order; DESC for sort in descending order",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "DESC"
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "description": "For the pageSize param, page size",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ },
+ "example": 10
+ },
+ {
+ "name": "page",
+ "in": "query",
+ "description": "For the page param, page number",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ },
+ "example": 1
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PageableDTOProductDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/products/filter": {
+ "get": {
+ "tags": [
+ "Product"
+ ],
+ "summary": "Get filter item.",
+ "operationId": "getFilter",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "description": "Identity of Channel",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "MKP-FR-TEST"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FilterDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/products/distributor/{skuCode}": {
+ "get": {
+ "tags": [
+ "Product"
+ ],
+ "summary": "Get distributor list of product (The interface will later be deprecated, It is recommended to use Get distributor box api)",
+ "operationId": "getDistributorProducts",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "description": "Identity of Channel",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "MKP-FR-TEST"
+ },
+ {
+ "name": "skuCode",
+ "in": "path",
+ "description": "Identity of skuCode",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ProductDistributorDTO"
+ }
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/products/distributor/spu/{spuCode}/sku/{skuCode}": {
+ "get": {
+ "tags": [
+ "Product"
+ ],
+ "summary": "Get distributor box.",
+ "operationId": "getDistributorBox",
+ "parameters": [
+ {
+ "name": "X-Channel-Id",
+ "in": "header",
+ "description": "Identity of Channel",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "example": "MKP-FR-TEST"
+ },
+ {
+ "name": "spuCode",
+ "in": "path",
+ "description": "Identity of spuCode",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "skuCode",
+ "in": "path",
+ "description": "Identity of skuCode",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ProductDistributorDTO"
+ }
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders:search": {
+ "get": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Query order list.",
+ "operationId": "dcp.mall.order.salesOrder",
+ "parameters": [
+ {
+ "name": "orderKeyWord",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "orderNumber",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "createTimeStart",
+ "in": "query",
+ "description": "Please use Coordinated Universal Time like 2022-08-01T00:00:00.000Z",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "createTimeEnd",
+ "in": "query",
+ "description": "Please use Coordinated Universal Time like 2022-08-01T00:00:00.000Z",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "orderStatusList",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "NEW",
+ "CONFIRMED",
+ "SHIPPED",
+ "COMPLETED",
+ "CANCELLED",
+ "REJECTED",
+ "CLOSED",
+ "PARTIALLY_SHIPPED",
+ "ACKNOWLEDGED",
+ "PARTIALLY_ACKNOWLEDGED",
+ "FAILURE",
+ "REVERTED"
+ ]
+ },
+ "default": [
+ "CONFIRMED",
+ "SHIPPED",
+ "COMPLETED",
+ "CANCELLED",
+ "REJECTED",
+ "CLOSED",
+ "PARTIALLY_SHIPPED",
+ "FAILURE",
+ "REVERTED"
+ ]
+ }
+ },
+ {
+ "name": "paymentStatusList",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "UNPAID",
+ "PAID",
+ "FAILURE",
+ "TIMEOUT_CLOSE",
+ "PARTIAL_REFUND",
+ "REFUNDED",
+ "REFUNDED_FAILURE",
+ "AUTHORIZATION",
+ "AUTHORIZATION_CANCELLED",
+ "CAPTURE_FAILED",
+ "OFFLINE_PAID"
+ ]
+ },
+ "default": [
+ "PAID",
+ "FAILURE",
+ "TIMEOUT_CLOSE",
+ "PARTIAL_REFUND",
+ "REFUNDED",
+ "REFUNDED_FAILURE",
+ "AUTHORIZATION"
+ ]
+ }
+ },
+ {
+ "name": "refundOrderStatusList",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "NEW",
+ "COMPLETED"
+ ]
+ }
+ }
+ },
+ {
+ "name": "sortEnum",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "DESC_DATE",
+ "ASC_DATE"
+ ]
+ }
+ },
+ {
+ "name": "page",
+ "in": "query",
+ "description": "Default page : 1",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "description": "Default pageSize : 10",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PageableDTOSalesOrderListDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders/{orderId}": {
+ "get": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Get details of a specified sales order.",
+ "operationId": "dcp.mall.order.salesOrder.get",
+ "parameters": [
+ {
+ "name": "orderId",
+ "in": "path",
+ "description": "Identity of sales order",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderDetailDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/order/salesOrders/{orderId}:invoice": {
+ "get": {
+ "tags": [
+ "Sales Order"
+ ],
+ "operationId": "getOrderInvoiceByOrderId",
+ "parameters": [
+ {
+ "name": "orderId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "orderStatus",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderInvoiceDTO"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/order/salesOrders/{orderId}:guest": {
+ "get": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Get details of a specified sales order for guest user.",
+ "operationId": "dcp.mall.order.salesOrder.get.guest",
+ "parameters": [
+ {
+ "name": "orderId",
+ "in": "path",
+ "description": "Identity of sales order",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "email",
+ "in": "query",
+ "description": "Email",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderDetailDTO"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/order/salesOrders/anonymous": {
+ "get": {
+ "tags": [
+ "Sales Order"
+ ],
+ "summary": "Get sales order information by anonymous.",
+ "operationId": "dcp.mall.order.salesOrder.getSalesOrderDetailByAnonymous",
+ "parameters": [
+ {
+ "name": "orderNumber",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "email",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SalesOrderAnonymousDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/notification": {
+ "get": {
+ "tags": [
+ "notification center"
+ ],
+ "summary": "list",
+ "operationId": "dcp.mall.notification.list",
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "description": "Default page : 1",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "description": "Default pageSize : 20",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PageableDTONotificationListDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/notification:count": {
+ "get": {
+ "tags": [
+ "notification center"
+ ],
+ "summary": "count",
+ "operationId": "dcp.mall.notification.count",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/login/token": {
+ "get": {
+ "tags": [
+ "login-controller"
+ ],
+ "operationId": "getMockToken",
+ "parameters": [
+ {
+ "name": "email",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserTokenDTO"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/inventory/product": {
+ "get": {
+ "tags": [
+ "Inventory"
+ ],
+ "summary": "Get the inventory of product.",
+ "operationId": "dcp.mall.inventory.get",
+ "parameters": [
+ {
+ "name": "productId",
+ "in": "query",
+ "description": "For the productId param, skuCode",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "example": "SKU001"
+ },
+ {
+ "name": "storeCode",
+ "in": "query",
+ "description": "For the storeCode param, storeCode",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "example": "ST0001"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/ProductStockDTO"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/cart/mine:itemsTotal": {
+ "get": {
+ "tags": [
+ "Shopping Cart"
+ ],
+ "summary": "Get current user's shopping items total.",
+ "operationId": "dcp.mall.cart.get_1",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/wishlist/items/{itemId}": {
+ "delete": {
+ "tags": [
+ "Wish List"
+ ],
+ "summary": "Remove product in wish list",
+ "operationId": "dcp.mall.wishlist..remove",
+ "parameters": [
+ {
+ "name": "itemId",
+ "in": "path",
+ "description": "Identity of product in wish list",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ },
+ "/user/address/shippingAddress/{addressId}": {
+ "delete": {
+ "tags": [
+ "User Address"
+ ],
+ "summary": "Delete shipping address.",
+ "operationId": "removeShippingAddress",
+ "parameters": [
+ {
+ "name": "addressId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "security": [
+ {
+ "JWT_ACCESS_TOKEN": []
+ }
+ ]
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "ShippingAddressUpdateCmd": {
+ "required": [
+ "addressId",
+ "city",
+ "country",
+ "deliveryAddress",
+ "firstName",
+ "isDefault",
+ "lastName",
+ "phone",
+ "state",
+ "zipCode"
+ ],
+ "type": "object",
+ "properties": {
+ "addressId": {
+ "type": "integer",
+ "description": "Identity of shipping address",
+ "format": "int32"
+ },
+ "firstName": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee first name (Max. 35 characters)"
+ },
+ "lastName": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee last name (Max. 35 characters)"
+ },
+ "email": {
+ "maxLength": 320,
+ "type": "string",
+ "description": "Consignee email (Max. 320 characters)"
+ },
+ "phone": {
+ "maxLength": 24,
+ "type": "string",
+ "description": "Consignee phone (Max. 24 characters)"
+ },
+ "companyName": {
+ "maxLength": 200,
+ "type": "string",
+ "description": "Company name (Max. 200 characters)"
+ },
+ "deliveryAddress": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee delivery address (Max. 35 characters)"
+ },
+ "deliveryAddress2": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee delivery address2 (Max. 35 characters)"
+ },
+ "zipCode": {
+ "maxLength": 15,
+ "pattern": "[0-9]*",
+ "type": "string",
+ "description": "Consignee ZIP code (Max. 15 characters)"
+ },
+ "country": {
+ "maxLength": 50,
+ "type": "string",
+ "description": "Consignee country (Max. 50 characters)"
+ },
+ "state": {
+ "maxLength": 2,
+ "type": "string",
+ "description": "Consignee state (Max. 2 characters)"
+ },
+ "city": {
+ "maxLength": 50,
+ "type": "string",
+ "description": "Consignee city (Max. 50 characters)"
+ },
+ "isDefault": {
+ "type": "boolean",
+ "description": "Set as default address or not",
+ "default": false
+ }
+ },
+ "description": "Command for update a shipping address."
+ },
+ "DefaultShippingAddUpdateCmd": {
+ "required": [
+ "addressId",
+ "isDefault"
+ ],
+ "type": "object",
+ "properties": {
+ "addressId": {
+ "type": "integer",
+ "description": "Identity of shipping address",
+ "format": "int32"
+ },
+ "isDefault": {
+ "type": "boolean",
+ "description": "Set as default address or not",
+ "default": false
+ }
+ },
+ "description": "Command for update a default shipping address."
+ },
+ "WishListCmd": {
+ "required": [
+ "currency",
+ "skuCode",
+ "skuImg",
+ "spuCode",
+ "spuName",
+ "storeCode",
+ "storeName"
+ ],
+ "type": "object",
+ "properties": {
+ "storeCode": {
+ "maxLength": 7,
+ "type": "string",
+ "description": "Store Code (Max. 7 characters)"
+ },
+ "storeName": {
+ "maxLength": 50,
+ "type": "string",
+ "description": "Store Name (Max. 50 characters)"
+ },
+ "spuCode": {
+ "maxLength": 30,
+ "type": "string",
+ "description": "SPU Code (Max. 30 characters)",
+ "example": "CH00000042000038"
+ },
+ "spuName": {
+ "maxLength": 100,
+ "type": "string",
+ "description": "SPU Name (Max. 100 characters)"
+ },
+ "skuCode": {
+ "maxLength": 30,
+ "type": "string",
+ "description": "SKU Code (Max. 30 characters)",
+ "example": "course:1115551_1168909"
+ },
+ "skuImg": {
+ "maxLength": 200,
+ "type": "string",
+ "description": "SKU Img (Max. 200 characters)"
+ },
+ "currency": {
+ "type": "string",
+ "description": "Currency",
+ "default": "USD",
+ "enum": [
+ "CNY",
+ "USD",
+ "EUR",
+ "GBP",
+ "AUD",
+ "CAD",
+ "JPY",
+ "HKD",
+ "INR",
+ "ZAR",
+ "TWD",
+ "MOP",
+ "KRW",
+ "THB",
+ "NZD",
+ "SGD",
+ "AED",
+ "AFN",
+ "ALL",
+ "AMD",
+ "ANG",
+ "AOA",
+ "ARS",
+ "AWG",
+ "AZN",
+ "BAM",
+ "BBD",
+ "BDT",
+ "BGN",
+ "BHD",
+ "BIF",
+ "BMD",
+ "BND",
+ "BOB",
+ "BRL",
+ "BSD",
+ "BTC",
+ "BTN",
+ "BWP",
+ "BYR",
+ "BZD",
+ "CDF",
+ "CHF",
+ "CLF",
+ "CLP",
+ "CNH",
+ "COP",
+ "CRC",
+ "CUP",
+ "CVE",
+ "CYP",
+ "CZK",
+ "DEM",
+ "DJF",
+ "DKK",
+ "DOP",
+ "DZD",
+ "ECS",
+ "EGP",
+ "ERN",
+ "ETB",
+ "FJD",
+ "FKP",
+ "FRF",
+ "GEL",
+ "GHS",
+ "GIP",
+ "GMD",
+ "GNF",
+ "GTQ",
+ "GYD",
+ "HNL",
+ "HRK",
+ "HTG",
+ "HUF",
+ "IDR",
+ "IEP",
+ "ILS",
+ "IQD",
+ "IRR",
+ "ISK",
+ "ITL",
+ "JMD",
+ "JOD",
+ "KES",
+ "KGS",
+ "KHR",
+ "KMF",
+ "KPW",
+ "KWD",
+ "KYD",
+ "KZT",
+ "LAK",
+ "LBP",
+ "LKR",
+ "LRD",
+ "LSL",
+ "LTL",
+ "LVL",
+ "LYD",
+ "MAD",
+ "MDL",
+ "MGA",
+ "MKD",
+ "MMK",
+ "MNT",
+ "MRO",
+ "MUR",
+ "MVR",
+ "MWK",
+ "MXN",
+ "MXV",
+ "MYR",
+ "MZN",
+ "NAD",
+ "NGN",
+ "NIO",
+ "NOK",
+ "NPR",
+ "OMR",
+ "PAB",
+ "PEN",
+ "PGK",
+ "PHP",
+ "PKR",
+ "PLN",
+ "PYG",
+ "QAR",
+ "RON",
+ "RSD",
+ "RUB",
+ "RWF",
+ "SAR",
+ "SBD",
+ "SCR",
+ "SDG",
+ "SEK",
+ "SHP",
+ "SIT",
+ "SLL",
+ "SOS",
+ "SRD",
+ "STD",
+ "SVC",
+ "SYP",
+ "SZL",
+ "TJS",
+ "TMT",
+ "TND",
+ "TOP",
+ "TRY",
+ "TTD",
+ "TZS",
+ "UAH",
+ "UGX",
+ "UYU",
+ "UZS",
+ "VEF",
+ "VND",
+ "VUV",
+ "WST",
+ "YER",
+ "ZMW",
+ "ZWL",
+ "XAF",
+ "XCD",
+ "XDR",
+ "XOF",
+ "XPF",
+ "XAG",
+ "XAU",
+ "XCP",
+ "XPD",
+ "XPT"
+ ]
+ },
+ "skuAttributes": {
+ "type": "array",
+ "description": "Attributes of SKU",
+ "items": {
+ "type": "string",
+ "description": "Attributes of SKU"
+ }
+ }
+ },
+ "description": "Command for adding item to wish list."
+ },
+ "WishListAddItemCmdResult": {
+ "type": "object",
+ "properties": {
+ "itemId": {
+ "type": "integer",
+ "description": "Identity of product in one's wish list.",
+ "format": "int32",
+ "example": 1225447581
+ }
+ }
+ },
+ "ShippingAddressCreateCmd": {
+ "required": [
+ "city",
+ "country",
+ "deliveryAddress",
+ "firstName",
+ "isDefault",
+ "lastName",
+ "phone",
+ "state",
+ "zipCode"
+ ],
+ "type": "object",
+ "properties": {
+ "firstName": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee first name (Max. 35 characters)"
+ },
+ "lastName": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee last name (Max. 35 characters)"
+ },
+ "email": {
+ "maxLength": 320,
+ "type": "string",
+ "description": "Consignee email (Max. 320 characters)"
+ },
+ "phone": {
+ "maxLength": 24,
+ "type": "string",
+ "description": "Consignee phone (Max. 24 characters)"
+ },
+ "companyName": {
+ "maxLength": 50,
+ "type": "string",
+ "description": "Company name (Max. 50 characters)"
+ },
+ "deliveryAddress": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee delivery address (Max. 35 characters)"
+ },
+ "deliveryAddress2": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee delivery address2 (Max. 35 characters)"
+ },
+ "zipCode": {
+ "maxLength": 15,
+ "pattern": "[0-9]*",
+ "type": "string",
+ "description": "Consignee ZIP code (Max. 15 characters)"
+ },
+ "country": {
+ "maxLength": 50,
+ "type": "string",
+ "description": "Consignee country (Max. 50 characters)"
+ },
+ "state": {
+ "maxLength": 2,
+ "type": "string",
+ "description": "Consignee state (Max. 2 characters)"
+ },
+ "city": {
+ "maxLength": 50,
+ "type": "string",
+ "description": "Consignee city (Max. 50 characters)"
+ },
+ "isDefault": {
+ "type": "boolean",
+ "description": "Set as default address or not",
+ "default": false
+ }
+ },
+ "description": "Command for create a shipping address."
+ },
+ "ShippingAddressCreateCmdResult": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "description": "Identity of shipping address.",
+ "format": "int32",
+ "example": 387397323
+ }
+ }
+ },
+ "BillingAddressCreateCmd": {
+ "required": [
+ "city",
+ "country",
+ "deliveryAddress",
+ "firstName",
+ "isDefault",
+ "lastName",
+ "phone",
+ "state",
+ "zipCode"
+ ],
+ "type": "object",
+ "properties": {
+ "firstName": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee first name (Max. 35 characters)"
+ },
+ "lastName": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee last name (Max. 35 characters)"
+ },
+ "email": {
+ "maxLength": 320,
+ "type": "string",
+ "description": "Consignee email (Max. 320 characters)"
+ },
+ "phone": {
+ "maxLength": 24,
+ "type": "string",
+ "description": "Consignee phone (Max. 24 characters)"
+ },
+ "companyName": {
+ "maxLength": 200,
+ "type": "string",
+ "description": "Company name (Max. 200 characters)"
+ },
+ "deliveryAddress": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee delivery address (Max. 35 characters)"
+ },
+ "deliveryAddress2": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee delivery address2 (Max. 35 characters)"
+ },
+ "zipCode": {
+ "maxLength": 15,
+ "pattern": "[0-9]*",
+ "type": "string",
+ "description": "Consignee ZIP code (Max. 15 characters)"
+ },
+ "country": {
+ "maxLength": 50,
+ "type": "string",
+ "description": "Consignee country (Max. 50 characters)"
+ },
+ "state": {
+ "maxLength": 2,
+ "type": "string",
+ "description": "Consignee state (Max. 2 characters)"
+ },
+ "city": {
+ "maxLength": 50,
+ "type": "string",
+ "description": "Consignee city (Max. 50 characters)"
+ },
+ "isDefault": {
+ "type": "boolean",
+ "description": "Set as default address or not",
+ "default": false
+ }
+ },
+ "description": "Command for create a shipping address."
+ },
+ "BillingAddressCreateCmdResult": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "description": "Identity of billing address.",
+ "format": "int32",
+ "example": 387397323
+ }
+ }
+ },
+ "UserinfoEditCmd": {
+ "required": [
+ "email",
+ "firstName",
+ "lastName",
+ "phone"
+ ],
+ "type": "object",
+ "properties": {
+ "firstName": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee first name (Max. 35 characters)"
+ },
+ "lastName": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Consignee last name (Max. 35 characters)"
+ },
+ "email": {
+ "maxLength": 320,
+ "pattern": "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$",
+ "type": "string",
+ "description": "User Email (Max. 320 characters)"
+ },
+ "phone": {
+ "maxLength": 24,
+ "type": "string",
+ "description": "User Phone (Max. 24 characters)"
+ }
+ },
+ "description": "Command for edit user info."
+ },
+ "Terms": {
+ "required": [
+ "clause",
+ "scene",
+ "termsVersion"
+ ],
+ "type": "object",
+ "properties": {
+ "clause": {
+ "type": "string",
+ "description": "Terms (Max. 50 characters)"
+ },
+ "scene": {
+ "type": "string",
+ "description": "Scene (Max. 50 characters)",
+ "enum": [
+ "MAIN"
+ ]
+ },
+ "relationKey": {
+ "type": "string",
+ "description": "RelationKey (Max. 50 characters)"
+ },
+ "termsVersion": {
+ "type": "string",
+ "description": "Terms version (Max. 50 characters)"
+ }
+ },
+ "description": "Terms Info."
+ },
+ "TermsAcceptCmd": {
+ "required": [
+ "terms"
+ ],
+ "type": "object",
+ "properties": {
+ "terms": {
+ "type": "array",
+ "description": "User Contact Information",
+ "items": {
+ "$ref": "#/components/schemas/Terms"
+ }
+ }
+ },
+ "description": "Command for user accept terms."
+ },
+ "StockNotifyCmd": {
+ "required": [
+ "email",
+ "skuCode",
+ "spuCode",
+ "storeCode"
+ ],
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "fastName": {
+ "type": "string"
+ },
+ "lastName": {
+ "type": "string"
+ },
+ "storeCode": {
+ "type": "string"
+ },
+ "channelCode": {
+ "type": "string"
+ },
+ "spuCode": {
+ "type": "string"
+ },
+ "skuCode": {
+ "type": "string"
+ }
+ },
+ "description": "Query for product distributor."
+ },
+ "ProductPriceStockItem": {
+ "required": [
+ "skuCode",
+ "spuCode",
+ "storeCode"
+ ],
+ "type": "object",
+ "properties": {
+ "storeCode": {
+ "type": "string",
+ "description": "Store code",
+ "example": "SHVUS"
+ },
+ "spuCode": {
+ "type": "string",
+ "description": "spu code",
+ "example": "123385IB"
+ },
+ "skuCode": {
+ "type": "string",
+ "description": "sku code",
+ "example": "2804956"
+ }
+ },
+ "description": "List of products"
+ },
+ "ProductPriceStockQuery": {
+ "required": [
+ "items"
+ ],
+ "type": "object",
+ "properties": {
+ "items": {
+ "type": "array",
+ "description": "List of products",
+ "items": {
+ "$ref": "#/components/schemas/ProductPriceStockItem"
+ }
+ }
+ },
+ "description": "Query for products' price and stock."
+ },
+ "PriceStockDTO": {
+ "type": "object",
+ "properties": {
+ "sellerId": {
+ "type": "string",
+ "description": "seller id."
+ },
+ "productId": {
+ "type": "string",
+ "description": "spu code."
+ },
+ "variantId": {
+ "type": "string",
+ "description": "sku code."
+ },
+ "listPrice": {
+ "$ref": "#/components/schemas/PriceValueDTO"
+ },
+ "sellerPrice": {
+ "$ref": "#/components/schemas/PriceValueDTO"
+ },
+ "stock": {
+ "type": "integer",
+ "description": "stock.",
+ "format": "int64"
+ },
+ "maxOrderQty": {
+ "type": "integer",
+ "description": "max order qty",
+ "format": "int32"
+ },
+ "shelfStatus": {
+ "type": "integer",
+ "description": "shelf status: 1 on shelf,2 off shelf",
+ "format": "int32"
+ },
+ "sellerPriceWithTax": {
+ "$ref": "#/components/schemas/PriceValueDTO"
+ }
+ },
+ "description": "DTO of Price and Stock."
+ },
+ "PriceValueDTO": {
+ "type": "object",
+ "properties": {
+ "currency": {
+ "type": "string",
+ "description": "currency."
+ },
+ "value": {
+ "type": "number",
+ "description": "value."
+ }
+ },
+ "description": "DTO of Price value."
+ },
+ "CustomerCardCmd": {
+ "type": "object",
+ "properties": {
+ "quickPayNumber": {
+ "maxLength": 30,
+ "type": "string",
+ "description": "Save the card payment method identifier (Max. 30 characters)",
+ "example": "pm_1LkfAkInVOofqhm12I8mOcSs"
+ },
+ "stripeCustomerDTO": {
+ "$ref": "#/components/schemas/StripeCustomerCmd"
+ }
+ }
+ },
+ "StripeCustomerCmd": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "maxLength": 320,
+ "type": "string",
+ "description": "email (Max. 320 characters)",
+ "example": "hank.chen@henkel.com"
+ },
+ "name": {
+ "maxLength": 60,
+ "type": "string",
+ "description": "name (Max. 60 characters)",
+ "example": "hank"
+ }
+ },
+ "description": "Customer Information."
+ },
+ "PaymentSessionCmd": {
+ "required": [
+ "paymentType"
+ ],
+ "type": "object",
+ "properties": {
+ "paymentType": {
+ "type": "string",
+ "description": "payment type",
+ "enum": [
+ "PayPal",
+ "Checkout",
+ "JPMorgan",
+ "Stripe",
+ "Citibank",
+ "NA"
+ ]
+ }
+ }
+ },
+ "Result": {
+ "required": [
+ "paymentId",
+ "session"
+ ],
+ "type": "object",
+ "properties": {
+ "session": {
+ "type": "string",
+ "description": "session"
+ },
+ "paymentId": {
+ "type": "string",
+ "description": "payment id"
+ }
+ }
+ },
+ "DeliveryInfo": {
+ "type": "object",
+ "properties": {
+ "deliveryType": {
+ "type": "string",
+ "description": "Delivery type"
+ }
+ },
+ "description": "Seller's delivery information"
+ },
+ "MonetaryValue": {
+ "type": "object",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "type": "string",
+ "enum": [
+ "CNY",
+ "USD",
+ "EUR",
+ "GBP",
+ "AUD",
+ "CAD",
+ "JPY",
+ "HKD",
+ "INR",
+ "ZAR",
+ "TWD",
+ "MOP",
+ "KRW",
+ "THB",
+ "NZD",
+ "SGD",
+ "AED",
+ "AFN",
+ "ALL",
+ "AMD",
+ "ANG",
+ "AOA",
+ "ARS",
+ "AWG",
+ "AZN",
+ "BAM",
+ "BBD",
+ "BDT",
+ "BGN",
+ "BHD",
+ "BIF",
+ "BMD",
+ "BND",
+ "BOB",
+ "BRL",
+ "BSD",
+ "BTC",
+ "BTN",
+ "BWP",
+ "BYR",
+ "BZD",
+ "CDF",
+ "CHF",
+ "CLF",
+ "CLP",
+ "CNH",
+ "COP",
+ "CRC",
+ "CUP",
+ "CVE",
+ "CYP",
+ "CZK",
+ "DEM",
+ "DJF",
+ "DKK",
+ "DOP",
+ "DZD",
+ "ECS",
+ "EGP",
+ "ERN",
+ "ETB",
+ "FJD",
+ "FKP",
+ "FRF",
+ "GEL",
+ "GHS",
+ "GIP",
+ "GMD",
+ "GNF",
+ "GTQ",
+ "GYD",
+ "HNL",
+ "HRK",
+ "HTG",
+ "HUF",
+ "IDR",
+ "IEP",
+ "ILS",
+ "IQD",
+ "IRR",
+ "ISK",
+ "ITL",
+ "JMD",
+ "JOD",
+ "KES",
+ "KGS",
+ "KHR",
+ "KMF",
+ "KPW",
+ "KWD",
+ "KYD",
+ "KZT",
+ "LAK",
+ "LBP",
+ "LKR",
+ "LRD",
+ "LSL",
+ "LTL",
+ "LVL",
+ "LYD",
+ "MAD",
+ "MDL",
+ "MGA",
+ "MKD",
+ "MMK",
+ "MNT",
+ "MRO",
+ "MUR",
+ "MVR",
+ "MWK",
+ "MXN",
+ "MXV",
+ "MYR",
+ "MZN",
+ "NAD",
+ "NGN",
+ "NIO",
+ "NOK",
+ "NPR",
+ "OMR",
+ "PAB",
+ "PEN",
+ "PGK",
+ "PHP",
+ "PKR",
+ "PLN",
+ "PYG",
+ "QAR",
+ "RON",
+ "RSD",
+ "RUB",
+ "RWF",
+ "SAR",
+ "SBD",
+ "SCR",
+ "SDG",
+ "SEK",
+ "SHP",
+ "SIT",
+ "SLL",
+ "SOS",
+ "SRD",
+ "STD",
+ "SVC",
+ "SYP",
+ "SZL",
+ "TJS",
+ "TMT",
+ "TND",
+ "TOP",
+ "TRY",
+ "TTD",
+ "TZS",
+ "UAH",
+ "UGX",
+ "UYU",
+ "UZS",
+ "VEF",
+ "VND",
+ "VUV",
+ "WST",
+ "YER",
+ "ZMW",
+ "ZWL",
+ "XAF",
+ "XCD",
+ "XDR",
+ "XOF",
+ "XPF",
+ "XAG",
+ "XAU",
+ "XCP",
+ "XPD",
+ "XPT"
+ ]
+ }
+ }
+ },
+ "Product": {
+ "required": [
+ "customerPrice",
+ "qty",
+ "skuCode",
+ "spuCode"
+ ],
+ "type": "object",
+ "properties": {
+ "spuCode": {
+ "maxLength": 30,
+ "type": "string",
+ "description": "SPU Code (Max. 30 characters)",
+ "example": "CH00000042000038"
+ },
+ "skuCode": {
+ "maxLength": 30,
+ "type": "string",
+ "description": "SKU Code (Max. 30 characters)",
+ "example": "course:1115551_1168909"
+ },
+ "qty": {
+ "type": "integer",
+ "description": "Quantity of item.",
+ "format": "int64",
+ "example": 2
+ },
+ "customerPrice": {
+ "type": "number",
+ "description": "Customer Price.",
+ "example": 2
+ },
+ "listPrice": {
+ "type": "number",
+ "description": "List Price.",
+ "example": 2
+ },
+ "totalCustomerPrice": {
+ "type": "number"
+ },
+ "itemTax": {
+ "type": "number",
+ "description": "Tax"
+ },
+ "itemTaxLocality": {
+ "type": "string",
+ "description": "Item tax locality"
+ }
+ },
+ "description": "Product."
+ },
+ "QueryOrdersCmd": {
+ "required": [
+ "paymentId"
+ ],
+ "type": "object",
+ "properties": {
+ "paymentId": {
+ "type": "string",
+ "description": "payment service log id"
+ },
+ "execResult": {
+ "$ref": "#/components/schemas/QueryOrdersCmdResult"
+ }
+ },
+ "description": "Command for query orders."
+ },
+ "QueryOrdersCmdResult": {
+ "type": "object",
+ "properties": {
+ "orders": {
+ "type": "array",
+ "description": "Identity of sales order.",
+ "items": {
+ "$ref": "#/components/schemas/SalesOrder"
+ }
+ },
+ "paymentId": {
+ "type": "string"
+ }
+ }
+ },
+ "SalesOrder": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "NEW",
+ "CONFIRMED",
+ "SHIPPED",
+ "COMPLETED",
+ "CANCELLED",
+ "REJECTED",
+ "CLOSED",
+ "PARTIALLY_SHIPPED",
+ "ACKNOWLEDGED",
+ "PARTIALLY_ACKNOWLEDGED",
+ "FAILURE",
+ "REVERTED"
+ ]
+ },
+ "cancelOperation": {
+ "type": "string",
+ "enum": [
+ "System",
+ "User"
+ ]
+ },
+ "refundOrderStatus": {
+ "type": "string",
+ "enum": [
+ "NEW",
+ "COMPLETED"
+ ]
+ },
+ "items": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SalesOrderItem"
+ }
+ },
+ "freightItems": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/DeliveryInfo"
+ }
+ },
+ "paymentStatus": {
+ "type": "string",
+ "enum": [
+ "UNPAID",
+ "PAID",
+ "FAILURE",
+ "TIMEOUT_CLOSE",
+ "PARTIAL_REFUND",
+ "REFUNDED",
+ "REFUNDED_FAILURE",
+ "AUTHORIZATION",
+ "AUTHORIZATION_CANCELLED",
+ "CAPTURE_FAILED",
+ "OFFLINE_PAID"
+ ]
+ },
+ "paymentType": {
+ "type": "string",
+ "enum": [
+ "PayPal",
+ "Checkout",
+ "JPMorgan",
+ "Stripe",
+ "Citibank",
+ "NA"
+ ]
+ },
+ "paymentTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submitTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "cancelTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "itemTotalAmount": {
+ "$ref": "#/components/schemas/MonetaryValue"
+ },
+ "marketPriceTotalAmount": {
+ "$ref": "#/components/schemas/MonetaryValue"
+ },
+ "discountAmount": {
+ "$ref": "#/components/schemas/MonetaryValue"
+ },
+ "discountRate": {
+ "type": "number"
+ },
+ "tax": {
+ "$ref": "#/components/schemas/MonetaryValue"
+ },
+ "freightAmount": {
+ "$ref": "#/components/schemas/MonetaryValue"
+ },
+ "totalAmount": {
+ "$ref": "#/components/schemas/MonetaryValue"
+ },
+ "storeCode": {
+ "type": "string"
+ },
+ "version": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "description": "Identity of sales order."
+ },
+ "SalesOrderItem": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "qty": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "product": {
+ "$ref": "#/components/schemas/Product"
+ },
+ "paymentStatus": {
+ "type": "string",
+ "enum": [
+ "UNPAID",
+ "PAID",
+ "FAILURE",
+ "TIMEOUT_CLOSE",
+ "PARTIAL_REFUND",
+ "REFUNDED",
+ "REFUNDED_FAILURE",
+ "AUTHORIZATION",
+ "AUTHORIZATION_CANCELLED",
+ "CAPTURE_FAILED",
+ "OFFLINE_PAID"
+ ]
+ },
+ "orderItemStatus": {
+ "type": "string",
+ "enum": [
+ "NEW",
+ "ACKNOWLEDGED",
+ "CONFIRMED",
+ "SHIPPED",
+ "COMPLETED",
+ "CANCELLED",
+ "REJECTED",
+ "Closed",
+ "REVERTED"
+ ]
+ },
+ "itemRefundStatus": {
+ "type": "string",
+ "enum": [
+ "NEW",
+ "COMPLETED"
+ ]
+ }
+ }
+ },
+ "Address": {
+ "required": [
+ "city",
+ "country",
+ "deliveryAddress",
+ "firstName",
+ "lastName",
+ "state",
+ "zipCode"
+ ],
+ "type": "object",
+ "properties": {
+ "country": {
+ "maxLength": 50,
+ "type": "string",
+ "description": "Country (Max. 50 characters)"
+ },
+ "firstName": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "First name (Max. 35 characters)"
+ },
+ "lastName": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Last name (Max. 35 characters)"
+ },
+ "deliveryAddress": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Delivery address (Max. 35 characters)"
+ },
+ "deliveryAddress2": {
+ "maxLength": 35,
+ "type": "string",
+ "description": "Delivery address line 2 (Max. 35 characters)"
+ },
+ "zipCode": {
+ "maxLength": 15,
+ "pattern": "^\\d{5}(-\\d{4})?$",
+ "type": "string",
+ "description": "Consignee ZIP code (Max. 15 characters)"
+ },
+ "state": {
+ "maxLength": 2,
+ "type": "string",
+ "description": "Consignee state (Max. 2 characters)"
+ },
+ "city": {
+ "maxLength": 50,
+ "type": "string",
+ "description": "Consignee city (Max. 50 characters)"
+ },
+ "companyName": {
+ "maxLength": 200,
+ "type": "string",
+ "description": "Consignee companyName (Max. 200 characters)"
+ },
+ "email": {
+ "maxLength": 320,
+ "type": "string",
+ "description": "Consignee email (Max. 320 characters)"
+ },
+ "phone": {
+ "maxLength": 24,
+ "type": "string",
+ "description": "Consignee phone (Max. 24 characters)"
+ }
+ },
+ "description": "Billing address."
+ },
+ "OrderItem": {
+ "required": [
+ "products",
+ "storeCode"
+ ],
+ "type": "object",
+ "properties": {
+ "storeCode": {
+ "maxLength": 7,
+ "type": "string",
+ "description": "Store Code (Max. 7 characters)"
+ },
+ "deliveryInfo": {
+ "$ref": "#/components/schemas/DeliveryInfo"
+ },
+ "products": {
+ "type": "array",
+ "description": "List of product",
+ "items": {
+ "$ref": "#/components/schemas/Product"
+ }
+ },
+ "deliveryAmount": {
+ "type": "number",
+ "description": "Delivery Amount"
+ },
+ "tax": {
+ "type": "number",
+ "description": "Tax"
+ },
+ "shipInfo": {
+ "type": "string",
+ "description": "shipInfo"
+ },
+ "taxAreaId": {
+ "type": "string",
+ "description": "Shipping Address Tax Area"
+ },
+ "baTaxAreaId": {
+ "type": "string",
+ "description": "Billing Address Tax Area"
+ },
+ "saPostalCode": {
+ "type": "string",
+ "description": "Shipping Address Postal Code"
+ },
+ "baPostalCode": {
+ "type": "string",
+ "description": "Billing Address Postal Code"
+ }
+ },
+ "description": "Order item."
+ },
+ "SalesOrderSubmitCmd": {
+ "required": [
+ "contactInfo",
+ "deliveryAmount",
+ "items",
+ "shippingAddress",
+ "tax"
+ ],
+ "type": "object",
+ "properties": {
+ "tax": {
+ "type": "number",
+ "description": "Tax"
+ },
+ "taxExemptionCertificationID": {
+ "type": "string",
+ "description": "Tax exemption certification ID"
+ },
+ "deliveryAmount": {
+ "type": "number",
+ "description": "Delivery Amount"
+ },
+ "totalAmount": {
+ "$ref": "#/components/schemas/UnitPrice"
+ },
+ "paymentType": {
+ "type": "string",
+ "description": "Payment Type",
+ "example": "Stripe",
+ "enum": [
+ "PayPal",
+ "Checkout",
+ "JPMorgan",
+ "Stripe",
+ "Citibank",
+ "NA"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "Item list of order.",
+ "items": {
+ "$ref": "#/components/schemas/OrderItem"
+ }
+ },
+ "contactInfo": {
+ "$ref": "#/components/schemas/SalesOrderSubmitContactInfo"
+ },
+ "customerBoNumber": {
+ "type": "string",
+ "description": "Customer Bo Number"
+ },
+ "shippingAddress": {
+ "$ref": "#/components/schemas/Address"
+ },
+ "billingAddress": {
+ "$ref": "#/components/schemas/Address"
+ },
+ "ignoreTaxExceptions": {
+ "type": "boolean",
+ "description": "Ignore tax exceptions.",
+ "default": true
+ },
+ "zoneId": {
+ "type": "string",
+ "description": "zoneId",
+ "example": "zoneId"
+ },
+ "guest": {
+ "type": "boolean"
+ }
+ },
+ "description": "Command for place an order."
+ },
+ "SalesOrderSubmitContactInfo": {
+ "required": [
+ "email",
+ "phone"
+ ],
+ "type": "object",
+ "properties": {
+ "email": {
+ "maxLength": 320,
+ "type": "string",
+ "description": "Consignee email (Max. 320 characters)"
+ },
+ "phone": {
+ "maxLength": 24,
+ "type": "string",
+ "description": "Mobile number (Max. 24 characters)"
+ }
+ },
+ "description": "Contact Information."
+ },
+ "UnitPrice": {
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object",
+ "properties": {
+ "amount": {
+ "type": "number",
+ "description": "Amount of price.",
+ "example": 23.5
+ },
+ "currency": {
+ "type": "string",
+ "description": "Currency of price.",
+ "example": "EUR",
+ "enum": [
+ "CNY",
+ "USD",
+ "EUR",
+ "GBP",
+ "AUD",
+ "CAD",
+ "JPY",
+ "HKD",
+ "INR",
+ "ZAR",
+ "TWD",
+ "MOP",
+ "KRW",
+ "THB",
+ "NZD",
+ "SGD",
+ "AED",
+ "AFN",
+ "ALL",
+ "AMD",
+ "ANG",
+ "AOA",
+ "ARS",
+ "AWG",
+ "AZN",
+ "BAM",
+ "BBD",
+ "BDT",
+ "BGN",
+ "BHD",
+ "BIF",
+ "BMD",
+ "BND",
+ "BOB",
+ "BRL",
+ "BSD",
+ "BTC",
+ "BTN",
+ "BWP",
+ "BYR",
+ "BZD",
+ "CDF",
+ "CHF",
+ "CLF",
+ "CLP",
+ "CNH",
+ "COP",
+ "CRC",
+ "CUP",
+ "CVE",
+ "CYP",
+ "CZK",
+ "DEM",
+ "DJF",
+ "DKK",
+ "DOP",
+ "DZD",
+ "ECS",
+ "EGP",
+ "ERN",
+ "ETB",
+ "FJD",
+ "FKP",
+ "FRF",
+ "GEL",
+ "GHS",
+ "GIP",
+ "GMD",
+ "GNF",
+ "GTQ",
+ "GYD",
+ "HNL",
+ "HRK",
+ "HTG",
+ "HUF",
+ "IDR",
+ "IEP",
+ "ILS",
+ "IQD",
+ "IRR",
+ "ISK",
+ "ITL",
+ "JMD",
+ "JOD",
+ "KES",
+ "KGS",
+ "KHR",
+ "KMF",
+ "KPW",
+ "KWD",
+ "KYD",
+ "KZT",
+ "LAK",
+ "LBP",
+ "LKR",
+ "LRD",
+ "LSL",
+ "LTL",
+ "LVL",
+ "LYD",
+ "MAD",
+ "MDL",
+ "MGA",
+ "MKD",
+ "MMK",
+ "MNT",
+ "MRO",
+ "MUR",
+ "MVR",
+ "MWK",
+ "MXN",
+ "MXV",
+ "MYR",
+ "MZN",
+ "NAD",
+ "NGN",
+ "NIO",
+ "NOK",
+ "NPR",
+ "OMR",
+ "PAB",
+ "PEN",
+ "PGK",
+ "PHP",
+ "PKR",
+ "PLN",
+ "PYG",
+ "QAR",
+ "RON",
+ "RSD",
+ "RUB",
+ "RWF",
+ "SAR",
+ "SBD",
+ "SCR",
+ "SDG",
+ "SEK",
+ "SHP",
+ "SIT",
+ "SLL",
+ "SOS",
+ "SRD",
+ "STD",
+ "SVC",
+ "SYP",
+ "SZL",
+ "TJS",
+ "TMT",
+ "TND",
+ "TOP",
+ "TRY",
+ "TTD",
+ "TZS",
+ "UAH",
+ "UGX",
+ "UYU",
+ "UZS",
+ "VEF",
+ "VND",
+ "VUV",
+ "WST",
+ "YER",
+ "ZMW",
+ "ZWL",
+ "XAF",
+ "XCD",
+ "XDR",
+ "XOF",
+ "XPF",
+ "XAG",
+ "XAU",
+ "XCP",
+ "XPD",
+ "XPT"
+ ]
+ }
+ },
+ "description": "Total Amount"
+ },
+ "SaleOrderCmd": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Order id.",
+ "example": "100000042000038"
+ }
+ },
+ "description": "Sales Orders."
+ },
+ "SalesOrderOnePayCmdResult": {
+ "type": "object",
+ "properties": {
+ "orders": {
+ "type": "array",
+ "description": "Identity of sales order.",
+ "items": {
+ "$ref": "#/components/schemas/SaleOrderCmd"
+ }
+ },
+ "id": {
+ "type": "string",
+ "description": "Identity of sales order.",
+ "example": "109594362665033728"
+ },
+ "orderStatus": {
+ "type": "string",
+ "description": "order sales status ",
+ "example": "NEW/CONFIRMED ..."
+ },
+ "paymentId": {
+ "type": "string",
+ "description": "payment server paymentId ",
+ "example": "170629393416193"
+ }
+ }
+ },
+ "PaymentSercetRequestCmd": {
+ "required": [
+ "amount",
+ "currency",
+ "paymentType"
+ ],
+ "type": "object",
+ "properties": {
+ "paymentType": {
+ "type": "string",
+ "description": "Payment Methods.",
+ "example": "Stripe"
+ },
+ "currency": {
+ "type": "string",
+ "description": "currency Code.",
+ "example": "EUR, USD..."
+ },
+ "amount": {
+ "type": "number",
+ "description": "Payment amount.",
+ "example": 10
+ }
+ }
+ },
+ "PaymentSercetCmdResult": {
+ "type": "object",
+ "properties": {
+ "paymentId": {
+ "type": "string",
+ "description": "Payment ID.Used to query the payment results."
+ },
+ "clientSecret": {
+ "type": "string",
+ "description": "Client Secret of Stripe."
+ }
+ }
+ },
+ "SalesOrderSubmitCmdResult": {
+ "type": "object",
+ "properties": {
+ "orders": {
+ "type": "array",
+ "description": "Identity of sales order.",
+ "items": {
+ "$ref": "#/components/schemas/SaleOrderCmd"
+ }
+ },
+ "id": {
+ "type": "string",
+ "description": "Identity of sales order.",
+ "example": "109594362665033728"
+ },
+ "cancelTime": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "OrderSummaryItem": {
+ "required": [
+ "products",
+ "storeCode"
+ ],
+ "type": "object",
+ "properties": {
+ "storeCode": {
+ "type": "string",
+ "description": "Store Code"
+ },
+ "deliveryType": {
+ "type": "string",
+ "description": "Delivery type"
+ },
+ "products": {
+ "type": "array",
+ "description": "List of product",
+ "items": {
+ "$ref": "#/components/schemas/OrderSummaryProduct"
+ }
+ }
+ },
+ "description": "Order item."
+ },
+ "OrderSummaryProduct": {
+ "required": [
+ "quantity",
+ "skuCode",
+ "spuCode"
+ ],
+ "type": "object",
+ "properties": {
+ "spuCode": {
+ "type": "string",
+ "description": "SPU Code.",
+ "example": "CH00000042000038"
+ },
+ "skuCode": {
+ "type": "string",
+ "description": "SKU Code.",
+ "example": "course:1115551_1168909"
+ },
+ "quantity": {
+ "type": "integer",
+ "description": "Quantity of item.",
+ "format": "int64",
+ "example": 2
+ }
+ },
+ "description": "Products."
+ },
+ "SalesOrderSummaryQuery": {
+ "required": [
+ "currency",
+ "freightCalculate",
+ "items"
+ ],
+ "type": "object",
+ "properties": {
+ "currency": {
+ "type": "string",
+ "description": "Currency of price.",
+ "example": "USD",
+ "enum": [
+ "CNY",
+ "USD",
+ "EUR",
+ "GBP",
+ "AUD",
+ "CAD",
+ "JPY",
+ "HKD",
+ "INR",
+ "ZAR",
+ "TWD",
+ "MOP",
+ "KRW",
+ "THB",
+ "NZD",
+ "SGD",
+ "AED",
+ "AFN",
+ "ALL",
+ "AMD",
+ "ANG",
+ "AOA",
+ "ARS",
+ "AWG",
+ "AZN",
+ "BAM",
+ "BBD",
+ "BDT",
+ "BGN",
+ "BHD",
+ "BIF",
+ "BMD",
+ "BND",
+ "BOB",
+ "BRL",
+ "BSD",
+ "BTC",
+ "BTN",
+ "BWP",
+ "BYR",
+ "BZD",
+ "CDF",
+ "CHF",
+ "CLF",
+ "CLP",
+ "CNH",
+ "COP",
+ "CRC",
+ "CUP",
+ "CVE",
+ "CYP",
+ "CZK",
+ "DEM",
+ "DJF",
+ "DKK",
+ "DOP",
+ "DZD",
+ "ECS",
+ "EGP",
+ "ERN",
+ "ETB",
+ "FJD",
+ "FKP",
+ "FRF",
+ "GEL",
+ "GHS",
+ "GIP",
+ "GMD",
+ "GNF",
+ "GTQ",
+ "GYD",
+ "HNL",
+ "HRK",
+ "HTG",
+ "HUF",
+ "IDR",
+ "IEP",
+ "ILS",
+ "IQD",
+ "IRR",
+ "ISK",
+ "ITL",
+ "JMD",
+ "JOD",
+ "KES",
+ "KGS",
+ "KHR",
+ "KMF",
+ "KPW",
+ "KWD",
+ "KYD",
+ "KZT",
+ "LAK",
+ "LBP",
+ "LKR",
+ "LRD",
+ "LSL",
+ "LTL",
+ "LVL",
+ "LYD",
+ "MAD",
+ "MDL",
+ "MGA",
+ "MKD",
+ "MMK",
+ "MNT",
+ "MRO",
+ "MUR",
+ "MVR",
+ "MWK",
+ "MXN",
+ "MXV",
+ "MYR",
+ "MZN",
+ "NAD",
+ "NGN",
+ "NIO",
+ "NOK",
+ "NPR",
+ "OMR",
+ "PAB",
+ "PEN",
+ "PGK",
+ "PHP",
+ "PKR",
+ "PLN",
+ "PYG",
+ "QAR",
+ "RON",
+ "RSD",
+ "RUB",
+ "RWF",
+ "SAR",
+ "SBD",
+ "SCR",
+ "SDG",
+ "SEK",
+ "SHP",
+ "SIT",
+ "SLL",
+ "SOS",
+ "SRD",
+ "STD",
+ "SVC",
+ "SYP",
+ "SZL",
+ "TJS",
+ "TMT",
+ "TND",
+ "TOP",
+ "TRY",
+ "TTD",
+ "TZS",
+ "UAH",
+ "UGX",
+ "UYU",
+ "UZS",
+ "VEF",
+ "VND",
+ "VUV",
+ "WST",
+ "YER",
+ "ZMW",
+ "ZWL",
+ "XAF",
+ "XCD",
+ "XDR",
+ "XOF",
+ "XPF",
+ "XAG",
+ "XAU",
+ "XCP",
+ "XPD",
+ "XPT"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "Item list of order.",
+ "items": {
+ "$ref": "#/components/schemas/OrderSummaryItem"
+ }
+ },
+ "taxCalculate": {
+ "type": "boolean",
+ "description": "Tax calculate flag.",
+ "example": true
+ },
+ "freightCalculate": {
+ "type": "boolean",
+ "description": "Freight calculate flag.",
+ "default": true
+ },
+ "ignoreTaxExceptions": {
+ "type": "boolean",
+ "description": "Ignore tax exceptions.",
+ "default": true
+ },
+ "taxExemptionCertificationID": {
+ "type": "string",
+ "description": "Tax exemption certification ID"
+ },
+ "organisationId": {
+ "type": "string",
+ "description": "Organisation ID"
+ },
+ "shippingAddress": {
+ "$ref": "#/components/schemas/Address"
+ },
+ "billingAddress": {
+ "$ref": "#/components/schemas/Address"
+ }
+ },
+ "description": "Query sale order summary"
+ },
+ "SalesOrderSummaryDTO": {
+ "type": "object",
+ "properties": {
+ "listPriceTotalAmount": {
+ "type": "number",
+ "description": "Amount of products.",
+ "example": 60
+ },
+ "discountAmount": {
+ "type": "number"
+ },
+ "marketPriceTotalAmount": {
+ "type": "number",
+ "description": "Amount of market price product.",
+ "example": 50
+ },
+ "taxAmount": {
+ "type": "number",
+ "description": "Amount of tax.",
+ "example": 3
+ },
+ "freightAmount": {
+ "type": "number",
+ "description": "Amount of freight.",
+ "example": 10
+ },
+ "totalAmount": {
+ "type": "number",
+ "description": "Total Amount.",
+ "example": 63
+ }
+ },
+ "description": "Order Summary"
+ },
+ "PaymentCmd": {
+ "required": [
+ "orders",
+ "paymentKind",
+ "paymentMethodType",
+ "paymentType"
+ ],
+ "type": "object",
+ "properties": {
+ "paymentType": {
+ "type": "string",
+ "description": "Payment Type",
+ "example": "Stripe JPMorgan",
+ "enum": [
+ "PayPal",
+ "Checkout",
+ "JPMorgan",
+ "Stripe",
+ "Citibank",
+ "NA"
+ ]
+ },
+ "paymentMethodType": {
+ "type": "string",
+ "description": "Payment Method Type",
+ "example": "Card Apple",
+ "enum": [
+ "Card",
+ "Apple"
+ ]
+ },
+ "paymentKind": {
+ "type": "string",
+ "description": "Payment Kind",
+ "example": "Pay PreAuthorized",
+ "enum": [
+ "Pay",
+ "PreAuthorized"
+ ]
+ },
+ "preAuthJpMorgan": {
+ "$ref": "#/components/schemas/PreAuthJpMorgan"
+ },
+ "paymentMethodNonce": {
+ "type": "string",
+ "description": "PayPal Needs."
+ },
+ "orders": {
+ "type": "array",
+ "description": "Order list.",
+ "items": {
+ "$ref": "#/components/schemas/SaleOrderCmd"
+ }
+ },
+ "stripeQuickPay": {
+ "$ref": "#/components/schemas/StripeQuickPayCmd"
+ }
+ }
+ },
+ "PreAuthJpMorgan": {
+ "required": [
+ "preAuthType"
+ ],
+ "type": "object",
+ "properties": {
+ "preAuthType": {
+ "type": "string",
+ "example": "IframePreAuth HostedPreAuth",
+ "enum": [
+ "HostedPreAuth",
+ "IframePreAuth"
+ ]
+ },
+ "callbackUrl": {
+ "type": "string",
+ "description": "Sets the URL of the callback.html file. This value overrides the URL set in the Hosted Payment Page Admin screen.",
+ "example": "Used for IframePreAuth"
+ },
+ "cssUrl": {
+ "type": "string",
+ "description": "Sets the URL of the CSS file used to style the payment form This value overrides the URL set in the Hosted Payment Page Admin screen.",
+ "example": "Used for IframePreAuth"
+ },
+ "contentTemplateUrl": {
+ "type": "string",
+ "description": "URL where the merchant template resides must be https accessible",
+ "example": "Used for HostedPreAuth"
+ },
+ "returnUrl": {
+ "type": "string",
+ "description": "URL on the merchant site where the customer is returned, along with the values from a successful transaction; must be https accessible.",
+ "example": "Used for HostedPreAuth"
+ },
+ "cancelUrl": {
+ "type": "string",
+ "description": "URL on the merchant site where the customer is returned if the customer clicks Cancel on the payment form; must be https accessible. If not defined, HPP returns the customer to the URL set by the return url post value",
+ "example": "Used for HostedPreAuth"
+ }
+ },
+ "description": "Pre Authorized for JP Morgan"
+ },
+ "StripeQuickPayCmd": {
+ "required": [
+ "quickPayNumber"
+ ],
+ "type": "object",
+ "properties": {
+ "payCustomerId": {
+ "type": "string",
+ "description": "Pay customer Id.",
+ "example": "cus_MO5QVytWUMBvzH"
+ },
+ "quickPayNumber": {
+ "type": "string",
+ "description": "Save the card payment method identifier.",
+ "example": "pm_1LfJLKInVOofqhm1YmaremX1"
+ }
+ },
+ "description": "Stripe quick pay."
+ },
+ "PaymentCmdResult": {
+ "type": "object",
+ "properties": {
+ "paymentId": {
+ "type": "string",
+ "description": "Payment ID.Used to query the payment results."
+ },
+ "clientSecret": {
+ "type": "string",
+ "description": "Client Secret of Stripe."
+ },
+ "status": {
+ "type": "string",
+ "description": "payment order status."
+ },
+ "preAuthorizedUrl": {
+ "type": "string",
+ "description": "url of pre authorized with JP Morgan"
+ }
+ }
+ },
+ "MoreOrderPayDTO": {
+ "type": "object",
+ "properties": {
+ "saleSonOrderId": {
+ "type": "string"
+ },
+ "storeCode": {
+ "type": "string"
+ },
+ "sonAmount": {
+ "type": "number"
+ },
+ "itemOrderIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "PayCallBackCmd": {
+ "type": "object",
+ "properties": {
+ "status": {
+ "pattern": "[ISFCD]",
+ "type": "string"
+ },
+ "retMsg": {
+ "type": "string"
+ },
+ "paymentAmount": {
+ "type": "number"
+ },
+ "partnerId": {
+ "type": "string"
+ },
+ "sign": {
+ "type": "string"
+ },
+ "salesArea": {
+ "type": "string"
+ },
+ "storeCode": {
+ "type": "string"
+ },
+ "payMethod": {
+ "type": "string"
+ },
+ "paymentId": {
+ "type": "string"
+ },
+ "saleOrderId": {
+ "type": "string"
+ },
+ "payType": {
+ "type": "string"
+ },
+ "transTime": {
+ "type": "string"
+ },
+ "refundAmount": {
+ "type": "number"
+ },
+ "oldPaymentId": {
+ "type": "string"
+ },
+ "paymentMethodType": {
+ "type": "string"
+ },
+ "moreOrderPayList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MoreOrderPayDTO"
+ }
+ }
+ }
+ },
+ "SaleOrderUpdateStatusCmd": {
+ "type": "object",
+ "properties": {
+ "orderIdList": {
+ "type": "array",
+ "description": "Order id List.",
+ "example": [
+ 100000042000038
+ ],
+ "items": {
+ "type": "string",
+ "description": "Order id List.",
+ "example": "[100000042000038]"
+ }
+ }
+ },
+ "description": "Sales Orders."
+ },
+ "SaleOrderStatusCmdResult": {
+ "type": "object",
+ "properties": {
+ "orderIdList": {
+ "type": "array",
+ "description": "Identity of sales orders.",
+ "example": [
+ 109594362665033730
+ ],
+ "items": {
+ "type": "string",
+ "description": "Identity of sales orders.",
+ "example": "[109594362665033728]"
+ }
+ }
+ }
+ },
+ "SalesOrderUpdateAddressCmd": {
+ "required": [
+ "billingAddress",
+ "orderIdList"
+ ],
+ "type": "object",
+ "properties": {
+ "billingAddress": {
+ "$ref": "#/components/schemas/Address"
+ },
+ "orderIdList": {
+ "type": "array",
+ "description": "Order id List.",
+ "items": {
+ "type": "string",
+ "description": "Order id List."
+ }
+ }
+ },
+ "description": "Command for update order address."
+ },
+ "SalesOrderAddressCmdResult": {
+ "type": "object",
+ "properties": {
+ "orderIdList": {
+ "type": "array",
+ "description": "Identity of sales orders.",
+ "example": [
+ 109594362665033730
+ ],
+ "items": {
+ "type": "string",
+ "description": "Identity of sales orders.",
+ "example": "[109594362665033728]"
+ }
+ }
+ }
+ },
+ "NotificationStatusCmd": {
+ "type": "object",
+ "properties": {
+ "msg id array": {
+ "type": "array",
+ "example": [
+ 100000042000038,
+ 100000042000039
+ ],
+ "items": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "description": "request for modify notification status"
+ },
+ "DeliveryOptionDTO": {
+ "type": "object",
+ "properties": {
+ "deliveryType": {
+ "type": "string",
+ "description": "delivery type"
+ },
+ "leadTime": {
+ "type": "string",
+ "description": "lead time"
+ },
+ "amount": {
+ "type": "number",
+ "description": "amount"
+ },
+ "status": {
+ "type": "boolean",
+ "description": "status"
+ },
+ "currencyCode": {
+ "type": "string",
+ "description": "currencyCode"
+ },
+ "asDefault": {
+ "type": "boolean",
+ "description": "as default"
+ }
+ }
+ },
+ "DeliveryOptionListDTO": {
+ "type": "object",
+ "properties": {
+ "storeName": {
+ "type": "string"
+ },
+ "storeCode": {
+ "type": "string"
+ },
+ "deliveryOptionDTOList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DeliveryOptionDTO"
+ }
+ },
+ "amount": {
+ "type": "number",
+ "description": "amount"
+ }
+ }
+ },
+ "DeliveryQuery": {
+ "required": [
+ "deliveryType",
+ "storeCode"
+ ],
+ "type": "object",
+ "properties": {
+ "storeCode": {
+ "type": "string",
+ "description": "Store Code"
+ },
+ "deliveryType": {
+ "type": "string",
+ "description": "Delivery Type"
+ },
+ "orderQuantity": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "orderNetAmount": {
+ "type": "number"
+ }
+ },
+ "description": "Query for delivery fee"
+ },
+ "CartItemBatchAddCmd": {
+ "required": [
+ "addedTime",
+ "itemId",
+ "quantity",
+ "storeCode"
+ ],
+ "type": "object",
+ "properties": {
+ "itemId": {
+ "type": "string",
+ "description": "Product Id of item"
+ },
+ "quantity": {
+ "type": "integer",
+ "description": "Quantity of item",
+ "format": "int32"
+ },
+ "storeCode": {
+ "type": "string",
+ "description": "storeCode of item"
+ },
+ "storeName": {
+ "type": "string",
+ "description": "storeName of item"
+ },
+ "addedTime": {
+ "type": "string",
+ "description": "Added time",
+ "format": "date-time"
+ }
+ }
+ },
+ "CartDTO": {
+ "type": "object",
+ "properties": {
+ "totalQuantity": {
+ "type": "integer",
+ "description": "Total quantity of all items.",
+ "format": "int32"
+ },
+ "totalAmount": {
+ "type": "number",
+ "description": "Total amount of all items."
+ },
+ "discountedRate": {
+ "type": "number",
+ "description": "Total discounted rate of all items.",
+ "format": "float"
+ },
+ "discountedAmount": {
+ "type": "number",
+ "description": "Total discounted amount of all items."
+ },
+ "subTotalAmount": {
+ "type": "number",
+ "description": "Subtotal amount of all items."
+ },
+ "currency": {
+ "type": "string",
+ "description": "Currency code of amount."
+ },
+ "items": {
+ "type": "array",
+ "description": "Item list of cart.",
+ "items": {
+ "$ref": "#/components/schemas/CartItemDTO"
+ }
+ }
+ },
+ "description": "DTO for cart information."
+ },
+ "CartItemDTO": {
+ "type": "object",
+ "properties": {
+ "selected": {
+ "type": "boolean"
+ },
+ "quantity": {
+ "type": "integer",
+ "description": "Quantity of the item.",
+ "format": "int32"
+ },
+ "originalAmount": {
+ "type": "number",
+ "description": "Total amount of original price."
+ },
+ "originalAmountWithTax": {
+ "type": "number",
+ "description": "Total amount of original price with tax."
+ },
+ "customerAmount": {
+ "type": "number",
+ "description": "Customer amount of customer price."
+ },
+ "addedTime": {
+ "type": "string",
+ "description": "The time the item was added to the cart.",
+ "format": "date-time"
+ },
+ "product": {
+ "$ref": "#/components/schemas/CartItemProductDTO"
+ },
+ "storeName": {
+ "type": "string",
+ "description": "store name."
+ },
+ "storeCode": {
+ "type": "string",
+ "description": "store name."
+ },
+ "currency": {
+ "type": "string",
+ "description": "currency."
+ },
+ "existInWishlist": {
+ "type": "boolean",
+ "description": "the product has existed in wishlist."
+ }
+ },
+ "description": "DTO for cart item information."
+ },
+ "CartItemProductDTO": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identity of product."
+ },
+ "spuCode": {
+ "type": "string",
+ "description": "spuCode of product."
+ },
+ "spuName": {
+ "type": "string",
+ "description": "spuCode of product."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of product."
+ },
+ "salesCategoryName": {
+ "type": "string",
+ "description": "Name of sales category."
+ },
+ "brandName": {
+ "type": "string",
+ "description": "Name of brand."
+ },
+ "listPrice": {
+ "type": "number",
+ "description": "Original price of product."
+ },
+ "customerPrice": {
+ "type": "number",
+ "description": "Discount price of product."
+ },
+ "imageUrl": {
+ "type": "string",
+ "description": "Image url of product."
+ },
+ "saleableQty": {
+ "type": "integer",
+ "description": "saleable qty.",
+ "format": "int32"
+ },
+ "shelfStatus": {
+ "type": "integer",
+ "description": "On and off state, 1 on and 2 off.",
+ "format": "int32"
+ },
+ "maxOrderQty": {
+ "type": "integer",
+ "description": "max order qty of product.",
+ "format": "int32"
+ },
+ "sessions": {
+ "type": "array",
+ "description": "Session list of learning object instance.",
+ "items": {
+ "$ref": "#/components/schemas/SessionDTO"
+ }
+ },
+ "saleAttributes": {
+ "type": "array",
+ "description": "Sale attributes.",
+ "items": {
+ "type": "string",
+ "description": "Sale attributes."
+ }
+ },
+ "saleAttributesMap": {
+ "type": "array",
+ "description": "new Sale attributes.",
+ "items": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "description": "new Sale attributes."
+ },
+ "description": "new Sale attributes."
+ }
+ },
+ "listPriceWithTax": {
+ "type": "number",
+ "description": "List price with tax."
+ }
+ },
+ "description": "DTO for product information."
+ },
+ "SessionDTO": {
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string"
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "description": "Session list of learning object instance."
+ },
+ "CartItemAddCmd": {
+ "required": [
+ "itemId",
+ "quantity",
+ "storeCode"
+ ],
+ "type": "object",
+ "properties": {
+ "itemId": {
+ "type": "string",
+ "description": "Product Id of item"
+ },
+ "quantity": {
+ "type": "integer",
+ "description": "Quantity of item",
+ "format": "int32"
+ },
+ "storeCode": {
+ "type": "string",
+ "description": "storeCode of item"
+ },
+ "storeName": {
+ "type": "string",
+ "description": "storeName of item"
+ }
+ },
+ "description": "Command for adding item to shopping cart."
+ },
+ "CartItemQuantityChangeCmd": {
+ "type": "object",
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CartItemAddCmd"
+ }
+ }
+ },
+ "description": "Command for changing quantity of item."
+ },
+ "CartItemBatchAddV2Cmd": {
+ "required": [
+ "items"
+ ],
+ "type": "object",
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CartItemAddCmd"
+ }
+ },
+ "currencyCode": {
+ "type": "string"
+ }
+ }
+ },
+ "CartItemBatchAddCmdRespResult": {
+ "type": "object",
+ "properties": {
+ "skuCode": {
+ "type": "string",
+ "description": "Sku code.",
+ "example": "1223"
+ },
+ "spuCode": {
+ "type": "string",
+ "description": "Spu code.",
+ "example": "1223"
+ },
+ "quantity": {
+ "type": "integer",
+ "description": "Quantity.",
+ "format": "int32",
+ "example": 10
+ },
+ "message": {
+ "type": "string",
+ "description": "Message.",
+ "example": "Currently unavailable"
+ },
+ "skuName": {
+ "type": "string",
+ "description": "Sku name.",
+ "example": "IGORA"
+ },
+ "listPrice": {
+ "type": "number",
+ "description": "Original price of product."
+ },
+ "customerPrice": {
+ "type": "number",
+ "description": "Discount price of product."
+ },
+ "currency": {
+ "type": "string",
+ "description": "currency."
+ },
+ "storeCode": {
+ "type": "string",
+ "description": "storeCode of item"
+ }
+ },
+ "description": "Identity of sales order.",
+ "example": 109594362665033730
+ },
+ "CartItemBatchAddCmdResult": {
+ "type": "object",
+ "properties": {
+ "errorList": {
+ "type": "array",
+ "description": "Identity of sales order.",
+ "example": 109594362665033730,
+ "items": {
+ "$ref": "#/components/schemas/CartItemBatchAddCmdRespResult"
+ }
+ },
+ "successList": {
+ "type": "array",
+ "description": "Identity of sales order.",
+ "example": 109594362665033730,
+ "items": {
+ "$ref": "#/components/schemas/CartItemBatchAddCmdRespResult"
+ }
+ },
+ "errorNumber": {
+ "type": "integer",
+ "description": "Error number.",
+ "format": "int32",
+ "example": 109594362665033730
+ },
+ "totalNumber": {
+ "type": "integer",
+ "description": "Batch Add Total number.",
+ "format": "int32",
+ "example": 109594362665033730
+ },
+ "successNumber": {
+ "type": "integer",
+ "description": "Success number.",
+ "format": "int32",
+ "example": 109594362665033730
+ }
+ }
+ },
+ "Pagination": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "totalPage": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "total": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "description": "page info for items"
+ },
+ "WishlistDTO": {
+ "type": "object",
+ "properties": {
+ "currency": {
+ "type": "string",
+ "description": "currency"
+ },
+ "items": {
+ "type": "array",
+ "description": "DTO for Wish list item ",
+ "items": {
+ "$ref": "#/components/schemas/WishlistItemDTO"
+ }
+ },
+ "pagination": {
+ "$ref": "#/components/schemas/Pagination"
+ }
+ },
+ "description": "DTO for wish list information."
+ },
+ "WishlistItemDTO": {
+ "type": "object",
+ "properties": {
+ "itemId": {
+ "type": "integer",
+ "description": "Item id",
+ "format": "int32"
+ },
+ "storeCode": {
+ "type": "string",
+ "description": "Code of store"
+ },
+ "storeName": {
+ "type": "string",
+ "description": "Name of store"
+ },
+ "addTime": {
+ "type": "string",
+ "description": "Add time",
+ "format": "date-time"
+ },
+ "product": {
+ "$ref": "#/components/schemas/WishlistItemProductDTO"
+ }
+ },
+ "description": "DTO for wish list information."
+ },
+ "WishlistItemProductDTO": {
+ "type": "object",
+ "properties": {
+ "spuCode": {
+ "type": "string",
+ "description": "spuCode of product."
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of product."
+ },
+ "listPrice": {
+ "type": "number",
+ "description": "Original price of product."
+ },
+ "customerPrice": {
+ "type": "number",
+ "description": "Discount price of product."
+ },
+ "imageUrl": {
+ "type": "string",
+ "description": "Image url of product."
+ },
+ "skuCode": {
+ "type": "string",
+ "description": "skuCode of sku"
+ },
+ "saleableQty": {
+ "type": "integer",
+ "description": "saleable qty.",
+ "format": "int64"
+ },
+ "shelfStatus": {
+ "type": "integer",
+ "description": "On and off state, 1 on and 2 off.",
+ "format": "int32"
+ },
+ "saleAttributes": {
+ "type": "array",
+ "description": "Sale attributes.",
+ "items": {
+ "type": "string",
+ "description": "Sale attributes."
+ }
+ }
+ },
+ "description": "DTO for product information."
+ },
+ "BillingAddress": {
+ "required": [
+ "addressId",
+ "city",
+ "country",
+ "deliveryAddress",
+ "deliveryAddress2",
+ "firstName",
+ "lastName",
+ "state",
+ "zipCode"
+ ],
+ "type": "object",
+ "properties": {
+ "addressId": {
+ "type": "string",
+ "description": "Consignee address id"
+ },
+ "firstName": {
+ "type": "string",
+ "description": "Consignee first name"
+ },
+ "lastName": {
+ "type": "string",
+ "description": "Consignee last name"
+ },
+ "email": {
+ "type": "string",
+ "description": "Consignee email"
+ },
+ "phone": {
+ "type": "string",
+ "description": "Consignee phone"
+ },
+ "companyName": {
+ "type": "string",
+ "description": "Consignee company name"
+ },
+ "deliveryAddress": {
+ "type": "string",
+ "description": "Consignee delivery address"
+ },
+ "deliveryAddress2": {
+ "type": "string",
+ "description": "Consignee delivery address 2"
+ },
+ "zipCode": {
+ "type": "string",
+ "description": "Zip Code"
+ },
+ "country": {
+ "type": "string",
+ "description": "Consignee country"
+ },
+ "state": {
+ "type": "string",
+ "description": "Consignee state"
+ },
+ "city": {
+ "type": "string",
+ "description": "Consignee city"
+ }
+ },
+ "description": "Billing Address,If user have default address,it will be displayed"
+ },
+ "ShippingAddress": {
+ "required": [
+ "addressId",
+ "city",
+ "country",
+ "deliveryAddress",
+ "deliveryAddress2",
+ "firstName",
+ "lastName",
+ "state",
+ "zipCode"
+ ],
+ "type": "object",
+ "properties": {
+ "addressId": {
+ "type": "string",
+ "description": "Consignee address id"
+ },
+ "firstName": {
+ "type": "string",
+ "description": "Consignee first name"
+ },
+ "lastName": {
+ "type": "string",
+ "description": "Consignee last name"
+ },
+ "email": {
+ "type": "string",
+ "description": "Consignee email"
+ },
+ "phone": {
+ "type": "string",
+ "description": "Consignee phone"
+ },
+ "companyName": {
+ "type": "string",
+ "description": "Consignee company name"
+ },
+ "deliveryAddress": {
+ "type": "string",
+ "description": "Consignee delivery address"
+ },
+ "deliveryAddress2": {
+ "type": "string",
+ "description": "Consignee delivery address 2"
+ },
+ "zipCode": {
+ "type": "string",
+ "description": "Zip Code"
+ },
+ "country": {
+ "type": "string",
+ "description": "Consignee country"
+ },
+ "state": {
+ "type": "string",
+ "description": "Consignee state"
+ },
+ "city": {
+ "type": "string",
+ "description": "Consignee city"
+ }
+ },
+ "description": "Shipping Address,If user have default address,it will be displayed"
+ },
+ "UserInfo": {
+ "required": [
+ "email",
+ "firstName",
+ "lastName",
+ "phone"
+ ],
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "User Email."
+ },
+ "phone": {
+ "type": "string",
+ "description": "User Phone."
+ },
+ "firstName": {
+ "type": "string",
+ "description": "first name"
+ },
+ "lastName": {
+ "type": "string",
+ "description": "last name"
+ }
+ },
+ "description": "User Information"
+ },
+ "UserInfoDTO": {
+ "required": [
+ "userInfo"
+ ],
+ "type": "object",
+ "properties": {
+ "userInfo": {
+ "$ref": "#/components/schemas/UserInfo"
+ },
+ "defaultShippingAddress": {
+ "$ref": "#/components/schemas/ShippingAddress"
+ },
+ "defaultBillingAddress": {
+ "$ref": "#/components/schemas/BillingAddress"
+ }
+ },
+ "description": "DTO for user information."
+ },
+ "SellerInfoDTO": {
+ "required": [
+ "contactEmail",
+ "contactName",
+ "contactPhone"
+ ],
+ "type": "object",
+ "properties": {
+ "contactName": {
+ "type": "string",
+ "description": "Seller Contact Name."
+ },
+ "contactEmail": {
+ "type": "string",
+ "description": "Seller Contact Email."
+ },
+ "contactPhone": {
+ "type": "string",
+ "description": "Seller Contact Phone."
+ }
+ },
+ "description": "DTO for seller information."
+ },
+ "ContactInfo": {
+ "required": [
+ "email",
+ "phone"
+ ],
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "User Email."
+ },
+ "phone": {
+ "type": "string",
+ "description": "User Phone."
+ },
+ "companyName": {
+ "type": "string",
+ "description": "Consignee company name"
+ }
+ },
+ "description": "User Contact Information"
+ },
+ "UserContactInfoDTO": {
+ "required": [
+ "contactInfo"
+ ],
+ "type": "object",
+ "properties": {
+ "contactInfo": {
+ "$ref": "#/components/schemas/ContactInfo"
+ },
+ "shippingAddress": {
+ "$ref": "#/components/schemas/ShippingAddress"
+ },
+ "billingAddress": {
+ "$ref": "#/components/schemas/BillingAddress"
+ }
+ },
+ "description": "DTO for user contact information."
+ },
+ "ShippingAddressDTO": {
+ "required": [
+ "addressId",
+ "city",
+ "country",
+ "deliveryAddress",
+ "deliveryAddress2",
+ "firstName",
+ "lastName",
+ "state",
+ "zipCode"
+ ],
+ "type": "object",
+ "properties": {
+ "addressId": {
+ "type": "integer",
+ "description": "Address ID",
+ "format": "int32"
+ },
+ "firstName": {
+ "type": "string",
+ "description": "Consignee first name"
+ },
+ "lastName": {
+ "type": "string",
+ "description": "Consignee last name"
+ },
+ "email": {
+ "type": "string",
+ "description": "Consignee email"
+ },
+ "phone": {
+ "type": "string",
+ "description": "Consignee phone"
+ },
+ "companyName": {
+ "type": "string",
+ "description": "Consignee company name"
+ },
+ "deliveryAddress": {
+ "type": "string",
+ "description": "Consignee delivery address"
+ },
+ "deliveryAddress2": {
+ "type": "string",
+ "description": "Consignee delivery address 2"
+ },
+ "zipCode": {
+ "pattern": "[0-9]*",
+ "type": "string",
+ "description": "Consignee ZIP code"
+ },
+ "country": {
+ "type": "string",
+ "description": "Consignee country"
+ },
+ "state": {
+ "type": "string",
+ "description": "Consignee state"
+ },
+ "city": {
+ "type": "string",
+ "description": "Consignee city"
+ },
+ "isDefault": {
+ "type": "boolean",
+ "description": "Is default address or not",
+ "default": false
+ }
+ },
+ "description": "DTO for shipping address"
+ },
+ "CountryDTO": {
+ "required": [
+ "countryName"
+ ],
+ "type": "object",
+ "properties": {
+ "countryName": {
+ "type": "array",
+ "description": "List of country name",
+ "items": {
+ "type": "string",
+ "description": "List of country name"
+ }
+ }
+ },
+ "description": "DTO for global countries"
+ },
+ "PricesDTO": {
+ "type": "object",
+ "properties": {
+ "regular": {
+ "type": "number",
+ "description": "regular price."
+ },
+ "special": {
+ "type": "number",
+ "description": "special price."
+ },
+ "regularWithTax": {
+ "type": "number",
+ "description": "regular price with tax."
+ },
+ "currency": {
+ "type": "string",
+ "description": "currency."
+ }
+ },
+ "description": "DTO of Price."
+ },
+ "SkuAttributeDTO": {
+ "type": "object",
+ "properties": {
+ "attributeName": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "isColor": {
+ "type": "boolean"
+ }
+ },
+ "description": "sale attr list."
+ },
+ "SkuDistributorDTO": {
+ "type": "object",
+ "properties": {
+ "skuCode": {
+ "type": "string",
+ "description": "sku code."
+ },
+ "distributorCount": {
+ "type": "integer",
+ "description": "sale distributor count.",
+ "format": "int64"
+ },
+ "prices": {
+ "$ref": "#/components/schemas/PricesDTO"
+ },
+ "skuAttrList": {
+ "type": "array",
+ "description": "sku attr list.",
+ "items": {
+ "type": "string",
+ "description": "sku attr list."
+ }
+ },
+ "spuName": {
+ "type": "string",
+ "description": "spu name."
+ },
+ "skuImageUrl": {
+ "type": "string",
+ "description": "sku image url."
+ },
+ "description": {
+ "type": "string",
+ "description": "product description."
+ },
+ "saleAttributesList": {
+ "type": "array",
+ "description": "sale attr list.",
+ "items": {
+ "$ref": "#/components/schemas/SkuAttributeDTO"
+ }
+ },
+ "shelfStatus": {
+ "type": "integer",
+ "description": "On and off state, 1 on and 2 off.",
+ "format": "int32"
+ },
+ "saleableQty": {
+ "type": "integer",
+ "description": "Saleable quantity.",
+ "format": "int64"
+ },
+ "storeCode": {
+ "type": "string",
+ "description": "Store code."
+ }
+ },
+ "description": "DTO of sku distributor."
+ },
+ "PageableDTOProductDTO": {
+ "type": "object",
+ "properties": {
+ "list": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ProductDTO"
+ }
+ },
+ "pagination": {
+ "$ref": "#/components/schemas/Pagination"
+ }
+ }
+ },
+ "ProductDTO": {
+ "type": "object",
+ "properties": {
+ "productName": {
+ "type": "string",
+ "description": "product Name."
+ },
+ "spuCode": {
+ "type": "string",
+ "description": "spu code."
+ },
+ "imageUrl": {
+ "type": "array",
+ "description": "image url.",
+ "items": {
+ "type": "string",
+ "description": "image url."
+ }
+ },
+ "saleCategory": {
+ "type": "array",
+ "description": "sale category.",
+ "items": {
+ "type": "string",
+ "description": "sale category."
+ }
+ },
+ "price": {
+ "type": "number",
+ "description": "price."
+ },
+ "currency": {
+ "type": "string",
+ "description": "currency."
+ },
+ "availability": {
+ "type": "integer",
+ "description": "availability: 0 in stock,1 out of stock.",
+ "format": "int32"
+ }
+ },
+ "description": "DTO of product."
+ },
+ "DistributorFilterDTO": {
+ "type": "object",
+ "properties": {
+ "storeName": {
+ "type": "string",
+ "description": "store name."
+ },
+ "storeCode": {
+ "type": "string",
+ "description": "store code."
+ }
+ },
+ "description": "DistributorFilterDTO."
+ },
+ "FilterDTO": {
+ "type": "object",
+ "properties": {
+ "distributor": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DistributorFilterDTO"
+ }
+ }
+ },
+ "description": "DTO of filterDTO."
+ },
+ "ProductDistributorDTO": {
+ "type": "object",
+ "properties": {
+ "skuCode": {
+ "type": "string",
+ "description": "sku code."
+ },
+ "saleableQty": {
+ "type": "integer",
+ "description": "saleable qty.",
+ "format": "int64"
+ },
+ "badges": {
+ "type": "array",
+ "description": "badges.",
+ "items": {
+ "type": "string",
+ "description": "badges."
+ }
+ },
+ "store": {
+ "$ref": "#/components/schemas/StoreDTO"
+ },
+ "prices": {
+ "$ref": "#/components/schemas/PricesDTO"
+ },
+ "skuImageUrl": {
+ "type": "string",
+ "description": "sku image url."
+ },
+ "existInWishlist": {
+ "type": "boolean",
+ "description": "the product has existed in wishlist."
+ },
+ "shelfStatus": {
+ "type": "integer",
+ "description": "On and off state, 1 on and 2 off.",
+ "format": "int32"
+ },
+ "maxOrderQty": {
+ "type": "integer",
+ "description": "max order qty",
+ "format": "int32"
+ }
+ },
+ "description": "DTO of product Distributor ."
+ },
+ "StoreDTO": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "store code."
+ },
+ "name": {
+ "type": "string",
+ "description": "store name."
+ },
+ "logoUrl": {
+ "type": "string",
+ "description": "store logoUrl."
+ },
+ "rating": {
+ "type": "number",
+ "description": "store rating."
+ },
+ "description": {
+ "type": "string",
+ "description": "store description"
+ }
+ },
+ "description": "DTO of store."
+ },
+ "CardDTO": {
+ "type": "object",
+ "properties": {
+ "brand": {
+ "type": "string",
+ "description": "The card brand mastercard/visa/",
+ "example": "visa"
+ },
+ "country": {
+ "type": "string",
+ "description": "Country",
+ "example": "us"
+ },
+ "expMonth": {
+ "type": "integer",
+ "description": "Expiration time month",
+ "format": "int64",
+ "example": 1
+ },
+ "expYear": {
+ "type": "integer",
+ "description": "Expiration time year",
+ "format": "int64",
+ "example": 2022
+ },
+ "funding": {
+ "type": "string",
+ "description": "The card funding credit/debit/",
+ "example": "debit"
+ },
+ "last4": {
+ "type": "string",
+ "description": "Four digits after the card number",
+ "example": "1023"
+ },
+ "expired": {
+ "type": "boolean",
+ "description": "Whether the card has expired",
+ "example": false
+ },
+ "quickPayNumber": {
+ "type": "string",
+ "description": "The customer paymethod id",
+ "example": "ture"
+ }
+ },
+ "description": "Customer card info list."
+ },
+ "CustomerCardInfoDTO": {
+ "type": "object",
+ "properties": {
+ "payCustomerId": {
+ "type": "string",
+ "description": "Pay customer Id.",
+ "example": "cus_MO5QVytWUMBvzH"
+ },
+ "accountId": {
+ "type": "string",
+ "description": "Customer Id.",
+ "example": "c082a2dc-7a79-431d-ab09-9e15443eef4d"
+ },
+ "cardList": {
+ "type": "array",
+ "description": "Customer card info list.",
+ "items": {
+ "$ref": "#/components/schemas/CardDTO"
+ }
+ }
+ }
+ },
+ "PageableDTOSalesOrderListDTO": {
+ "type": "object",
+ "properties": {
+ "list": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SalesOrderListDTO"
+ }
+ },
+ "pagination": {
+ "$ref": "#/components/schemas/Pagination"
+ }
+ }
+ },
+ "SalesOrderListDTO": {
+ "type": "object",
+ "properties": {
+ "orderNumber": {
+ "type": "string",
+ "description": "order number"
+ },
+ "totalPrice": {
+ "type": "number",
+ "description": "order total price"
+ },
+ "currency": {
+ "type": "string",
+ "description": "currency"
+ },
+ "orderStatus": {
+ "type": "string",
+ "description": "order status",
+ "enum": [
+ "NEW",
+ "CONFIRMED",
+ "SHIPPED",
+ "COMPLETED",
+ "CANCELLED",
+ "REJECTED",
+ "CLOSED",
+ "PARTIALLY_SHIPPED",
+ "ACKNOWLEDGED",
+ "PARTIALLY_ACKNOWLEDGED",
+ "FAILURE",
+ "REVERTED"
+ ]
+ },
+ "paymentStatus": {
+ "type": "string",
+ "description": "paymentStatus",
+ "enum": [
+ "UNPAID",
+ "PAID",
+ "FAILURE",
+ "TIMEOUT_CLOSE",
+ "PARTIAL_REFUND",
+ "REFUNDED",
+ "REFUNDED_FAILURE",
+ "AUTHORIZATION",
+ "AUTHORIZATION_CANCELLED",
+ "CAPTURE_FAILED",
+ "OFFLINE_PAID"
+ ]
+ },
+ "paymentType": {
+ "type": "string",
+ "description": "paymentType",
+ "enum": [
+ "PayPal",
+ "Checkout",
+ "JPMorgan",
+ "Stripe",
+ "Citibank",
+ "NA"
+ ]
+ },
+ "refundOrderStatus": {
+ "type": "string",
+ "description": "refundOrderStatus",
+ "enum": [
+ "NEW",
+ "COMPLETED"
+ ]
+ },
+ "orderTypeStatus": {
+ "type": "string",
+ "description": "order type status",
+ "example": "SALE_ORDER",
+ "enum": [
+ "SALE_ORDER",
+ "REFUND_ORDER"
+ ]
+ },
+ "remainTime": {
+ "type": "integer",
+ "description": "Remain time to pay (s)",
+ "format": "int64",
+ "example": 10
+ },
+ "paymentDeadlineTime": {
+ "type": "string",
+ "description": "payment deadline time",
+ "format": "date-time"
+ },
+ "createTime": {
+ "type": "string",
+ "description": "create time",
+ "format": "date-time"
+ },
+ "version": {
+ "type": "integer",
+ "description": "version",
+ "format": "int32"
+ },
+ "updateTime": {
+ "type": "string",
+ "description": "update time",
+ "format": "date-time"
+ }
+ },
+ "description": "Order list"
+ },
+ "SalesOrderDetailAddressDTO": {
+ "type": "object",
+ "properties": {
+ "firstName": {
+ "type": "string",
+ "description": "First name of customer.",
+ "example": "Kevin"
+ },
+ "lastName": {
+ "type": "string",
+ "description": "Last name of customer.",
+ "example": "Xu"
+ },
+ "streetAddress": {
+ "type": "string",
+ "description": "Street of address.",
+ "example": "Raiffeisenstr 30"
+ },
+ "streetAddress2": {
+ "type": "string",
+ "description": "Street of address.",
+ "example": "Raiffeisenstr 30"
+ },
+ "city": {
+ "type": "string",
+ "description": "City of address.",
+ "example": "Berlin"
+ },
+ "zipCode": {
+ "type": "string",
+ "description": "City of address.",
+ "example": "85356"
+ },
+ "state": {
+ "type": "string",
+ "description": "State of address.",
+ "example": "Berlin"
+ },
+ "country": {
+ "type": "string",
+ "description": "Country of address.",
+ "example": "Germany"
+ },
+ "companyName": {
+ "type": "string",
+ "description": "CompanyName of address.",
+ "example": "Henkel"
+ },
+ "email": {
+ "type": "string",
+ "description": "Email of address.",
+ "example": "alan1@henkel.com"
+ },
+ "phone": {
+ "type": "string",
+ "description": "Phone of address.",
+ "example": "14523453355"
+ }
+ },
+ "description": "Billing address of the sales order."
+ },
+ "SalesOrderDetailCustomerDTO": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "Email address of customer.",
+ "example": "test@test.com"
+ },
+ "phone": {
+ "type": "string",
+ "description": "Phone number of customer.",
+ "example": "+8612345678901"
+ }
+ },
+ "description": "Information of customer."
+ },
+ "SalesOrderDetailDTO": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identity of the sales order.",
+ "example": "1234567890"
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of sales order.",
+ "example": "Paid"
+ },
+ "submitTime": {
+ "type": "string",
+ "description": "The time placed.",
+ "example": "2022-06-18T07:31:23.917+02:00"
+ },
+ "cancelTime": {
+ "type": "string",
+ "description": "Time to cancel the order.",
+ "example": "2022-06-18T07:31:23.917+02:00"
+ },
+ "itemTotalAmount": {
+ "type": "number",
+ "description": "The total amount of all items.",
+ "example": 200.5
+ },
+ "shippingFees": {
+ "type": "number",
+ "description": "Amount of shipping fees.",
+ "example": 10.5
+ },
+ "tax": {
+ "type": "number",
+ "description": "Amount of tax.",
+ "example": 2.5
+ },
+ "totalAmount": {
+ "type": "number",
+ "description": "The actual amount to be paid of all items.",
+ "example": 180.5
+ },
+ "currency": {
+ "type": "string",
+ "description": "The currency code.",
+ "example": "EUR"
+ },
+ "customer": {
+ "$ref": "#/components/schemas/SalesOrderDetailCustomerDTO"
+ },
+ "shippingAddress": {
+ "$ref": "#/components/schemas/SalesOrderDetailAddressDTO"
+ },
+ "billingAddress": {
+ "$ref": "#/components/schemas/SalesOrderDetailAddressDTO"
+ },
+ "updateTime": {
+ "type": "string",
+ "description": "Update timestamp of the sales order.",
+ "format": "date-time"
+ },
+ "deliveries": {
+ "type": "array",
+ "description": "Delivery list.",
+ "items": {
+ "$ref": "#/components/schemas/SalesOrderDetailDeliveryDTO"
+ }
+ },
+ "items": {
+ "type": "array",
+ "description": "Item list of the sales order.",
+ "items": {
+ "$ref": "#/components/schemas/SalesOrderDetailItemDTO"
+ }
+ },
+ "payment": {
+ "$ref": "#/components/schemas/SalesOrderDetailPaymentDTO"
+ },
+ "customerBoNumber": {
+ "type": "string",
+ "description": "Customer Bo Number"
+ }
+ }
+ },
+ "SalesOrderDetailDeliveryDTO": {
+ "type": "object",
+ "properties": {
+ "trackingNumber": {
+ "type": "string",
+ "description": "Tracking number.",
+ "example": "1234567890"
+ },
+ "trackingUrl": {
+ "type": "string",
+ "description": "Tracking url of delivery.",
+ "example": "https://a.com/b"
+ },
+ "deliveryNumber": {
+ "type": "string",
+ "description": "Delivery number.",
+ "example": "1234567890"
+ },
+ "deliverName": {
+ "type": "string",
+ "description": "Delivery name.",
+ "example": "SAP"
+ },
+ "shippingTime": {
+ "type": "string",
+ "description": "Shipping time.",
+ "example": "2022-08-10 00:00:00"
+ },
+ "shippingTimeWithZoneId": {
+ "type": "string",
+ "description": "Shipping time with zone id.",
+ "format": "date-time",
+ "example": "2022-08-01T00:00:00Z"
+ },
+ "carrierName": {
+ "type": "string",
+ "description": "Carrier Name.",
+ "example": "DHL Paket GmbH"
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of delivery.",
+ "example": "Shipping"
+ },
+ "items": {
+ "type": "array",
+ "description": "Item list of the sales order.",
+ "items": {
+ "$ref": "#/components/schemas/OrderItem"
+ }
+ },
+ "remark": {
+ "type": "string",
+ "description": "Remark of delivery.",
+ "example": "remark"
+ }
+ },
+ "description": "Delivery list."
+ },
+ "SalesOrderDetailItemDTO": {
+ "type": "object",
+ "properties": {
+ "orderItemId": {
+ "type": "string",
+ "description": "Id of sales order item",
+ "example": "1001"
+ },
+ "seller": {
+ "type": "string",
+ "description": "Name of seller.",
+ "example": "Test Seller"
+ },
+ "quantity": {
+ "type": "integer",
+ "description": "Quantity of order item.",
+ "format": "int32",
+ "example": 2
+ },
+ "customerPrice": {
+ "type": "number",
+ "description": "Customer price of order item.",
+ "example": 100.5
+ },
+ "listPrice": {
+ "type": "number",
+ "description": "List price of order item.",
+ "example": 120.5
+ },
+ "totalAmount": {
+ "type": "number",
+ "description": "Total amount of current order item.",
+ "example": 241
+ },
+ "product": {
+ "$ref": "#/components/schemas/SalesOrderDetailProductDTO"
+ },
+ "orderItemStatus": {
+ "type": "string",
+ "description": "order status",
+ "enum": [
+ "NEW",
+ "ACKNOWLEDGED",
+ "CONFIRMED",
+ "SHIPPED",
+ "COMPLETED",
+ "CANCELLED",
+ "REJECTED",
+ "Closed",
+ "REVERTED"
+ ]
+ },
+ "paymentStatus": {
+ "type": "string",
+ "description": "paymentStatus"
+ }
+ },
+ "description": "Item list of the sales order."
+ },
+ "SalesOrderDetailPaymentDTO": {
+ "type": "object",
+ "properties": {
+ "method": {
+ "type": "string",
+ "description": "Payment method.",
+ "example": "Credit Card"
+ },
+ "time": {
+ "type": "string",
+ "description": "Payment time.",
+ "example": "2022-06-18T07:31:23.917+02:00"
+ }
+ },
+ "description": "Payment information of the sales order."
+ },
+ "SalesOrderDetailProductDTO": {
+ "type": "object",
+ "properties": {
+ "storeCode": {
+ "type": "string",
+ "description": "Store code of current product.",
+ "example": "SC0001"
+ },
+ "spuCode": {
+ "type": "string",
+ "description": "Code of SPU.",
+ "example": "SPU0001"
+ },
+ "skuCode": {
+ "type": "string",
+ "description": "Code of SKU.",
+ "example": "SKU0001"
+ },
+ "idh": {
+ "type": "string",
+ "description": "IDH number of product.",
+ "example": "1234567890"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of product.",
+ "example": "Loctite 272"
+ },
+ "imgUrl": {
+ "type": "string",
+ "description": "Image url of product.",
+ "example": "https://a.com/no01"
+ }
+ },
+ "description": "Product information of current item."
+ },
+ "SalesOrderInvoiceDTO": {
+ "type": "object",
+ "properties": {
+ "invoiceSerialNumber": {
+ "type": "string",
+ "description": "invoice number"
+ },
+ "orderNumber": {
+ "type": "string",
+ "description": "order number"
+ },
+ "invoiceLinkUrl": {
+ "type": "string",
+ "description": "invoice pdf url"
+ }
+ },
+ "description": "sales order invoice"
+ },
+ "SalesOrderAnonymousDTO": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identity of the sales order.",
+ "example": "1234567890"
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of the sales order.",
+ "example": "New"
+ },
+ "createdTime": {
+ "type": "string",
+ "description": "The time placed.",
+ "example": "2022-06-18T07:31:23.917+02:00"
+ },
+ "totalQuantity": {
+ "type": "integer",
+ "description": "The total quantity of products.",
+ "format": "int32",
+ "example": 15
+ },
+ "items": {
+ "type": "array",
+ "description": "Item list of the sales order.",
+ "items": {
+ "$ref": "#/components/schemas/SalesOrderAnonymousItemDTO"
+ }
+ },
+ "trackingUrl": {
+ "type": "array",
+ "description": "Tracking url of delivery.",
+ "items": {
+ "type": "string",
+ "description": "Tracking url of delivery."
+ }
+ }
+ }
+ },
+ "SalesOrderAnonymousItemDTO": {
+ "type": "object",
+ "properties": {
+ "quantity": {
+ "type": "integer",
+ "description": "Quantity of order item.",
+ "format": "int32",
+ "example": 2
+ },
+ "product": {
+ "$ref": "#/components/schemas/SalesOrderAnonymousProductDTO"
+ }
+ },
+ "description": "Item list of the sales order."
+ },
+ "SalesOrderAnonymousProductDTO": {
+ "type": "object",
+ "properties": {
+ "spuCode": {
+ "type": "string",
+ "description": "Code of SPU."
+ },
+ "skuCode": {
+ "type": "string",
+ "description": "Code of product.",
+ "example": "833982"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of product.",
+ "example": "Loctite 272"
+ },
+ "imgUrl": {
+ "type": "string",
+ "description": "Image url of product.",
+ "example": "https://a.com/no01"
+ },
+ "salesAttributes": {
+ "type": "array",
+ "description": "Sales attributes.",
+ "items": {
+ "type": "string",
+ "description": "Sales attributes."
+ }
+ }
+ },
+ "description": "Product information of current item."
+ },
+ "NotificationListDTO": {
+ "required": [
+ "receiveType"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "description": "id",
+ "format": "int64"
+ },
+ "receiveParentId": {
+ "type": "integer",
+ "description": "receive parent id",
+ "format": "int64"
+ },
+ "fromUserName": {
+ "type": "string",
+ "description": "from user name"
+ },
+ "title": {
+ "type": "string",
+ "description": "notification title"
+ },
+ "bizTag": {
+ "type": "string",
+ "description": "biz tag"
+ },
+ "receiveType": {
+ "type": "integer",
+ "description": "receive type",
+ "format": "int32"
+ },
+ "receiveUser": {
+ "type": "string",
+ "description": "receive user"
+ },
+ "content": {
+ "type": "string",
+ "description": "content"
+ },
+ "receiveStatus": {
+ "type": "string",
+ "description": "receive status",
+ "format": "byte"
+ },
+ "remark": {
+ "type": "string",
+ "description": "remark"
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "createUserName": {
+ "type": "string"
+ },
+ "updateUserName": {
+ "type": "string"
+ },
+ "createTimeWithZoneId": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "orderNumber": {
+ "type": "string"
+ },
+ "trackingUrl": {
+ "type": "string"
+ }
+ },
+ "description": "notification list"
+ },
+ "PageableDTONotificationListDTO": {
+ "type": "object",
+ "properties": {
+ "list": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NotificationListDTO"
+ }
+ },
+ "pagination": {
+ "$ref": "#/components/schemas/Pagination"
+ }
+ }
+ },
+ "UserTokenDTO": {
+ "type": "object",
+ "properties": {
+ "token": {
+ "type": "string",
+ "description": "token."
+ }
+ },
+ "description": "DTO of user token."
+ },
+ "ProductStockDTO": {
+ "type": "object",
+ "properties": {
+ "saleableQty": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "storeCode": {
+ "type": "string"
+ },
+ "lockedQty": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "productId": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "securitySchemes": {
+ "JWT_ACCESS_TOKEN": {
+ "type": "http",
+ "name": "Authorization",
+ "in": "header",
+ "scheme": "Bearer"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/apis/PSS API.openapi.yaml b/apis/PSS API.openapi.yaml
new file mode 100644
index 00000000..96aa0c03
--- /dev/null
+++ b/apis/PSS API.openapi.yaml
@@ -0,0 +1,354 @@
+openapi: 3.0.1
+info:
+ title: PSS API
+ description: Product Status Service API documentation
+ termsOfService: ''
+ contact:
+ name: ''
+ url: ''
+ email: info@henkel.de
+ license:
+ name: unlicensed
+ url: ''
+ version: 0.0.1
+servers:
+ - url: https://app-pss-restapi-uat.azurewebsites.net
+ description: Generated server url
+paths:
+ /api/v1/products/variant/status:
+ get:
+ tags:
+ - public-product-resource
+ operationId: checkVariantProductStatus
+ parameters:
+ - name: code
+ in: query
+ required: true
+ schema:
+ type: string
+ - name: catalogId
+ in: query
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: OK
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/ProductStatusDTO'
+ /api/v1/products/base-product/status:
+ get:
+ tags:
+ - public-product-resource
+ operationId: checkBaseProductStatus
+ parameters:
+ - name: code
+ in: query
+ required: true
+ schema:
+ type: string
+ - name: catalogId
+ in: query
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: OK
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/ProductStatusDTO'
+ /api/v1/channels/{channelId}/variants:
+ get:
+ tags:
+ - public-channel-resource
+ operationId: getVariant
+ parameters:
+ - name: channelId
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: page
+ in: query
+ description: Zero-based page index (0..N)
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ default: 0
+ - name: size
+ in: query
+ description: The size of the page to be returned
+ required: false
+ schema:
+ minimum: 1
+ type: integer
+ default: 20
+ - name: sort
+ in: query
+ description: 'Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.'
+ required: false
+ schema:
+ type: array
+ items:
+ type: string
+ - name: isRaw
+ in: query
+ required: false
+ schema:
+ type: boolean
+ responses:
+ '200':
+ description: OK
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variant'
+ /api/v1/channels/{channelId}/variants/{idh}:
+ get:
+ tags:
+ - public-channel-resource
+ operationId: getVariants
+ parameters:
+ - name: channelId
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: idh
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: page
+ in: query
+ description: Zero-based page index (0..N)
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ default: 0
+ - name: size
+ in: query
+ description: The size of the page to be returned
+ required: false
+ schema:
+ minimum: 1
+ type: integer
+ default: 20
+ - name: sort
+ in: query
+ description: 'Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.'
+ required: false
+ schema:
+ type: array
+ items:
+ type: string
+ - name: isRaw
+ in: query
+ required: false
+ schema:
+ type: boolean
+ responses:
+ '200':
+ description: OK
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variant'
+ /api/v1/channels/{channelId}/products:
+ get:
+ tags:
+ - public-channel-resource
+ operationId: getProduct
+ parameters:
+ - name: channelId
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: page
+ in: query
+ description: Zero-based page index (0..N)
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ default: 0
+ - name: size
+ in: query
+ description: The size of the page to be returned
+ required: false
+ schema:
+ minimum: 1
+ type: integer
+ default: 20
+ - name: sort
+ in: query
+ description: 'Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.'
+ required: false
+ schema:
+ type: array
+ items:
+ type: string
+ - name: isRaw
+ in: query
+ required: false
+ schema:
+ type: boolean
+ responses:
+ '200':
+ description: OK
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/BaseProduct'
+ /api/v1/channels/{channelId}/products/{code}:
+ get:
+ tags:
+ - public-channel-resource
+ operationId: getProducts
+ parameters:
+ - name: channelId
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: code
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: page
+ in: query
+ description: Zero-based page index (0..N)
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ default: 0
+ - name: size
+ in: query
+ description: The size of the page to be returned
+ required: false
+ schema:
+ minimum: 1
+ type: integer
+ default: 20
+ - name: sort
+ in: query
+ description: 'Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.'
+ required: false
+ schema:
+ type: array
+ items:
+ type: string
+ - name: isRaw
+ in: query
+ required: false
+ schema:
+ type: boolean
+ responses:
+ '200':
+ description: OK
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/BaseProduct'
+components:
+ schemas:
+ ProductStatusDTO:
+ type: object
+ properties:
+ input:
+ type: object
+ additionalProperties:
+ type: string
+ active:
+ type: boolean
+ activeChannels:
+ type: object
+ additionalProperties:
+ type: array
+ items:
+ type: string
+ Variant:
+ required:
+ - active
+ - channel
+ - idh
+ type: object
+ properties:
+ idh:
+ maxLength: 2147483647
+ minLength: 3
+ type: string
+ channel:
+ maxLength: 2147483647
+ minLength: 3
+ type: string
+ active:
+ type: boolean
+ activeNow:
+ type: boolean
+ start:
+ type: string
+ format: date-time
+ end:
+ type: string
+ format: date-time
+ country:
+ pattern: ^[A-Z]{2}$
+ type: string
+ reportedState:
+ type: boolean
+ pdhData:
+ type: object
+ additionalProperties:
+ type: object
+ BaseProduct:
+ required:
+ - active
+ - channel
+ - code
+ type: object
+ properties:
+ code:
+ maxLength: 2147483647
+ minLength: 3
+ type: string
+ channel:
+ maxLength: 2147483647
+ minLength: 3
+ type: string
+ active:
+ type: boolean
+ activeNow:
+ type: boolean
+ start:
+ type: string
+ format: date-time
+ end:
+ type: string
+ format: date-time
+ country:
+ pattern: ^[A-Z]{2}$
+ type: string
+ reportedState:
+ type: boolean
+ pdhData:
+ type: object
+ additionalProperties:
+ type: object
diff --git a/apis/PSS.json b/apis/PSS.json
new file mode 100644
index 00000000..8f6e7682
--- /dev/null
+++ b/apis/PSS.json
@@ -0,0 +1,539 @@
+{
+ "openapi": "3.0.1",
+ "info": {
+ "title": "PSS API",
+ "description": "Product Status Service API documentation",
+ "termsOfService": "",
+ "contact": {
+ "name": "",
+ "url": "",
+ "email": "info@henkel.de"
+ },
+ "license": {
+ "name": "unlicensed",
+ "url": ""
+ },
+ "version": "0.0.1"
+ },
+ "servers": [
+ {
+ "url": "https://app-pss-restapi-uat.azurewebsites.net",
+ "description": "Generated server url"
+ }
+ ],
+ "paths": {
+ "/api/v1/products/variant/status": {
+ "get": {
+ "tags": [
+ "public-product-resource"
+ ],
+ "operationId": "checkVariantProductStatus",
+ "parameters": [
+ {
+ "name": "code",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "catalogId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/ProductStatusDTO"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v1/products/base-product/status": {
+ "get": {
+ "tags": [
+ "public-product-resource"
+ ],
+ "operationId": "checkBaseProductStatus",
+ "parameters": [
+ {
+ "name": "code",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "catalogId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/ProductStatusDTO"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v1/channels/{channelId}/variants": {
+ "get": {
+ "tags": [
+ "public-channel-resource"
+ ],
+ "operationId": "getVariant",
+ "parameters": [
+ {
+ "name": "channelId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "page",
+ "in": "query",
+ "description": "Zero-based page index (0..N)",
+ "required": false,
+ "schema": {
+ "minimum": 0,
+ "type": "integer",
+ "default": 0
+ }
+ },
+ {
+ "name": "size",
+ "in": "query",
+ "description": "The size of the page to be returned",
+ "required": false,
+ "schema": {
+ "minimum": 1,
+ "type": "integer",
+ "default": 20
+ }
+ },
+ {
+ "name": "sort",
+ "in": "query",
+ "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "name": "isRaw",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Variant"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v1/channels/{channelId}/variants/{idh}": {
+ "get": {
+ "tags": [
+ "public-channel-resource"
+ ],
+ "operationId": "getVariants",
+ "parameters": [
+ {
+ "name": "channelId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "idh",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "page",
+ "in": "query",
+ "description": "Zero-based page index (0..N)",
+ "required": false,
+ "schema": {
+ "minimum": 0,
+ "type": "integer",
+ "default": 0
+ }
+ },
+ {
+ "name": "size",
+ "in": "query",
+ "description": "The size of the page to be returned",
+ "required": false,
+ "schema": {
+ "minimum": 1,
+ "type": "integer",
+ "default": 20
+ }
+ },
+ {
+ "name": "sort",
+ "in": "query",
+ "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "name": "isRaw",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Variant"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v1/channels/{channelId}/products": {
+ "get": {
+ "tags": [
+ "public-channel-resource"
+ ],
+ "operationId": "getProduct",
+ "parameters": [
+ {
+ "name": "channelId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "page",
+ "in": "query",
+ "description": "Zero-based page index (0..N)",
+ "required": false,
+ "schema": {
+ "minimum": 0,
+ "type": "integer",
+ "default": 0
+ }
+ },
+ {
+ "name": "size",
+ "in": "query",
+ "description": "The size of the page to be returned",
+ "required": false,
+ "schema": {
+ "minimum": 1,
+ "type": "integer",
+ "default": 20
+ }
+ },
+ {
+ "name": "sort",
+ "in": "query",
+ "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "name": "isRaw",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BaseProduct"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v1/channels/{channelId}/products/{code}": {
+ "get": {
+ "tags": [
+ "public-channel-resource"
+ ],
+ "operationId": "getProducts",
+ "parameters": [
+ {
+ "name": "channelId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "code",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "page",
+ "in": "query",
+ "description": "Zero-based page index (0..N)",
+ "required": false,
+ "schema": {
+ "minimum": 0,
+ "type": "integer",
+ "default": 0
+ }
+ },
+ {
+ "name": "size",
+ "in": "query",
+ "description": "The size of the page to be returned",
+ "required": false,
+ "schema": {
+ "minimum": 1,
+ "type": "integer",
+ "default": 20
+ }
+ },
+ {
+ "name": "sort",
+ "in": "query",
+ "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "name": "isRaw",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BaseProduct"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "ProductStatusDTO": {
+ "type": "object",
+ "properties": {
+ "input": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "activeChannels": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "Variant": {
+ "required": [
+ "active",
+ "channel",
+ "idh"
+ ],
+ "type": "object",
+ "properties": {
+ "idh": {
+ "maxLength": 2147483647,
+ "minLength": 3,
+ "type": "string"
+ },
+ "channel": {
+ "maxLength": 2147483647,
+ "minLength": 3,
+ "type": "string"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "activeNow": {
+ "type": "boolean"
+ },
+ "start": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "end": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "country": {
+ "pattern": "^[A-Z]{2}$",
+ "type": "string"
+ },
+ "reportedState": {
+ "type": "boolean"
+ },
+ "pdhData": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "BaseProduct": {
+ "required": [
+ "active",
+ "channel",
+ "code"
+ ],
+ "type": "object",
+ "properties": {
+ "code": {
+ "maxLength": 2147483647,
+ "minLength": 3,
+ "type": "string"
+ },
+ "channel": {
+ "maxLength": 2147483647,
+ "minLength": 3,
+ "type": "string"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "activeNow": {
+ "type": "boolean"
+ },
+ "start": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "end": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "country": {
+ "pattern": "^[A-Z]{2}$",
+ "type": "string"
+ },
+ "reportedState": {
+ "type": "boolean"
+ },
+ "pdhData": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/apis/Product Data Hub API.openapi.yaml b/apis/Product Data Hub API.openapi.yaml
new file mode 100644
index 00000000..2a31ef33
--- /dev/null
+++ b/apis/Product Data Hub API.openapi.yaml
@@ -0,0 +1,947 @@
+openapi: 3.0.1
+info:
+ title: Product Data Hub API
+ description: 'REST API for Henkel RAQN Product Data Hub
Attributes of type ''string'' that represent timestamps are in ISO-8601 format, with the time zone set to ''Z'' (UTC).
_Example_: 2023-03-06T13:41:12.507Z'
+ license:
+ name: Henkel AG & Co. KGaA
+ url: https://henkel.de
+ version: v1 [build# 20240605.2]
+servers:
+ - url: /pdh
+ description: Generated server url
+tags:
+ - name: Catalog
+ description: Products, Variants, Categories
+paths:
+ /api/v1/catalogs:
+ get:
+ tags:
+ - Catalog
+ summary: All catalogs
+ description: Get all catalogs.
+ operationId: catalogs
+ responses:
+ '200':
+ description: All catalogs that currently exist in the database
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Catalog'
+ '400':
+ description: Bad Request
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/ValidationErrorResponse'
+ /api/v1/catalogs/{id}:
+ get:
+ tags:
+ - Catalog
+ summary: A single catalog
+ description: Get a single catalog.
+ operationId: catalog
+ parameters:
+ - name: id
+ in: path
+ required: true
+ schema:
+ type: string
+ example: gc_industrial|online
+ responses:
+ '200':
+ description: The catalog for the given id.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ '400':
+ description: Bad Request
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/ValidationErrorResponse'
+ '404':
+ description: Not found. We can't find the requested resource.
+ content:
+ application/json:
+ examples:
+ 404 Not Found:
+ description: 404 Not Found
+ value:
+ timestamp: '2021-11-25T10:27:00.087+00:00'
+ status: 404
+ error: Not Found
+ message: Catalog not found for id 'gc_industrial|stage' and lang 'en_US'
+ path: /api/v1/catalogs/gc_industrial|stage
+ /api/v1/catalogs/{catalogId}/variants:
+ get:
+ tags:
+ - Catalog
+ summary: All product variants from a catalog
+ description: Get all product variants. The response represents a chunk, i.e. a subset of all items; the chunk size can be controlled by the 'maxItems' parameters. See the 'x-req-continuation' request/response headers on how to request subsequent chunks and iterate over all items.
+ operationId: variants
+ parameters:
+ - name: catalogId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: gc_industrial|online
+ - name: lang
+ in: query
+ required: true
+ schema:
+ type: string
+ example: en_US
+ - name: modifiedAfter
+ in: query
+ description: If given, only variants are returned that were modified afterwards (excl.).
+ required: false
+ schema:
+ type: string
+ format: date-time
+ example: '2024-01-01T12:00:00Z'
+ - name: modifiedBefore
+ in: query
+ description: If given, only variants are returned that were modified before (excl.).
+ required: false
+ schema:
+ type: string
+ format: date-time
+ example: '2034-01-01T12:00:00Z'
+ - name: gtin
+ in: query
+ description: If given, only variants with that GTIN are returned.
+ required: false
+ schema:
+ type: string
+ - name: embedBaseProducts
+ in: query
+ description: If true, respond with base products embedded.
+ required: false
+ schema:
+ type: boolean
+ default: false
+ - name: maxItems
+ in: query
+ description: Maximum number of items to include in response ('chunk size'). The actual number of returned items may be smaller. Also see the 'x-req-continuation' header ('chunk offset')
+ required: false
+ schema:
+ maximum: 100
+ minimum: 1
+ type: integer
+ format: int32
+ default: 100
+ example: 100
+ - name: x-req-continuation
+ in: header
+ description: Get the next chunk of items - continue iterating over all items by going on with the subsequent chunk. To identify the previous chunk, pass the JSON string returned in the 'x-req-continuation' response header of the previous request. If the value is not present, the response will contain the first chunk.
+ required: false
+ schema:
+ type: string
+ responses:
+ '200':
+ description: All variant products that currently exist in the catalog, together with their base product
+ headers:
+ x-req-total-items:
+ description: Total number of items.
+ style: simple
+ schema:
+ type: integer
+ x-req-continuation:
+ description: Present only if the current chunk of items is not the last one, so that iteration over all items can be continued. See the correspondent request header of the same name.
+ style: simple
+ schema:
+ type: string
+ x-req-chunk-items:
+ description: Number of items on the current chunk.
+ style: simple
+ schema:
+ type: integer
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ type: object
+ oneOf:
+ - $ref: '#/components/schemas/AdhesiveVariantProduct'
+ - $ref: '#/components/schemas/ConsumerBrandsVariantProduct'
+ '400':
+ description: Bad request, e.g. the 'lang' parameter was missing or unsupported
+ content:
+ application/json:
+ examples:
+ Unsupported language:
+ description: Unsupported language
+ value:
+ violations:
+ - fieldName: catalogs.lang
+ message: 'Unsupported language ''xx_XX'' for catalog: ''catalog'''
+ Language not specified:
+ description: Language not specified
+ value:
+ violations:
+ - fieldName: request parameter 'lang'
+ message: Required request parameter 'lang' for method parameter type String is not present
+ /api/v1/catalogs/{catalogId}/variants/{idh}:
+ get:
+ tags:
+ - Catalog
+ summary: A single product variant
+ description: Get a single product variant (with base product).
+ operationId: variant
+ parameters:
+ - name: catalogId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: gc_industrial|online
+ - name: lang
+ in: query
+ required: true
+ schema:
+ type: string
+ example: en_US
+ - name: idh
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: embedBaseProduct
+ in: query
+ description: If true, respond with base product embedded.
+ required: false
+ schema:
+ type: boolean
+ default: false
+ responses:
+ '200':
+ description: The product variant for the given language and id, with base product.
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - $ref: '#/components/schemas/AdhesiveVariantProduct'
+ - $ref: '#/components/schemas/ConsumerBrandsVariantProduct'
+ '400':
+ description: Bad request, e.g. the 'lang' parameter was missing or unsupported
+ content:
+ application/json:
+ examples:
+ Unsupported language:
+ description: Unsupported language
+ value:
+ violations:
+ - fieldName: catalogs.lang
+ message: 'Unsupported language ''xx_XX'' for catalog: ''catalog'''
+ Language not specified:
+ description: Language not specified
+ value:
+ violations:
+ - fieldName: request parameter 'lang'
+ message: Required request parameter 'lang' for method parameter type String is not present
+ '404':
+ description: Not found. We can't find the requested resource.
+ content:
+ application/json:
+ examples:
+ 404 Not Found:
+ description: 404 Not Found
+ value:
+ timestamp: '2021-11-25T10:27:00.087+00:00'
+ status: 404
+ error: Not Found
+ message: Category not found for catalog 'gc_industrial|stage', id '1234' and lang 'en_US'
+ path: /api/v1/catalogs/gc_industrial|stage/1234
+ /api/v1/catalogs/{catalogId}/products:
+ get:
+ tags:
+ - Catalog
+ summary: All base products from a catalog
+ description: Get all products (base products with variants). The response represents a chunk, i.e. a subset of all items; the chunk size can be controlled by the 'maxItems' parameters. See the 'x-req-continuation' request/response headers on how to request subsequent chunks and iterate over all items.
+ operationId: products
+ parameters:
+ - name: catalogId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: gc_industrial|online
+ - name: lang
+ in: query
+ required: true
+ schema:
+ type: string
+ example: en_US
+ - name: modifiedAfter
+ in: query
+ description: If given, only products are returned that were modified afterwards (excl.).
+ required: false
+ schema:
+ type: string
+ format: date-time
+ example: '2024-01-01T12:00:00Z'
+ - name: modifiedBefore
+ in: query
+ description: If given, only products are returned that were modified before (excl.).
+ required: false
+ schema:
+ type: string
+ format: date-time
+ example: '2034-01-01T12:00:00Z'
+ - name: category
+ in: query
+ description: If given, only products are returned that are assigned to that category
+ required: false
+ schema:
+ type: string
+ - name: embedVariants
+ in: query
+ description: If true, respond with variants embedded.
+ required: false
+ schema:
+ type: boolean
+ default: false
+ - name: embedCategories
+ in: query
+ description: If true, respond with categories embedded.
+ required: false
+ schema:
+ type: boolean
+ default: false
+ - name: maxItems
+ in: query
+ description: Maximum number of items to include in response ('chunk size'). The actual number of returned items may be smaller. Also see the 'x-req-continuation' header ('chunk offset')
+ required: false
+ schema:
+ maximum: 100
+ minimum: 1
+ type: integer
+ format: int32
+ default: 100
+ example: 100
+ - name: x-req-continuation
+ in: header
+ description: Get the next chunk of items - continue iterating over all items by going on with the subsequent chunk. To identify the previous chunk, pass the JSON string returned in the 'x-req-continuation' response header of the previous request. If the value is not present, the response will contain the first chunk.
+ required: false
+ schema:
+ type: string
+ responses:
+ '200':
+ description: All base products that currently exist in the catalog, together with their variants
+ headers:
+ x-req-total-items:
+ description: Total number of items.
+ style: simple
+ schema:
+ type: integer
+ x-req-continuation:
+ description: Present only if the current chunk of items is not the last one, so that iteration over all items can be continued. See the correspondent request header of the same name.
+ style: simple
+ schema:
+ type: string
+ x-req-chunk-items:
+ description: Number of items on the current chunk.
+ style: simple
+ schema:
+ type: integer
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ type: object
+ oneOf:
+ - $ref: '#/components/schemas/AdhesiveBaseProduct'
+ - $ref: '#/components/schemas/ConsumerBrandsBaseProduct'
+ '400':
+ description: Bad request, e.g. the 'lang' parameter was missing or unsupported
+ content:
+ application/json:
+ examples:
+ Unknown category:
+ description: Unknown category
+ value:
+ timestamp: '2021-12-02T10:46:22.502+00:00'
+ status: 400
+ error: Bad Request
+ message: Unknown category 'xxx'
+ path: /api/v1/catalogs/gc_industrial%7Conline/products
+ Unsupported language:
+ description: Unsupported language
+ value:
+ violations:
+ - fieldName: catalogs.lang
+ message: 'Unsupported language ''xx_XX'' for catalog: ''catalog'''
+ Language not specified:
+ description: Language not specified
+ value:
+ violations:
+ - fieldName: request parameter 'lang'
+ message: Required request parameter 'lang' for method parameter type String is not present
+ /api/v1/catalogs/{catalogId}/products/{id}:
+ get:
+ tags:
+ - Catalog
+ summary: A single base product
+ description: Get a single product (base product with variants).
+ operationId: product
+ parameters:
+ - name: catalogId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: gc_industrial|online
+ - name: lang
+ in: query
+ required: true
+ schema:
+ type: string
+ example: en_US
+ - name: id
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: embedVariants
+ in: query
+ description: If true, respond with variants embedded.
+ required: false
+ schema:
+ type: boolean
+ default: false
+ - name: embedCategories
+ in: query
+ description: If true, respond with categories embedded.
+ required: false
+ schema:
+ type: boolean
+ default: false
+ responses:
+ '200':
+ description: The base product for the given language and id, with variants.
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - $ref: '#/components/schemas/AdhesiveBaseProduct'
+ - $ref: '#/components/schemas/ConsumerBrandsBaseProduct'
+ '400':
+ description: Bad request, e.g. the 'lang' parameter was missing or unsupported
+ content:
+ application/json:
+ examples:
+ Unsupported language:
+ description: Unsupported language
+ value:
+ violations:
+ - fieldName: catalogs.lang
+ message: 'Unsupported language ''xx_XX'' for catalog: ''catalog'''
+ Language not specified:
+ description: Language not specified
+ value:
+ violations:
+ - fieldName: request parameter 'lang'
+ message: Required request parameter 'lang' for method parameter type String is not present
+ '404':
+ description: Not found. We can't find the requested resource.
+ content:
+ application/json:
+ examples:
+ 404 Not Found:
+ description: 404 Not Found
+ value:
+ timestamp: '2021-11-25T10:27:00.087+00:00'
+ status: 404
+ error: Not Found
+ message: Category not found for catalog 'gc_industrial|stage', id '1234' and lang 'en_US'
+ path: /api/v1/catalogs/gc_industrial|stage/1234
+ /api/v1/catalogs/{catalogId}/categories:
+ get:
+ tags:
+ - Catalog
+ summary: All categories from a catalog
+ description: Get all categories.
+ operationId: categories
+ parameters:
+ - name: catalogId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: gc_industrial|online
+ - name: lang
+ in: query
+ required: true
+ schema:
+ type: string
+ example: en_US
+ - name: type
+ in: query
+ description: If given, only categories of that type are returned.
+ required: false
+ schema:
+ type: string
+ examples:
+ Industry:
+ description: Industry
+ value: Industry
+ Technology:
+ description: Technology
+ value: Technology
+ HenkelProductType:
+ description: HenkelProductType
+ value: HenkelProductType
+ responses:
+ '200':
+ description: All categories that currently exist in the catalog
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Category'
+ '400':
+ description: Bad request, e.g. the 'lang' parameter was missing or unsupported
+ content:
+ application/json:
+ examples:
+ Unsupported language:
+ description: Unsupported language
+ value:
+ violations:
+ - fieldName: catalogs.lang
+ message: 'Unsupported language ''xx_XX'' for catalog: ''catalog'''
+ Language not specified:
+ description: Language not specified
+ value:
+ violations:
+ - fieldName: request parameter 'lang'
+ message: Required request parameter 'lang' for method parameter type String is not present
+ /api/v1/catalogs/{catalogId}/categories/{id}:
+ get:
+ tags:
+ - Catalog
+ summary: A single category
+ description: Get a single category.
+ operationId: category
+ parameters:
+ - name: catalogId
+ in: path
+ required: true
+ schema:
+ type: string
+ example: gc_industrial|online
+ - name: lang
+ in: query
+ required: true
+ schema:
+ type: string
+ example: en_US
+ - name: id
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: embedChildren
+ in: query
+ description: If true, respond with child categories embedded.
+ required: false
+ schema:
+ type: boolean
+ default: false
+ responses:
+ '200':
+ description: The category for the given language and id.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Category'
+ '400':
+ description: Bad request, e.g. the 'lang' parameter was missing or unsupported
+ content:
+ application/json:
+ examples:
+ Unsupported language:
+ description: Unsupported language
+ value:
+ violations:
+ - fieldName: catalogs.lang
+ message: 'Unsupported language ''xx_XX'' for catalog: ''catalog'''
+ Language not specified:
+ description: Language not specified
+ value:
+ violations:
+ - fieldName: request parameter 'lang'
+ message: Required request parameter 'lang' for method parameter type String is not present
+ '404':
+ description: Not found. We can't find the requested resource.
+ content:
+ application/json:
+ examples:
+ 404 Not Found:
+ description: 404 Not Found
+ value:
+ timestamp: '2021-11-25T10:27:00.087+00:00'
+ status: 404
+ error: Not Found
+ message: Category not found for catalog 'gc_industrial|stage', id '1234' and lang 'en_US'
+ path: /api/v1/catalogs/gc_industrial|stage/1234
+components:
+ schemas:
+ ValidationErrorResponse:
+ type: object
+ properties:
+ violations:
+ type: array
+ items:
+ $ref: '#/components/schemas/Violation'
+ Violation:
+ type: object
+ properties:
+ fieldName:
+ type: string
+ message:
+ type: string
+ Catalog:
+ type: object
+ properties:
+ id:
+ type: string
+ example: gc_industrial|online
+ modified:
+ type: string
+ format: date-time
+ bu:
+ type: string
+ example: A
+ name:
+ type: string
+ languages:
+ type: array
+ items:
+ type: string
+ AdhesiveVariantProduct:
+ type: object
+ properties:
+ id:
+ type: string
+ modified:
+ type: string
+ format: date-time
+ deleted:
+ type: boolean
+ lang:
+ type: string
+ example: en_US
+ catalogId:
+ type: string
+ example: gc_industrial|online
+ categoryIds:
+ type: array
+ items:
+ type: string
+ attributes:
+ $ref: /pdh/oas/product_attributes.json#/components/schemas/AdhesiveVariantProductAttributes
+ baseProduct:
+ $ref: '#/components/schemas/BaseProduct'
+ baseProductId:
+ type: string
+ consumerGtin:
+ type: string
+ gtins:
+ type: array
+ items:
+ type: string
+ BaseProduct:
+ type: object
+ properties:
+ id:
+ type: string
+ modified:
+ type: string
+ format: date-time
+ deleted:
+ type: boolean
+ lang:
+ type: string
+ example: en_US
+ catalogId:
+ type: string
+ example: gc_industrial|online
+ categoryIds:
+ type: array
+ items:
+ type: string
+ attributes:
+ type: object
+ additionalProperties:
+ type: object
+ variantIdhs:
+ type: array
+ items:
+ type: string
+ categories:
+ type: array
+ items:
+ $ref: '#/components/schemas/Category'
+ Category:
+ type: object
+ properties:
+ id:
+ type: string
+ example: industry_2.4.11.2
+ modified:
+ type: string
+ format: date-time
+ deleted:
+ type: boolean
+ parent:
+ type: string
+ description: ''''' (empty string) in case of a top-level category'
+ example: industry_2.4.11
+ children:
+ type: array
+ description: child categories IDs
+ items:
+ type: string
+ description: child categories IDs
+ childCategories:
+ type: array
+ description: child categories embedded (optional)
+ items:
+ $ref: '#/components/schemas/Category'
+ lang:
+ type: string
+ example: en_US
+ level:
+ type: integer
+ format: int32
+ example: 42
+ active:
+ type: boolean
+ description: Categories with active=false are currently not being used.
+ example: true
+ catalogId:
+ type: string
+ example: gc_industrial|online
+ name:
+ type: string
+ type:
+ type: string
+ example: Industry
+ owner:
+ type: string
+ description: Possible values INDUSTRIAL, CONSUMER - only for Industry, HenkelProductType.
+ example: CONSUMER
+ images:
+ type: array
+ items:
+ type: object
+ additionalProperties:
+ type: object
+ sbu:
+ $ref: '#/components/schemas/ReferenceData'
+ attributes:
+ type: object
+ additionalProperties:
+ type: object
+ ReferenceData:
+ type: object
+ properties:
+ code:
+ type: string
+ name:
+ type: string
+ description: Code and name of the SBU
+ VariantProduct:
+ type: object
+ properties:
+ id:
+ type: string
+ modified:
+ type: string
+ format: date-time
+ deleted:
+ type: boolean
+ lang:
+ type: string
+ example: en_US
+ catalogId:
+ type: string
+ example: gc_industrial|online
+ categoryIds:
+ type: array
+ items:
+ type: string
+ attributes:
+ type: object
+ additionalProperties:
+ type: object
+ baseProduct:
+ $ref: '#/components/schemas/BaseProduct'
+ baseProductId:
+ type: string
+ consumerGtin:
+ type: string
+ gtins:
+ type: array
+ items:
+ type: string
+ ConsumerBrandsVariantProduct:
+ type: object
+ properties:
+ id:
+ type: string
+ modified:
+ type: string
+ format: date-time
+ deleted:
+ type: boolean
+ lang:
+ type: string
+ example: en_US
+ catalogId:
+ type: string
+ example: gc_industrial|online
+ categoryIds:
+ type: array
+ items:
+ type: string
+ attributes:
+ $ref: /pdh/oas/product_attributes.json#/components/schemas/ConsumerBrandsVariantProductAttributes
+ baseProduct:
+ $ref: '#/components/schemas/BaseProduct'
+ baseProductId:
+ type: string
+ consumerGtin:
+ type: string
+ gtins:
+ type: array
+ items:
+ type: string
+ AdhesiveBaseProduct:
+ type: object
+ properties:
+ id:
+ type: string
+ modified:
+ type: string
+ format: date-time
+ deleted:
+ type: boolean
+ lang:
+ type: string
+ example: en_US
+ catalogId:
+ type: string
+ example: gc_industrial|online
+ categoryIds:
+ type: array
+ items:
+ type: string
+ attributes:
+ $ref: /pdh/oas/product_attributes.json#/components/schemas/AdhesiveBaseProductAttributes
+ variants:
+ type: array
+ items:
+ $ref: '#/components/schemas/VariantProduct'
+ variantIdhs:
+ type: array
+ items:
+ type: string
+ categories:
+ type: array
+ items:
+ $ref: '#/components/schemas/Category'
+ ConsumerBrandsBaseProduct:
+ type: object
+ properties:
+ id:
+ type: string
+ modified:
+ type: string
+ format: date-time
+ deleted:
+ type: boolean
+ lang:
+ type: string
+ example: en_US
+ catalogId:
+ type: string
+ example: gc_industrial|online
+ categoryIds:
+ type: array
+ items:
+ type: string
+ attributes:
+ $ref: /pdh/oas/product_attributes.json#/components/schemas/ConsumerBrandsBaseProductAttributes
+ variants:
+ type: array
+ items:
+ $ref: '#/components/schemas/VariantProduct'
+ variantIdhs:
+ type: array
+ items:
+ type: string
+ categories:
+ type: array
+ items:
+ $ref: '#/components/schemas/Category'
+ Digest:
+ type: object
+ properties:
+ idh:
+ type: string
+ idhName:
+ type: string
+ baseProductId:
+ type: string
+ baseProductName:
+ type: string
+ sbu:
+ type: string
+ brand:
+ type: string
+ categories:
+ type: array
+ items:
+ type: string
+ industry:
+ type: string
+ productCategory:
+ type: string
+ salesAreaData:
+ type: array
+ items:
+ $ref: '#/components/schemas/SalesAreaData'
+ overallActive:
+ type: boolean
+ productStatus:
+ type: string
+ ReferenceCode:
+ type: object
+ properties:
+ code:
+ type: string
+ SalesAreaData:
+ type: object
+ properties:
+ salesArea:
+ $ref: '#/components/schemas/ReferenceCode'
+ getyStatus:
+ $ref: '#/components/schemas/ReferenceCode'
+ CategoryDigest:
+ type: object
+ properties:
+ id:
+ type: string
+ name:
+ type: string
+ owner:
+ type: string
diff --git a/apis/example.html b/apis/example.html
deleted file mode 100644
index c59ba0c5..00000000
--- a/apis/example.html
+++ /dev/null
@@ -1,380 +0,0 @@
-
-
-
-
id required | integer <int64> |
name required | string |
tag | string |
{- "id": 0,
- "name": "string",
- "tag": "string"
}
{- "code": 0,
- "message": "string"
}
p&&(p=e.lineIndent),w(a))m++;else{if(e.lineIndent
0){for(i=a,o=0;i>0;i--)(a=E(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:R(e,"expected hexadecimal character");e.result+=A(o),e.position++}else R(e,"unknown escape sequence");n=r=e.position}else w(s)?(L(e,n,r,!0),B(e,z(e,!1,t)),n=r=e.position):e.position===e.lineStart&&U(e)?R(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}R(e,"unexpected end of the stream within a double quoted scalar")}(e,_)?N=!0:function(e){var t,n,r;if(42!==(r=e.input.charCodeAt(e.position)))return!1;for(r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!S(r)&&!O(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&R(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),s.call(e.anchorMap,n)||R(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],z(e,!0,-1),!0}(e)?(N=!0,null===e.tag&&null===e.anchor||R(e,"alias node should not have any properties")):function(e,t,n){var r,i,o,a,s,l,c,u,p=e.kind,d=e.result;if(S(u=e.input.charCodeAt(e.position))||O(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(S(r=e.input.charCodeAt(e.position+1))||n&&O(r)))return!1;for(e.kind="scalar",e.result="",i=o=e.position,a=!1;0!==u;){if(58===u){if(S(r=e.input.charCodeAt(e.position+1))||n&&O(r))break}else if(35===u){if(S(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&U(e)||n&&O(u))break;if(w(u)){if(s=e.line,l=e.lineStart,c=e.lineIndent,z(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=l,e.lineIndent=c;break}}a&&(L(e,i,o,!1),B(e,e.line-s),i=o=e.position,a=!1),k(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return L(e,i,o,!1),!!e.result||(e.kind=p,e.result=d,!1)}(e,_,l===n)&&(N=!0,null===e.tag&&(e.tag="?")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===T&&(N=g&&q(e,P))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&R(e,'unacceptable node kind for !> tag; it should be "scalar", not "'+e.kind+'"'),y=0,b=e.implicitTypes.length;y"),null!==e.result&&x.kind!==e.kind&&R(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+x.kind+'", not "'+e.kind+'"'),x.resolve(e.result,e.tag)?(e.result=x.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):R(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||N}function Y(e){var t,n,r,i,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(i=e.input.charCodeAt(e.position))&&(z(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(a=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!S(i);)i=e.input.charCodeAt(++e.position);for(r=[],(n=e.input.slice(t,e.position)).length<1&&R(e,"directive name must not be less than one character in length");0!==i;){for(;k(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!w(i));break}if(w(i))break;for(t=e.position;0!==i&&!S(i);)i=e.input.charCodeAt(++e.position);r.push(e.input.slice(t,e.position))}0!==i&&F(e),s.call($,n)?$[n](e,n,r):N(e,'unknown document directive "'+n+'"')}z(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,z(e,!0,-1)):a&&R(e,"directives end mark is expected"),H(e,e.lineIndent-1,p,!1,!0),z(e,!0,-1),e.checkLineBreaks&&g.test(e.input.slice(o,e.position))&&N(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&U(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,z(e,!0,-1)):e.position