{
  "openapi": "3.0.1",
  "info": {
    "title": "Marketplace Order Management",
    "version": "9.1.20.0",
    "description": "Create and administer marketplace orders and order items.",
    "x-introduced": "9.1.11.0"
  },
  "servers": [
    {
      "url": "https://{hostname}:{port}/rest/admin/v2",
      "variables": {
        "port": {
          "default": "443",
          "enum": [
            "443",
            "8000"
          ]
        },
        "hostname": {
          "default": "localhost",
          "enum": [
            "localhost",
            "test.hcl.com"
          ]
        }
      }
    }
  ],
  "tags": [
    {
      "name": "Marketplace Orders",
      "description": "Provides RESTful service to manage marketplace orders."
    },
    {
      "name": "Marketplace Order Items",
      "description": "Provides RESTful service to manage marketplace order items."
    }
  ],
  "paths": {
    "/marketplace-orders": {
      "get": {
        "tags": [
          "Marketplace Orders"
        ],
        "summary": "Get marketplace orders based on provided parameters.",
        "description": "Get marketplace orders based on provided parameters.",
        "operationId": "getMarketplaceOrders",
        "parameters": [
          {
            "name": "sellerId",
            "in": "query",
            "description": "The unique numeric ID for identifying the seller organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "itemStatus",
            "in": "query",
            "description": "Searching order items by status. Available values: <br> M (ON_HOLD) - Order received and ready for processing. <br> C (READY_FOR_PROCESSING) - Payment authorization is complete. All order items are allocated from existing inventory <br> R (CONFIRMED) - Ready for Inventory fulfillment. <br> S (SHIPPED) - Item shipped. <br> X (CANCELLED) - Item cancelled.",
            "style": "form",
            "explode": false,
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "M",
                  "C",
                  "R",
                  "S",
                  "X"
                ]
              }
            }
          },
          {
            "name": "searchString",
            "in": "query",
            "description": "The search string used to search for Order number, product name (case insensitive) and Part number (case insensitive).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "Limits the results to orders with order items that were created on or after the specified date. The date and time is in ISO 8601 format, e.g 2022-06-01T10:00:00Z.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "Limits the results to orders with order items that were created on or before the specified date. The date and time is in ISO 8601 format, e.g 2022-06-01T10:00:00Z.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties that control the order of the listed items. Properties can be prefixed by either (-) to sort in descending order, or (+) to sort in ascending order. By default, properties are sorted in ascending order. For example, sort=placedDate will order the items based on the placedDate value in ascending order. <br/>Available values for sort parameter: id, storeIdentifier, status, and placedDate",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllOrderDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      }
    },
    "/marketplace-orders/{id}/comments": {
      "get": {
        "tags": [
          "Marketplace Orders"
        ],
        "summary": "Get all the order comments by an order ID.",
        "description": "Get all the order comments by an order ID.",
        "operationId": "getMarketplaceOrderComments",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the order.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sellerId",
            "in": "query",
            "description": "The unique numeric ID for identifying the seller organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOrderComments"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Marketplace Orders"
        ],
        "summary": "Add a comment to an order.",
        "description": "Add a comment to an order.",
        "operationId": "addMarketplaceOrderComment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the order.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderComment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The comment has been added to the order.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/marketplace-order-items": {
      "get": {
        "tags": [
          "Marketplace Order Items"
        ],
        "summary": "Get marketplace order items by Seller ID.",
        "description": "Get marketplace order items by a seller ID.",
        "operationId": "getMarketplaceOrderItems",
        "parameters": [
          {
            "name": "sellerId",
            "in": "query",
            "description": "The unique numeric ID for identifying the seller organization.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderId",
            "in": "query",
            "description": "The unique numeric ID for identifying the order.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Searching order items by status. Available values: <br> M (ON_HOLD) - Order received and ready for processing. <br> C (READY_FOR_PROCESSING) - Payment authorization is complete. All order items are allocated from existing inventory <br> R (CONFIRMED) - Ready for Inventory fulfillment. <br> S (SHIPPED) - Item shipped. <br> X (CANCELLED) - Item cancelled.",
            "style": "form",
            "explode": false,
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "M",
                  "C",
                  "R",
                  "S",
                  "X"
                ]
              }
            }
          },
          {
            "name": "searchString",
            "in": "query",
            "description": "The search string used to search for Order number, product name (case insensitive) and Part number (case insensitive).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "Limits the results to order items that were created on or after the specified date. The date and time is in ISO 8601 format, e.g 2022-06-01T10:00:00Z.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "Limits the results to order items that were created on or before the specified date. The date and time is in ISO 8601 format, e.g 2022-06-01T10:00:00Z.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties that control the order of the listed items. Properties can be prefixed by either (-) to sort in descending order, or (+) to sort in ascending order. By default, properties are sorted in ascending order. For example, sort=createDate will order the items based on the createDate value in ascending order. <br/>Available values for sort parameter: id, orderId, storeIdentifier, status, partNumber, catalogEntryName, and createDate.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllOrderItemsDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      }
    },
    "/marketplace-order-items/{id}": {
      "get": {
        "tags": [
          "Marketplace Order Items"
        ],
        "summary": "Get a marketplace order item by ID.",
        "description": "Get a marketplace order item by ID.",
        "operationId": "getMarketplaceOrderItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the order item.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderItem"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {}
          }
        }
      }
    },
    "/marketplace-order-items/{id}/add-shipping-info": {
      "post": {
        "tags": [
          "Marketplace Order Items"
        ],
        "summary": "Add shipping details.",
        "description": "Add shipping details for an order item.",
        "operationId": "addMarketplaceOrderItemShippingDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the order item.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddOrderItemShipping"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The request completed successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/marketplace-order-items/{id}/confirm": {
      "post": {
        "tags": [
          "Marketplace Order Items"
        ],
        "summary": "Update an existing order item state to confirm.",
        "description": "Update an existing order item state to confirm by its ID.",
        "operationId": "confirmMarketplaceOrderItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the order item.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested completed successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "404": {
            "description": "The specified resource could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/marketplace-order-items/{id}/cancel": {
      "post": {
        "tags": [
          "Marketplace Order Items"
        ],
        "summary": "Cancel a marketplace order item.",
        "description": "Cancel a marketplace order item.",
        "operationId": "cancelMarketplaceOrderItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the order.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The order item has been cancelled.",
            "content": {}
          },
          "400": {
            "description": "Bad request. The request could not be understood by the server due to malformed syntax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "401": {
            "description": "Not authenticated. The user session is not valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "403": {
            "description": "The user is not authorized to perform the specified request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. For details, see the server log files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseContainer"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    }
  },
  "components": {
    "schemas": {
      "ErrorResponseContainer": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            }
          },
          "requestId": {
            "type": "string",
            "description": "The request identifier."
          }
        },
        "description": "The error message model."
      },
      "Error": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "string",
            "description": "The error message code."
          },
          "errorMessage": {
            "type": "string",
            "description": "The error message."
          },
          "errorKey": {
            "type": "string",
            "description": "The error message key."
          },
          "errorParameters": {
            "type": "array",
            "description": "The arguments used to construct the error message.",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "errorLevel": {
            "type": "string",
            "description": "The error level."
          },
          "errorHref": {
            "type": "string",
            "description": "The error hypertext reference."
          }
        },
        "description": "The error message item model."
      },
      "AllOrderItemsDetails": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "The count shows total number of items.",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItem"
            }
          }
        }
      },
      "AllOrderDetails": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "The count shows total number of items.",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AllOrderDetail"
            }
          }
        }
      },
      "AllOrderDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The order ID."
          },
          "updateDate": {
            "type": "string",
            "description": "The date of the last update to the order.",
            "format": "date-time"
          },
          "placedDate": {
            "type": "string",
            "description": "The date the order was placed.",
            "format": "date-time"
          },
          "orderTotal": {
            "type": "number",
            "description": "The order total."
          },
          "currency": {
            "type": "string",
            "description": "The order currency."
          },
          "storeId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the store of which the order is part.",
            "format": "int32"
          },
          "storeIdentifier": {
            "type": "string",
            "description": "The store identifier."
          }
        }
      },
      "OrderComment": {
        "type": "object",
        "properties": {
          "sellerId": {
            "type": "string",
            "description": "The seller organization ID."
          },
          "email": {
            "type": "string",
            "description": "The email address for notifying order comment."
          },
          "comment": {
            "type": "string",
            "description": "The content of the order comment."
          }
        }
      },
      "GetOrderComment": {
        "type": "object",
        "properties": {
          "lastUpdate": {
            "type": "string",
            "description": "The date and time this comment is created."
          },
          "comment": {
            "type": "string",
            "description": "The content of the order comment."
          }
        }
      },
      "OrderComments": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "The count shows total number of items.",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderComment"
            }
          }
        }
      },
      "GetOrderComments": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "The count shows total number of items.",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetOrderComment"
            }
          }
        }
      },
      "AddOrderItemShipping": {
        "type": "object",
        "properties": {
          "shippedDate": {
            "type": "string",
            "description": "The date the package shipped."
          },
          "shippingModeId": {
            "type": "string",
            "description": "The shipping mode identifier."
          },
          "trackingNumber": {
            "type": "string",
            "description": "The tracking identifier."
          }
        }
      },
      "OrderItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the order item."
          },
          "addressId": {
            "type": "string",
            "description": "The unique numeric ID for identifying the shipping address, if any, for this order item."
          },
          "adjustmentSum": {
            "type": "number",
            "description": "The total of the adjustments."
          },
          "allocatedFulfillmentCenterId": {
            "type": "integer",
            "description": "The fulfillment center from which inventory for this order item is allocated or backordered.",
            "format": "int32"
          },
          "allocatedQuantity": {
            "type": "integer",
            "description": "Quantity allocated or backordered for this order item.",
            "format": "int32"
          },
          "allocationAddressId": {
            "type": "string",
            "description": "The unique numeric ID for identifying the shipping address used when inventory for this order item was allocated or backordered."
          },
          "availableQuantity": {
            "type": "integer",
            "description": "If specified, indicates the quantity available for purchase.",
            "format": "int32"
          },
          "basePrice": {
            "type": "number",
            "description": "If price was converted from a currency different from the order item currency, base price is the price that was converted to determine the price."
          },
          "basePriceCurrency": {
            "type": "string",
            "description": "The currency of the base price."
          },
          "catalogEntryId": {
            "type": "string",
            "description": "The catalog entry id, if any, of the product being purchased."
          },
          "comment": {
            "type": "string",
            "description": "Comments from the customer, such as a greeting for a gift."
          },
          "configurationId": {
            "type": "string",
            "description": "The identifier that is provided by an external product configurator."
          },
          "contractId": {
            "type": "string",
            "description": "The TradingAgreement, if known, that determines the TermAndCondition objects (including how the price is determined) that apply to this order item."
          },
          "correlationGroup": {
            "type": "string",
            "description": "Normally this is the same as order item id. except 1. When an order item is split by the AllocateInventory task command, the newly created OrderItem inherits the CORRELATIONGROUP value from the original order item. 2. When the PREPAREFLAGS column indicates \"quotation\", the OrderItem inherits the CORRELATIONGROUP value from the corresponding OrderItem in the parent order.\n"
          },
          "createDate": {
            "type": "string",
            "description": "The date and time this order item was created.",
            "format": "date-time"
          },
          "currency": {
            "type": "string",
            "description": "The currency of order item monetary amounts other than base price. This is the same as the currency of the order. This is a currency code according to ISO 4217 standards."
          },
          "description": {
            "type": "string",
            "description": "A mnemonic description of the order Item, suitable for display to the customer."
          },
          "estimatedAvailableDate": {
            "type": "string",
            "description": "An estimate of when sufficient inventory will be available to fulfill this order item. This estimate does not include the shipping offset.",
            "format": "date-time"
          },
          "field1": {
            "type": "integer",
            "description": "Customizable field 1.",
            "format": "int32"
          },
          "field2": {
            "type": "string",
            "description": "Customizable field 2."
          },
          "fulfillmentCenterId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the fulfillment center, if known, from which the product will ship.",
            "format": "int32"
          },
          "fulfillmentStatus": {
            "type": "string",
            "description": "The fulfillment status of the order item:\n * 'INT' - not yet released for fulfillment.\n * 'OUT' - released for fulfillment.\n * 'SHIP' - shipment confirmed.\n * 'HOLD' - a temporary status between INT and OUT status.\n",
            "enum": [
              "HOLD",
              "HSIP",
              "INT",
              "OUT"
            ]
          },
          "inventoryStatus": {
            "type": "string",
            "description": "The status for the order item. It may not be the same as the status in the order. The allocation status of inventory for this order item:\n  * 'NALC' - Inventory is not allocated nor on back-order.\n  * 'BO' - Inventory is on back-order.\n  * 'ALLC' - Inventory is allocated.\n  * 'FUL' - Inventory has been released for fulfillment.\n  * 'AVL' - Inventory is available.\n",
            "enum": [
              "ALLO",
              "AVL",
              "BO",
              "FUL",
              "NALC"
            ]
          },
          "isExpedited": {
            "type": "string",
            "description": "Indicates that the item should receive expedited handling in fulfillment. \n  * 'Y' - indicates that it should receive expedited handling. \n  * 'N' - indicates that it should not (this is the default).\n",
            "default": "N",
            "enum": [
              "N",
              "Y"
            ]
          },
          "itemSpecId": {
            "type": "string",
            "description": "The specified item to be allocated from available inventory and shipped to the customer."
          },
          "lastAllocatedUpdatedDate": {
            "type": "string",
            "description": "The most recent date and time inventory was checked (for unallocated order items), allocated, or backordered, for this order item.",
            "format": "date-time"
          },
          "lineItemType": {
            "type": "string",
            "description": "If specified, indicates the type of the order item. ALT = the order item represents an alternative item (might not be exactly what the customer requested)."
          },
          "neededQuantity": {
            "type": "integer",
            "description": "Quantity needed for fulfillment.",
            "format": "int32"
          },
          "offerId": {
            "type": "string",
            "description": "The unique numeric ID for identifying the offer, if any, and if it still exists, from which price was obtained."
          },
          "orderId": {
            "type": "string",
            "description": "The unique numeric ID for identifying the order of which the order item is part."
          },
          "orderStatus": {
            "type": "string",
            "description": "The status of the order of which the order item is part."
          },
          "orderReleaseNumber": {
            "type": "integer",
            "description": "The associated order release, if any.",
            "format": "int32"
          },
          "partNumber": {
            "type": "string",
            "description": "The part number of the catalog entry for the product."
          },
          "prepareFlags": {
            "type": "integer",
            "description": "Contains the following bit flags indicating special processing associated with this order item.\n  * 1 - generated. The order item was generated during a previous execution of the OrderPrepare command. The next time the OrderPrepare command is run, it first removes all generated order items so that they can be regenerated when applicable.\n  * 2 - priceOverride. The price of the order item has been manually entered and will not be changed by customer commands.\n  * 4 - fulfillmentCenterOverride. The fulfillment center has been manually specified and will not be changed by customer commands.\n  * 8 - directCalculationCodeAttachment. CalculationCodes may be directly attached to the order item. The default CalculationCodeCombineMethod will not look for direct attachments unless this flag is true.\n  * 16 - shippingChargeByCarrier. The contract for this order item indicates that no shipping charge will be calculated by WebSphere Commerce. It may be calculated and charged by the carrier on fulfillment.\n  * 32 - quotation. The order item was obtained from a quotation. The price will not be automatically refreshed by customer commands.\n  * 64 - notConfigured. Price lookup and inventory allocation for this order item is not done using the component items found in the OICOMPddST table. This flag does not need to be set for order items whose CONFIGURATIONID column value is null.\n  * 128 - autoAdd. This order item, such as a free gift, was automatically added to the order by the OrderCalculate command. This flag is for information-display purposes only and does not affect price calculations.\n  * 256 - hasPersonalizationAttributes. The order item contains personalization attributes.\n  * 512 - skipRepricing. The order item was marked as not to be repriced. For example, it is set as skipRepricing when a quote is generated into an order if the quote has not expired.\n  * 1024 - shippingAdjusted, The order items shipping charge is manually adjusted.\n  * 2048 - priceRefreshed. The order items price has already been refreshed.\n",
            "format": "int32"
          },
          "price": {
            "type": "number",
            "description": "The price for the nominal quantity of the product"
          },
          "promisedAvailableDate": {
            "type": "string",
            "description": "When an order is placed, this would be set to estimated available date. After that it would normally not be updated, although a CSR could manually update this to reflect a verbal commitment made to the customer.",
            "format": "date-time"
          },
          "promisedShipDate": {
            "type": "string",
            "description": "The promised shipping date.",
            "format": "date-time"
          },
          "quantity": {
            "type": "number",
            "description": "The actual quantity being purchased, in the unit of measurement specified by quantity measure.",
            "format": "double"
          },
          "releasedDate": {
            "type": "string",
            "description": "The date and time this order item was released for fulfillment.",
            "format": "date-time"
          },
          "requestedShipDate": {
            "type": "string",
            "description": "The ship date and time that has been requested for the order item. When no date (null) is specified, the ship date will be whenever the item is available to be shipped. When a date is specified, the ship date will be no sooner than the requested date. This is because a backorder could delay the ship date beyond the requested date.",
            "format": "date-time"
          },
          "shippedDate": {
            "type": "string",
            "description": "The date and time this order item was manifested for shipment.",
            "format": "date-time"
          },
          "shippingCharge": {
            "type": "number",
            "description": "The base shipping charge associated with the order item. It is the shipping charge before any adjustments."
          },
          "shippingModeId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the shipping mode, if still known.",
            "format": "int32"
          },
          "shippingOffset": {
            "type": "integer",
            "description": "An estimate of how many seconds it will take to ship this item once the order is placed and inventory has been allocated.",
            "format": "int32"
          },
          "shippingTaxAmount": {
            "type": "number",
            "description": "The total shipping taxes associated with this order item."
          },
          "status": {
            "type": "string",
            "description": "The status for the order item. It may not be the same as the status in the order."
          },
          "storeId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the store of which the order is part.",
            "format": "int32"
          },
          "storeIdentifier": {
            "type": "string",
            "description": "The store identifier."
          },
          "supplierData": {
            "type": "string",
            "description": "Generated and used by the external system that originates an order. This value can be returned with a quotation, and sent when an order is placed on an external system. For example, this column can be used to contain a supplier distribution center ID."
          },
          "supplierPartNumber": {
            "type": "string",
            "description": "The supplier part number, if known. Suitable for display to the customer."
          },
          "taxAmount": {
            "type": "number",
            "description": "The total sales taxes associated with this order item, in the currency specified by currency."
          },
          "termConditionId": {
            "type": "string",
            "description": "The TermAndCondition, if known, that determined the price for this order item."
          },
          "tieCode": {
            "type": "integer",
            "description": "Used for items that are shipping at the same time (Ship Together).",
            "format": "int32"
          },
          "totalAdjustment": {
            "type": "number",
            "description": "The total of the monetary amounts of the order item adjustments for this order item. This column also includes all kinds of shipping charge adjustments like discount, coupon, shipping adjustment and surcharge."
          },
          "totalProduct": {
            "type": "number",
            "description": "The total prices of the order item (price times quantity)"
          },
          "totalShippingCharge": {
            "type": "number",
            "description": "The shipping charge total of this order item. The shipping charge total is the sum of the base shipping charge and the total shipping adjustment."
          },
          "updateDate": {
            "type": "string",
            "description": "The most recent date and time this order item was updated. Changing inventory allocation related information does not cause this timestamp to be updated",
            "format": "date-time"
          },
          "catalogEntryName": {
            "type": "string",
            "description": "The name of the catalog entry associated with this order item."
          },
          "shipmentTrackingNumber": {
            "type": "string",
            "description": "The shipment tracking number associated with this order item."
          },
          "shippingModeDescription": {
            "type": "string",
            "description": "The description of the shipping mode associated with this order item."
          },
          "displayAdjustment": {
            "type": "number",
            "description": "The order item level display adjustment."
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          }
        }
      },
      "Address": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the address."
          },
          "address1": {
            "type": "string",
            "description": "The first address line of the street address."
          },
          "address2": {
            "type": "string",
            "description": "The second address line of the street address."
          },
          "address3": {
            "type": "string",
            "description": "The third address line of the street address."
          },
          "addressType": {
            "type": "string",
            "description": "The usage of the address. Available values:<br> * SB - The address is used both as a shipping and a billing address.<br> * S - The address is used as a shipping address.<br> * B - The address is used as a billing address."
          },
          "bestCallingTime": {
            "type": "string",
            "description": "Indicates the preferred time of day when the user is to be contacted. Available values:<br> * D - Daytime.<br> * E - Evening."
          },
          "billingCode": {
            "type": "string",
            "description": "A code to identify the shipping or billing information."
          },
          "billingCodeType": {
            "type": "string",
            "description": "The code for identifying the system or method of code structure that is used for billing."
          },
          "businessTitle": {
            "type": "string",
            "description": "The business title for the user, such as a Manager or Chief Executive Officer."
          },
          "city": {
            "type": "string",
            "description": "The name of the city where the user or organization resides."
          },
          "country": {
            "type": "string",
            "description": "The name of the country or region where the user or organization resides."
          },
          "createDate": {
            "type": "string",
            "description": "The date and time that the address was created.",
            "format": "date-time"
          },
          "email1": {
            "type": "string",
            "description": "The primary e-mail."
          },
          "email2": {
            "type": "string",
            "description": "The secondary e-mail."
          },
          "fax1": {
            "type": "string",
            "description": "The primary facsimile number."
          },
          "fax2": {
            "type": "string",
            "description": "The secondary facsimile number."
          },
          "field1": {
            "type": "string",
            "description": "A customizable field."
          },
          "field2": {
            "type": "string",
            "description": "A customizable field."
          },
          "field3": {
            "type": "string",
            "description": "A customizable field."
          },
          "firstName": {
            "type": "string",
            "description": "The first name of the user."
          },
          "lastName": {
            "type": "string",
            "description": "The last name of the user."
          },
          "memberId": {
            "type": "string",
            "description": "The unique numeric ID for identifying the member that this address belongs to. A member can be an organization or a user. If memberId is not specified, then the default is the current user (the user who is logging on). The value cannot be set or updated by users or organizations REST APIs."
          },
          "middleName": {
            "type": "string",
            "description": "The middle name or initial of the user."
          },
          "mobilePhone1": {
            "type": "string",
            "description": "The primary mobile device number of the user, used for text messaging. The number should be specified without the country code. The country code is specified as the mobilePhone1Country value."
          },
          "mobilePhone1Country": {
            "type": "string",
            "description": "The country code of the mobile device phone number. This country is used for country code resolution when sending text messages. This data is required when the mobilePhone1 column is used."
          },
          "nickName": {
            "type": "string",
            "description": "The unique name or identifier for the address. A nickname must be unique among the addresses for a specific user or organization. The nickname for a user's address must also be different than the logon ID for a user so that the address does not conflict with the user's self-address. The self-address is created when the account for the user is first created. Multiple users or organizations can each have an address with the same nickname. The value cannot be set or updated by users or organizations REST APIs."
          },
          "officeAddress": {
            "type": "string",
            "description": "The internal office address line, such as the internal designation for an employee's desk location."
          },
          "organizationName": {
            "type": "string",
            "description": "The name of the organization to which the address information applies, if this is a business address."
          },
          "organizationUnitName": {
            "type": "string",
            "description": "The name of the organizational unit to which the address information applies, if this is a business address."
          },
          "packageSuppression": {
            "type": "integer",
            "description": "Specifies whether or not to include package inserts. Available values:<br> * 1 - Include.<br> * 0 - Do not include."
          },
          "personTitle": {
            "type": "string",
            "description": "The personal title of the user that is associated with the address. For example, Dr., Rev., Mr. or Ms."
          },
          "phone1": {
            "type": "string",
            "description": "The primary phone number."
          },
          "phone1Type": {
            "type": "string",
            "description": "The type of phone that is used for the primary phone number. For example, TTY for hearing impaired, PCM for pulse-coded modulation, or CEL for mobile."
          },
          "phone2": {
            "type": "string",
            "description": "The secondary phone number."
          },
          "phone2Type": {
            "type": "string",
            "description": "The type of phone that is used for the secondary phone number. For example, TTY for hearing impaired, PCM for pulse-coded modulation, or CEL for mobile."
          },
          "primary": {
            "type": "integer",
            "description": "Indicates that the address is the primary address for the user or organization when the user or organization has multiple addresses associated, such as when a user or organization has multiple shipping addresses. The value cannot be set or updated by users or organizations REST APIs. Available values:<br> * 1 - The address is the primary address.<br> * 0 - (Default value) The address is an alternate address."
          },
          "publishPhone1": {
            "type": "integer",
            "description": "Whether to list the primary phone number. Available values: <br> * 1 - Yes.<br> * 0 - No."
          },
          "publishPhone2": {
            "type": "integer",
            "description": "Whether to list the secondary phone number. Available values: <br> * 1 - Yes.<br> * 0 - No."
          },
          "selfAddress": {
            "type": "integer",
            "description": "Indicates whether the address is associated with the registration of the user or organization. This value cannot be edited after address creation. Available values: <br> * 1 - Yes.<br> * 0 - No.",
            "readOnly": true
          },
          "shippingGeoCode": {
            "type": "string",
            "description": "The geographical code that identifies a region for the shipping purposes."
          },
          "state": {
            "type": "string",
            "description": "The name of the state, province, or equivalent where the user or organization resides."
          },
          "status": {
            "type": "string",
            "description": "Indicates the status of the address. When an address is created, its status is marked with a \"P\", meaning \"permanent\", and indicates that the address is the current address. When an address is updated, a new record of the address is created with the updates. The new record is marked with a \"P\" and the earlier record is marked with a \"T\", meaning \"temporary\", which indicates that the address is the historical address. This value cannot be edited.",
            "readOnly": true
          },
          "taxGeoCode": {
            "type": "string",
            "description": "The geographical tax code that identifies a region for the tax purposes."
          },
          "zipCode": {
            "type": "string",
            "description": "The ZIP or postal code of the user's address."
          }
        },
        "description": "The order address. An address can used for billing or shipping purposes."
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ]
}
