openapi: 3.0.0
info:
  description: Order Management System
  version: 1.0.0
  title: Orders v1 (OMS v1)
  contact:
    email: oms-team@fabric.inc
  license:
    name: fabric API license
    url: https://fabric.inc/api-license
tags:
  - name: Cart
    description: >-
      Cart APIs<br /><br />**Note:** These are the legacy Cart APIs. To view
      fabric's new Cart APIs, navigate to *Cart API > Cart* from the left side
      navigation pane.
  - name: Bill To
    description: Bill To APIs [Deprecated]
  - name: Ship To
    description: >-
      Ship To APIs<br /><br />**Note:** These are the legacy Ship To APIs. To
      view fabric's new Shipping APIs, navigate to *Cart API > Shipping* from
      the left side navigation pane.
  - name: Wishlist
    description: Wishlist APIs
  - name: Cart Decoupled
    description: Cart Decoupled APIs
  - name: Warehouse
    description: Warehouse APIs
  - name: Inventory
    description: Inventory APIs
  - name: Attributes
    description: >-
      Attributes APIs<br /><br />**Note:** These are the legacy Attribute APIs.
      To view fabric's new Attribute APIs, navigate to *Cart API > Attribute*
      from the left side navigation pane.
  - name: List
    description: List APIs
  - name: Tax/Address Validate
    description: Tax/Address Validate APIs
  - name: Shipping
    description: Shipping APIs
  - name: Payments
    description: Payments APIs
  - name: Order
    description: Order APIs
servers:
  - url: https://prod01-apigw.{customer_name}.fabric.zone
    description: Production
    variables:
      customer_name:
        default: yourcompany
        description: Customer name, provided by support team
paths:
  /api-cart/cart/item:
    post:
      tags:
        - Cart
      summary: Add item to cart
      description: Add item to cart
      operationId: addItemToCart
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: Authorization
          schema:
            type: string
            example: JWT token
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cartId
                - items
              properties:
                cartId:
                  type: string
                  example: 123456abcdef123456abcdef
                userAuthToken:
                  type: string
                  example: JWT
                company:
                  type: string
                  example: Fabric Inc.
                items:
                  type: array
                  minItems: 1
                  items:
                    allOf:
                      - type: object
                        required:
                          - itemId
                          - group
                          - quantity
                          - price
                        properties:
                          itemId:
                            type: number
                            example: 1000000012
                          priceListId:
                            type: number
                            example: 100002
                          isUnique:
                            type: string
                            example: 123
                          quantity:
                            type: number
                            minimum: 1
                            default: 1
                            example: 2
                          price:
                            type: object
                            required:
                              - currency
                              - base
                              - discount
                            properties:
                              currency:
                                type: string
                                maxLength: 3
                                minLength: 3
                                example: USD
                              base:
                                type: number
                                example: 15.99
                              sale:
                                type: number
                                example: 10.99
                              discount:
                                type: object
                                required:
                                  - price
                                properties:
                                  price:
                                    type: number
                                    default: 0
                                    example: 10.99
                                  discountAmount:
                                    type: number
                                    default: 0
                                    example: 10.99
                                  promosApplied:
                                    type: array
                                    minItems: 0
                                    items:
                                      type: object
                                      properties:
                                        unit:
                                          type: string
                                        value:
                                          type: integer
                                          format: int32
                                        "ON":
                                          title: "ON"
                                          required:
                                            - kind
                                            - value
                                          type: object
                                          properties:
                                            kind:
                                              type: string
                                            value:
                                              type: string
                                              nullable: true
                                          example:
                                            kind: SKU
                                            value: ""
                                        id:
                                          type: string
                                        promoId:
                                          type: string
                                        promoCode:
                                          type: string
                          group:
                            type: array
                            minItems: 1
                            items:
                              type: string
                              minLength: 24
                              maxLength: 24
                              example: 5ddd1a156c5a5fed1e0d91fb
                      - type: object
                        properties:
                          extra:
                            type: object
      responses:
        "200":
          description: Item added to cart
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      allPromosApplied:
                        type: array
                        items:
                          type: object
                          properties:
                            unit:
                              type: string
                            value:
                              type: integer
                              format: int32
                            "ON":
                              title: "ON"
                              required:
                                - kind
                                - value
                              type: object
                              properties:
                                kind:
                                  type: string
                                value:
                                  type: string
                                  nullable: true
                              example:
                                kind: SKU
                                value: ""
                            id:
                              type: string
                            promoId:
                              type: string
                            promoCode:
                              type: string
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              required:
                                - itemId
                                - group
                                - quantity
                                - price
                              properties:
                                itemId:
                                  type: number
                                  example: 1000000012
                                priceListId:
                                  type: number
                                  example: 100002
                                isUnique:
                                  type: string
                                  example: 123
                                quantity:
                                  type: number
                                  minimum: 1
                                  default: 1
                                  example: 2
                                price:
                                  type: object
                                  required:
                                    - currency
                                    - base
                                    - discount
                                  properties:
                                    currency:
                                      type: string
                                      maxLength: 3
                                      minLength: 3
                                      example: USD
                                    base:
                                      type: number
                                      example: 15.99
                                    sale:
                                      type: number
                                      example: 10.99
                                    discount:
                                      type: object
                                      required:
                                        - price
                                      properties:
                                        price:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        discountAmount:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        promosApplied:
                                          type: array
                                          minItems: 0
                                          items:
                                            type: object
                                            properties:
                                              unit:
                                                type: string
                                              value:
                                                type: integer
                                                format: int32
                                              "ON":
                                                title: "ON"
                                                required:
                                                  - kind
                                                  - value
                                                type: object
                                                properties:
                                                  kind:
                                                    type: string
                                                  value:
                                                    type: string
                                                    nullable: true
                                                example:
                                                  kind: SKU
                                                  value: ""
                                              id:
                                                type: string
                                              promoId:
                                                type: string
                                              promoCode:
                                                type: string
                                group:
                                  type: array
                                  minItems: 1
                                  items:
                                    type: string
                                    minLength: 24
                                    maxLength: 24
                                    example: 5ddd1a156c5a5fed1e0d91fb
                            - type: object
                              properties:
                                discountedQuantity:
                                  type: number
                                  example: 0
                                lineItemId:
                                  type: number
                                  example: 1
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                sample:
                                  type: boolean
                                  example: false
                                weightUnit:
                                  type: string
                                  example: kg
                                isPickup:
                                  type: boolean
                                  example: false
                                sku:
                                  type: string
                                  example: blue
                                taxCode:
                                  type: string
                                  example: PH0607
                                title:
                                  type: string
                                  example: item title
                                weight:
                                  type: number
                                  example: 7
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      shipTo:
                                        allOf:
                                          - $ref: >-
                                              #/components/schemas/timeStamp
                                          - type: object
                                            required:
                                              - street1
                                              - city
                                              - state
                                              - country
                                              - zipCode
                                              - email
                                              - name
                                            properties:
                                              attention:
                                                type: string
                                                maxLength: 140
                                                example: Leave at the back door.
                                              street1:
                                                type: string
                                                maxLength: 140
                                                example: 123 Main Street
                                              street2:
                                                type: string
                                                maxLength: 240
                                                example: ABC Boulevard
                                              city:
                                                type: string
                                                maxLength: 140
                                                example: Seattle
                                              state:
                                                type: string
                                                maxLength: 25
                                                example: WA
                                              country:
                                                type: string
                                                maxLength: 140
                                                example:
                                                  United States of America
                                              zipCode:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: 10008-1234
                                              kind:
                                                type: string
                                                maxLength: 24
                                                example: TBD
                                              name:
                                                type: object
                                                properties:
                                                  first:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: John
                                                  last:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: Smith
                                              phone:
                                                type: object
                                                required:
                                                  - number
                                                  - kind
                                                properties:
                                                  number:
                                                    type: string
                                                    minLength: 5
                                                    maxLength: 25
                                                    example: 123-456-7890
                                                  kind:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: Mobile
                                              email:
                                                type: string
                                                format: email
                                                minLength: 5
                                                maxLength: 100
                                                example: johnsmith@fabric.inc
                                          - type: object
                                            properties:
                                              shipTo:
                                                type: object
                                                properties:
                                                  shipMethod:
                                                    type: object
                                                    properties:
                                                      shipMethodId:
                                                        type: string
                                                        minLength: 3
                                                        example: 1a2b3c4d5e6f7g8h9i0j
                                                      shipmentCarrier:
                                                        type: string
                                                        example: Fedex
                                                      shipmentMethod:
                                                        type: string
                                                        example: Next Day
                                                      cost:
                                                        type: object
                                                        required:
                                                          - currency
                                                          - amount
                                                        properties:
                                                          currency:
                                                            type: string
                                                            minLength: 3
                                                            example: USD
                                                          amount:
                                                            type: number
                                                            minimum: 0
                                                            example: 5.99
                                          - type: object
                                            properties:
                                              shipToId:
                                                type: string
                                                example: 5269
                                              cartId:
                                                type: object
                                                example: 61e03ff6a865fe00094f8620
                                              taxCode:
                                                type: string
                                                example: FR1000
                                              shipToType:
                                                type: string
                                                example: SHIP_TO_ADDRESS
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                      extra:
                        type: object
                      errors:
                        type: object
                        properties:
                          inventory:
                            type: array
                          price:
                            type: array
                          promo:
                            type: array
                  - $ref: >-
                      #/components/schemas/timeStamp
        "400":
          description: A generic client error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
        "401":
          description: Invalid/No userAuthToken provided
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: INVALID_AUTHORIZATION_TOKEN
                    type: string
                  message:
                    description: The error message
                    example: Invalid Authorization Token
                    type: string
        "404":
          description: Item not In Stock
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: NOT_IN_STOCK
                    type: string
                  message:
                    description: The error message
                    example: ItemIds 170 are not in stock.
                    type: string
        "500":
          description: A generic server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
  /api-cart/cart:
    get:
      tags:
        - Cart
      summary: Get cart for the given cart ID or user auth token
      description: Get cart for the given cart ID or user auth token
      operationId: getCart
      parameters:
        - name: x-site-context
          in: header
          description: >-
            The `x-site-context` header is a JSON object that contains
            information about the source you wish to pull from. The mandatory
            `account` is the 24 character identifier found in Copilot. The
            `channel` (Sales channel ID), `stage` (environment name), and `date`
            attributes can be used to further narrow the scope of your data
            source.
          required: true
          schema:
            type: string
            example: >-
              {"date": "2023-01-01T00:00:00.000Z", "channel": 12, "account":
              "1234abcd5678efgh9ijklmno","stage":"production"}
        - in: query
          name: Get Cart parameters
          schema:
            type: object
            properties:
              userAuthToken:
                type: string
                example: 5e5818a84d030c206b2ffb02
              cartId:
                type: string
                example: 5e5818a84d030c206b2ffb02
            oneOf:
              - required:
                  - userAuthToken
              - required:
                  - cartId
      responses:
        "200":
          description: Cart for the given cart id or user auth token
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      allPromosApplied:
                        type: array
                        items:
                          type: object
                          properties:
                            unit:
                              type: string
                            value:
                              type: integer
                              format: int32
                            "ON":
                              title: "ON"
                              required:
                                - kind
                                - value
                              type: object
                              properties:
                                kind:
                                  type: string
                                value:
                                  type: string
                                  nullable: true
                              example:
                                kind: SKU
                                value: ""
                            id:
                              type: string
                            promoId:
                              type: string
                            promoCode:
                              type: string
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              required:
                                - itemId
                                - group
                                - quantity
                                - price
                              properties:
                                itemId:
                                  type: number
                                  example: 1000000012
                                priceListId:
                                  type: number
                                  example: 100002
                                isUnique:
                                  type: string
                                  example: 123
                                quantity:
                                  type: number
                                  minimum: 1
                                  default: 1
                                  example: 2
                                price:
                                  type: object
                                  required:
                                    - currency
                                    - base
                                    - discount
                                  properties:
                                    currency:
                                      type: string
                                      maxLength: 3
                                      minLength: 3
                                      example: USD
                                    base:
                                      type: number
                                      example: 15.99
                                    sale:
                                      type: number
                                      example: 10.99
                                    discount:
                                      type: object
                                      required:
                                        - price
                                      properties:
                                        price:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        discountAmount:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        promosApplied:
                                          type: array
                                          minItems: 0
                                          items:
                                            type: object
                                            properties:
                                              unit:
                                                type: string
                                              value:
                                                type: integer
                                                format: int32
                                              "ON":
                                                title: "ON"
                                                required:
                                                  - kind
                                                  - value
                                                type: object
                                                properties:
                                                  kind:
                                                    type: string
                                                  value:
                                                    type: string
                                                    nullable: true
                                                example:
                                                  kind: SKU
                                                  value: ""
                                              id:
                                                type: string
                                              promoId:
                                                type: string
                                              promoCode:
                                                type: string
                                group:
                                  type: array
                                  minItems: 1
                                  items:
                                    type: string
                                    minLength: 24
                                    maxLength: 24
                                    example: 5ddd1a156c5a5fed1e0d91fb
                            - type: object
                              properties:
                                discountedQuantity:
                                  type: number
                                  example: 0
                                lineItemId:
                                  type: number
                                  example: 1
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                sample:
                                  type: boolean
                                  example: false
                                weightUnit:
                                  type: string
                                  example: kg
                                isPickup:
                                  type: boolean
                                  example: false
                                sku:
                                  type: string
                                  example: blue
                                taxCode:
                                  type: string
                                  example: PH0607
                                title:
                                  type: string
                                  example: item title
                                weight:
                                  type: number
                                  example: 7
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      shipTo:
                                        allOf:
                                          - $ref: "#/components/schemas/timeStamp"
                                          - type: object
                                            required:
                                              - street1
                                              - city
                                              - state
                                              - country
                                              - zipCode
                                              - email
                                              - name
                                            properties:
                                              attention:
                                                type: string
                                                maxLength: 140
                                                example: Leave at the back door.
                                              street1:
                                                type: string
                                                maxLength: 140
                                                example: 123 Main Street
                                              street2:
                                                type: string
                                                maxLength: 240
                                                example: ABC Boulevard
                                              city:
                                                type: string
                                                maxLength: 140
                                                example: Seattle
                                              state:
                                                type: string
                                                maxLength: 25
                                                example: WA
                                              country:
                                                type: string
                                                maxLength: 140
                                                example:
                                                  United States of America
                                              zipCode:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: 10008-1234
                                              kind:
                                                type: string
                                                maxLength: 24
                                                example: TBD
                                              name:
                                                type: object
                                                properties:
                                                  first:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: John
                                                  last:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: Smith
                                              phone:
                                                type: object
                                                required:
                                                  - number
                                                  - kind
                                                properties:
                                                  number:
                                                    type: string
                                                    minLength: 5
                                                    maxLength: 25
                                                    example: 123-456-7890
                                                  kind:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: Mobile
                                              email:
                                                type: string
                                                format: email
                                                minLength: 5
                                                maxLength: 100
                                                example: johnsmith@fabric.inc
                                          - type: object
                                            properties:
                                              shipTo:
                                                type: object
                                                properties:
                                                  shipMethod:
                                                    type: object
                                                    properties:
                                                      shipMethodId:
                                                        type: string
                                                        minLength: 3
                                                        example: 1a2b3c4d5e6f7g8h9i0j
                                                      shipmentCarrier:
                                                        type: string
                                                        example: Fedex
                                                      shipmentMethod:
                                                        type: string
                                                        example: Next Day
                                                      cost:
                                                        type: object
                                                        required:
                                                          - currency
                                                          - amount
                                                        properties:
                                                          currency:
                                                            type: string
                                                            minLength: 3
                                                            example: USD
                                                          amount:
                                                            type: number
                                                            minimum: 0
                                                            example: 5.99
                                          - type: object
                                            properties:
                                              shipToId:
                                                type: string
                                                example: 5269
                                              cartId:
                                                type: object
                                                example: 61e03ff6a865fe00094f8620
                                              taxCode:
                                                type: string
                                                example: FR1000
                                              shipToType:
                                                type: string
                                                example: SHIP_TO_ADDRESS
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                      extra:
                        type: object
                      errors:
                        type: object
                        properties:
                          inventory:
                            type: array
                          price:
                            type: array
                          promo:
                            type: array
                  - $ref: "#/components/schemas/timeStamp"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Cart not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: CART_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Cart not found.
                    type: string
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/item/{lineItemId}:
    patch:
      tags:
        - Cart
      summary: Remove item from cart by line item ID
      description: Remove item from cart by line item ID
      operationId: removeItem
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - in: path
          name: lineItemId
          required: true
          schema:
            type: number
            minimum: 1
            example: 5
      responses:
        "200":
          description: Cart after removing item
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      allPromosApplied:
                        type: array
                        items:
                          type: object
                          properties:
                            unit:
                              type: string
                            value:
                              type: integer
                              format: int32
                            "ON":
                              title: "ON"
                              required:
                                - kind
                                - value
                              type: object
                              properties:
                                kind:
                                  type: string
                                value:
                                  type: string
                                  nullable: true
                              example:
                                kind: SKU
                                value: ""
                            id:
                              type: string
                            promoId:
                              type: string
                            promoCode:
                              type: string
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              required:
                                - itemId
                                - group
                                - quantity
                                - price
                              properties:
                                itemId:
                                  type: number
                                  example: 1000000012
                                priceListId:
                                  type: number
                                  example: 100002
                                isUnique:
                                  type: string
                                  example: 123
                                quantity:
                                  type: number
                                  minimum: 1
                                  default: 1
                                  example: 2
                                price:
                                  type: object
                                  required:
                                    - currency
                                    - base
                                    - discount
                                  properties:
                                    currency:
                                      type: string
                                      maxLength: 3
                                      minLength: 3
                                      example: USD
                                    base:
                                      type: number
                                      example: 15.99
                                    sale:
                                      type: number
                                      example: 10.99
                                    discount:
                                      type: object
                                      required:
                                        - price
                                      properties:
                                        price:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        discountAmount:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        promosApplied:
                                          type: array
                                          minItems: 0
                                          items:
                                            type: object
                                            properties:
                                              unit:
                                                type: string
                                              value:
                                                type: integer
                                                format: int32
                                              "ON":
                                                title: "ON"
                                                required:
                                                  - kind
                                                  - value
                                                type: object
                                                properties:
                                                  kind:
                                                    type: string
                                                  value:
                                                    type: string
                                                    nullable: true
                                                example:
                                                  kind: SKU
                                                  value: ""
                                              id:
                                                type: string
                                              promoId:
                                                type: string
                                              promoCode:
                                                type: string
                                group:
                                  type: array
                                  minItems: 1
                                  items:
                                    type: string
                                    minLength: 24
                                    maxLength: 24
                                    example: 5ddd1a156c5a5fed1e0d91fb
                            - type: object
                              properties:
                                discountedQuantity:
                                  type: number
                                  example: 0
                                lineItemId:
                                  type: number
                                  example: 1
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                sample:
                                  type: boolean
                                  example: false
                                weightUnit:
                                  type: string
                                  example: kg
                                isPickup:
                                  type: boolean
                                  example: false
                                sku:
                                  type: string
                                  example: blue
                                taxCode:
                                  type: string
                                  example: PH0607
                                title:
                                  type: string
                                  example: item title
                                weight:
                                  type: number
                                  example: 7
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      shipTo:
                                        allOf:
                                          - $ref: >-
                                              #/components/schemas/timeStamp
                                          - type: object
                                            required:
                                              - street1
                                              - city
                                              - state
                                              - country
                                              - zipCode
                                              - email
                                              - name
                                            properties:
                                              attention:
                                                type: string
                                                maxLength: 140
                                                example: Leave at the back door.
                                              street1:
                                                type: string
                                                maxLength: 140
                                                example: 123 Main Street
                                              street2:
                                                type: string
                                                maxLength: 240
                                                example: ABC Boulevard
                                              city:
                                                type: string
                                                maxLength: 140
                                                example: Seattle
                                              state:
                                                type: string
                                                maxLength: 25
                                                example: WA
                                              country:
                                                type: string
                                                maxLength: 140
                                                example:
                                                  United States of America
                                              zipCode:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: 10008-1234
                                              kind:
                                                type: string
                                                maxLength: 24
                                                example: TBD
                                              name:
                                                type: object
                                                properties:
                                                  first:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: John
                                                  last:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: Smith
                                              phone:
                                                type: object
                                                required:
                                                  - number
                                                  - kind
                                                properties:
                                                  number:
                                                    type: string
                                                    minLength: 5
                                                    maxLength: 25
                                                    example: 123-456-7890
                                                  kind:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: Mobile
                                              email:
                                                type: string
                                                format: email
                                                minLength: 5
                                                maxLength: 100
                                                example: johnsmith@fabric.inc
                                          - type: object
                                            properties:
                                              shipTo:
                                                type: object
                                                properties:
                                                  shipMethod:
                                                    type: object
                                                    properties:
                                                      shipMethodId:
                                                        type: string
                                                        minLength: 3
                                                        example: 1a2b3c4d5e6f7g8h9i0j
                                                      shipmentCarrier:
                                                        type: string
                                                        example: Fedex
                                                      shipmentMethod:
                                                        type: string
                                                        example: Next Day
                                                      cost:
                                                        type: object
                                                        required:
                                                          - currency
                                                          - amount
                                                        properties:
                                                          currency:
                                                            type: string
                                                            minLength: 3
                                                            example: USD
                                                          amount:
                                                            type: number
                                                            minimum: 0
                                                            example: 5.99
                                          - type: object
                                            properties:
                                              shipToId:
                                                type: string
                                                example: 5269
                                              cartId:
                                                type: object
                                                example: 61e03ff6a865fe00094f8620
                                              taxCode:
                                                type: string
                                                example: FR1000
                                              shipToType:
                                                type: string
                                                example: SHIP_TO_ADDRESS
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                      extra:
                        type: object
                      errors:
                        type: object
                        properties:
                          inventory:
                            type: array
                          price:
                            type: array
                          promo:
                            type: array
                  - $ref: >-
                      #/components/schemas/timeStamp
        "400":
          description: Cart is already empty
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: EMPTY_CART_ERROR
                    type: string
                  message:
                    description: The error message
                    example: The cart is already empty.
                    type: string
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/empty:
    patch:
      tags:
        - Cart
      summary: Empty cart for the given cart ID
      description: Empty cart for the given cart ID
      operationId: emptyCart
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      responses:
        "200":
          description: Empty Cart
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      allPromosApplied:
                        type: array
                        items:
                          type: object
                          properties:
                            unit:
                              type: string
                            value:
                              type: integer
                              format: int32
                            "ON":
                              title: "ON"
                              required:
                                - kind
                                - value
                              type: object
                              properties:
                                kind:
                                  type: string
                                value:
                                  type: string
                                  nullable: true
                              example:
                                kind: SKU
                                value: ""
                            id:
                              type: string
                            promoId:
                              type: string
                            promoCode:
                              type: string
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/items:
    patch:
      tags:
        - Cart
      summary: Update cart
      description: Update cart
      operationId: updateCart
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    required:
                      - itemId
                      - lineItemId
                      - quantity
                      - price
                    properties:
                      itemId:
                        type: number
                        minimum: 1
                        example: 1234567
                      priceListId:
                        type: number
                        example: 100000012
                      quantity:
                        type: number
                        minimum: 1
                        example: 3
                      discountedQuantity:
                        type: number
                        minimum: 0
                        example: 3
                      lineItemId:
                        type: number
                        minimum: 1
                        example: 3
                      isUnique:
                        type: string
                        example: "123"
                      price:
                        type: object
                        required:
                          - currency
                          - base
                        properties:
                          currency:
                            type: string
                            maxLength: 3
                            minLength: 3
                            example: USD
                          base:
                            type: number
                            example: 15.99
                          sale:
                            type: number
                            example: 10.99
                          discount:
                            type: object
                            required:
                              - price
                            properties:
                              price:
                                type: number
                                default: 0
                                example: 10.99
                              discountAmount:
                                type: number
                                default: 0
                                example: 10.99
                              promosApplied:
                                type: array
                                minItems: 0
                                items:
                                  type: object
                                  properties:
                                    unit:
                                      type: string
                                    value:
                                      type: integer
                                      format: int32
                                    "ON":
                                      title: "ON"
                                      required:
                                        - kind
                                        - value
                                      type: object
                                      properties:
                                        kind:
                                          type: string
                                        value:
                                          type: string
                                          nullable: true
                                      example:
                                        kind: SKU
                                        value: ""
                                    id:
                                      type: string
                                    promoId:
                                      type: string
                                    promoCode:
                                      type: string
      responses:
        "200":
          description: Updated Cart
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      allPromosApplied:
                        type: array
                        items:
                          type: object
                          properties:
                            unit:
                              type: string
                            value:
                              type: integer
                              format: int32
                            "ON":
                              title: "ON"
                              required:
                                - kind
                                - value
                              type: object
                              properties:
                                kind:
                                  type: string
                                value:
                                  type: string
                                  nullable: true
                              example:
                                kind: SKU
                                value: ""
                            id:
                              type: string
                            promoId:
                              type: string
                            promoCode:
                              type: string
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              required:
                                - itemId
                                - group
                                - quantity
                                - price
                              properties:
                                itemId:
                                  type: number
                                  example: 1000000012
                                priceListId:
                                  type: number
                                  example: 100002
                                isUnique:
                                  type: string
                                  example: 123
                                quantity:
                                  type: number
                                  minimum: 1
                                  default: 1
                                  example: 2
                                price:
                                  type: object
                                  required:
                                    - currency
                                    - base
                                    - discount
                                  properties:
                                    currency:
                                      type: string
                                      maxLength: 3
                                      minLength: 3
                                      example: USD
                                    base:
                                      type: number
                                      example: 15.99
                                    sale:
                                      type: number
                                      example: 10.99
                                    discount:
                                      type: object
                                      required:
                                        - price
                                      properties:
                                        price:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        discountAmount:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        promosApplied:
                                          type: array
                                          minItems: 0
                                          items:
                                            type: object
                                            properties:
                                              unit:
                                                type: string
                                              value:
                                                type: integer
                                                format: int32
                                              "ON":
                                                title: "ON"
                                                required:
                                                  - kind
                                                  - value
                                                type: object
                                                properties:
                                                  kind:
                                                    type: string
                                                  value:
                                                    type: string
                                                    nullable: true
                                                example:
                                                  kind: SKU
                                                  value: ""
                                              id:
                                                type: string
                                              promoId:
                                                type: string
                                              promoCode:
                                                type: string
                                group:
                                  type: array
                                  minItems: 1
                                  items:
                                    type: string
                                    minLength: 24
                                    maxLength: 24
                                    example: 5ddd1a156c5a5fed1e0d91fb
                            - type: object
                              properties:
                                discountedQuantity:
                                  type: number
                                  example: 0
                                lineItemId:
                                  type: number
                                  example: 1
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                sample:
                                  type: boolean
                                  example: false
                                weightUnit:
                                  type: string
                                  example: kg
                                isPickup:
                                  type: boolean
                                  example: false
                                sku:
                                  type: string
                                  example: blue
                                taxCode:
                                  type: string
                                  example: PH0607
                                title:
                                  type: string
                                  example: item title
                                weight:
                                  type: number
                                  example: 7
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      shipTo:
                                        allOf:
                                          - $ref: >-
                                              #/components/schemas/timeStamp
                                          - type: object
                                            required:
                                              - street1
                                              - city
                                              - state
                                              - country
                                              - zipCode
                                              - email
                                              - name
                                            properties:
                                              attention:
                                                type: string
                                                maxLength: 140
                                                example: Leave at the back door.
                                              street1:
                                                type: string
                                                maxLength: 140
                                                example: 123 Main Street
                                              street2:
                                                type: string
                                                maxLength: 240
                                                example: ABC Boulevard
                                              city:
                                                type: string
                                                maxLength: 140
                                                example: Seattle
                                              state:
                                                type: string
                                                maxLength: 25
                                                example: WA
                                              country:
                                                type: string
                                                maxLength: 140
                                                example:
                                                  United States of America
                                              zipCode:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: 10008-1234
                                              kind:
                                                type: string
                                                maxLength: 24
                                                example: TBD
                                              name:
                                                type: object
                                                properties:
                                                  first:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: John
                                                  last:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: Smith
                                              phone:
                                                type: object
                                                required:
                                                  - number
                                                  - kind
                                                properties:
                                                  number:
                                                    type: string
                                                    minLength: 5
                                                    maxLength: 25
                                                    example: 123-456-7890
                                                  kind:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: Mobile
                                              email:
                                                type: string
                                                format: email
                                                minLength: 5
                                                maxLength: 100
                                                example: johnsmith@fabric.inc
                                          - type: object
                                            properties:
                                              shipTo:
                                                type: object
                                                properties:
                                                  shipMethod:
                                                    type: object
                                                    properties:
                                                      shipMethodId:
                                                        type: string
                                                        minLength: 3
                                                        example: 1a2b3c4d5e6f7g8h9i0j
                                                      shipmentCarrier:
                                                        type: string
                                                        example: Fedex
                                                      shipmentMethod:
                                                        type: string
                                                        example: Next Day
                                                      cost:
                                                        type: object
                                                        required:
                                                          - currency
                                                          - amount
                                                        properties:
                                                          currency:
                                                            type: string
                                                            minLength: 3
                                                            example: USD
                                                          amount:
                                                            type: number
                                                            minimum: 0
                                                            example: 5.99
                                          - type: object
                                            properties:
                                              shipToId:
                                                type: string
                                                example: 5269
                                              cartId:
                                                type: object
                                                example: 61e03ff6a865fe00094f8620
                                              taxCode:
                                                type: string
                                                example: FR1000
                                              shipToType:
                                                type: string
                                                example: SHIP_TO_ADDRESS
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                      extra:
                        type: object
                      errors:
                        type: object
                        properties:
                          inventory:
                            type: array
                          price:
                            type: array
                          promo:
                            type: array
                  - $ref: "#/components/schemas/timeStamp"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/apply-promo:
    patch:
      tags:
        - Cart
      summary: Add promotion to cart
      description: Add promotion to cart
      operationId: addPromoToCart
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cartId
                - promoName
              properties:
                cartId:
                  type: string
                  example: 5e5ebf27f1f734055d035833
                promoName:
                  type: string
                  example: CR100
      responses:
        "200":
          description: Add promo to cart
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      allPromosApplied:
                        type: array
                        example:
                          - promoId: 5ddd1a156c5a5fed1e0d91fb
                            promoCode: 10_DOLLORS_OFF_123
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              required:
                                - itemId
                                - group
                                - quantity
                                - price
                              properties:
                                itemId:
                                  type: number
                                  example: 1000000012
                                priceListId:
                                  type: number
                                  example: 100002
                                isUnique:
                                  type: string
                                  example: 123
                                quantity:
                                  type: number
                                  minimum: 1
                                  default: 1
                                  example: 2
                                price:
                                  type: object
                                  required:
                                    - currency
                                    - base
                                    - discount
                                  properties:
                                    currency:
                                      type: string
                                      maxLength: 3
                                      minLength: 3
                                      example: USD
                                    base:
                                      type: number
                                      example: 15.99
                                    sale:
                                      type: number
                                      example: 10.99
                                    discount:
                                      type: object
                                      required:
                                        - price
                                      properties:
                                        price:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        discountAmount:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        promosApplied:
                                          type: array
                                          minItems: 0
                                          items:
                                            type: object
                                            properties:
                                              unit:
                                                type: string
                                              value:
                                                type: integer
                                                format: int32
                                              "ON":
                                                title: "ON"
                                                required:
                                                  - kind
                                                  - value
                                                type: object
                                                properties:
                                                  kind:
                                                    type: string
                                                  value:
                                                    type: string
                                                    nullable: true
                                                example:
                                                  kind: SKU
                                                  value: ""
                                              id:
                                                type: string
                                              promoId:
                                                type: string
                                              promoCode:
                                                type: string
                                group:
                                  type: array
                                  minItems: 1
                                  items:
                                    type: string
                                    minLength: 24
                                    maxLength: 24
                                    example: 5ddd1a156c5a5fed1e0d91fb
                            - type: object
                              properties:
                                discountedQuantity:
                                  type: number
                                  example: 0
                                lineItemId:
                                  type: number
                                  example: 1
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                sample:
                                  type: boolean
                                  example: false
                                weightUnit:
                                  type: string
                                  example: kg
                                isPickup:
                                  type: boolean
                                  example: false
                                sku:
                                  type: string
                                  example: blue
                                taxCode:
                                  type: string
                                  example: PH0607
                                title:
                                  type: string
                                  example: item title
                                weight:
                                  type: number
                                  example: 7
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      shipTo:
                                        allOf:
                                          - $ref: "#/components/schemas/timeStamp"
                                          - type: object
                                            required:
                                              - street1
                                              - city
                                              - state
                                              - country
                                              - zipCode
                                              - email
                                              - name
                                            properties:
                                              attention:
                                                type: string
                                                maxLength: 140
                                                example: Leave at the back door.
                                              street1:
                                                type: string
                                                maxLength: 140
                                                example: 123 Main Street
                                              street2:
                                                type: string
                                                maxLength: 240
                                                example: ABC Boulevard
                                              city:
                                                type: string
                                                maxLength: 140
                                                example: Seattle
                                              state:
                                                type: string
                                                maxLength: 25
                                                example: WA
                                              country:
                                                type: string
                                                maxLength: 140
                                                example:
                                                  United States of America
                                              zipCode:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: 10008-1234
                                              kind:
                                                type: string
                                                maxLength: 24
                                                example: TBD
                                              name:
                                                type: object
                                                properties:
                                                  first:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: John
                                                  last:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: Smith
                                              phone:
                                                type: object
                                                required:
                                                  - number
                                                  - kind
                                                properties:
                                                  number:
                                                    type: string
                                                    minLength: 5
                                                    maxLength: 25
                                                    example: 123-456-7890
                                                  kind:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: Mobile
                                              email:
                                                type: string
                                                format: email
                                                minLength: 5
                                                maxLength: 100
                                                example: johnsmith@fabric.inc
                                          - type: object
                                            properties:
                                              shipTo:
                                                type: object
                                                properties:
                                                  shipMethod:
                                                    type: object
                                                    properties:
                                                      shipMethodId:
                                                        type: string
                                                        minLength: 3
                                                        example: 1a2b3c4d5e6f7g8h9i0j
                                                      shipmentCarrier:
                                                        type: string
                                                        example: Fedex
                                                      shipmentMethod:
                                                        type: string
                                                        example: Next Day
                                                      cost:
                                                        type: object
                                                        required:
                                                          - currency
                                                          - amount
                                                        properties:
                                                          currency:
                                                            type: string
                                                            minLength: 3
                                                            example: USD
                                                          amount:
                                                            type: number
                                                            minimum: 0
                                                            example: 5.99
                                          - type: object
                                            properties:
                                              shipToId:
                                                type: string
                                                example: 5269
                                              cartId:
                                                type: object
                                                example: 61e03ff6a865fe00094f8620
                                              taxCode:
                                                type: string
                                                example: FR1000
                                              shipToType:
                                                type: string
                                                example: SHIP_TO_ADDRESS
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                      extra:
                        type: object
                      errors:
                        type: object
                        properties:
                          inventory:
                            type: array
                          price:
                            type: array
                          promo:
                            type: array
                  - $ref: "#/components/schemas/timeStamp"
        "400":
          description: Promo is alerady applied
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: PROMO_ALREADY_APPLIED
                    type: string
                  message:
                    description: The error message
                    example: TEST20 has already been applied.
                    type: string
        "404":
          description: Promo not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: PROMO_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: The promotion code you entered doesn’t exist.
                    type: string
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/remove-promo:
    patch:
      tags:
        - Cart
      summary: Remove promotion from cart
      description: Remove promotion from cart
      operationId: removePromoFromCart
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cartId
                - promoId
              properties:
                promoId:
                  type: string
                  minLength: 24
                  maxLength: 24
                  example: 5ddd1a156c5a5fed1e0d91fb
                cartId:
                  type: string
                  example: 607f8a8f0118960009a8e6ee
      responses:
        "200":
          description: Remove promo from cart
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      allPromosApplied:
                        type: array
                        items:
                          type: object
                          properties:
                            unit:
                              type: string
                            value:
                              type: integer
                              format: int32
                            "ON":
                              title: "ON"
                              required:
                                - kind
                                - value
                              type: object
                              properties:
                                kind:
                                  type: string
                                value:
                                  type: string
                                  nullable: true
                              example:
                                kind: SKU
                                value: ""
                            id:
                              type: string
                            promoId:
                              type: string
                            promoCode:
                              type: string
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              required:
                                - itemId
                                - group
                                - quantity
                                - price
                              properties:
                                itemId:
                                  type: number
                                  example: 1000000012
                                priceListId:
                                  type: number
                                  example: 100002
                                isUnique:
                                  type: string
                                  example: 123
                                quantity:
                                  type: number
                                  minimum: 1
                                  default: 1
                                  example: 2
                                price:
                                  type: object
                                  required:
                                    - currency
                                    - base
                                    - discount
                                  properties:
                                    currency:
                                      type: string
                                      maxLength: 3
                                      minLength: 3
                                      example: USD
                                    base:
                                      type: number
                                      example: 15.99
                                    sale:
                                      type: number
                                      example: 10.99
                                    discount:
                                      type: object
                                      required:
                                        - price
                                      properties:
                                        price:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        discountAmount:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        promosApplied:
                                          type: array
                                          minItems: 0
                                          items:
                                            type: object
                                            properties:
                                              unit:
                                                type: string
                                              value:
                                                type: integer
                                                format: int32
                                              "ON":
                                                title: "ON"
                                                required:
                                                  - kind
                                                  - value
                                                type: object
                                                properties:
                                                  kind:
                                                    type: string
                                                  value:
                                                    type: string
                                                    nullable: true
                                                example:
                                                  kind: SKU
                                                  value: ""
                                              id:
                                                type: string
                                              promoId:
                                                type: string
                                              promoCode:
                                                type: string
                                group:
                                  type: array
                                  minItems: 1
                                  items:
                                    type: string
                                    minLength: 24
                                    maxLength: 24
                                    example: 5ddd1a156c5a5fed1e0d91fb
                            - type: object
                              properties:
                                discountedQuantity:
                                  type: number
                                  example: 0
                                lineItemId:
                                  type: number
                                  example: 1
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                sample:
                                  type: boolean
                                  example: false
                                weightUnit:
                                  type: string
                                  example: kg
                                isPickup:
                                  type: boolean
                                  example: false
                                sku:
                                  type: string
                                  example: blue
                                taxCode:
                                  type: string
                                  example: PH0607
                                title:
                                  type: string
                                  example: item title
                                weight:
                                  type: number
                                  example: 7
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      shipTo:
                                        allOf:
                                          - $ref: "#/components/schemas/timeStamp"
                                          - type: object
                                            required:
                                              - street1
                                              - city
                                              - state
                                              - country
                                              - zipCode
                                              - email
                                              - name
                                            properties:
                                              attention:
                                                type: string
                                                maxLength: 140
                                                example: Leave at the back door.
                                              street1:
                                                type: string
                                                maxLength: 140
                                                example: 123 Main Street
                                              street2:
                                                type: string
                                                maxLength: 240
                                                example: ABC Boulevard
                                              city:
                                                type: string
                                                maxLength: 140
                                                example: Seattle
                                              state:
                                                type: string
                                                maxLength: 25
                                                example: WA
                                              country:
                                                type: string
                                                maxLength: 140
                                                example:
                                                  United States of America
                                              zipCode:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: 10008-1234
                                              kind:
                                                type: string
                                                maxLength: 24
                                                example: TBD
                                              name:
                                                type: object
                                                properties:
                                                  first:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: John
                                                  last:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: Smith
                                              phone:
                                                type: object
                                                required:
                                                  - number
                                                  - kind
                                                properties:
                                                  number:
                                                    type: string
                                                    minLength: 5
                                                    maxLength: 25
                                                    example: 123-456-7890
                                                  kind:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: Mobile
                                              email:
                                                type: string
                                                format: email
                                                minLength: 5
                                                maxLength: 100
                                                example: johnsmith@fabric.inc
                                          - type: object
                                            properties:
                                              shipTo:
                                                type: object
                                                properties:
                                                  shipMethod:
                                                    type: object
                                                    properties:
                                                      shipMethodId:
                                                        type: string
                                                        minLength: 3
                                                        example: 1a2b3c4d5e6f7g8h9i0j
                                                      shipmentCarrier:
                                                        type: string
                                                        example: Fedex
                                                      shipmentMethod:
                                                        type: string
                                                        example: Next Day
                                                      cost:
                                                        type: object
                                                        required:
                                                          - currency
                                                          - amount
                                                        properties:
                                                          currency:
                                                            type: string
                                                            minLength: 3
                                                            example: USD
                                                          amount:
                                                            type: number
                                                            minimum: 0
                                                            example: 5.99
                                          - type: object
                                            properties:
                                              shipToId:
                                                type: string
                                                example: 5269
                                              cartId:
                                                type: object
                                                example: 61e03ff6a865fe00094f8620
                                              taxCode:
                                                type: string
                                                example: FR1000
                                              shipToType:
                                                type: string
                                                example: SHIP_TO_ADDRESS
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                      extra:
                        type: object
                      errors:
                        type: object
                        properties:
                          inventory:
                            type: array
                          price:
                            type: array
                          promo:
                            type: array
                  - $ref: "#/components/schemas/timeStamp"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/merge:
    patch:
      tags:
        - Cart
      summary: Merge user cart and guest cart
      description: Merge user cart and guest cart
      operationId: mergeCart
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: Authorization
          schema:
            type: string
            example: JWT
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - guestCartId
              properties:
                guestCartId:
                  type: string
                  minLength: 24
                  maxLength: 24
                  example: 5e5818a84d030c206b2ffb02
      responses:
        "200":
          description: Merged cart
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      allPromosApplied:
                        type: array
                        items:
                          type: object
                          properties:
                            unit:
                              type: string
                            value:
                              type: integer
                              format: int32
                            "ON":
                              title: "ON"
                              required:
                                - kind
                                - value
                              type: object
                              properties:
                                kind:
                                  type: string
                                value:
                                  type: string
                                  nullable: true
                              example:
                                kind: SKU
                                value: ""
                            id:
                              type: string
                            promoId:
                              type: string
                            promoCode:
                              type: string
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              required:
                                - itemId
                                - group
                                - quantity
                                - price
                              properties:
                                itemId:
                                  type: number
                                  example: 1000000012
                                priceListId:
                                  type: number
                                  example: 100002
                                isUnique:
                                  type: string
                                  example: 123
                                quantity:
                                  type: number
                                  minimum: 1
                                  default: 1
                                  example: 2
                                price:
                                  type: object
                                  required:
                                    - currency
                                    - base
                                    - discount
                                  properties:
                                    currency:
                                      type: string
                                      maxLength: 3
                                      minLength: 3
                                      example: USD
                                    base:
                                      type: number
                                      example: 15.99
                                    sale:
                                      type: number
                                      example: 10.99
                                    discount:
                                      type: object
                                      required:
                                        - price
                                      properties:
                                        price:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        discountAmount:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        promosApplied:
                                          type: array
                                          minItems: 0
                                          items:
                                            $ref: "#/components/schemas/allPromosApplied"
                                group:
                                  type: array
                                  minItems: 1
                                  items:
                                    type: string
                                    minLength: 24
                                    maxLength: 24
                                    example: 5ddd1a156c5a5fed1e0d91fb
                            - type: object
                              properties:
                                discountedQuantity:
                                  type: number
                                  example: 0
                                lineItemId:
                                  type: number
                                  example: 1
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                sample:
                                  type: boolean
                                  example: false
                                weightUnit:
                                  type: string
                                  example: kg
                                isPickup:
                                  type: boolean
                                  example: false
                                sku:
                                  type: string
                                  example: blue
                                taxCode:
                                  type: string
                                  example: PH0607
                                title:
                                  type: string
                                  example: item title
                                weight:
                                  type: number
                                  example: 7
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      shipTo:
                                        allOf:
                                          - $ref: "#/components/schemas/timeStamp"
                                          - type: object
                                            required:
                                              - street1
                                              - city
                                              - state
                                              - country
                                              - zipCode
                                              - email
                                              - name
                                            properties:
                                              attention:
                                                type: string
                                                maxLength: 140
                                                example: Leave at the back door.
                                              street1:
                                                type: string
                                                maxLength: 140
                                                example: 123 Main Street
                                              street2:
                                                type: string
                                                maxLength: 240
                                                example: ABC Boulevard
                                              city:
                                                type: string
                                                maxLength: 140
                                                example: Seattle
                                              state:
                                                type: string
                                                maxLength: 25
                                                example: WA
                                              country:
                                                type: string
                                                maxLength: 140
                                                example:
                                                  United States of America
                                              zipCode:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: 10008-1234
                                              kind:
                                                type: string
                                                maxLength: 24
                                                example: TBD
                                              name:
                                                type: object
                                                properties:
                                                  first:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: John
                                                  last:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: Smith
                                              phone:
                                                type: object
                                                required:
                                                  - number
                                                  - kind
                                                properties:
                                                  number:
                                                    type: string
                                                    minLength: 5
                                                    maxLength: 25
                                                    example: 123-456-7890
                                                  kind:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: Mobile
                                              email:
                                                type: string
                                                format: email
                                                minLength: 5
                                                maxLength: 100
                                                example: johnsmith@fabric.inc
                                          - type: object
                                            properties:
                                              shipTo:
                                                type: object
                                                properties:
                                                  shipMethod:
                                                    type: object
                                                    properties:
                                                      shipMethodId:
                                                        type: string
                                                        minLength: 3
                                                        example: 1a2b3c4d5e6f7g8h9i0j
                                                      shipmentCarrier:
                                                        type: string
                                                        example: Fedex
                                                      shipmentMethod:
                                                        type: string
                                                        example: Next Day
                                                      cost:
                                                        type: object
                                                        required:
                                                          - currency
                                                          - amount
                                                        properties:
                                                          currency:
                                                            type: string
                                                            minLength: 3
                                                            example: USD
                                                          amount:
                                                            type: number
                                                            minimum: 0
                                                            example: 5.99
                                          - type: object
                                            properties:
                                              shipToId:
                                                type: string
                                                example: 5269
                                              cartId:
                                                type: object
                                                example: 61e03ff6a865fe00094f8620
                                              taxCode:
                                                type: string
                                                example: FR1000
                                              shipToType:
                                                type: string
                                                example: SHIP_TO_ADDRESS
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                      extra:
                        type: object
                      errors:
                        type: object
                        properties:
                          inventory:
                            type: array
                          price:
                            type: array
                          promo:
                            type: array
                  - $ref: "#/components/schemas/timeStamp"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/orderNumber:
    patch:
      tags:
        - Cart
      summary: "[Deprecated] Cart soft delete"
      description: >-
        Cart soft delete, add the deleted boolean flag as true and add the order
        number to the cart.
      operationId: deleteCart
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - orderNumber
              properties:
                orderNumber:
                  type: string
                  minLength: 15
                  maxLength: 15
                  example: 1234-1234-12345
      responses:
        "200":
          description: >-
            Cart soft delete, add the deleted boolean flag as true and add the
            order number to the cart.
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: true
                      allPromosApplied:
                        type: array
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              required:
                                - itemId
                                - group
                                - quantity
                                - price
                              properties:
                                itemId:
                                  type: number
                                  example: 1000000012
                                priceListId:
                                  type: number
                                  example: 100002
                                isUnique:
                                  type: string
                                  example: 123
                                quantity:
                                  type: number
                                  minimum: 1
                                  default: 1
                                  example: 2
                                price:
                                  type: object
                                  required:
                                    - currency
                                    - base
                                    - discount
                                  properties:
                                    currency:
                                      type: string
                                      maxLength: 3
                                      minLength: 3
                                      example: USD
                                    base:
                                      type: number
                                      example: 15.99
                                    sale:
                                      type: number
                                      example: 10.99
                                    discount:
                                      type: object
                                      required:
                                        - price
                                      properties:
                                        price:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        discountAmount:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        promosApplied:
                                          type: array
                                          minItems: 0
                                          items:
                                            type: object
                                            properties:
                                              unit:
                                                type: string
                                              value:
                                                type: integer
                                                format: int32
                                              "ON":
                                                title: "ON"
                                                required:
                                                  - kind
                                                  - value
                                                type: object
                                                properties:
                                                  kind:
                                                    type: string
                                                  value:
                                                    type: string
                                                    nullable: true
                                                example:
                                                  kind: SKU
                                                  value: ""
                                              id:
                                                type: string
                                              promoId:
                                                type: string
                                              promoCode:
                                                type: string
                                group:
                                  type: array
                                  minItems: 1
                                  items:
                                    type: string
                                    minLength: 24
                                    maxLength: 24
                                    example: 5ddd1a156c5a5fed1e0d91fb
                            - type: object
                              properties:
                                discountedQuantity:
                                  type: number
                                  example: 0
                                lineItemId:
                                  type: number
                                  example: 1
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                sample:
                                  type: boolean
                                  example: false
                                weightUnit:
                                  type: string
                                  example: kg
                                isPickup:
                                  type: boolean
                                  example: false
                                sku:
                                  type: string
                                  example: blue
                                taxCode:
                                  type: string
                                  example: PH0607
                                title:
                                  type: string
                                  example: item title
                                weight:
                                  type: number
                                  example: 7
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      shipTo:
                                        allOf:
                                          - $ref: >-
                                              #/components/responses/DeprecatedSoftDeleteCart/content/application~1json/schema/allOf/0/properties/items/items/allOf/2
                                          - type: object
                                            required:
                                              - street1
                                              - city
                                              - state
                                              - country
                                              - zipCode
                                              - email
                                              - name
                                            properties:
                                              attention:
                                                type: string
                                                maxLength: 140
                                                example: Leave at the back door.
                                              street1:
                                                type: string
                                                maxLength: 140
                                                example: 123 Main Street
                                              street2:
                                                type: string
                                                maxLength: 240
                                                example: ABC Boulevard
                                              city:
                                                type: string
                                                maxLength: 140
                                                example: Seattle
                                              state:
                                                type: string
                                                maxLength: 25
                                                example: WA
                                              country:
                                                type: string
                                                maxLength: 140
                                                example:
                                                  United States of America
                                              zipCode:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: 10008-1234
                                              kind:
                                                type: string
                                                maxLength: 24
                                                example: TBD
                                              name:
                                                type: object
                                                properties:
                                                  first:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: John
                                                  last:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: Smith
                                              phone:
                                                type: object
                                                required:
                                                  - number
                                                  - kind
                                                properties:
                                                  number:
                                                    type: string
                                                    minLength: 5
                                                    maxLength: 25
                                                    example: 123-456-7890
                                                  kind:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: Mobile
                                              email:
                                                type: string
                                                format: email
                                                minLength: 5
                                                maxLength: 100
                                                example: johnsmith@fabric.inc
                                          - type: object
                                            properties:
                                              shipTo:
                                                type: object
                                                properties:
                                                  shipMethod:
                                                    type: object
                                                    properties:
                                                      shipMethodId:
                                                        type: string
                                                        minLength: 3
                                                        example: 1a2b3c4d5e6f7g8h9i0j
                                                      shipmentCarrier:
                                                        type: string
                                                        example: Fedex
                                                      shipmentMethod:
                                                        type: string
                                                        example: Next Day
                                                      cost:
                                                        type: object
                                                        required:
                                                          - currency
                                                          - amount
                                                        properties:
                                                          currency:
                                                            type: string
                                                            minLength: 3
                                                            example: USD
                                                          amount:
                                                            type: number
                                                            minimum: 0
                                                            example: 5.99
                                          - type: object
                                            properties:
                                              shipToId:
                                                type: string
                                                example: 5269
                                              cartId:
                                                type: object
                                                example: 61e03ff6a865fe00094f8620
                                              taxCode:
                                                type: string
                                                example: FR1000
                                              shipToType:
                                                type: string
                                                example: SHIP_TO_ADDRESS
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                      extra:
                        type: object
                      errors:
                        type: object
                        properties:
                          inventory:
                            type: array
                          price:
                            type: array
                          promo:
                            type: array
                  - $ref: >-
                      #/components/responses/DeprecatedSoftDeleteCart/content/application~1json/schema/allOf/0/properties/items/items/allOf/2
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}:
    delete:
      tags:
        - Cart
      summary: Cart soft delete
      description: >-
        Cart soft delete, add the deleted boolean flag as true and add the order
        number to the cart.
      operationId: softDeleteCart
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - orderNumber
              properties:
                orderNumber:
                  type: string
                  minLength: 15
                  maxLength: 15
                  example: 1234-1234-12345
      responses:
        "200":
          $ref: >-
            #/components/responses/DeprecatedSoftDeleteCart
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/ship-to:
    patch:
      tags:
        - Cart
      summary: Add shipTo IDs to cart items
      description: Add shipTo IDs to cart items
      operationId: addShipTo
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              items:
                type: object
                required:
                  - itemId
                  - lineItemId
                  - shipToId
                properties:
                  itemId:
                    type: string
                    example: 123456
                  lineItemId:
                    type: number
                    example: 3
                  shipTo:
                    type: string
                    minLength: 24
                    maxLength: 24
                    example: 5e5818a84d030c206b2ffb02
      responses:
        "200":
          description: shipTo added to cart
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      allPromosApplied:
                        type: array
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              required:
                                - itemId
                                - group
                                - quantity
                                - price
                              properties:
                                itemId:
                                  type: number
                                  example: 1000000012
                                priceListId:
                                  type: number
                                  example: 100002
                                isUnique:
                                  type: string
                                  example: 123
                                quantity:
                                  type: number
                                  minimum: 1
                                  default: 1
                                  example: 2
                                price:
                                  type: object
                                  required:
                                    - currency
                                    - base
                                    - discount
                                  properties:
                                    currency:
                                      type: string
                                      maxLength: 3
                                      minLength: 3
                                      example: USD
                                    base:
                                      type: number
                                      example: 15.99
                                    sale:
                                      type: number
                                      example: 10.99
                                    discount:
                                      type: object
                                      required:
                                        - price
                                      properties:
                                        price:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        discountAmount:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        promosApplied:
                                          type: array
                                          minItems: 0
                                          items:
                                            type: object
                                            properties:
                                              unit:
                                                type: string
                                              value:
                                                type: integer
                                                format: int32
                                              "ON":
                                                title: "ON"
                                                required:
                                                  - kind
                                                  - value
                                                type: object
                                                properties:
                                                  kind:
                                                    type: string
                                                  value:
                                                    type: string
                                                    nullable: true
                                                example:
                                                  kind: SKU
                                                  value: ""
                                              id:
                                                type: string
                                              promoId:
                                                type: string
                                              promoCode:
                                                type: string
                                group:
                                  type: array
                                  minItems: 1
                                  items:
                                    type: string
                                    minLength: 24
                                    maxLength: 24
                                    example: 5ddd1a156c5a5fed1e0d91fb
                            - type: object
                              properties:
                                discountedQuantity:
                                  type: number
                                  example: 0
                                lineItemId:
                                  type: number
                                  example: 1
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                sample:
                                  type: boolean
                                  example: false
                                weightUnit:
                                  type: string
                                  example: kg
                                isPickup:
                                  type: boolean
                                  example: false
                                sku:
                                  type: string
                                  example: blue
                                taxCode:
                                  type: string
                                  example: PH0607
                                title:
                                  type: string
                                  example: item title
                                weight:
                                  type: number
                                  example: 7
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      shipTo:
                                        allOf:
                                          - $ref: >-
                                              #/components/responses/ShipToAddedToCart/content/application~1json/schema/allOf/0/properties/items/items/allOf/2
                                          - type: object
                                            required:
                                              - street1
                                              - city
                                              - state
                                              - country
                                              - zipCode
                                              - email
                                              - name
                                            properties:
                                              attention:
                                                type: string
                                                maxLength: 140
                                                example: Leave at the back door.
                                              street1:
                                                type: string
                                                maxLength: 140
                                                example: 123 Main Street
                                              street2:
                                                type: string
                                                maxLength: 240
                                                example: ABC Boulevard
                                              city:
                                                type: string
                                                maxLength: 140
                                                example: Seattle
                                              state:
                                                type: string
                                                maxLength: 25
                                                example: WA
                                              country:
                                                type: string
                                                maxLength: 140
                                                example:
                                                  United States of America
                                              zipCode:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: 10008-1234
                                              kind:
                                                type: string
                                                maxLength: 24
                                                example: TBD
                                              name:
                                                type: object
                                                properties:
                                                  first:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: John
                                                  last:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: Smith
                                              phone:
                                                type: object
                                                required:
                                                  - number
                                                  - kind
                                                properties:
                                                  number:
                                                    type: string
                                                    minLength: 5
                                                    maxLength: 25
                                                    example: 123-456-7890
                                                  kind:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: Mobile
                                              email:
                                                type: string
                                                format: email
                                                minLength: 5
                                                maxLength: 100
                                                example: johnsmith@fabric.inc
                                          - type: object
                                            properties:
                                              shipTo:
                                                type: object
                                                properties:
                                                  shipMethod:
                                                    type: object
                                                    properties:
                                                      shipMethodId:
                                                        type: string
                                                        minLength: 3
                                                        example: 1a2b3c4d5e6f7g8h9i0j
                                                      shipmentCarrier:
                                                        type: string
                                                        example: Fedex
                                                      shipmentMethod:
                                                        type: string
                                                        example: Next Day
                                                      cost:
                                                        type: object
                                                        required:
                                                          - currency
                                                          - amount
                                                        properties:
                                                          currency:
                                                            type: string
                                                            minLength: 3
                                                            example: USD
                                                          amount:
                                                            type: number
                                                            minimum: 0
                                                            example: 5.99
                                          - type: object
                                            properties:
                                              shipToId:
                                                type: string
                                                example: 5269
                                              cartId:
                                                type: object
                                                example: 61e03ff6a865fe00094f8620
                                              taxCode:
                                                type: string
                                                example: FR1000
                                              shipToType:
                                                type: string
                                                example: SHIP_TO_ADDRESS
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                      extra:
                        type: object
                      errors:
                        type: object
                        properties:
                          inventory:
                            type: array
                          price:
                            type: array
                          promo:
                            type: array
                  - $ref: >-
                      #/components/responses/ShipToAddedToCart/content/application~1json/schema/allOf/0/properties/items/items/allOf/2
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/ship-to/v1:
    patch:
      tags:
        - Cart
      summary: Add shipTo IDs to cart items (v1)
      description: Add shipTo IDs to cart items (v1)
      operationId: addShipTo-v1
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              items:
                type: object
                required:
                  - itemId
                  - lineItemId
                  - shipToId
                properties:
                  itemId:
                    type: string
                    example: 123456
                  lineItemId:
                    type: number
                    example: 3
                  shipTo:
                    type: string
                    minLength: 24
                    maxLength: 24
                    example: 5e5818a84d030c206b2ffb02
      responses:
        "200":
          $ref: "#/components/responses/ShipToAddedToCart"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/status/{updatedStatus}:
    patch:
      tags:
        - Cart
      summary: Update cart status
      description: Update cart status
      operationId: updateCartStatus
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: updatedStatus
          required: true
          schema:
            type: string
          example: pending
      responses:
        "200":
          description: Cart with updated status
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      allPromosApplied:
                        type: array
                        items:
                          type: object
                          properties:
                            unit:
                              type: string
                            value:
                              type: integer
                              format: int32
                            "ON":
                              title: "ON"
                              required:
                                - kind
                                - value
                              type: object
                              properties:
                                kind:
                                  type: string
                                value:
                                  type: string
                                  nullable: true
                              example:
                                kind: SKU
                                value: ""
                            id:
                              type: string
                            promoId:
                              type: string
                            promoCode:
                              type: string
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              required:
                                - itemId
                                - group
                                - quantity
                                - price
                              properties:
                                itemId:
                                  type: number
                                  example: 1000000012
                                priceListId:
                                  type: number
                                  example: 100002
                                isUnique:
                                  type: string
                                  example: 123
                                quantity:
                                  type: number
                                  minimum: 1
                                  default: 1
                                  example: 2
                                price:
                                  type: object
                                  required:
                                    - currency
                                    - base
                                    - discount
                                  properties:
                                    currency:
                                      type: string
                                      maxLength: 3
                                      minLength: 3
                                      example: USD
                                    base:
                                      type: number
                                      example: 15.99
                                    sale:
                                      type: number
                                      example: 10.99
                                    discount:
                                      type: object
                                      required:
                                        - price
                                      properties:
                                        price:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        discountAmount:
                                          type: number
                                          default: 0
                                          example: 10.99
                                        promosApplied:
                                          type: array
                                          minItems: 0
                                          items:
                                            $ref: "#/components/schemas/allPromosApplied"
                                group:
                                  type: array
                                  minItems: 1
                                  items:
                                    type: string
                                    minLength: 24
                                    maxLength: 24
                                    example: 5ddd1a156c5a5fed1e0d91fb
                            - type: object
                              properties:
                                discountedQuantity:
                                  type: number
                                  example: 0
                                lineItemId:
                                  type: number
                                  example: 1
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                sample:
                                  type: boolean
                                  example: false
                                weightUnit:
                                  type: string
                                  example: kg
                                isPickup:
                                  type: boolean
                                  example: false
                                sku:
                                  type: string
                                  example: blue
                                taxCode:
                                  type: string
                                  example: PH0607
                                title:
                                  type: string
                                  example: item title
                                weight:
                                  type: number
                                  example: 7
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      shipTo:
                                        allOf:
                                          - $ref: >-
                                              #/components/schemas/timeStamp
                                          - type: object
                                            required:
                                              - street1
                                              - city
                                              - state
                                              - country
                                              - zipCode
                                              - email
                                              - name
                                            properties:
                                              attention:
                                                type: string
                                                maxLength: 140
                                                example: Leave at the back door.
                                              street1:
                                                type: string
                                                maxLength: 140
                                                example: 123 Main Street
                                              street2:
                                                type: string
                                                maxLength: 240
                                                example: ABC Boulevard
                                              city:
                                                type: string
                                                maxLength: 140
                                                example: Seattle
                                              state:
                                                type: string
                                                maxLength: 25
                                                example: WA
                                              country:
                                                type: string
                                                maxLength: 140
                                                example:
                                                  United States of America
                                              zipCode:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: 10008-1234
                                              kind:
                                                type: string
                                                maxLength: 24
                                                example: TBD
                                              name:
                                                type: object
                                                properties:
                                                  first:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: John
                                                  last:
                                                    type: string
                                                    minLength: 2
                                                    maxLength: 50
                                                    example: Smith
                                              phone:
                                                type: object
                                                required:
                                                  - number
                                                  - kind
                                                properties:
                                                  number:
                                                    type: string
                                                    minLength: 5
                                                    maxLength: 25
                                                    example: 123-456-7890
                                                  kind:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: Mobile
                                              email:
                                                type: string
                                                format: email
                                                minLength: 5
                                                maxLength: 100
                                                example: johnsmith@fabric.inc
                                          - type: object
                                            properties:
                                              shipTo:
                                                type: object
                                                properties:
                                                  shipMethod:
                                                    type: object
                                                    properties:
                                                      shipMethodId:
                                                        type: string
                                                        minLength: 3
                                                        example: 1a2b3c4d5e6f7g8h9i0j
                                                      shipmentCarrier:
                                                        type: string
                                                        example: Fedex
                                                      shipmentMethod:
                                                        type: string
                                                        example: Next Day
                                                      cost:
                                                        type: object
                                                        required:
                                                          - currency
                                                          - amount
                                                        properties:
                                                          currency:
                                                            type: string
                                                            minLength: 3
                                                            example: USD
                                                          amount:
                                                            type: number
                                                            minimum: 0
                                                            example: 5.99
                                          - type: object
                                            properties:
                                              shipToId:
                                                type: string
                                                example: 5269
                                              cartId:
                                                type: object
                                                example: 61e03ff6a865fe00094f8620
                                              taxCode:
                                                type: string
                                                example: FR1000
                                              shipToType:
                                                type: string
                                                example: SHIP_TO_ADDRESS
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      cartId:
                        type: number
                        example: 4
                      totalAmmount":
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      quantity:
                        type: number
                        example: 2
                      __v:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      company:
                        type: string
                      status:
                        type: string
                        example: pending
                      extra:
                        type: object
                      errors:
                        type: object
                        properties:
                          inventory:
                            type: array
                          price:
                            type: array
                          promo:
                            type: array
                  - $ref: >-
                      #/components/schemas/timeStamp
        "400":
          description: User cannot have more than one pending cart.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: CART_CANNOT_BE_UPDATED
                    type: string
                  message:
                    description: The error message
                    example: User cannot have more than one pending cart.
                    type: string
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/query:
    post:
      tags:
        - Cart
      summary: Query on carts
      description: Find a specific carts that matches the filters
      operationId: cartQuery
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                offset:
                  type: number
                  default: 0
                  minimum: 0
                limit:
                  type: number
                  default: 10
                  minimum: 1
                  maximum: 500
                filters:
                  type: object
                  properties:
                    date:
                      type: object
                      properties:
                        gte:
                          type: string
                          example: "2019-12-14T23:20:50.52Z"
                        lte:
                          type: string
                          example: "2019-12-14T23:20:50.52Z"
                    userId:
                      type: string
                    approver:
                      type: string
                    account:
                      type: string
                    po:
                      type: string
                    company:
                      type: string
                    status:
                      type: array
                      items:
                        type: string
                      example:
                        - pending
                  anyOf:
                    - required:
                        - date
                    - required:
                        - userId
                    - required:
                        - approver
                    - required:
                        - account
                    - required:
                        - po
                    - required:
                        - status
                    - required:
                        - company
      responses:
        "200":
          description: Matched carts to filters
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: object
                    properties:
                      limit:
                        type: number
                        example: 10
                      offset:
                        type: number
                        example: 0
                      count:
                        type: number
                        example: 1
                  carts:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - type: object
                              properties:
                                deleted:
                                  type: boolean
                                  example: false
                                allPromosApplied:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      unit:
                                        type: string
                                      value:
                                        type: integer
                                        format: int32
                                      "ON":
                                        title: "ON"
                                        required:
                                          - kind
                                          - value
                                        type: object
                                        properties:
                                          kind:
                                            type: string
                                          value:
                                            type: string
                                            nullable: true
                                        example:
                                          kind: SKU
                                          value: ""
                                      id:
                                        type: string
                                      promoId:
                                        type: string
                                      promoCode:
                                        type: string
                                items:
                                  type: array
                                  items:
                                    allOf:
                                      - type: object
                                        required:
                                          - itemId
                                          - group
                                          - quantity
                                          - price
                                        properties:
                                          itemId:
                                            type: number
                                            example: 1000000012
                                          priceListId:
                                            type: number
                                            example: 100002
                                          isUnique:
                                            type: string
                                            example: 123
                                          quantity:
                                            type: number
                                            minimum: 1
                                            default: 1
                                            example: 2
                                          price:
                                            type: object
                                            required:
                                              - currency
                                              - base
                                              - discount
                                            properties:
                                              currency:
                                                type: string
                                                maxLength: 3
                                                minLength: 3
                                                example: USD
                                              base:
                                                type: number
                                                example: 15.99
                                              sale:
                                                type: number
                                                example: 10.99
                                              discount:
                                                type: object
                                                required:
                                                  - price
                                                properties:
                                                  price:
                                                    type: number
                                                    default: 0
                                                    example: 10.99
                                                  discountAmount:
                                                    type: number
                                                    default: 0
                                                    example: 10.99
                                                  promosApplied:
                                                    type: array
                                                    minItems: 0
                                                    items:
                                                      type: object
                                                      properties:
                                                        unit:
                                                          type: string
                                                        value:
                                                          type: integer
                                                          format: int32
                                                        "ON":
                                                          title: "ON"
                                                          required:
                                                            - kind
                                                            - value
                                                          type: object
                                                          properties:
                                                            kind:
                                                              type: string
                                                            value:
                                                              type: string
                                                              nullable: true
                                                          example:
                                                            kind: SKU
                                                            value: ""
                                                        id:
                                                          type: string
                                                        promoId:
                                                          type: string
                                                        promoCode:
                                                          type: string
                                          group:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: string
                                              minLength: 24
                                              maxLength: 24
                                              example: 5ddd1a156c5a5fed1e0d91fb
                                      - type: object
                                        properties:
                                          discountedQuantity:
                                            type: number
                                            example: 0
                                          lineItemId:
                                            type: number
                                            example: 1
                                          totalPrice:
                                            type: object
                                            properties:
                                              currency:
                                                type: string
                                                example: USD
                                              amount:
                                                type: number
                                                example: 200
                                          id:
                                            type: string
                                            example: 5fee9d59f2f08a1b3cbdea08
                                          sample:
                                            type: boolean
                                            example: false
                                          weightUnit:
                                            type: string
                                            example: kg
                                          isPickup:
                                            type: boolean
                                            example: false
                                          sku:
                                            type: string
                                            example: blue
                                          taxCode:
                                            type: string
                                            example: PH0607
                                          title:
                                            type: string
                                            example: item title
                                          weight:
                                            type: number
                                            example: 7
                                          attributeTotalPrice:
                                            type: number
                                            example: 0
                                          attributes:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                price:
                                                  type: number
                                                  example: 10
                                                _id:
                                                  type: string
                                                  example: 6146e98408e3700008b64611
                                                attributeId:
                                                  type: string
                                                  example: 60a77de306f682000975c24c
                                                value:
                                                  type: string
                                                  example: true/false
                                                name:
                                                  type: string
                                                  example: Gift Message
                                                type:
                                                  type: string
                                                id:
                                                  type: string
                                                  example: 6146e98408e3700008b64611
                                                shipTo:
                                                  allOf:
                                                    - $ref: >-
                                                        #/components/schemas/timeStamp
                                                    - type: object
                                                      required:
                                                        - street1
                                                        - city
                                                        - state
                                                        - country
                                                        - zipCode
                                                        - email
                                                        - name
                                                      properties:
                                                        attention:
                                                          type: string
                                                          maxLength: 140
                                                          example:
                                                            Leave at the back
                                                            door.
                                                        street1:
                                                          type: string
                                                          maxLength: 140
                                                          example:
                                                            123 Main Street
                                                        street2:
                                                          type: string
                                                          maxLength: 240
                                                          example: ABC Boulevard
                                                        city:
                                                          type: string
                                                          maxLength: 140
                                                          example: Seattle
                                                        state:
                                                          type: string
                                                          maxLength: 25
                                                          example: WA
                                                        country:
                                                          type: string
                                                          maxLength: 140
                                                          example:
                                                            United States of
                                                            America
                                                        zipCode:
                                                          type: string
                                                          minLength: 3
                                                          maxLength: 25
                                                          example: 10008-1234
                                                        kind:
                                                          type: string
                                                          maxLength: 24
                                                          example: TBD
                                                        name:
                                                          type: object
                                                          properties:
                                                            first:
                                                              type: string
                                                              minLength: 2
                                                              maxLength: 50
                                                              example: John
                                                            last:
                                                              type: string
                                                              minLength: 2
                                                              maxLength: 50
                                                              example: Smith
                                                        phone:
                                                          type: object
                                                          required:
                                                            - number
                                                            - kind
                                                          properties:
                                                            number:
                                                              type: string
                                                              minLength: 5
                                                              maxLength: 25
                                                              example: 123-456-7890
                                                            kind:
                                                              type: string
                                                              minLength: 3
                                                              maxLength: 25
                                                              example: Mobile
                                                        email:
                                                          type: string
                                                          format: email
                                                          minLength: 5
                                                          maxLength: 100
                                                          example: johnsmith@fabric.inc
                                                    - type: object
                                                      properties:
                                                        shipTo:
                                                          type: object
                                                          properties:
                                                            shipMethod:
                                                              type: object
                                                              properties:
                                                                shipMethodId:
                                                                  type: string
                                                                  minLength: 3
                                                                  example: 1a2b3c4d5e6f7g8h9i0j
                                                                shipmentCarrier:
                                                                  type: string
                                                                  example: Fedex
                                                                shipmentMethod:
                                                                  type: string
                                                                  example:
                                                                    Next Day
                                                                cost:
                                                                  type: object
                                                                  required:
                                                                    - currency
                                                                    - amount
                                                                  properties:
                                                                    currency:
                                                                      type: string
                                                                      minLength: 3
                                                                      example: USD
                                                                    amount:
                                                                      type: number
                                                                      minimum: 0
                                                                      example: 5.99
                                                    - type: object
                                                      properties:
                                                        shipToId:
                                                          type: string
                                                          example: 5269
                                                        cartId:
                                                          type: object
                                                          example: 61e03ff6a865fe00094f8620
                                                        taxCode:
                                                          type: string
                                                          example: FR1000
                                                        shipToType:
                                                          type: string
                                                          example: SHIP_TO_ADDRESS
                                      - type: object
                                        properties:
                                          _id:
                                            type: string
                                            example: 5fee9d59f2f08a1b3cbdea08
                                          createdAt:
                                            type: string
                                            example: "2020-12-31T02:09:53.914Z"
                                          updatedAt:
                                            type: string
                                            example: "2020-12-31T02:09:53.914Z"
                            - type: object
                              properties:
                                registeredUser:
                                  type: boolean
                                  example: false
                                cartId:
                                  type: number
                                  example: 4
                                totalAmmount":
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 200
                                quantity:
                                  type: number
                                  example: 2
                                __v:
                                  type: number
                                  example: 0
                                attributes:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      price:
                                        type: number
                                        example: 10
                                      _id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                      attributeId:
                                        type: string
                                        example: 60a77de306f682000975c24c
                                      value:
                                        type: string
                                        example: true/false
                                      name:
                                        type: string
                                        example: Gift Message
                                      type:
                                        type: string
                                      id:
                                        type: string
                                        example: 6146e98408e3700008b64611
                                account:
                                  type: string
                                approver:
                                  type: string
                                po:
                                  type: string
                                company:
                                  type: string
                                status:
                                  type: string
                                  example: pending
                                extra:
                                  type: object
                                errors:
                                  type: object
                                  properties:
                                    inventory:
                                      type: array
                                    price:
                                      type: array
                                    promo:
                                      type: array
                            - $ref: >-
                                #/components/schemas/timeStamp
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          description: Missing x-api-key in header
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    description: The error message
                    example: Forbidden
                    type: string
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/header:
    patch:
      tags:
        - Cart
      summary: Update cart header
      description: Update cart header
      operationId: updateCartHeader
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                account:
                  type: string
                approver:
                  type: string
                company:
                  type: string
                po:
                  type: string
                extra:
                  type: object
              anyOf:
                - required:
                    - account
                - required:
                    - approver
                - required:
                    - po
                - required:
                    - extra
      responses:
        "200":
          description: cart with update header
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      extra:
                        type: object
                  - allOf:
                      - type: object
                        properties:
                          deleted:
                            type: boolean
                            example: false
                          allPromosApplied:
                            type: array
                            items:
                              type: object
                              properties:
                                unit:
                                  type: string
                                value:
                                  type: integer
                                  format: int32
                                "ON":
                                  title: "ON"
                                  required:
                                    - kind
                                    - value
                                  type: object
                                  properties:
                                    kind:
                                      type: string
                                    value:
                                      type: string
                                      nullable: true
                                  example:
                                    kind: SKU
                                    value: ""
                                id:
                                  type: string
                                promoId:
                                  type: string
                                promoCode:
                                  type: string
                          items:
                            type: array
                            items:
                              allOf:
                                - type: object
                                  required:
                                    - itemId
                                    - group
                                    - quantity
                                    - price
                                  properties:
                                    itemId:
                                      type: number
                                      example: 1000000012
                                    priceListId:
                                      type: number
                                      example: 100002
                                    isUnique:
                                      type: string
                                      example: 123
                                    quantity:
                                      type: number
                                      minimum: 1
                                      default: 1
                                      example: 2
                                    price:
                                      type: object
                                      required:
                                        - currency
                                        - base
                                        - discount
                                      properties:
                                        currency:
                                          type: string
                                          maxLength: 3
                                          minLength: 3
                                          example: USD
                                        base:
                                          type: number
                                          example: 15.99
                                        sale:
                                          type: number
                                          example: 10.99
                                        discount:
                                          type: object
                                          required:
                                            - price
                                          properties:
                                            price:
                                              type: number
                                              default: 0
                                              example: 10.99
                                            discountAmount:
                                              type: number
                                              default: 0
                                              example: 10.99
                                            promosApplied:
                                              type: array
                                              minItems: 0
                                              items:
                                                $ref: "#/components/schemas/allPromosApplied"
                                    group:
                                      type: array
                                      minItems: 1
                                      items:
                                        type: string
                                        minLength: 24
                                        maxLength: 24
                                        example: 5ddd1a156c5a5fed1e0d91fb
                                - type: object
                                  properties:
                                    discountedQuantity:
                                      type: number
                                      example: 0
                                    lineItemId:
                                      type: number
                                      example: 1
                                    totalPrice:
                                      type: object
                                      properties:
                                        currency:
                                          type: string
                                          example: USD
                                        amount:
                                          type: number
                                          example: 200
                                    id:
                                      type: string
                                      example: 5fee9d59f2f08a1b3cbdea08
                                    sample:
                                      type: boolean
                                      example: false
                                    weightUnit:
                                      type: string
                                      example: kg
                                    isPickup:
                                      type: boolean
                                      example: false
                                    sku:
                                      type: string
                                      example: blue
                                    taxCode:
                                      type: string
                                      example: PH0607
                                    title:
                                      type: string
                                      example: item title
                                    weight:
                                      type: number
                                      example: 7
                                    attributeTotalPrice:
                                      type: number
                                      example: 0
                                    attributes:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          price:
                                            type: number
                                            example: 10
                                          _id:
                                            type: string
                                            example: 6146e98408e3700008b64611
                                          attributeId:
                                            type: string
                                            example: 60a77de306f682000975c24c
                                          value:
                                            type: string
                                            example: true/false
                                          name:
                                            type: string
                                            example: Gift Message
                                          type:
                                            type: string
                                          id:
                                            type: string
                                            example: 6146e98408e3700008b64611
                                          shipTo:
                                            allOf:
                                              - $ref: "#/components/schemas/timeStamp"
                                              - type: object
                                                required:
                                                  - street1
                                                  - city
                                                  - state
                                                  - country
                                                  - zipCode
                                                  - email
                                                  - name
                                                properties:
                                                  attention:
                                                    type: string
                                                    maxLength: 140
                                                    example:
                                                      Leave at the back door.
                                                  street1:
                                                    type: string
                                                    maxLength: 140
                                                    example: 123 Main Street
                                                  street2:
                                                    type: string
                                                    maxLength: 240
                                                    example: ABC Boulevard
                                                  city:
                                                    type: string
                                                    maxLength: 140
                                                    example: Seattle
                                                  state:
                                                    type: string
                                                    maxLength: 25
                                                    example: WA
                                                  country:
                                                    type: string
                                                    maxLength: 140
                                                    example:
                                                      United States of America
                                                  zipCode:
                                                    type: string
                                                    minLength: 3
                                                    maxLength: 25
                                                    example: 10008-1234
                                                  kind:
                                                    type: string
                                                    maxLength: 24
                                                    example: TBD
                                                  name:
                                                    type: object
                                                    properties:
                                                      first:
                                                        type: string
                                                        minLength: 2
                                                        maxLength: 50
                                                        example: John
                                                      last:
                                                        type: string
                                                        minLength: 2
                                                        maxLength: 50
                                                        example: Smith
                                                  phone:
                                                    type: object
                                                    required:
                                                      - number
                                                      - kind
                                                    properties:
                                                      number:
                                                        type: string
                                                        minLength: 5
                                                        maxLength: 25
                                                        example: 123-456-7890
                                                      kind:
                                                        type: string
                                                        minLength: 3
                                                        maxLength: 25
                                                        example: Mobile
                                                  email:
                                                    type: string
                                                    format: email
                                                    minLength: 5
                                                    maxLength: 100
                                                    example: johnsmith@fabric.inc
                                              - type: object
                                                properties:
                                                  shipTo:
                                                    type: object
                                                    properties:
                                                      shipMethod:
                                                        type: object
                                                        properties:
                                                          shipMethodId:
                                                            type: string
                                                            minLength: 3
                                                            example: 1a2b3c4d5e6f7g8h9i0j
                                                          shipmentCarrier:
                                                            type: string
                                                            example: Fedex
                                                          shipmentMethod:
                                                            type: string
                                                            example: Next Day
                                                          cost:
                                                            type: object
                                                            required:
                                                              - currency
                                                              - amount
                                                            properties:
                                                              currency:
                                                                type: string
                                                                minLength: 3
                                                                example: USD
                                                              amount:
                                                                type: number
                                                                minimum: 0
                                                                example: 5.99
                                              - type: object
                                                properties:
                                                  shipToId:
                                                    type: string
                                                    example: 5269
                                                  cartId:
                                                    type: object
                                                    example: 61e03ff6a865fe00094f8620
                                                  taxCode:
                                                    type: string
                                                    example: FR1000
                                                  shipToType:
                                                    type: string
                                                    example: SHIP_TO_ADDRESS
                                - type: object
                                  properties:
                                    _id:
                                      type: string
                                      example: 5fee9d59f2f08a1b3cbdea08
                                    createdAt:
                                      type: string
                                      example: "2020-12-31T02:09:53.914Z"
                                    updatedAt:
                                      type: string
                                      example: "2020-12-31T02:09:53.914Z"
                      - type: object
                        properties:
                          registeredUser:
                            type: boolean
                            example: false
                          cartId:
                            type: number
                            example: 4
                          totalAmmount":
                            type: object
                            properties:
                              currency:
                                type: string
                                example: USD
                              amount:
                                type: number
                                example: 200
                          quantity:
                            type: number
                            example: 2
                          __v:
                            type: number
                            example: 0
                          attributes:
                            type: array
                            items:
                              type: object
                              properties:
                                price:
                                  type: number
                                  example: 10
                                _id:
                                  type: string
                                  example: 6146e98408e3700008b64611
                                attributeId:
                                  type: string
                                  example: 60a77de306f682000975c24c
                                value:
                                  type: string
                                  example: true/false
                                name:
                                  type: string
                                  example: Gift Message
                                type:
                                  type: string
                                id:
                                  type: string
                                  example: 6146e98408e3700008b64611
                          account:
                            type: string
                          approver:
                            type: string
                          po:
                            type: string
                          company:
                            type: string
                          status:
                            type: string
                            example: pending
                          extra:
                            type: object
                          errors:
                            type: object
                            properties:
                              inventory:
                                type: array
                              price:
                                type: array
                              promo:
                                type: array
                      - $ref: "#/components/schemas/timeStamp"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/bill-to/cart/{cartId}:
    post:
      tags:
        - Bill To
      summary: Create billto for a shipment [Deprecated]
      description: Create billto for a shipment
      operationId: billToCreation
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  required:
                    - paymentMethod
                    - cardIdentifier
                    - amount
                    - address
                  properties:
                    paymentMethod:
                      type: string
                      minLength: 3
                      maxLength: 24
                      example: Visa Credit
                    cardIdentifier:
                      type: string
                      minLength: 4
                      maxLength: 4
                      example: "1234"
                    amount:
                      type: number
                      minimum: 0.01
                      example: 149.99
                - type: object
                  properties:
                    address:
                      allOf:
                        - type: object
                          required:
                            - street1
                            - city
                            - state
                            - country
                            - zipCode
                            - email
                            - name
                        - type: object
                          properties:
                            attention:
                              type: string
                              maxLength: 140
                              example: Leave at the back door.
                            street1:
                              type: string
                              maxLength: 140
                              example: 123 Main Street
                            street2:
                              type: string
                              maxLength: 240
                              example: ABC Boulevard
                            city:
                              type: string
                              maxLength: 140
                              example: Seattle
                            state:
                              type: string
                              maxLength: 25
                              example: WA
                            country:
                              type: string
                              maxLength: 140
                              example: United States of America
                            zipCode:
                              type: string
                              minLength: 3
                              maxLength: 25
                              example: 10008-1234
                            kind:
                              type: string
                              maxLength: 24
                              example: TBD
                        - type: object
                          properties:
                            name:
                              type: object
                              properties:
                                first:
                                  type: string
                                  minLength: 2
                                  maxLength: 50
                                  example: John
                                last:
                                  type: string
                                  minLength: 2
                                  maxLength: 50
                                  example: Smith
                            phone:
                              type: object
                              required:
                                - number
                                - kind
                              properties:
                                number:
                                  type: string
                                  minLength: 5
                                  maxLength: 25
                                  example: 123-456-7890
                                kind:
                                  type: string
                                  minLength: 3
                                  maxLength: 25
                                  example: Mobile
                            email:
                              type: string
                              format: email
                              minLength: 5
                              maxLength: 100
                              example: johnsmith@fabric.inc
      responses:
        "200":
          description: Bill To For Shipment Created
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      paymentMethod:
                        type: string
                        minLength: 3
                        maxLength: 24
                        example: Visa Credit
                      cardIdentifier:
                        type: string
                        minLength: 4
                        maxLength: 4
                        example: "1234"
                      amount:
                        type: number
                        minimum: 0.01
                        example: 149.99
                  - type: object
                    properties:
                      address:
                        allOf:
                          - type: object
                            required:
                              - street1
                              - city
                              - state
                              - country
                              - zipCode
                              - email
                              - name
                          - type: object
                            properties:
                              attention:
                                type: string
                                maxLength: 140
                                example: Leave at the back door.
                              street1:
                                type: string
                                maxLength: 140
                                example: 123 Main Street
                              street2:
                                type: string
                                maxLength: 240
                                example: ABC Boulevard
                              city:
                                type: string
                                maxLength: 140
                                example: Seattle
                              state:
                                type: string
                                maxLength: 25
                                example: WA
                              country:
                                type: string
                                maxLength: 140
                                example: United States of America
                              zipCode:
                                type: string
                                minLength: 3
                                maxLength: 25
                                example: 10008-1234
                              kind:
                                type: string
                                maxLength: 24
                                example: TBD
                          - type: object
                            properties:
                              name:
                                type: object
                                properties:
                                  first:
                                    type: string
                                    minLength: 2
                                    maxLength: 50
                                    example: John
                                  last:
                                    type: string
                                    minLength: 2
                                    maxLength: 50
                                    example: Smith
                              phone:
                                type: object
                                required:
                                  - number
                                  - kind
                                properties:
                                  number:
                                    type: string
                                    minLength: 5
                                    maxLength: 25
                                    example: 123-456-7890
                                  kind:
                                    type: string
                                    minLength: 3
                                    maxLength: 25
                                    example: Mobile
                              email:
                                type: string
                                format: email
                                minLength: 5
                                maxLength: 100
                                example: johnsmith@fabric.inc
                  - type: object
                    properties:
                      billToId:
                        type: number
                        example: 1
                      cart:
                        type: string
                        example: 5e5818a84d030c206b2ffb02
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/bill-to/{billToId}:
    get:
      tags:
        - Bill To
      summary: Get bill-to by ID [Deprecated]
      description: Get bill-to by ID
      operationId: getBillToById
      parameters:
        - in: path
          name: billToId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      responses:
        "200":
          description: Getting Bill To By ID
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          paymentMethod:
                            type: string
                            minLength: 3
                            maxLength: 24
                            example: Visa Credit
                          cardIdentifier:
                            type: string
                            minLength: 4
                            maxLength: 4
                            example: "1234"
                          amount:
                            type: number
                            minimum: 0.01
                            example: 149.99
                      - type: object
                        properties:
                          address:
                            allOf:
                              - type: object
                                required:
                                  - street1
                                  - city
                                  - state
                                  - country
                                  - zipCode
                                  - email
                                  - name
                              - type: object
                                properties:
                                  attention:
                                    type: string
                                    maxLength: 140
                                    example: Leave at the back door.
                                  street1:
                                    type: string
                                    maxLength: 140
                                    example: 123 Main Street
                                  street2:
                                    type: string
                                    maxLength: 240
                                    example: ABC Boulevard
                                  city:
                                    type: string
                                    maxLength: 140
                                    example: Seattle
                                  state:
                                    type: string
                                    maxLength: 25
                                    example: WA
                                  country:
                                    type: string
                                    maxLength: 140
                                    example: United States of America
                                  zipCode:
                                    type: string
                                    minLength: 3
                                    maxLength: 25
                                    example: 10008-1234
                                  kind:
                                    type: string
                                    maxLength: 24
                                    example: TBD
                              - type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        minLength: 2
                                        maxLength: 50
                                        example: John
                                      last:
                                        type: string
                                        minLength: 2
                                        maxLength: 50
                                        example: Smith
                                  phone:
                                    type: object
                                    required:
                                      - number
                                      - kind
                                    properties:
                                      number:
                                        type: string
                                        minLength: 5
                                        maxLength: 25
                                        example: 123-456-7890
                                      kind:
                                        type: string
                                        minLength: 3
                                        maxLength: 25
                                        example: Mobile
                                  email:
                                    type: string
                                    format: email
                                    minLength: 5
                                    maxLength: 100
                                    example: johnsmith@fabric.inc
                      - type: object
                        properties:
                          billToId:
                            type: number
                            example: 1
                          cart:
                            type: string
                            example: 5e5818a84d030c206b2ffb02
                      - type: object
                        properties:
                          _id:
                            type: string
                            example: 5fee9d59f2f08a1b3cbdea08
                          createdAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                          updatedAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      __v:
                        type: number
                        example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: BillTo not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: BILLTO_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Bill-to not found.
                    type: string
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/bill-to/ship-to/{shipToId}:
    get:
      tags:
        - Bill To
      summary: Get bill-to by shipToId [Deprecated]
      description: Get bill-to by shipToId
      operationId: getBillToByShipToId
      parameters:
        - in: path
          name: shipToId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      responses:
        "200":
          description: Getting Bill To By ID
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      shipMethod:
                        properties:
                          shipMethodId:
                            type: string
                            minLength: 3
                            example: 1a2b3c4d5e6f7g8h9i0j
                          shipmentCarrier:
                            type: string
                            example: Fedex
                          shipmentMethod:
                            type: string
                            example: Next Day
                          cost:
                            type: object
                            required:
                              - currency
                              - amount
                            properties:
                              currency:
                                type: string
                                minLength: 3
                                example: USD
                              amount:
                                type: number
                                minimum: 0
                                example: 5.99
                      address:
                        allOf:
                          - type: object
                            required:
                              - street1
                              - city
                              - state
                              - country
                              - zipCode
                              - email
                              - name
                          - type: object
                            properties:
                              attention:
                                type: string
                                maxLength: 140
                                example: Leave at the back door.
                              street1:
                                type: string
                                maxLength: 140
                                example: 123 Main Street
                              street2:
                                type: string
                                maxLength: 240
                                example: ABC Boulevard
                              city:
                                type: string
                                maxLength: 140
                                example: Seattle
                              state:
                                type: string
                                maxLength: 25
                                example: WA
                              country:
                                type: string
                                maxLength: 140
                                example: United States of America
                              zipCode:
                                type: string
                                minLength: 3
                                maxLength: 25
                                example: 10008-1234
                              kind:
                                type: string
                                maxLength: 24
                                example: TBD
                          - type: object
                            properties:
                              name:
                                type: object
                                properties:
                                  first:
                                    type: string
                                    minLength: 2
                                    maxLength: 50
                                    example: John
                                  last:
                                    type: string
                                    minLength: 2
                                    maxLength: 50
                                    example: Smith
                              phone:
                                type: object
                                required:
                                  - number
                                  - kind
                                properties:
                                  number:
                                    type: string
                                    minLength: 5
                                    maxLength: 25
                                    example: 123-456-7890
                                  kind:
                                    type: string
                                    minLength: 3
                                    maxLength: 25
                                    example: Mobile
                              email:
                                type: string
                                format: email
                                minLength: 5
                                maxLength: 100
                                example: johnsmith@fabric.inc
                      billTo:
                        type: array
                        items:
                          allOf:
                            - allOf:
                                - type: object
                                  properties:
                                    paymentMethod:
                                      type: string
                                      minLength: 3
                                      maxLength: 24
                                      example: Visa Credit
                                    cardIdentifier:
                                      type: string
                                      minLength: 4
                                      maxLength: 4
                                      example: "1234"
                                    amount:
                                      type: number
                                      minimum: 0.01
                                      example: 149.99
                                - type: object
                                  properties:
                                    address:
                                      $ref: "#/components/schemas/address"
                                - type: object
                                  properties:
                                    billToId:
                                      type: number
                                      example: 1
                                    cart:
                                      type: string
                                      example: 5e5818a84d030c206b2ffb02
                                - $ref: "#/components/schemas/timeStamp"
                            - type: object
                              properties:
                                __v:
                                  type: number
                                  example: 0
                      shipToType:
                        type: string
                        enum:
                          - BOPIS
                          - SHIP_TO_STORE
                          - SHIP_TO_ADDRESS
                          - STORE_PICKUP
                        example: SHIP_TO_ADDRESS
                      taxCode:
                        type: string
                        example: FR1000
                      shipToId:
                        type: number
                        example: 1
                      __v:
                        type: number
                        example: 0
                      cartId:
                        type: string
                        minLength: 24
                        maxLength: 24
                        example: 5e5818a84d030c206b2ffb02
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: ShipTo not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: SHIPTO_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Ship-to not found.
                    type: string
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/bill-to/{billToId}:
    patch:
      tags:
        - Bill To
      summary: Update billto for a shipment [Deprecated]
      description: Update billto for a shipment
      operationId: billToUpdation
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - in: path
          name: billToId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    paymentMethod:
                      type: string
                      minLength: 3
                      maxLength: 24
                      example: Visa Credit
                    cardIdentifier:
                      type: string
                      minLength: 4
                      maxLength: 4
                      example: "1234"
                    amount:
                      type: number
                      minimum: 0.01
                      example: 149.99
                - type: object
                  properties:
                    address:
                      allOf:
                        - type: object
                          properties:
                            attention:
                              type: string
                              maxLength: 140
                              example: Leave at the back door.
                            street1:
                              type: string
                              maxLength: 140
                              example: 123 Main Street
                            street2:
                              type: string
                              maxLength: 240
                              example: ABC Boulevard
                            city:
                              type: string
                              maxLength: 140
                              example: Seattle
                            state:
                              type: string
                              maxLength: 25
                              example: WA
                            country:
                              type: string
                              maxLength: 140
                              example: United States of America
                            zipCode:
                              type: string
                              minLength: 3
                              maxLength: 25
                              example: 10008-1234
                            kind:
                              type: string
                              maxLength: 24
                              example: TBD
                        - type: object
                          properties:
                            name:
                              type: object
                              properties:
                                first:
                                  type: string
                                  minLength: 2
                                  maxLength: 50
                                  example: John
                                last:
                                  type: string
                                  minLength: 2
                                  maxLength: 50
                                  example: Smith
                            phone:
                              type: object
                              required:
                                - number
                                - kind
                              properties:
                                number:
                                  type: string
                                  minLength: 5
                                  maxLength: 25
                                  example: 123-456-7890
                                kind:
                                  type: string
                                  minLength: 3
                                  maxLength: 25
                                  example: Mobile
                            email:
                              type: string
                              format: email
                              minLength: 5
                              maxLength: 100
                              example: johnsmith@fabric.inc
      responses:
        "200":
          description: Bill To For Shipment Updated
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          paymentMethod:
                            type: string
                            minLength: 3
                            maxLength: 24
                            example: Visa Credit
                          cardIdentifier:
                            type: string
                            minLength: 4
                            maxLength: 4
                            example: "1234"
                          amount:
                            type: number
                            minimum: 0.01
                            example: 149.99
                      - type: object
                        properties:
                          address:
                            allOf:
                              - type: object
                                required:
                                  - street1
                                  - city
                                  - state
                                  - country
                                  - zipCode
                                  - email
                                  - name
                              - type: object
                                properties:
                                  attention:
                                    type: string
                                    maxLength: 140
                                    example: Leave at the back door.
                                  street1:
                                    type: string
                                    maxLength: 140
                                    example: 123 Main Street
                                  street2:
                                    type: string
                                    maxLength: 240
                                    example: ABC Boulevard
                                  city:
                                    type: string
                                    maxLength: 140
                                    example: Seattle
                                  state:
                                    type: string
                                    maxLength: 25
                                    example: WA
                                  country:
                                    type: string
                                    maxLength: 140
                                    example: United States of America
                                  zipCode:
                                    type: string
                                    minLength: 3
                                    maxLength: 25
                                    example: 10008-1234
                                  kind:
                                    type: string
                                    maxLength: 24
                                    example: TBD
                              - type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        minLength: 2
                                        maxLength: 50
                                        example: John
                                      last:
                                        type: string
                                        minLength: 2
                                        maxLength: 50
                                        example: Smith
                                  phone:
                                    type: object
                                    required:
                                      - number
                                      - kind
                                    properties:
                                      number:
                                        type: string
                                        minLength: 5
                                        maxLength: 25
                                        example: 123-456-7890
                                      kind:
                                        type: string
                                        minLength: 3
                                        maxLength: 25
                                        example: Mobile
                                  email:
                                    type: string
                                    format: email
                                    minLength: 5
                                    maxLength: 100
                                    example: johnsmith@fabric.inc
                      - type: object
                        properties:
                          billToId:
                            type: number
                            example: 1
                          cart:
                            type: string
                            example: 5e5818a84d030c206b2ffb02
                      - type: object
                        properties:
                          _id:
                            type: string
                            example: 5fee9d59f2f08a1b3cbdea08
                          createdAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                          updatedAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      __v:
                        type: number
                        example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/ship-to/cart/{cartId}:
    post:
      tags:
        - Ship To
      summary: Create ship-to
      description: Create ship-to
      operationId: shipToCreation
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  required:
                    - shipToType
                    - shipMethod
                    - address
                  properties:
                    shipToType:
                      type: string
                      enum:
                        - BOPIS
                        - SHIP_TO_STORE
                        - SHIP_TO_ADDRESS
                        - STORE_PICKUP
                      example: SHIP_TO_ADDRESS
                    warehouseId:
                      type: string
                      maxLength: 24
                      minLength: 24
                      example: 123456abcdef123456abcdef
                    isPickup:
                      type: boolean
                      example: true
                    shipMethod:
                      type: object
                      required:
                        - shipMethodId
                        - cost
                      properties:
                        shipMethodId:
                          type: string
                          minLength: 3
                          example: 1a2b3c4d5e6f7g8h9i0j
                        shipmentCarrier:
                          type: string
                          example: Fedex
                        shipmentMethod:
                          type: string
                          example: Next Day
                        cost:
                          type: object
                          required:
                            - currency
                            - amount
                          properties:
                            currency:
                              type: string
                              minLength: 3
                              example: USD
                            amount:
                              type: number
                              minimum: 0
                              example: 5.99
                    taxCode:
                      type: string
                      example: FR1000
                    storeId:
                      type: string
                      minLength: 5
                      maxLength: 50
                      example: TBD
                    pickupPerson:
                      type: object
                      properties:
                        name:
                          type: object
                          properties:
                            first:
                              type: string
                              minLength: 2
                              maxLength: 50
                              example: John
                            last:
                              type: string
                              minLength: 2
                              maxLength: 50
                              example: Smith
                        phone:
                          type: object
                          required:
                            - number
                            - kind
                          properties:
                            number:
                              type: string
                              minLength: 5
                              maxLength: 25
                              example: 123-456-7890
                            kind:
                              type: string
                              minLength: 3
                              maxLength: 25
                              example: Mobile
                        email:
                          type: string
                          format: email
                          minLength: 5
                          maxLength: 100
                          example: johnsmith@fabric.inc
                    altPickupPerson:
                      $ref: "#/components/schemas/pickupPerson"
                - type: object
                  properties:
                    address:
                      allOf:
                        - type: object
                          required:
                            - street1
                            - city
                            - state
                            - country
                            - zipCode
                            - email
                            - name
                        - type: object
                          properties:
                            attention:
                              type: string
                              maxLength: 140
                              example: Leave at the back door.
                            street1:
                              type: string
                              maxLength: 140
                              example: 123 Main Street
                            street2:
                              type: string
                              maxLength: 240
                              example: ABC Boulevard
                            city:
                              type: string
                              maxLength: 140
                              example: Seattle
                            state:
                              type: string
                              maxLength: 25
                              example: WA
                            country:
                              type: string
                              maxLength: 140
                              example: United States of America
                            zipCode:
                              type: string
                              minLength: 3
                              maxLength: 25
                              example: 10008-1234
                            kind:
                              type: string
                              maxLength: 24
                              example: TBD
                        - type: object
                          properties:
                            name:
                              type: object
                              properties:
                                first:
                                  type: string
                                  minLength: 2
                                  maxLength: 50
                                  example: John
                                last:
                                  type: string
                                  minLength: 2
                                  maxLength: 50
                                  example: Smith
                            phone:
                              type: object
                              required:
                                - number
                                - kind
                              properties:
                                number:
                                  type: string
                                  minLength: 5
                                  maxLength: 25
                                  example: 123-456-7890
                                kind:
                                  type: string
                                  minLength: 3
                                  maxLength: 25
                                  example: Mobile
                            email:
                              type: string
                              format: email
                              minLength: 5
                              maxLength: 100
                              example: johnsmith@fabric.inc
      responses:
        "200":
          description: Ship To Created
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      shipToType:
                        type: string
                        enum:
                          - BOPIS
                          - SHIP_TO_STORE
                          - SHIP_TO_ADDRESS
                          - STORE_PICKUP
                        example: SHIP_TO_ADDRESS
                      warehouseId:
                        type: string
                        maxLength: 24
                        minLength: 24
                        example: 123456abcdef123456abcdef
                      isPickup:
                        type: boolean
                        example: true
                      shipMethod:
                        type: object
                        required:
                          - shipMethodId
                          - cost
                        properties:
                          shipMethodId:
                            type: string
                            minLength: 3
                            example: 1a2b3c4d5e6f7g8h9i0j
                          shipmentCarrier:
                            type: string
                            example: Fedex
                          shipmentMethod:
                            type: string
                            example: Next Day
                          cost:
                            type: object
                            required:
                              - currency
                              - amount
                            properties:
                              currency:
                                type: string
                                minLength: 3
                                example: USD
                              amount:
                                type: number
                                minimum: 0
                                example: 5.99
                      taxCode:
                        type: string
                        example: FR1000
                      storeId:
                        type: string
                        minLength: 5
                        maxLength: 50
                        example: TBD
                      pickupPerson:
                        $ref: "#/components/schemas/pickupPerson"
                      altPickupPerson:
                        $ref: "#/components/schemas/pickupPerson"
                  - type: object
                    properties:
                      address:
                        allOf:
                          - type: object
                            properties:
                              attention:
                                type: string
                                maxLength: 140
                                example: Leave at the back door.
                              street1:
                                type: string
                                maxLength: 140
                                example: 123 Main Street
                              street2:
                                type: string
                                maxLength: 240
                                example: ABC Boulevard
                              city:
                                type: string
                                maxLength: 140
                                example: Seattle
                              state:
                                type: string
                                maxLength: 25
                                example: WA
                              country:
                                type: string
                                maxLength: 140
                                example: United States of America
                              zipCode:
                                type: string
                                minLength: 3
                                maxLength: 25
                                example: 10008-1234
                              kind:
                                type: string
                                maxLength: 24
                                example: TBD
                          - type: object
                            properties:
                              name:
                                type: object
                                properties:
                                  first:
                                    type: string
                                    minLength: 2
                                    maxLength: 50
                                    example: John
                                  last:
                                    type: string
                                    minLength: 2
                                    maxLength: 50
                                    example: Smith
                              phone:
                                type: object
                                required:
                                  - number
                                  - kind
                                properties:
                                  number:
                                    type: string
                                    minLength: 5
                                    maxLength: 25
                                    example: 123-456-7890
                                  kind:
                                    type: string
                                    minLength: 3
                                    maxLength: 25
                                    example: Mobile
                              email:
                                type: string
                                format: email
                                minLength: 5
                                maxLength: 100
                                example: johnsmith@fabric.inc
                      cartId:
                        type: string
                        minLength: 24
                        maxLength: 24
                        example: 5e5818a84d030c206b2ffb02
                      shipToId:
                        type: number
                        example: 13812
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/ship-to/{shipToId}/cart:
    get:
      tags:
        - Ship To
      summary: Get Cart data for the given shipTo ID
      description: Get Cart data for the given shipTo ID
      operationId: getCartByShipToId
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: shipToId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb0
      responses:
        "200":
          description: Getting Cart data for the given shipTo ID
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/cartData"        
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/ship-to/{shipTo}:
    get:
      tags:
        - Ship To
      summary: Get ShipTo by ID
      description: Get ShipTo by ID
      operationId: getShipToById
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: shipTo
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      responses:
        "200":
          description: Getting ShipTo by ID
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          shipToType:
                            type: string
                            enum:
                              - BOPIS
                              - SHIP_TO_STORE
                              - SHIP_TO_ADDRESS
                              - STORE_PICKUP
                            example: SHIP_TO_ADDRESS
                          warehouseId:
                            type: string
                            maxLength: 24
                            minLength: 24
                            example: 123456abcdef123456abcdef
                          isPickup:
                            type: boolean
                            example: true
                          shipMethod:
                            type: object
                            required:
                              - shipMethodId
                              - cost
                            properties:
                              shipMethodId:
                                type: string
                                minLength: 3
                                example: 1a2b3c4d5e6f7g8h9i0j
                              shipmentCarrier:
                                type: string
                                example: Fedex
                              shipmentMethod:
                                type: string
                                example: Next Day
                              cost:
                                type: object
                                required:
                                  - currency
                                  - amount
                                properties:
                                  currency:
                                    type: string
                                    minLength: 3
                                    example: USD
                                  amount:
                                    type: number
                                    minimum: 0
                                    example: 5.99
                          taxCode:
                            type: string
                            example: FR1000
                          storeId:
                            type: string
                            minLength: 5
                            maxLength: 50
                            example: TBD
                          pickupPerson:
                            $ref: "#/components/schemas/pickupPerson"
                          altPickupPerson:
                            $ref: "#/components/schemas/pickupPerson"
                      - type: object
                        properties:
                          address:
                            $ref: >-
                              #/components/responses/ShipToCreated/content/application~1json/schema/allOf/1/properties/address
                          cartId:
                            type: string
                            minLength: 24
                            maxLength: 24
                            example: 5e5818a84d030c206b2ffb02
                          shipToId:
                            type: number
                            example: 13812
                      - type: object
                        properties:
                          _id:
                            type: string
                            example: 5fee9d59f2f08a1b3cbdea08
                          createdAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                          updatedAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      __v:
                        type: number
                        example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/ShipToNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/ship-to/{shipToId}:
    patch:
      tags:
        - Ship To
      summary: Update ship-to
      description: Update ship-to
      operationId: shipToToUpdation
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - in: path
          name: shipToId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    shipToType:
                      type: string
                      enum:
                        - BOPIS
                        - SHIP_TO_STORE
                        - SHIP_TO_ADDRESS
                        - STORE_PICKUP
                      example: SHIP_TO_ADDRESS
                    warehouseId:
                      type: string
                      maxLength: 24
                      minLength: 24
                      example: 123456abcdef123456abcdef
                    isPickup:
                      type: boolean
                      example: true
                    shipMethod:
                      type: object
                      required:
                        - shipMethodId
                        - cost
                      properties:
                        shipMethodId:
                          type: string
                          minLength: 3
                          example: 1a2b3c4d5e6f7g8h9i0j
                        shipmentCarrier:
                          type: string
                          example: Fedex
                        shipmentMethod:
                          type: string
                          example: Next Day
                        cost:
                          type: object
                          required:
                            - currency
                            - amount
                          properties:
                            currency:
                              type: string
                              minLength: 3
                              example: USD
                            amount:
                              type: number
                              minimum: 0
                              example: 5.99
                    taxCode:
                      type: string
                      example: FR1000
                    storeId:
                      type: string
                      minLength: 5
                      maxLength: 50
                      example: TBD
                    pickupPerson:
                      $ref: "#/components/schemas/pickupPerson"
                    altPickupPerson:
                      $ref: "#/components/schemas/pickupPerson"
                - type: object
                  properties:
                    address:
                      $ref: >-
                        #/components/responses/ShipToCreated/content/application~1json/schema/allOf/1/properties/address
      responses:
        "200":
          description: Ship To Updated
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          shipToType:
                            type: string
                            enum:
                              - BOPIS
                              - SHIP_TO_STORE
                              - SHIP_TO_ADDRESS
                              - STORE_PICKUP
                            example: SHIP_TO_ADDRESS
                          warehouseId:
                            type: string
                            maxLength: 24
                            minLength: 24
                            example: 123456abcdef123456abcdef
                          isPickup:
                            type: boolean
                            example: true
                          shipMethod:
                            type: object
                            required:
                              - shipMethodId
                              - cost
                            properties:
                              shipMethodId:
                                type: string
                                minLength: 3
                                example: 1a2b3c4d5e6f7g8h9i0j
                              shipmentCarrier:
                                type: string
                                example: Fedex
                              shipmentMethod:
                                type: string
                                example: Next Day
                              cost:
                                type: object
                                required:
                                  - currency
                                  - amount
                                properties:
                                  currency:
                                    type: string
                                    minLength: 3
                                    example: USD
                                  amount:
                                    type: number
                                    minimum: 0
                                    example: 5.99
                          taxCode:
                            type: string
                            example: FR1000
                          storeId:
                            type: string
                            minLength: 5
                            maxLength: 50
                            example: TBD
                          pickupPerson:
                            $ref: "#/components/schemas/pickupPerson"
                          altPickupPerson:
                            $ref: "#/components/schemas/pickupPerson"
                      - type: object
                        properties:
                          address:
                            $ref: >-
                              #/components/responses/ShipToCreated/content/application~1json/schema/allOf/1/properties/address
                          cartId:
                            type: string
                            minLength: 24
                            maxLength: 24
                            example: 5e5818a84d030c206b2ffb02
                          shipToId:
                            type: number
                            example: 13812
                      - type: object
                        properties:
                          _id:
                            type: string
                            example: 5fee9d59f2f08a1b3cbdea08
                          createdAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                          updatedAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      __v:
                        type: number
                        example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/ship-to/v1/cart/{cartId}:
    post:
      tags:
        - Ship To
      summary: Create ship-to (v1)
      description: Create ship-to (v1)
      operationId: shipToCreationV1
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                address:
                  $ref: "#/components/schemas/address"
                shipToType:
                  type: string
                  enum:
                    - BOPIS
                    - SHIP_TO_STORE
                    - SHIP_TO_ADDRESS
                    - STORE_PICKUP
                  example: SHIP_TO_ADDRESS
                warehouseId:
                  type: string
                  maxLength: 24
                  minLength: 24
                  example: 123456abcdef123456abcdef
                isPickup:
                  type: boolean
                  example: true
                shipMethod:
                  type: number
                  example: 10002
                taxCode:
                  type: string
                  example: FR1000
                storeId:
                  type: string
                  minLength: 5
                  maxLength: 50
                  example: TBD
                pickupPerson:
                  $ref: "#/components/schemas/pickupPerson"
                altPickupPerson:
                  $ref: "#/components/schemas/pickupPerson"
      responses:
        "200":
          $ref: "#/components/responses/ShipToCreated"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Shipping method not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: SHIPPING_METHOD_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Shipping Method Not Found.
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/v1/cart/{cartId}/ship-to/{shipToId}:
    patch:
      tags:
        - Ship To
      summary: Update ship-to (v1)
      description: Update ship-to (v1)
      operationId: shipToToUpdationV1
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - in: path
          name: shipToId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    shipToType:
                      type: string
                      enum:
                        - BOPIS
                        - SHIP_TO_STORE
                        - SHIP_TO_ADDRESS
                        - STORE_PICKUP
                      example: SHIP_TO_ADDRESS
                    warehouseId:
                      type: string
                      maxLength: 24
                      minLength: 24
                      example: 123456abcdef123456abcdef
                    isPickup:
                      type: boolean
                      example: true
                    shipMethod:
                      type: number
                    taxCode:
                      type: string
                      example: FR1000
                    storeId:
                      type: string
                      minLength: 5
                      maxLength: 50
                      example: TBD
                    pickupPerson:
                      $ref: "#/components/schemas/pickupPerson"
                    altPickupPerson:
                      $ref: "#/components/schemas/pickupPerson"
                - type: object
                  properties:
                    address:
                      $ref: >-
                        #/components/responses/ShipToCreated/content/application~1json/schema/allOf/1/properties/address
                - required:
                    - isPickup
      responses:
        "200":
          description: Ship To Updated
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          shipToType:
                            type: string
                            enum:
                              - BOPIS
                              - SHIP_TO_STORE
                              - SHIP_TO_ADDRESS
                              - STORE_PICKUP
                            example: SHIP_TO_ADDRESS
                          warehouseId:
                            type: string
                            maxLength: 24
                            minLength: 24
                            example: 123456abcdef123456abcdef
                          isPickup:
                            type: boolean
                            example: true
                          shipMethod:
                            type: object
                            required:
                              - shipMethodId
                              - cost
                            properties:
                              shipMethodId:
                                type: string
                                minLength: 3
                                example: 1a2b3c4d5e6f7g8h9i0j
                              shipmentCarrier:
                                type: string
                                example: Fedex
                              shipmentMethod:
                                type: string
                                example: Next Day
                              cost:
                                type: object
                                required:
                                  - currency
                                  - amount
                                properties:
                                  currency:
                                    type: string
                                    minLength: 3
                                    example: USD
                                  amount:
                                    type: number
                                    minimum: 0
                                    example: 5.99
                          taxCode:
                            type: string
                            example: FR1000
                          storeId:
                            type: string
                            minLength: 5
                            maxLength: 50
                            example: TBD
                          pickupPerson:
                            $ref: "#/components/schemas/pickupPerson"
                          altPickupPerson:
                            $ref: "#/components/schemas/pickupPerson"
                      - type: object
                        properties:
                          address:
                            $ref: >-
                              #/components/responses/ShipToCreated/content/application~1json/schema/allOf/1/properties/address
                          cartId:
                            type: string
                            minLength: 24
                            maxLength: 24
                            example: 5e5818a84d030c206b2ffb02
                          shipToId:
                            type: number
                            example: 13812
                      - type: object
                        properties:
                          _id:
                            type: string
                            example: 5fee9d59f2f08a1b3cbdea08
                          createdAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                          updatedAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      __v:
                        type: number
                        example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Shipping method not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: SHIPPING_METHOD_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Shipping Method Not Found.
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/wishlist/user:
    post:
      tags:
        - Wishlist
      summary: Create/add to wishlist
      description: Create/add to wishlist
      operationId: addItemToWishlist
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: Authorization
          required: true
          schema:
            type: string
          example: JWT
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                itemId:
                  type: number
                  example: "1000000012"
      responses:
        "200":
          description: Item added to Wishlist
          content:
            application/json:
              schema:
                type: object
                properties:
                  userId:
                    type: string
                    example: 5ff5d4a40227d073b02dcfeb
                  items:
                    type: array
                    items:
                      type: number
                      example: 1000000014
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          description: Wishlist not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: WISHLIST_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Wishlist not found.
        "500":
          $ref: "#/components/responses/GenericServerError"
    get:
      tags:
        - Wishlist
      summary: Get wishlist
      description: Get wishlist
      operationId: getWishlist
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: Authorization
          required: true
          schema:
            type: string
          example: JWT
      responses:
        "200":
          description: Getting wishlist
          content:
            application/json:
              schema:
                type: object
                properties:
                  userId:
                    type: string
                    example: 5ff5d4a40227d073b02dcfeb
                  items:
                    type: array
                    items:
                      type: number
                      example: 1000000014
        "400":
          description: Item alerady in wishlist
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: ITEM_ALREADY_EXISTS
                    type: string
                  message:
                    description: The error message
                    example: Item already in wishlist.
        "403":
          $ref: "#/components/responses/Unauthenticated"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/wishlist/user/item/{itemId}:
    delete:
      tags:
        - Wishlist
      summary: Delete from Wishlist
      description: Delete from Wishlist
      operationId: deleteItem
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: itemId
          required: true
          schema:
            type: number
            example: "1000000012"
        - in: header
          name: Authorization
          required: true
          schema:
            type: string
          example: JWT
      responses:
        "200":
          description: Item Deleted from Wishlist
          content:
            application/json:
              schema:
                type: object
                properties:
                  userId:
                    type: string
                    example: 5ff5d4a40227d073b02dcfeb
                  items:
                    type: array
                    items:
                      type: number
                      example: 1000000014
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          description: Wishlist not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: WISHLIST_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Wishlist not found.
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart-decoupled/item:
    post:
      tags:
        - Cart Decoupled
      summary: Add item to cart (cart decoupled)
      description: Add item to cart (cart decoupled)
      operationId: addItemToCartDecoupled
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cartId
                - userAuthToken
                - registeredUser
                - items
              properties:
                cartId:
                  type: string
                  minLength: 24
                  maxLength: 24
                  example: 5e5818a84d030c206b2ffb02
                userAuthToken:
                  type: string
                  example: JWT
                registeredUser:
                  type: boolean
                  example: false
                items:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    required:
                      - itemId
                      - quantity
                      - price
                      - group
                      - sku
                      - taxCode
                      - title
                      - weight
                    properties:
                      itemId:
                        type: number
                        example: 1000000012
                      sample:
                        type: boolean
                        example: false
                      priceListId:
                        type: number
                        example: 1000000012
                      taxCode:
                        type: string
                        minLength: 2
                        maxLength: 25
                        example: TC1234567890
                      sku:
                        type: string
                        minLength: 2
                        maxLength: 25
                        example: sk231212
                      weight:
                        type: number
                        minimum: 0
                        example: 4.2
                      weightUnit:
                        type: string
                        enum:
                          - g
                          - oz
                          - lb
                          - kg
                        minLength: 1
                        maxLength: 2
                        example: lb
                      title:
                        type: string
                        minLength: 2
                        maxLength: 250
                        example: fabric T-shirt
                      quantity:
                        type: number
                        default: 1
                        example: 2
                      price:
                        type: object
                        required:
                          - currency
                          - base
                          - discount
                        properties:
                          currency:
                            type: string
                            maxLength: 3
                            minLength: 3
                            example: USD
                          base:
                            type: number
                            example: 15.99
                          sale:
                            type: number
                            example: 10.99
                          discount:
                            type: object
                            required:
                              - price
                            properties:
                              price:
                                type: number
                                default: 0
                                example: 10.99
                              discountAmount:
                                type: number
                                default: 0
                                example: 10.99
                              promosApplied:
                                type: array
                                minItems: 0
                                items:
                                  type: object
                      group:
                        type: array
                        minItems: 1
                        items:
                          type: string
                          minLength: 24
                          maxLength: 24
                          example: 5ddd1a156c5a5fed1e0d91fb
                      extra:
                        type: object
      responses:
        "200":
          description: Item added to cart decoupled
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          registeredUser:
                            type: boolean
                            example: false
                          account:
                            type: string
                          approver:
                            type: string
                          po:
                            type: string
                          cartId:
                            type: number
                            example: 111166
                          status:
                            type: string
                            example: pending
                          allPromosApplied:
                            type: array
                          attributes:
                            type: array
                          __v:
                            type: number
                            example: 0
                          totalAmount:
                            type: object
                            properties:
                              currency:
                                type: string
                                minLength: 3
                                maxLength: 3
                                example: USD
                              amount:
                                type: number
                                example: 38
                          quantity:
                            type: number
                            example: 2
                      - $ref: "#/components/schemas/timeStamp"
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                price:
                                  type: object
                                  properties:
                                    discount:
                                      type: object
                                      properties:
                                        discountAmount:
                                          type: number
                                          example: 0
                                        price:
                                          type: number
                                          example: 0
                                        promosApplied:
                                          type: array
                                    sale:
                                      type: number
                                      example: 0
                                    base:
                                      type: number
                                      example: 19
                                    currency:
                                      type: string
                                      example: USD
                                sample:
                                  type: boolean
                                  example: false
                                isUnique:
                                  type: boolean
                                  example: false
                                discountedQuantity:
                                  type: number
                                  example: 0
                                group:
                                  type: array
                                  items:
                                    type: string
                                    example: "123123123123123123123123"
                                weightUnit:
                                  type: string
                                  example: lb
                                isPickup:
                                  type: boolean
                                  example: false
                                itemId:
                                  type: number
                                  example: 15
                                sku:
                                  type: string
                                  example: sk231212
                                taxCode:
                                  type: string
                                  example: TC1234567890
                                title:
                                  type: string
                                  example: fabric t-shirt
                                weight:
                                  type: number
                                  example: 4.2
                                quantity:
                                  type: number
                                  example: 2
                                lineItemId:
                                  type: number
                                  example: 1
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 38
                                attributes:
                                  type: array
                                id:
                                  type: string
                                  example: 6141a40c13f13a000876272a
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart-decoupled:
    get:
      tags:
        - Cart Decoupled
      summary:
        Get cart for the given cart ID or user auth token (cart decoupled)
      description:
        Get cart for the given cart ID or user auth token (cart decoupled)
      operationId: getCartDecoupled
      parameters:
        - in: query
          name: Get Cart Decoupled parameters
          schema:
            type: object
            properties:
              userAuthToken:
                type: string
                example: 5e5818a84d030c206b2ffb02
              cartId:
                type: string
                example: 5e5818a84d030c206b2ffb02
            oneOf:
              - required:
                  - userAuthToken
              - required:
                  - cartId
        - $ref: "#/components/parameters/xSiteContent"
      responses:
        "200":
          description: Return cart for specific cartId or userAuthToken
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          registeredUser:
                            type: boolean
                            example: false
                          account:
                            type: string
                          approver:
                            type: string
                          po:
                            type: string
                          cartId:
                            type: number
                            example: 111166
                          status:
                            type: string
                            example: pending
                          allPromosApplied:
                            type: array
                          attributes:
                            type: array
                          __v:
                            type: number
                            example: 0
                          totalAmount:
                            type: object
                            properties:
                              currency:
                                type: string
                                minLength: 3
                                maxLength: 3
                                example: USD
                              amount:
                                type: number
                                example: 38
                          quantity:
                            type: number
                            example: 2
                      - $ref: "#/components/schemas/timeStamp"
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                price:
                                  type: object
                                  properties:
                                    discount:
                                      type: object
                                      properties:
                                        discountAmount:
                                          type: number
                                          example: 0
                                        price:
                                          type: number
                                          example: 0
                                        promosApplied:
                                          type: array
                                    sale:
                                      type: number
                                      example: 0
                                    base:
                                      type: number
                                      example: 19
                                    currency:
                                      type: string
                                      example: USD
                                sample:
                                  type: boolean
                                  example: false
                                isUnique:
                                  type: boolean
                                  example: false
                                discountedQuantity:
                                  type: number
                                  example: 0
                                group:
                                  type: array
                                  items:
                                    type: string
                                    example: "123123123123123123123123"
                                weightUnit:
                                  type: string
                                  example: lb
                                isPickup:
                                  type: boolean
                                  example: false
                                itemId:
                                  type: number
                                  example: 15
                                sku:
                                  type: string
                                  example: sk231212
                                taxCode:
                                  type: string
                                  example: TC1234567890
                                title:
                                  type: string
                                  example: fabric t-shirt
                                weight:
                                  type: number
                                  example: 4.2
                                quantity:
                                  type: number
                                  example: 2
                                lineItemId:
                                  type: number
                                  example: 1
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 38
                                attributes:
                                  type: array
                                id:
                                  type: string
                                  example: 6141a40c13f13a000876272a
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart-decoupled/{cartId}/items:
    patch:
      tags:
        - Cart Decoupled
      summary: Update Items already in cart (cart decoupled)
      description: Update Items already in cart (cart decoupled)
      operationId: updateItemsCartDecoupled
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      lineItemId:
                        type: string
                        example: "1"
                      itemId:
                        type: string
                        example: "15"
                      quantity:
                        type: string
                        example: "1"
                      group:
                        type: array
                        items:
                          type: string
                          example: "123123123123123123123123"
                      price:
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          sale:
                            type: number
                            example: 0
                          base:
                            type: number
                            example: 19
                          discount:
                            type: object
                            properties:
                              price:
                                type: number
                                example: 0
      responses:
        "200":
          description: Update Items already in cart
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          registeredUser:
                            type: boolean
                            example: false
                          account:
                            type: string
                          approver:
                            type: string
                          po:
                            type: string
                          cartId:
                            type: number
                            example: 111166
                          status:
                            type: string
                            example: pending
                          allPromosApplied:
                            type: array
                          attributes:
                            type: array
                          __v:
                            type: number
                            example: 0
                          totalAmount:
                            type: object
                            properties:
                              currency:
                                type: string
                                minLength: 3
                                maxLength: 3
                                example: USD
                              amount:
                                type: number
                                example: 38
                          quantity:
                            type: number
                            example: 2
                      - $ref: "#/components/schemas/timeStamp"
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                price:
                                  type: object
                                  properties:
                                    discount:
                                      type: object
                                      properties:
                                        discountAmount:
                                          type: number
                                          example: 0
                                        price:
                                          type: number
                                          example: 0
                                        promosApplied:
                                          type: array
                                    sale:
                                      type: number
                                      example: 0
                                    base:
                                      type: number
                                      example: 19
                                    currency:
                                      type: string
                                      example: USD
                                sample:
                                  type: boolean
                                  example: false
                                isUnique:
                                  type: boolean
                                  example: false
                                discountedQuantity:
                                  type: number
                                  example: 0
                                group:
                                  type: array
                                  items:
                                    type: string
                                    example: "123123123123123123123123"
                                weightUnit:
                                  type: string
                                  example: lb
                                isPickup:
                                  type: boolean
                                  example: false
                                itemId:
                                  type: number
                                  example: 15
                                sku:
                                  type: string
                                  example: sk231212
                                taxCode:
                                  type: string
                                  example: TC1234567890
                                title:
                                  type: string
                                  example: fabric t-shirt
                                weight:
                                  type: number
                                  example: 4.2
                                quantity:
                                  type: number
                                  example: 2
                                lineItemId:
                                  type: number
                                  example: 1
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 38
                                attributes:
                                  type: array
                                id:
                                  type: string
                                  example: 6141a40c13f13a000876272a
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart-decoupled/{cartId}/item/{lineItemId}:
    patch:
      tags:
        - Cart Decoupled
      summary: Remove item from cart (cart decoupled)
      description: Remove item from cart (cart decoupled)
      operationId: removeItemCartDecoupled
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: lineItemId
          required: true
          schema:
            type: string
          example: 1
      responses:
        "200":
          description: Remove item from cart
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          registeredUser:
                            type: boolean
                            example: false
                          account:
                            type: string
                          approver:
                            type: string
                          po:
                            type: string
                          cartId:
                            type: number
                            example: 111166
                          status:
                            type: string
                            example: pending
                          allPromosApplied:
                            type: array
                          attributes:
                            type: array
                          __v:
                            type: number
                            example: 0
                          totalAmount:
                            type: object
                            properties:
                              currency:
                                type: string
                                minLength: 3
                                maxLength: 3
                                example: USD
                              amount:
                                type: number
                                example: 38
                          quantity:
                            type: number
                            example: 2
                      - $ref: "#/components/schemas/timeStamp"
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                price:
                                  type: object
                                  properties:
                                    discount:
                                      type: object
                                      properties:
                                        discountAmount:
                                          type: number
                                          example: 0
                                        price:
                                          type: number
                                          example: 0
                                        promosApplied:
                                          type: array
                                    sale:
                                      type: number
                                      example: 0
                                    base:
                                      type: number
                                      example: 19
                                    currency:
                                      type: string
                                      example: USD
                                sample:
                                  type: boolean
                                  example: false
                                isUnique:
                                  type: boolean
                                  example: false
                                discountedQuantity:
                                  type: number
                                  example: 0
                                group:
                                  type: array
                                  items:
                                    type: string
                                    example: "123123123123123123123123"
                                weightUnit:
                                  type: string
                                  example: lb
                                isPickup:
                                  type: boolean
                                  example: false
                                itemId:
                                  type: number
                                  example: 15
                                sku:
                                  type: string
                                  example: sk231212
                                taxCode:
                                  type: string
                                  example: TC1234567890
                                title:
                                  type: string
                                  example: fabric t-shirt
                                weight:
                                  type: number
                                  example: 4.2
                                quantity:
                                  type: number
                                  example: 2
                                lineItemId:
                                  type: number
                                  example: 1
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 38
                                attributes:
                                  type: array
                                id:
                                  type: string
                                  example: 6141a40c13f13a000876272a
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
        "400":
          description: Cart is already empty
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: EMPTY_CART_ERROR
                    type: string
                  message:
                    description: The error message
                    example: The cart is already empty.
                    type: string
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart-decoupled/merge:
    patch:
      tags:
        - Cart Decoupled
      summary: Merge guest cart with user cart (cart decoupled)
      description: Merge guest cart with user cart (cart decoupled)
      operationId: mergeCartDecoupled
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - guestCartId
              properties:
                guestCartId:
                  type: string
                  minLength: 24
                  maxLength: 24
                  example: 5f8f0da2d4cc8e00084b9e8e
      responses:
        "200":
          description: Merge guest cart with user cart
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          registeredUser:
                            type: boolean
                            example: false
                          account:
                            type: string
                          approver:
                            type: string
                          po:
                            type: string
                          cartId:
                            type: number
                            example: 111166
                          status:
                            type: string
                            example: pending
                          allPromosApplied:
                            type: array
                          attributes:
                            type: array
                          __v:
                            type: number
                            example: 0
                          totalAmount:
                            type: object
                            properties:
                              currency:
                                type: string
                                minLength: 3
                                maxLength: 3
                                example: USD
                              amount:
                                type: number
                                example: 38
                          quantity:
                            type: number
                            example: 2
                      - $ref: "#/components/schemas/timeStamp"
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                price:
                                  type: object
                                  properties:
                                    discount:
                                      type: object
                                      properties:
                                        discountAmount:
                                          type: number
                                          example: 0
                                        price:
                                          type: number
                                          example: 0
                                        promosApplied:
                                          type: array
                                    sale:
                                      type: number
                                      example: 0
                                    base:
                                      type: number
                                      example: 19
                                    currency:
                                      type: string
                                      example: USD
                                sample:
                                  type: boolean
                                  example: false
                                isUnique:
                                  type: boolean
                                  example: false
                                discountedQuantity:
                                  type: number
                                  example: 0
                                group:
                                  type: array
                                  items:
                                    type: string
                                    example: "123123123123123123123123"
                                weightUnit:
                                  type: string
                                  example: lb
                                isPickup:
                                  type: boolean
                                  example: false
                                itemId:
                                  type: number
                                  example: 15
                                sku:
                                  type: string
                                  example: sk231212
                                taxCode:
                                  type: string
                                  example: TC1234567890
                                title:
                                  type: string
                                  example: fabric t-shirt
                                weight:
                                  type: number
                                  example: 4.2
                                quantity:
                                  type: number
                                  example: 2
                                lineItemId:
                                  type: number
                                  example: 1
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 38
                                attributes:
                                  type: array
                                id:
                                  type: string
                                  example: 6141a40c13f13a000876272a
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart-decoupled/{cartId}/empty:
    patch:
      tags:
        - Cart Decoupled
      summary: Empty cart (cart decoupled)
      description: Empty cart (cart decoupled)
      operationId: emptyCartDecoupled
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - $ref: "#/components/parameters/xSiteContent"
      responses:
        "200":
          description: Remove all items in cart
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          registeredUser:
                            type: boolean
                            example: false
                          account:
                            type: string
                          approver:
                            type: string
                          po:
                            type: string
                          cartId:
                            type: number
                            example: 111166
                          status:
                            type: string
                            example: pending
                          allPromosApplied:
                            type: array
                          attributes:
                            type: array
                          __v:
                            type: number
                            example: 0
                          totalAmount:
                            type: object
                            properties:
                              currency:
                                type: string
                                minLength: 3
                                maxLength: 3
                                example: USD
                              amount:
                                type: number
                                example: 38
                          quantity:
                            type: number
                            example: 2
                      - type: object
                        properties:
                          _id:
                            type: string
                            example: 5fee9d59f2f08a1b3cbdea08
                          createdAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                          updatedAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: false
                      items:
                        type: array
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart-decoupled/{cartId}/orderNumber:
    patch:
      tags:
        - Cart Decoupled
      summary: "[Deprecated] Remove Cart (cart decoupled)"
      description: Remove Cart (cart decoupled)
      operationId: removeCartDecoupled
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - orderNumber
              properties:
                orderNumber:
                  type: string
                  minLength: 15
                  maxLength: 15
                  example: 1234-1234-12345
      responses:
        "200":
          description: Soft delete cart
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          registeredUser:
                            type: boolean
                            example: false
                          account:
                            type: string
                          approver:
                            type: string
                          po:
                            type: string
                          cartId:
                            type: number
                            example: 111166
                          status:
                            type: string
                            example: pending
                          allPromosApplied:
                            type: array
                          attributes:
                            type: array
                          __v:
                            type: number
                            example: 0
                          totalAmount:
                            type: object
                            properties:
                              currency:
                                type: string
                                minLength: 3
                                maxLength: 3
                                example: USD
                              amount:
                                type: number
                                example: 38
                          quantity:
                            type: number
                            example: 2
                      - $ref: "#/components/schemas/timeStamp"
                  - type: object
                    properties:
                      deleted:
                        type: boolean
                        example: true
                      items:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                price:
                                  type: object
                                  properties:
                                    discount:
                                      type: object
                                      properties:
                                        discountAmount:
                                          type: number
                                          example: 0
                                        price:
                                          type: number
                                          example: 0
                                        promosApplied:
                                          type: array
                                    sale:
                                      type: number
                                      example: 0
                                    base:
                                      type: number
                                      example: 19
                                    currency:
                                      type: string
                                      example: USD
                                sample:
                                  type: boolean
                                  example: false
                                isUnique:
                                  type: boolean
                                  example: false
                                discountedQuantity:
                                  type: number
                                  example: 0
                                group:
                                  type: array
                                  items:
                                    type: string
                                    example: "123123123123123123123123"
                                weightUnit:
                                  type: string
                                  example: lb
                                isPickup:
                                  type: boolean
                                  example: false
                                itemId:
                                  type: number
                                  example: 15
                                sku:
                                  type: string
                                  example: sk231212
                                taxCode:
                                  type: string
                                  example: TC1234567890
                                title:
                                  type: string
                                  example: fabric t-shirt
                                weight:
                                  type: number
                                  example: 4.2
                                quantity:
                                  type: number
                                  example: 2
                                lineItemId:
                                  type: number
                                  example: 1
                                attributeTotalPrice:
                                  type: number
                                  example: 0
                                totalPrice:
                                  type: object
                                  properties:
                                    currency:
                                      type: string
                                      example: USD
                                    amount:
                                      type: number
                                      example: 38
                                attributes:
                                  type: array
                                id:
                                  type: string
                                  example: 6141a40c13f13a000876272a
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart-decoupled/{cartId}:
    delete:
      tags:
        - Cart
      summary: Cart soft delete (cart decoupled)
      description: >-
        Cart soft delete, add the deleted boolean flag as true and add the order
        number to the cart (cart decoupled)
      operationId: softDeleteCartDecoupled
      parameters:
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - orderNumber
              properties:
                orderNumber:
                  type: string
                  minLength: 15
                  maxLength: 15
                  example: 1234-1234-12345
      responses:
        "200":
          $ref: "#/components/responses/SoftDeleteCart"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-inventory/warehouse/default:
    get:
      tags:
        - Warehouse
      summary: Get default warehouse location
      description: Get default warehouse location
      operationId: defaultWarehouseLocation
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      responses:
        "200":
          description: Default warehouse location
          content:
            application/json:
              schema:
                type: object
                properties:
                  _id:
                    type: string
                    example: 5f46c5e728539eb8e069178a
                  channel:
                    type: array
                    items:
                      type: number
                      example: 12
                  isActive:
                    type: boolean
                    example: true
                  isDefault:
                    type: boolean
                    example: true
                  name:
                    type: string
                    example: Bellevue Warehouse Main22
                  address:
                    type: object
                    properties:
                      attention:
                        type: string
                        example: John Smith
                      street1:
                        type: string
                        example: 10400 NE 4th St
                      street2:
                        type: string
                        example: Suite 2500
                      city:
                        type: string
                        example: Bellevue
                      state:
                        type: string
                        example: Washington
                      country:
                        type: string
                        example: US
                      zipCode:
                        type: string
                        example: "98005"
                      phone:
                        type: array
                        items:
                          type: object
                          properties:
                            _id:
                              type: string
                              example: 5f46d1b628539eb8e069178c
                            number:
                              type: string
                              example: 555-555-5555
                            kind:
                              type: string
                              example: mobile
                            id:
                              type: string
                              example: 5f46d1b628539eb8e069178c
                      email:
                        type: string
                        example: info@fabric.inc
                      kind:
                        type: string
                        example: Main Docks
                  kind:
                    type: string
                    example: Warehouse
                  locationId:
                    type: number
                    example: 109
                  createdAt:
                    type: string
                    example: "2020-12-31T02:09:53.914Z"
                  updatedAt:
                    type: string
                    example: "2020-12-31T02:09:53.914Z"
                  __v:
                    type: number
                    example: 0
                  shortName:
                    type: string
                    example: TAG_ABC1234
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Location not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: NO_DEFAULT_LOCATION
                    type: string
                  message:
                    description: The error message
                    example: Location not found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-inventory/inventory/bulk-insert:
    post:
      tags:
        - Inventory
      summary: Bulk insert to inventory
      description: Bulk insert to inventory
      operationId: inventoryBulkInsert
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            example:
              - sku: "1597422"
                itemId: 1597422
                totalQuantity: 25
                reservedQuantity: 0
                locationId: 175
                type: Stock
                channelId: 12
                transitRef: wo-2002
                transitOrderDate: "2019-12-14"
                transitStockDate: "2019-12-14"
            schema:
              type: array
              minItems: 1
              items:
                type: object
                anyOf:
                  - required:
                      - totalQuantity
                      - reservedQuantity
                      - locationId
                      - type
                      - sku
                  - required:
                      - totalQuantity
                      - reservedQuantity
                      - locationId
                      - type
                      - itemId
                properties:
                  sku:
                    type: string
                    minLength: 1
                    example: "1597422"
                  itemId:
                    type: number
                    minimum: 1
                    example: 1597422
                  totalQuantity:
                    type: number
                    minimum: 0
                    example: 25
                  reservedQuantity:
                    type: number
                    minimum: 0
                    example: 0
                  locationId:
                    type: number
                    minimum: 0
                    example: 175
                  type:
                    type: string
                    enum:
                      - Stock
                      - Transit
                    example: Stock
                  channelId:
                    type: number
                    enum:
                      - 12
                      - 13
                    example: 12
                  transitRef:
                    type: string
                    example: wo-2002
                  transitOrderDate:
                    type: string
                    example: "2019-12-14"
                  transitStockDate:
                    type: string
                    example: "2019-12-14"
      responses:
        "200":
          description: Inventory bulk insert
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      messages:
                        type: array
                        items:
                          type: string
                          example: >-
                            Import Inventory job started: Mon Nov 02 2020
                            22:26:10 GMT+0000 (Coordinated Universal Time)
                      keyId:
                        type: string
                        example: api-1604355970096
                      type:
                        type: string
                        example: api
                      status:
                        type: string
                        example: FINISHED
                      totalItems:
                        type: integer
                        example: 1
                      totalItemsUploaded:
                        type: integer
                        example: 1
                      totalRows:
                        type: integer
                        example: 2
                      totalRowsErrors:
                        type: integer
                        example: 2
                      __v:
                        type: number
                        example: 0
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
        "400":
          description: Inventory insert failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: INVENTORY_INSERT_FAILED
                    type: string
                  message:
                    description: The error message
                    example: >-
                      Inventory insert failed: Row 1: Cannot find "Location Id"
                      999.
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-inventory/inventory/pos:
    post:
      tags:
        - Inventory
      summary: Inventory POS
      description: Inventory POS
      operationId: inventoryPos
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            schema:
              type: object
              minItems: 1
              required:
                - itemId
                - channelId
                - warehouseId
                - stockQuantity
              properties:
                itemId:
                  type: number
                  example: 1000001
                stockQuantity:
                  type: number
                  minimum: 0
                  example: 5
                channelId:
                  type: number
                  example: 12
                warehouseId:
                  type: string
                  minLength: 24
                  maxLength: 24
                  example: 5e4b0a8cef94d00b11acc382
      responses:
        "200":
          description: Inventory POS
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      itemId:
                        type: number
                        example: 1000000033
                      inlocations:
                        type: array
                        items:
                          type: object
                          allOf:
                            - type: object
                              properties:
                                location:
                                  type: string
                                  example: 60ac42ecc956070008e15ea6
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 60f5c3666a04ef0008b702f4
                                inStock:
                                  type: number
                                  example: 1000
                                channel:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      quantityReserved:
                                        type: number
                                        example: 0
                                      _id:
                                        type: string
                                        example: 60f5c3666a04ef0008b702f5
                                      channelId:
                                        type: number
                                        example: 12
                                      allocation:
                                        type: object
                                        properties:
                                          mou:
                                            type: string
                                            example: ABSOLUTE
                                          unit:
                                            type: number
                                            example: 1000
                                      id:
                                        type: string
                                        example: 60f5c3666a04ef0008b702f5
                                inTransit:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      _id:
                                        type: string
                                        example: 60f5c3666a04ef0008b702f6
                                      inTransitRef:
                                        type: string
                                        example: WO-20000
                                      orderQuantity:
                                        type: number
                                        example: 10000
                                      quantityReserved:
                                        type: number
                                        example: 0
                                      orderDate:
                                        type: string
                                        example: "2020-05-05T00:00:00.000Z"
                                      stockDate:
                                        type: string
                                        example: "2020-05-05T00:00:00.000Z"
                                      id:
                                        type: string
                                        example: 60f5c3666a04ef0008b702f6
                                id:
                                  type: string
                                  example: 60f5c3666a04ef0008b702f4
                      sku:
                        type: string
                        example: SHIRT001
                      title:
                        type: string
                        example: Shirt
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "404":
          description: Inventory not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: INVENTORY_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: No inventory item for itemId 1 was found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-inventory/inventory:
    post:
      tags:
        - Inventory
      summary: Get inventories
      description: Get inventories
      operationId: getInventories
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - items
                - channelId
              properties:
                items:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    required:
                      - itemId
                      - quantity
                    properties:
                      itemId:
                        type: string
                        example: "1000000051"
                      quantity:
                        type: integer
                        example: 529
                channelId:
                  type: integer
                  example: 12
      responses:
        "200":
          description: Get inventories
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    itemId:
                      type: number
                      example: 1000000003
                    quantityRequested:
                      type: number
                      example: 4
                    stockDate:
                      type: string
                    inStock:
                      type: boolean
                      example: true
                    fromStockQuantity:
                      type: number
                      example: 4
                    fromStock:
                      type: array
                      items:
                        type: object
                        properties:
                          locationId:
                            type: string
                            example: 5efcc26a5ee50d00079ca2ab
                          quantityReserved:
                            type: number
                            example: 0
                          quantityAllocated:
                            type: number
                            example: 9
                          stockRemaining:
                            type: number
                            example: 9
                          stockRequest:
                            type: number
                            example: 4
                          channelId:
                            type: number
                            example: 12
                    fromTransitQuantity:
                      type: number
                      example: 0
                    fromTransit:
                      type: array
                    availableStockQuantity:
                      type: number
                      example: 9
                    availableTransitQuantity:
                      type: number
                      example: 0
                    availableTotal:
                      type: number
                      example: 9
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-inventory/inventory/generic/{inventoryId}:
    get:
      tags:
        - Inventory
      summary: Get generic inventory
      description: Get generic inventory
      operationId: genericInventory
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: inventoryId
          required: true
          schema:
            type: string
            example: "100003"
        - in: query
          name: Get generic inventory query parameters
          schema:
            type: object
            properties:
              query:
                type: string
                enum:
                  - itemId
                  - sku
                default: itemId
      responses:
        "200":
          description: Get inventories
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      itemId:
                        type: number
                        example: 1000000033
                      inlocations:
                        type: array
                        items:
                          type: object
                          allOf:
                            - type: object
                              properties:
                                location:
                                  type: object
                                  properties:
                                    channel:
                                      type: array
                                      items:
                                        type: number
                                        example: 12
                                    isActive:
                                      type: boolean
                                      example: true
                                    isDefault:
                                      type: boolean
                                      example: false
                                    name:
                                      type: string
                                      example: ABC MANHATTEN STORE
                                    address:
                                      type: object
                                      properties:
                                        street1:
                                          type: string
                                          example: 888 Broadway
                                        street2:
                                          type: string
                                        zipCode:
                                          type: string
                                          example: "10003"
                                        city:
                                          type: string
                                          example: New York
                                        state:
                                          type: string
                                          example: NY
                                        country:
                                          type: string
                                          example: USA
                                        phone:
                                          type: array
                                    pickup:
                                      type: boolean
                                      example: false
                                    type:
                                      type: string
                                      example: 60a5844452e07600089d2cb7
                                    kind:
                                      type: string
                                      example: Warehouse
                                    locationId:
                                      type: number
                                      example: 102
                                    __v:
                                      type: number
                                      example: 0
                                    coordinates:
                                      type: object
                                      properties:
                                        latitude:
                                          type: number
                                          example: 40.738417
                                        longitude:
                                          type: number
                                          example: -73.98985
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 60f5c3666a04ef0008b702f4
                                inStock:
                                  type: number
                                  example: 1000
                                channel:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      quantityReserved:
                                        type: number
                                        example: 0
                                      _id:
                                        type: string
                                        example: 60f5c3666a04ef0008b702f5
                                      channelId:
                                        type: number
                                        example: 12
                                      allocation:
                                        type: object
                                        properties:
                                          mou:
                                            type: string
                                            example: ABSOLUTE
                                          unit:
                                            type: number
                                            example: 1000
                                      id:
                                        type: string
                                        example: 60f5c3666a04ef0008b702f5
                                inTransit:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      _id:
                                        type: string
                                        example: 60f5c3666a04ef0008b702f6
                                      inTransitRef:
                                        type: string
                                        example: WO-20000
                                      orderQuantity:
                                        type: number
                                        example: 10000
                                      quantityReserved:
                                        type: number
                                        example: 0
                                      orderDate:
                                        type: string
                                        example: "2020-05-05T00:00:00.000Z"
                                      stockDate:
                                        type: string
                                        example: "2020-05-05T00:00:00.000Z"
                                      id:
                                        type: string
                                        example: 60f5c3666a04ef0008b702f6
                                id:
                                  type: string
                                  example: 60f5c3666a04ef0008b702f4
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                      sku:
                        type: string
                        example: SHIRT001
                      title:
                        type: string
                        example: Shirt
                  - $ref: "#/components/schemas/timeStamp"
        "400":
          description: Get inventory failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: GET_INVENTORY_FAILED
                    type: string
                  message:
                    description: The error message
                    example: Unable to find Inventory
        "404":
          description: Get inventory failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: GET_INVENTORY_FAILED
                    type: string
                  message:
                    description: The error message
                    example: Unable to find Inventory
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-inventory/inventory/pickup-point/{itemId}:
    get:
      tags:
        - Inventory
      summary: Get pickup point
      description: Get pickup point
      operationId: getPickUpPoint
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: itemId
          required: true
          schema:
            type: string
            minLength: 1
            example: "1597422"
        - in: query
          name: Search parameters
          schema:
            type: object
            properties:
              offset:
                type: integer
                default: 0
                minimum: 0
              limit:
                type: integer
                default: 10
                minimum: 1
      responses:
        "200":
          description: Get Pickup points
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      query:
                        type: object
                        properties:
                          limit:
                            type: number
                            example: 10
                          offset:
                            type: number
                            example: 0
                          count:
                            type: number
                            example: 3
                  - type: object
                    properties:
                      locations:
                        type: array
                        items:
                          type: object
                          properties:
                            channel:
                              type: array
                              items:
                                type: number
                                example: 12
                            isActive:
                              type: boolean
                              example: true
                            isDefault:
                              type: boolean
                              example: false
                            name:
                              type: string
                              example: ABC MANHATTEN STORE
                            address:
                              type: object
                              properties:
                                street1:
                                  type: string
                                  example: 888 Broadway
                                street2:
                                  type: string
                                zipCode:
                                  type: string
                                  example: "10003"
                                city:
                                  type: string
                                  example: New York
                                state:
                                  type: string
                                  example: NY
                                country:
                                  type: string
                                  example: USA
                                phone:
                                  type: array
                            pickup:
                              type: boolean
                              example: false
                            type:
                              type: string
                              example: 60a5844452e07600089d2cb7
                            kind:
                              type: string
                              example: Warehouse
                            locationId:
                              type: number
                              example: 102
                            __v:
                              type: number
                              example: 0
                            coordinates:
                              type: object
                              properties:
                                latitude:
                                  type: number
                                  example: 40.738417
                                longitude:
                                  type: number
                                  example: -73.98985
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Items not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: ITEMS_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Items not found
                    type: string
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-inventory/inventory/location/{locationId}:
    get:
      tags:
        - Inventory
      summary: Get inventory by location
      description: Get inventory by location
      operationId: getInventoryByLocation
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - in: path
          name: locationId
          required: true
          schema:
            type: string
            example: 5e4b0a8cef94d00b11acc382
            minLength: 24
            maxLength: 24
        - in: query
          name: Search parameters
          schema:
            type: object
            properties:
              offset:
                type: integer
                default: 0
                minimum: 0
              limit:
                type: integer
                minimum: 1
      responses:
        "200":
          description: Get inventories by location
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: object
                    properties:
                      limit:
                        type: number
                        example: 10
                      offset:
                        type: number
                        example: 0
                      count:
                        type: number
                        example: 3
                  inventories:
                    type: array
                    items:
                      type: object
                      properties:
                        itemdId:
                          type: number
                          example: 1000000033
                        inStock:
                          type: number
                          example: 5000
                        channel:
                          type: array
                          items:
                            type: object
                            properties:
                              quantityReserved:
                                type: number
                                example: 0
                              _id:
                                type: string
                                example: 60f0e15f9cf5e800084a6718
                              channelId:
                                type: number
                                example: 12
                              allocation:
                                type: object
                                properties:
                                  mou:
                                    type: string
                                    example: ABSOLUTE
                                  unti:
                                    type: number
                                    example: 5000
                              id:
                                type: string
                                example: 60f0e15f9cf5e800084a6718
                        location:
                          type: string
                          example: 60a6e451d5748b0008ac85a0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "404":
          description: Location not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: LOCATION_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Location 123456789012345678901234 not found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/item/attribute:
    patch:
      tags:
        - Attributes
      summary: Add attribute to cart item
      description: Add attribute to cart item
      operationId: addAttributeToItem
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                required:
                  - lineItemId
                  - attributeId
                  - attributeValue
                properties:
                  lineItemId:
                    type: integer
                    example: 1
                  attributeId:
                    type: string
                    example: 60a77de306f682000975c24c
                  attributeValue:
                    type: string
                    example: test
      responses:
        "200":
          description: Cart with updated item attribute
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/cartData"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Attribute - cart not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: ATTRIBUTE_ERROR
                    type: string
                  message:
                    description: The error message
                    type: string
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-cart/cart/{cartId}/attribute:
    patch:
      tags:
        - Attributes
      summary: Add attribute to cart
      description: Add attribute to cart
      operationId: addAttributeToCart
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: cartId
          required: true
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5e5818a84d030c206b2ffb02
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                required:
                  - attributeId
                  - attributeValue
                properties:
                  attributeId:
                    type: string
                    example: 60a77de306f682000975c24c
                  attributeValue:
                    type: string
                    example: true/false
      responses:
        "200":
          description: Cart with updated cart attribute
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/cartData"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Attribute - cart not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: ATTRIBUTE_ERROR
                    type: string
                  message:
                    description: The error message
                    type: string
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-configuration/attribute/getAll/order-attributes:
    get:
      tags:
        - Attributes
      summary: Get all order level attributes
      description: Get all order level attributes
      operationId: getOrderAttributes
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      responses:
        "200":
          description: Order attributes
          content:
            application/json:
              schema:
                type: object
                properties:
                  attributes:
                    type: array
                    items:
                      type: object
                      properties:
                        _id:
                          type: string
                          example: 60b12fc3a12cde00081b4f7f
                        price:
                          type: string
                          example: "15"
                        name:
                          type: string
                          example: Complete Order Gift Warp Large
                        type:
                          type: string
                          example: bool
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Attribute not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: ATTRIBUTE_NOT_FOUND_ERROR
                    type: string
                  message:
                    description: The error message
                    example: Attributes Not Found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-configuration/attribute/get-by-item-ids:
    post:
      tags:
        - Attributes
      summary: Get items attributes
      description: Get items attributes
      operationId: getItemsAttributes
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                itemIds:
                  type: array
                  items:
                    type: number
                    example: 1000000052
      responses:
        "200":
          description: Items attributes
          content:
            application/json:
              schema:
                type: array
                items:
                  anyOf:
                    - type: object
                      properties:
                        itemId:
                          type: string
                          example: "1000011037"
                        attributes:
                          type: array
                          items:
                            type: object
                            properties:
                              _id:
                                type: string
                                example: 6092cba26fe410000872bc62
                              price:
                                type: string
                                example: "25"
                              name:
                                type: string
                                example: Gift Wrap
                              type:
                                type: string
                                example: bool
                    - type: object
                      properties:
                        itemId:
                          type: string
                          example: "123"
                        status:
                          type: string
                          example: Error
                        code:
                          type: string
                          example: ATTRIBUTE_NOT_FOUND_ERROR
                        message:
                          type: string
                          example: Attribute Not Found for itemId
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-list/list:
    post:
      tags:
        - List
      summary: Create list
      description: Create list
      operationId: createList
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - userId
                - name
              properties:
                userId:
                  type: string
                  example: 33d01d57-4bfa-4a14-bacc-036617ec02b9
                name:
                  type: string
                  example: Summer List
                  minLength: 3
                listType:
                  type: string
                  example: Wishlist
                notes:
                  type: string
                  example: Summer List
                attributes:
                  type: object
                  example:
                    approver: Jone Doe
      responses:
        "200":
          description: Created list
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      userId:
                        type: string
                        example: 33d01d57-4bfa-4a14-bacc-036617ec02b9
                      name:
                        type: string
                        example: Summer List
                        minLength: 3
                      listType:
                        type: string
                        example: Wishlist
                      notes:
                        type: string
                        example: Summer List
                      count:
                        type: integer
                        example: 10
                      attributes:
                        type: object
                        example:
                          approver: Jone Doe
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Create/Update list not found error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                ListTypeNotFoundError:
                  value:
                    code: LIST_TYPE_NOT_FOUND
                    message: List type ID not found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-list/list/{listId}:
    get:
      tags:
        - List
      summary: Get list by listId
      description: Get list by listId
      operationId: getListByListId
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - in: path
          name: listId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: List for specific listId
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      userId:
                        type: string
                        example: 33d01d57-4bfa-4a14-bacc-036617ec02b9
                      name:
                        type: string
                        example: Summer List
                        minLength: 3
                      listType:
                        type: string
                        example: Wishlist
                      notes:
                        type: string
                        example: Summer List
                      count:
                        type: integer
                        example: 10
                      attributes:
                        type: object
                        example:
                          approver: Jone Doe
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Get list by listId Not Found Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                ListTypeNotFoundError:
                  value:
                    code: LIST_TYPE_NOT_FOUND
                    message: List type ID not found
        "500":
          $ref: "#/components/responses/GenericServerError"
    patch:
      tags:
        - List
      summary: Update list
      description: Update list
      operationId: updateList
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - in: path
          name: listId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              anyOf:
                - required:
                    - name
                - required:
                    - listType
                - required:
                    - notes
                - required:
                    - attributes
              properties:
                name:
                  type: string
                  example: Summer List
                  minLength: 3
                listType:
                  type: string
                  example: Wishlist
                notes:
                  type: string
                  example: Summer List
                attributes:
                  type: object
                  example:
                    approver: Jone Doe
      responses:
        "200":
          description: list updated
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                  - type: object
                    properties:
                      userId:
                        type: string
                        example: 33d01d57-4bfa-4a14-bacc-036617ec02b9
                      name:
                        type: string
                        example: Summer List
                        minLength: 3
                      listType:
                        type: string
                        example: Wishlist
                      notes:
                        type: string
                        example: Summer List
                      count:
                        type: integer
                        example: 10
                      attributes:
                        type: object
                        example:
                          approver: Jone Doe
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Create/Update list not found error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                ListTypeNotFoundError:
                  value:
                    code: LIST_TYPE_NOT_FOUND
                    message: List type ID not found
        "500":
          $ref: "#/components/responses/GenericServerError"
    delete:
      tags:
        - List
      summary: Delete list
      description: Delete list
      operationId: deleteList
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - in: path
          name: listId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Delete list by Id
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: List deleted successfully
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Create/Update list not found error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                ListTypeNotFoundError:
                  value:
                    code: LIST_TYPE_NOT_FOUND
                    message: List type ID not found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-list/list/user/{userId}:
    get:
      tags:
        - List
      summary: Get list by userId
      description: Get list by userId
      operationId: getListByUserId
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - in: path
          name: userId
          required: true
          schema:
            type: string
        - in: query
          name: Get list by userId parameters
          schema:
            type: object
            properties:
              offset:
                type: integer
                default: 0
                minimum: 0
              limit:
                type: integer
                default: 10
                minimum: 0
      responses:
        "200":
          description: List for specific userId
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: object
                    properties:
                      limit:
                        type: number
                        example: 10
                      offset:
                        type: number
                        example: 0
                      count:
                        type: number
                        example: 1
                  lists:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            _id:
                              type: string
                              example: 5fee9d59f2f08a1b3cbdea08
                            createdAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                            updatedAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                        - type: object
                          properties:
                            userId:
                              type: string
                              example: 33d01d57-4bfa-4a14-bacc-036617ec02b9
                            name:
                              type: string
                              example: Summer List
                              minLength: 3
                            listType:
                              type: string
                              example: Wishlist
                            notes:
                              type: string
                              example: Summer List
                            count:
                              type: integer
                              example: 10
                            attributes:
                              type: object
                              example:
                                approver: Jone Doe
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Get list by userId Not Found Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                UserListNotFoundError:
                  value:
                    code: USER_LISTS_NOT_FOUND_ERROR
                    message: Unable to find any lists for user 123
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-list/list/query:
    post:
      tags:
        - List
      summary: Query Lists
      description: Query Lists
      operationId: queryLists
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                limit:
                  type: number
                  example: 10
                offset:
                  type: number
                  example: 0
                sortBy:
                  type: string
                  example: updatedAt
                sortDirection:
                  type: string
                  default: desc
                filters:
                  type: object
                  description: Passing empty object will return all user lists
                  properties:
                    userId:
                      type: array
                      example:
                        - 33d01d57-4bfa-4a14-bacc-036617ec02b9
                    name:
                      type: array
                      example:
                        - Summer List
                    listType:
                      type: array
                      example:
                        - Wishlist
                    notes:
                      type: array
                      example:
                        - Summer List
                    attributes:
                      type: object
                      example:
                        approver:
                          - Jone Doe
      responses:
        "200":
          description: Query user lists
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: object
                    properties:
                      limit:
                        type: number
                        example: 10
                      offset:
                        type: number
                        example: 0
                      count:
                        type: number
                        example: 1
                  lists:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            _id:
                              type: string
                              example: 5fee9d59f2f08a1b3cbdea08
                            createdAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                            updatedAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                        - type: object
                          properties:
                            userId:
                              type: string
                              example: 33d01d57-4bfa-4a14-bacc-036617ec02b9
                            name:
                              type: string
                              example: Summer List
                              minLength: 3
                            listType:
                              type: string
                              example: Wishlist
                            notes:
                              type: string
                              example: Summer List
                            count:
                              type: integer
                              example: 10
                            attributes:
                              type: object
                              example:
                                approver: Jone Doe
        "400":
          $ref: "#/components/responses/GenericClientError"
  /api-list/list/{listId}/items:
    patch:
      tags:
        - List
      summary: Add items to a known list
      description: Add items to a known list
      operationId: addItemsToList
      parameters:
        - in: path
          name: listId
          required: true
          schema:
            type: string
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              items:
                type: object
                anyOf:
                  - required:
                      - sku
                  - required:
                      - itemId
                properties:
                  sku:
                    type: string
                    example: SKU_1
                  itemId:
                    type: string
                    example: "1234"
            examples:
              ItemsAdded:
                value:
                  - itemId: "1234"
                  - sku: SKU_1
      responses:
        "200":
          description: Items added sucessfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Items successfully added/deleted to list
                  items:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            _id:
                              type: string
                              example: 5fee9d59f2f08a1b3cbdea08
                            createdAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                            updatedAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                        - type: object
                          properties:
                            listId:
                              type: string
                              example: 6155e5f6e311670009aeb478
                            itemId:
                              type: string
                              example: "1234"
                            sku:
                              type: string
                              example: SKU_1
        "400":
          $ref: "#/components/responses/GenericClientError"
    delete:
      tags:
        - List
      summary: Delete items from list
      description: Delete items from list
      operationId: deleteItemsFromList
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - in: path
          name: listId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              items:
                type: object
                anyOf:
                  - required:
                      - sku
                  - required:
                      - itemId
                properties:
                  sku:
                    type: string
                    example: SKU_1
                  itemId:
                    type: string
                    example: "1234"
            examples:
              ItemsAdded:
                value:
                  - itemId: "1234"
                  - sku: SKU_1
      responses:
        "200":
          description: Items successfully deleted from list
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Items successfully added/deleted to list
                  items:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            _id:
                              type: string
                              example: 5fee9d59f2f08a1b3cbdea08
                            createdAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                            updatedAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                        - type: object
                          properties:
                            listId:
                              type: string
                              example: 6155e5f6e311670009aeb478
                            itemId:
                              type: string
                              example: "1234"
                            sku:
                              type: string
                              example: SKU_1
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Delete items from list not found error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                ListNotFoundError:
                  value:
                    code: LIST_NOT_FOUND_ERROR
                    message: >-
                      Unable to find list for user user-id and list type
                      6c6973742074797065206961
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-tax/tax/create:
    post:
      tags:
        - Tax/Address Validate
      summary: Create new tax transaction
      description:
        Create new tax transaction for Estimates or Final Sales Invoice
      operationId: createTax
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - type
                - lineItems
                - addresses
              properties:
                type:
                  type: string
                  enum:
                    - SalesInvoice
                    - SalesOrder
                  example: SalesInvoice
                lineItems:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    required:
                      - price
                      - quantity
                      - taxCode
                      - title
                    properties:
                      price:
                        type: number
                        minimum: 0
                        example: 12.99
                      quantity:
                        type: number
                        minimum: 1
                        multipleOf: 1
                        example: 3
                      taxCode:
                        type: string
                        minLength: 3
                        example: PF050099
                      title:
                        type: string
                        minLength: 3
                        example: Fabric Inc T-Shirt
                      sku:
                        type: string
                        minLength: 3
                        example: 123456789Red-Shirt
                      lineItem:
                        type: integer
                        minimum: 1
                        example: 3
                addresses:
                  type: object
                  required:
                    - shipTo
                    - shipFrom
                  properties:
                    shipTo:
                      type: object
                      required:
                        - street1
                        - city
                        - state
                        - country
                        - zipCode
                      properties:
                        street1:
                          type: string
                          minLength: 3
                          example: 2000 Main Street
                        city:
                          type: string
                          minLength: 3
                          example: Irvine
                        state:
                          type: string
                          minLength: 2
                          example: CA
                        country:
                          type: string
                          minLength: 2
                          example: US
                        zipCode:
                          type: string
                          minLength: 3
                          example: "92614"
                    shipFrom:
                      type: object
                      required:
                        - street1
                        - city
                        - state
                        - country
                        - zipCode
                      properties:
                        street1:
                          type: string
                          minLength: 3
                          example: 2000 Main Street
                        city:
                          type: string
                          minLength: 3
                          example: Irvine
                        state:
                          type: string
                          minLength: 2
                          example: CA
                        country:
                          type: string
                          minLength: 2
                          example: US
                        zipCode:
                          type: string
                          minLength: 3
                          example: "92614"
      responses:
        "200":
          description: Created tax
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: e2ab8924-4316-47b6-880d-3744b16aaa4f
                  date:
                    type: string
                    example: "2021-09-19"
                  status:
                    type: string
                    example: Saved
                  type:
                    type: string
                    example: SalesInvoice
                  customerCode:
                    type: string
                    example: FABRIC_INC
                  totalAmount:
                    type: number
                    example: 2063.39
                  totalExempt:
                    type: number
                    example: 182.97
                  totalDiscount:
                    type: number
                    example: 0
                  totalTax:
                    type: number
                    example: 145.73
                  totalTaxable:
                    type: number
                    example: 1880.42
                  totalTaxCalculated:
                    type: number
                    example: 145.73
                  lines:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          example: 6000306551642
                        lineNumber:
                          type: string
                          example: "1"
                        description:
                          type: string
                          example: Chocolate
                        isItemTaxable:
                          type: boolean
                          example: true
                        lineAmount:
                          type: number
                          example: null
                        quantity:
                          type: number
                          example: 2
                        tax:
                          type: number
                          example: 139.5
                        taxableAmount:
                          type: number
                          example: 1800
                        taxCalculated:
                          type: number
                          example: 139.5
                        taxCode:
                          type: string
                          example: P0000000
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-tax/address/validate:
    post:
      tags:
        - Tax/Address Validate
      summary: Address validation
      description: Address validation
      operationId: addressValidation
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - line1
                - city
                - region
                - country
              properties:
                line1:
                  type: string
                line2:
                  type: string
                line3:
                  type: string
                city:
                  type: string
                region:
                  type: string
                country:
                  type: string
                postalCode:
                  type: string
      responses:
        "200":
          description: Address validation
          content:
            application/json:
              schema:
                type: object
                properties:
                  addressValid:
                    type: boolean
                    example: true
                  validatedAddrSuggestions:
                    type: array
                    items:
                      type: object
                      properties:
                        addressType:
                          type: string
                          example: UnknownAddressType
                        line1:
                          type: string
                          example: 761 5TH AVE
                        line2:
                          type: string
                        line3:
                          type: string
                        city:
                          type: string
                          example: NEW YORK
                        region:
                          type: string
                          example: NY
                        country:
                          type: string
                          example: US
                        postalCode:
                          type: string
                          example: "10153"
                        latitude:
                          type: number
                          example: 40.76368
                        longitude:
                          type: number
                          example: -73.973311
                  addressesFound:
                    type: integer
                    example: 1
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-tax/v1/address/validate:
    post:
      tags:
        - Tax/Address Validate
      summary: Address validation (v1)
      description: Address validation (v1)
      operationId: addressValidationV1
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - line1
                - city
                - region
                - country
              properties:
                line1:
                  type: string
                line2:
                  type: string
                line3:
                  type: string
                city:
                  type: string
                region:
                  type: string
                country:
                  type: string
                postalCode:
                  type: string
      responses:
        "200":
          description: Address validation (v1)
          content:
            application/json:
              schema:
                type: object
                properties:
                  addressValid:
                    type: boolean
                    example: true
                  validatedAddrSuggestions:
                    type: array
                    items:
                      type: object
                      properties:
                        addressType:
                          type: string
                          example: UnknownAddressType
                        line1:
                          type: string
                          example: 761 5TH AVE
                        line2:
                          type: string
                        line3:
                          type: string
                        city:
                          type: string
                          example: NEW YORK
                        region:
                          type: string
                          example: NY
                        country:
                          type: string
                          example: US
                        postalCode:
                          type: string
                          example: "10153"
                        latitude:
                          type: number
                          example: 40.76368
                        longitude:
                          type: number
                          example: -73.973311
                  addressesFound:
                    type: integer
                    example: 1
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-shipping/shipping/{shippingMethodId}:
    get:
      tags:
        - Shipping
      summary: Get shipping method
      description: Get shipping method
      operationId: getShippingMethod
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: shippingMethodId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Shipping Method
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      addressType:
                        type: array
                        items:
                          type: string
                          example: PO
                        example:
                          - PO
                          - Business
                          - Residence
                          - APO
                          - MPO
                      channel:
                        type: array
                        items:
                          type: integer
                          example: 12
                      name:
                        type: string
                        example: 2 Day
                      description:
                        type: string
                        example: 2 Day - guaranteed 2 day delivery by 9pm
                      taxCode:
                        type: string
                        example: FR020000
                      minimumDays:
                        type: number
                        example: 1
                      maximumDays:
                        type: number
                        example: 2
                      cutOffTime:
                        type: number
                        example: 2100
                      cost:
                        type: number
                        example: 11.99
                      regoin:
                        type: string
                        example: USA
                      createdBy:
                        type: string
                        example: 41224d776a326fb40f000001
                      shippingMethodId:
                        type: number
                        example: 10002
                      __v:
                        type: number
                        example: 0
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Shipping method not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: SHIPPING_METHOD_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Shipping Method Not Found.
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-shipping/shipping/all:
    get:
      tags:
        - Shipping
      summary: Get all shipping methods
      description: Get all shipping methods
      operationId: getAllShippingMethods
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: query
          name: addressType
          schema:
            type: string
          description: shipping method addressType
        - in: query
          name: channel
          schema:
            type: string
          description: shipping method channel
        - in: query
          name: region
          schema:
            type: string
          description: shipping method region
        - in: query
          name: deleted
          schema:
            type: boolean
          description: shipping method deleted
      responses:
        "200":
          description: Shipping Methods
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - type: object
                      properties:
                        addressType:
                          type: array
                          items:
                            type: string
                            example: PO
                          example:
                            - PO
                            - Business
                            - Residence
                            - APO
                            - MPO
                        channel:
                          type: array
                          items:
                            type: integer
                            example: 12
                        name:
                          type: string
                          example: 2 Day
                        description:
                          type: string
                          example: 2 Day - guaranteed 2 day delivery by 9pm
                        taxCode:
                          type: string
                          example: FR020000
                        minimumDays:
                          type: number
                          example: 1
                        maximumDays:
                          type: number
                          example: 2
                        cutOffTime:
                          type: number
                          example: 2100
                        cost:
                          type: number
                          example: 11.99
                        regoin:
                          type: string
                          example: USA
                        createdBy:
                          type: string
                          example: 41224d776a326fb40f000001
                        shippingMethodId:
                          type: number
                          example: 10002
                        __v:
                          type: number
                          example: 0
                    - type: object
                      properties:
                        _id:
                          type: string
                          example: 5fee9d59f2f08a1b3cbdea08
                        createdAt:
                          type: string
                          example: "2020-12-31T02:09:53.914Z"
                        updatedAt:
                          type: string
                          example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-shipping/shipping/expectedDelivery:
    post:
      tags:
        - Shipping
      summary: Get expected delivery for items
      description: Get expected delivery for items
      operationId: getExpectedDelivery
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                SLA:
                  type: array
                  items:
                    type: object
                    properties:
                      shipMethod:
                        type: number
                        example: 10167
                      items:
                        type: array
                        items:
                          type: number
                        example:
                          - "1000002448"
                          - "987654321"
      responses:
        "200":
          description: Expected delivery for items
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    shipMethod:
                      type: number
                      example: 10167
                    items:
                      type: array
                      items:
                        type: number
                      example:
                        - "1000002448"
                        - "987654321"
                    minimumDeliveryDate:
                      type: string
                      example: "2021-09-04T14:51:12.950Z"
                    maximumDeliveryDate:
                      type: string
                      example: "2021-09-06T14:51:12.950Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-shipping/shipping/items/{itemId}:
    get:
      tags:
        - Shipping
      summary: Get shipping method by item
      description: Get shipping method by item
      operationId: getShippingMethodByItem
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: itemId
          required: true
          schema:
            type: number
      responses:
        "200":
          description: Shipping method for item
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - type: object
                      properties:
                        dimension:
                          type: object
                          properties:
                            min:
                              type: object
                              properties:
                                height:
                                  type: number
                                  example: 0
                                length:
                                  type: number
                                  example: 50
                                width:
                                  type: number
                                  example: 0
                            max:
                              type: object
                              properties:
                                height:
                                  type: number
                                  example: 10
                                length:
                                  type: number
                                  example: 0
                                width:
                                  type: number
                                  example: 0
                        deleted:
                          type: boolean
                          example: false
                    - allOf:
                        - type: object
                          properties:
                            addressType:
                              type: array
                              items:
                                type: string
                                example: PO
                              example:
                                - PO
                                - Business
                                - Residence
                                - APO
                                - MPO
                            channel:
                              type: array
                              items:
                                type: integer
                                example: 12
                            name:
                              type: string
                              example: 2 Day
                            description:
                              type: string
                              example: 2 Day - guaranteed 2 day delivery by 9pm
                            taxCode:
                              type: string
                              example: FR020000
                            minimumDays:
                              type: number
                              example: 1
                            maximumDays:
                              type: number
                              example: 2
                            cutOffTime:
                              type: number
                              example: 2100
                            cost:
                              type: number
                              example: 11.99
                            regoin:
                              type: string
                              example: USA
                            createdBy:
                              type: string
                              example: 41224d776a326fb40f000001
                            shippingMethodId:
                              type: number
                              example: 10002
                            __v:
                              type: number
                              example: 0
                        - type: object
                          properties:
                            _id:
                              type: string
                              example: 5fee9d59f2f08a1b3cbdea08
                            createdAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                            updatedAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Shipping method not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    example: SHIPPING_METHOD_NOT_FOUND
                    type: string
                  message:
                    description: The error message
                    example: Shipping Method Not Found.
        "500":
          $ref: "#/components/responses/GenericServerError"
  /ext-stripe/payment-method:
    post:
      tags:
        - Payments
      summary: Create payment method
      description: Create payment method
      operationId: createPaymentMethod
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - au_becs_debit
                        - bacs_debit
                        - bancontact
                        - card
                        - eps
                        - fpx
                        - giropay
                        - ideal
                        - p24
                        - sepa_debit
                      default: card
                      example: card
                    metadata:
                      type: object
                      example:
                        keyName: key value
                    card:
                      type: object
                      required:
                        - number
                        - exp_month
                        - exp_year
                        - cvc
                      properties:
                        number:
                          type: string
                          example: "4242424242424242"
                        exp_month:
                          type: integer
                          minimum: 1
                          maximum: 12
                        exp_year:
                          oneOf:
                            - type: integer
                              minimum: 20
                              maximum: 99
                              example: 21
                            - type: integer
                              minimum: 2020
                              maximum: 9999
                              example: 2020
                        cvc:
                          type: string
                          minLength: 3
                          maxLength: 4
                          example: "021"
                - type: object
                  properties:
                    billing_details:
                      type: object
                      properties:
                        address:
                          type: object
                          required:
                            - line1
                            - city
                            - state
                            - country
                            - postal_code
                          properties:
                            line1:
                              type: string
                              example: 3520 Millenio
                            line2:
                              type: string
                              example: Crowley Drive
                            city:
                              type: string
                              example: Vancouver
                            state:
                              type: string
                              example: BC
                            country:
                              type: string
                              example: CA
                            postal_code:
                              type: string
                              example: V5R 6G9
                        name:
                          type: string
                          example: John Smith
                        email:
                          type: string
                          format: email
                          example: john@fabric.inc
                        phone:
                          type: string
                          example: 123-456-7890
      responses:
        "200":
          description: Created payment method
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        example: pm_1Ij5zBJxr7zyIFb9u3cfbHJG
                      object:
                        type: string
                        example: payment_method
                      card:
                        type: object
                        properties:
                          brand:
                            type: string
                            example: visa
                          checks:
                            type: object
                            properties:
                              address_line1_check:
                                type: string
                                example: unchecked
                              address_postal_code_check:
                                type: string
                                example: unchecked
                              cvc_check:
                                type: string
                                example: unchecked
                          country:
                            type: string
                            example: US
                          exp_month:
                            type: number
                            example: 2
                          exp_year:
                            type: number
                            example: 2023
                          fingerprint:
                            type: string
                            example: lf55OlXOOfjcvjan
                          funding:
                            type: string
                            example: credit
                          generated_from:
                            type: string
                            example: null
                          last4:
                            type: string
                            example: "4242"
                          networks:
                            type: object
                            properties:
                              available:
                                type: array
                                items:
                                  type: string
                                  example: visa
                              preferred:
                                type: string
                                example: null
                          three_d_secure_usage:
                            type: object
                            properties:
                              supported:
                                type: boolean
                                example: true
                          wallet:
                            type: string
                            example: null
                      created:
                        type: number
                        example: 1619111201
                      customer:
                        type: string
                        example: null
                      livemode:
                        type: boolean
                        example: false
                      metadata:
                        type: object
                      type:
                        type: string
                        example: card
                  - type: object
                    properties:
                      billing_details:
                        type: object
                        properties:
                          address:
                            type: object
                            required:
                              - line1
                              - city
                              - state
                              - country
                              - postal_code
                            properties:
                              line1:
                                type: string
                                example: 3520 Millenio
                              line2:
                                type: string
                                example: Crowley Drive
                              city:
                                type: string
                                example: Vancouver
                              state:
                                type: string
                                example: BC
                              country:
                                type: string
                                example: CA
                              postal_code:
                                type: string
                                example: V5R 6G9
                          name:
                            type: string
                            example: John Smith
                          email:
                            type: string
                            format: email
                            example: john@fabric.inc
                          phone:
                            type: string
                            example: 123-456-7890
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /ext-stripe/payment-intent:
    post:
      tags:
        - Payments
      summary: Create Stripe payment intent
      description: Create Stripe payment intent
      operationId: createStripePayment
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: integer
                  minimum: 1
                  example: 1000
                currency:
                  type: string
                  minLength: 3
                  maxLength: 3
                  example: USD
                customer:
                  type: string
                  example: cus_HRp23wXfXMqSao
                confirm:
                  type: boolean
                  default: false
                  example: false
                off_session:
                  type: boolean
                  default: false
                  example: false
                payment_method:
                  type: string
                  example: pm_1Gsv4BFbKq2PvwXbl4XEl1O3
                payment_method_types:
                  type: array
                  minItems: 1
                  items:
                    type: string
                    enum:
                      - card
                    example: card
                  default:
                    - card
                  example:
                    - card
                receipt_email:
                  type: string
                  format: email
                  example: joedoe@fabric.inc
                setup_future_usage:
                  type: string
                  enum:
                    - on_session
                    - off_session
                  default: off_session
                  example: off_session
                capture_method:
                  type: string
                  enum:
                    - automatic
                    - manual
                  default: manual
                  example: manual
                application_fee_amount:
                  type: integer
                  minimum: 1
                  example: 100
                transfer_data:
                  type: object
                  required:
                    - destination
                  properties:
                    destination:
                      type: string
                      example: acct_1GtG8vJwgwMmQiI2
                    amount:
                      type: integer
                      minimum: 1
                      example: 1000
                metadata:
                  type: object
                  example:
                    orderId: 1234-1234-12345
      responses:
        "200":
          description: Created stripe payment intent
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        example: pi_1GsyhzFbKq2PvwXbwAI3ZluI
                      object:
                        type: string
                        example: payment_intent
                      amount:
                        type: number
                        example: 1000
                      amount_capturable:
                        type: number
                        example: 0
                      amount_received:
                        type: number
                        example: 0
                      application:
                        type: string
                      application_fee_amount:
                        type: number
                      canceled_at:
                        type: string
                      cancellation_reason:
                        type: string
                      capture_method:
                        type: string
                        example: manual
                      client_secret:
                        type: string
                        example: >-
                          pi_1GsyhzFbKq2Pvw1bwAI3ZluI_secret_GKG6hcap7VCggeoqJICAqSsRW
                      confirmation_method:
                        type: string
                        example: automatic
                      created:
                        type: number
                        example: 1591913835
                      currency:
                        type: string
                        example: usd
                      customer:
                        type: string
                      description:
                        type: string
                      invoice:
                        type: string
                      last_payment_error:
                        type: string
                      livemode:
                        type: boolean
                      metadata:
                        type: object
                      next_action:
                        type: string
                      on_behalf_of:
                        type: string
                      payment_method:
                        type: string
                      payment_method_options:
                        type: object
                        properties:
                          card:
                            type: object
                            properties:
                              installments:
                                type: string
                              network:
                                type: string
                              request_three_d_secure:
                                type: string
                                example: automatic
                      payment_method_types:
                        type: array
                        items:
                          type: string
                          example: card
                        example:
                          - card
                      receipt_email:
                        type: string
                      review:
                        type: string
                      setup_future_usage:
                        type: string
                        example: on_session
                      shipping:
                        type: string
                      source:
                        type: string
                      statement_descriptor:
                        type: string
                      statement_descriptor_suffix:
                        type: string
                      status:
                        type: string
                        example: requires_payment_method
                      transfer_data:
                        type: string
                      transfer_group:
                        type: string
                  - type: object
                    properties:
                      charges:
                        type: object
                        properties:
                          object:
                            type: string
                            example: list
                          data:
                            type: array
                          has_more:
                            type: boolean
                            example: false
                          total_count:
                            type: number
                            example: 0
                          url:
                            type: string
                            example: >-
                              /v1/charges?payment_intent=pi_1GsyhzFbKq2PvwXbwAI3ZluI
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /ext-stripe/payment-intent/confirm/{paymentIntentId}:
    post:
      tags:
        - Payments
      summary: Confirm Stripe payment intent
      description: Confirm Stripe payment intent
      operationId: confirmStripePaymentIntent
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - in: path
          name: paymentIntentId
          schema:
            type: string
          required: true
          description: Payment intent Id.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payment_method:
                  type: string
                  example: pi_1GsyhzFbKq2PvwXbwAI3ZluI
                receipt_email:
                  type: string
                  format: email
                  example: joedoe@fabric.inc
                setup_future_usage:
                  type: string
                  enum:
                    - on_session
                    - off_session
                  example: off_session
      responses:
        "200":
          description: Confirm stripe payment intent
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        example: pi_1GsyhzFbKq2PvwXbwAI3ZluI
                      object:
                        type: string
                        example: payment_intent
                      amount:
                        type: number
                        example: 1000
                      amount_capturable:
                        type: number
                        example: 0
                      amount_received:
                        type: number
                        example: 0
                      application:
                        type: string
                      application_fee_amount:
                        type: number
                      canceled_at:
                        type: string
                      cancellation_reason:
                        type: string
                      capture_method:
                        type: string
                        example: manual
                      client_secret:
                        type: string
                        example: >-
                          pi_1GsyhzFbKq2Pvw1bwAI3ZluI_secret_GKG6hcap7VCggeoqJICAqSsRW
                      confirmation_method:
                        type: string
                        example: automatic
                      created:
                        type: number
                        example: 1591913835
                      currency:
                        type: string
                        example: usd
                      customer:
                        type: string
                      description:
                        type: string
                      invoice:
                        type: string
                      last_payment_error:
                        type: string
                      livemode:
                        type: boolean
                      metadata:
                        type: object
                      next_action:
                        type: string
                      on_behalf_of:
                        type: string
                      payment_method:
                        type: string
                      payment_method_options:
                        type: object
                        properties:
                          card:
                            type: object
                            properties:
                              installments:
                                type: string
                              network:
                                type: string
                              request_three_d_secure:
                                type: string
                                example: automatic
                      payment_method_types:
                        type: array
                        items:
                          type: string
                          example: card
                        example:
                          - card
                      receipt_email:
                        type: string
                      review:
                        type: string
                      setup_future_usage:
                        type: string
                        example: on_session
                      shipping:
                        type: string
                      source:
                        type: string
                      statement_descriptor:
                        type: string
                      statement_descriptor_suffix:
                        type: string
                      status:
                        type: string
                        example: requires_payment_method
                      transfer_data:
                        type: string
                      transfer_group:
                        type: string
                  - type: object
                    properties:
                      billing_details:
                        type: object
                        properties:
                          address:
                            type: object
                            required:
                              - line1
                              - city
                              - state
                              - country
                              - postal_code
                            properties:
                              line1:
                                type: string
                                example: 3520 Millenio
                              line2:
                                type: string
                                example: Crowley Drive
                              city:
                                type: string
                                example: Vancouver
                              state:
                                type: string
                                example: BC
                              country:
                                type: string
                                example: CA
                              postal_code:
                                type: string
                                example: V5R 6G9
                          name:
                            type: string
                            example: John Smith
                          email:
                            type: string
                            format: email
                            example: john@fabric.inc
                          phone:
                            type: string
                            example: 123-456-7890
                  - type: object
                    properties:
                      charges:
                        type: object
                        properties:
                          object:
                            type: string
                            example: list
                          data:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  example: ch_1GszZAFbKq2PvwXbWRHwiXg0
                                object:
                                  type: string
                                  example: charge
                                amount:
                                  type: number
                                  example: 1500
                                amount_refunded:
                                  type: string
                                  example: 0
                                application:
                                  type: string
                                application_fee:
                                  type: string
                                application_fee_amount:
                                  type: string
                                balance_transaction:
                                  type: string
                                calculated_statement_descriptor:
                                  type: string
                                  example: Stripe
                                captured:
                                  type: boolean
                                  example: false
                                created:
                                  type: number
                                  example: 1591917132
                                currency:
                                  type: string
                                  example: usd
                                customer:
                                  type: string
                                description:
                                  type: string
                                destination:
                                  type: string
                                dispute:
                                  type: boolean
                                  example: false
                                disputed:
                                  type: string
                                failure_code:
                                  type: string
                                failure_message:
                                  type: string
                                fraud_details:
                                  type: object
                                invoice:
                                  type: string
                                livemode:
                                  type: boolean
                                  example: false
                                metadata:
                                  type: string
                                on_behalf_of:
                                  type: string
                                order:
                                  type: string
                                outcome:
                                  type: object
                                  properties:
                                    network_status:
                                      type: string
                                      example: approved_by_network
                                    reason:
                                      type: string
                                    risk_level:
                                      type: string
                                      example: normal
                                    risk_score:
                                      type: number
                                      example: 7
                                    seller_message:
                                      type: string
                                      example: Payment complete.
                                    type:
                                      type: string
                                      example: authorized
                                paid:
                                  type: boolean
                                  example: true
                                payment_intent:
                                  type: string
                                  example: pi_1GsyhzFbKq2PvwXbwAI3ZluI
                                payment_method:
                                  type: string
                                  example: pm_1GszYCFbKq2PvwXb2CDbdZOP
                                payment_method_details:
                                  type: object
                                  properties:
                                    card:
                                      type: object
                                      properties:
                                        brand:
                                          type: string
                                          example: visa
                                        checks:
                                          type: object
                                          properties:
                                            address_line1_check:
                                              type: string
                                            address_postal_code_check:
                                              type: string
                                              example: pass
                                            cvc_check:
                                              type: string
                                              example: pass
                                        country:
                                          type: string
                                          example: US
                                        exp_month:
                                          type: number
                                          example: 3
                                        exp_year:
                                          type: number
                                          example: 2023
                                        fingerprint:
                                          type: string
                                          example: KYFNiC9k7gBUEnMg
                                        funding:
                                          type: string
                                          example: credit
                                        installments:
                                          type: string
                                        last4:
                                          type: string
                                          example: "4242"
                                        network:
                                          type: string
                                          example: visa
                                        three_d_secure:
                                          type: string
                                        wallet:
                                          type: string
                                    type:
                                      type: string
                                      example: card
                                receipt_email:
                                  type: string
                                receipt_number:
                                  type: string
                                receipt_url:
                                  type: string
                                  example: >-
                                    https://pay.stripe.com/receipts/acct_1GrptTFbKq2PvwXb/ch_1GszZAFbKq2PvwXbWRHwiXg0/rcpt_HRtLuMrk7E5VQ1rLWNVzKrXHFZHHczr
                                refunded:
                                  type: boolean
                                  example: false
                                refunds:
                                  type: object
                                  properties:
                                    object:
                                      type: string
                                      example: list
                                    data:
                                      type: array
                                    has_more:
                                      type: boolean
                                      example: false
                                    total_count:
                                      type: number
                                      example: 0
                                    url:
                                      type: string
                                      example: >-
                                        /v1/charges/ch_1GszZAFbKq2PvwXbWRHwiXg0/refunds
                                review:
                                  type: string
                                shipping:
                                  type: string
                                source:
                                  type: string
                                source_transfer:
                                  type: string
                                statement_descriptor:
                                  type: string
                                statement_descriptor_suffix:
                                  type: string
                                status:
                                  type: string
                                  example: succeeded
                                transfer_data:
                                  type: string
                                transfer_group:
                                  type: string
                          has_more:
                            type: boolean
                            example: false
                          total_count:
                            type: number
                            example: 0
                          url:
                            type: string
                            example: >-
                              /v1/charges?payment_intent=pi_1GsyhzFbKq2PvwXbwAI3ZluI
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-payment/payment:
    post:
      tags:
        - Payments
      summary: Add payment to cart
      description: Add payment to cart
      operationId: addPaymentToCart
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cartId
                - paymentDetails
                - billToAddress
              properties:
                cartId:
                  type: string
                  minLength: 24
                  maxLength: 24
                paymentDetails:
                  type: object
                  required:
                    - transactionDetails
                    - amount
                    - currency
                  properties:
                    transactionDetails:
                      type: object
                      required:
                        - paymentType
                        - paymentToken
                      properties:
                        paymentType:
                          type: string
                          enum:
                            - CARD_STRIPE
                            - CARD_ADYEN
                            - CARD_AUTHORIZENET
                            - CARD_PAYPAL
                            - CARD_CYBERSOURCE
                        paymentToken:
                          type: string
                    amount:
                      type: number
                    currency:
                      type: string
                      minLength: 3
                      maxLength: 3
                billToAddress:
                  type: object
                  required:
                    - name
                    - phone
                    - email
                    - street1
                    - city
                    - state
                    - country
                    - zipCode
                  properties:
                    name:
                      type: object
                      required:
                        - first
                        - last
                      properties:
                        first:
                          type: string
                          example: John
                        last:
                          type: string
                          example: Smith
                    email:
                      type: string
                      format: email
                      minLength: 5
                      example: user1@gmail.com
                    phone:
                      type: object
                      properties:
                        number:
                          type: string
                          example: "3334445555"
                        kind:
                          type: string
                          example: Mobile
                    street1:
                      type: string
                      example: 1000 main street
                    street2:
                      type: string
                      example: 1000 main street
                    city:
                      type: string
                      example: Seattle
                    state:
                      type: string
                      example: WA
                    country:
                      type: string
                      example: US
                    zipCode:
                      type: string
                      example: "98101"
            examples:
              Add payment to cart stripe:
                value:
                  cartId: 60b90dd7308ded0008ee3c5d
                  paymentDetails:
                    transactionDetails:
                      paymentType: CARD_STRIPE
                      paymentToken: token-ads8f97o234jk324
                    amount: 50.25
                    currency: USD
                  billToAddress:
                    name:
                      first: John
                      last: Smith
                    email: ohnsmith@gmail.com
                    phone:
                      number: "07780811973"
                      kind: mobile
                    street1: 600 Congress Ave
                    street2: suite 219
                    city: Austin
                    state: Tx
                    country: US
                    zipCode: "10033"
              Add payment to cart Braintree Token:
                value:
                  cartId: 60b90dd7308ded0008ee3c5d
                  paymentDetails:
                    transactionDetails:
                      paymentType: CARD_ADYEN
                      paymentToken: token-ads8f97o234jk324
                    amount: 50.25
                    currency: USD
                  billToAddress:
                    name:
                      first: John
                      last: Smith
                    email: ohnsmith@gmail.com
                    phone:
                      number: "07780811973"
                      kind: mobile
                    street1: 600 Congress Ave
                    street2: suite 219
                    city: Austin
                    state: Tx
                    country: US
                    zipCode: "10033"
              Add payment to cart Cybersource:
                value:
                  cartId: 60b90dd7308ded0008ee3c5d
                  paymentDetails:
                    transactionDetails:
                      paymentType: CARD_AUTHORIZENET
                      paymentToken: token-ads8f97o234jk324
                    amount: 50.25
                    currency: USD
                  billToAddress:
                    name:
                      first: John
                      last: Smith
                    email: ohnsmith@gmail.com
                    phone:
                      number: "07780811973"
                      kind: mobile
                    street1: 600 Congress Ave
                    street2: suite 219
                    city: Austin
                    state: Tx
                    country: US
                    zipCode: "10033"
      responses:
        "200":
          description: Added Payment to cart
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        required:
                          - billToAddress
                        properties:
                          billToAddress:
                            type: object
                            required:
                              - name
                              - phone
                              - email
                              - street1
                              - city
                              - state
                              - country
                              - zipCode
                            properties:
                              name:
                                type: object
                                required:
                                  - first
                                  - last
                                properties:
                                  first:
                                    type: string
                                    example: John
                                  last:
                                    type: string
                                    example: Smith
                              email:
                                type: string
                                format: email
                                minLength: 5
                                example: user1@gmail.com
                              phone:
                                type: object
                                properties:
                                  number:
                                    type: string
                                    example: "3334445555"
                                  kind:
                                    type: string
                                    example: Mobile
                              street1:
                                type: string
                                example: 1000 main street
                              street2:
                                type: string
                                example: 1000 main street
                              city:
                                type: string
                                example: Seattle
                              state:
                                type: string
                                example: WA
                              country:
                                type: string
                                example: US
                              zipCode:
                                type: string
                                example: "98101"
                      - type: object
                        properties:
                          _id:
                            type: string
                            example: 5fee9d59f2f08a1b3cbdea08
                          createdAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                          updatedAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                      - type: object
                        properties:
                          paymentDetails:
                            type: object
                            properties:
                              transactionDetails:
                                type: object
                                properties:
                                  paymentType:
                                    type: string
                                    enum:
                                      - CARD_STRIPE
                                      - CARD_ADYEN
                                      - CARD_AUTHORIZENET
                                    example: CARD_STRIPE
                                  paymentToken:
                                    type: string
                                    example: pi_1IyMGc2YBvYaVyBQNkOiCE3E
                              paymentStatus:
                                type: object
                                properties:
                                  cardHolderFullName:
                                    type: string
                                    example: First Last
                                  paymentMethod:
                                    type: string
                                    example: visa
                                  last4:
                                    type: string
                                    example: "4242"
                                  amountCapturable:
                                    type: number
                                    example: 99900
                                  status:
                                    type: string
                                    example: succeeded
                              amount:
                                type: number
                                example: 999
                              currency:
                                type: string
                                example: USD
                          version:
                            type: number
                            example: 0
                          cartId:
                            type: string
                            example: 60b90dd7308ded0008ee3c5d
                  - type: object
                    properties:
                      isValid:
                        type: boolean
                        example: true
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-payment/payment/{cartId}:
    get:
      tags:
        - Payments
      summary: Get payment by cartId
      description: Get payment by cartId
      operationId: getPaymentByCartId
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - in: path
          name: cartId
          schema:
            type: string
          required: true
          description: Cart ID
      responses:
        "200":
          description: Payment for cartId
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: object
                    properties:
                      limit:
                        type: integer
                        example: 10
                      offset:
                        type: integer
                        example: 0
                      count:
                        type: integer
                        example: 1
                  payments:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - type: object
                              required:
                                - billToAddress
                              properties:
                                billToAddress:
                                  type: object
                                  required:
                                    - name
                                    - phone
                                    - email
                                    - street1
                                    - city
                                    - state
                                    - country
                                    - zipCode
                                  properties:
                                    name:
                                      type: object
                                      required:
                                        - first
                                        - last
                                      properties:
                                        first:
                                          type: string
                                          example: John
                                        last:
                                          type: string
                                          example: Smith
                                    email:
                                      type: string
                                      format: email
                                      minLength: 5
                                      example: user1@gmail.com
                                    phone:
                                      type: object
                                      properties:
                                        number:
                                          type: string
                                          example: "3334445555"
                                        kind:
                                          type: string
                                          example: Mobile
                                    street1:
                                      type: string
                                      example: 1000 main street
                                    street2:
                                      type: string
                                      example: 1000 main street
                                    city:
                                      type: string
                                      example: Seattle
                                    state:
                                      type: string
                                      example: WA
                                    country:
                                      type: string
                                      example: US
                                    zipCode:
                                      type: string
                                      example: "98101"
                            - type: object
                              properties:
                                _id:
                                  type: string
                                  example: 5fee9d59f2f08a1b3cbdea08
                                createdAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                                updatedAt:
                                  type: string
                                  example: "2020-12-31T02:09:53.914Z"
                            - type: object
                              properties:
                                paymentDetails:
                                  type: object
                                  properties:
                                    transactionDetails:
                                      type: object
                                      properties:
                                        paymentType:
                                          type: string
                                          enum:
                                            - CARD_STRIPE
                                            - CARD_ADYEN
                                            - CARD_AUTHORIZENET
                                          example: CARD_STRIPE
                                        paymentToken:
                                          type: string
                                          example: pi_1IyMGc2YBvYaVyBQNkOiCE3E
                                    paymentStatus:
                                      type: object
                                      properties:
                                        cardHolderFullName:
                                          type: string
                                          example: First Last
                                        paymentMethod:
                                          type: string
                                          example: visa
                                        last4:
                                          type: string
                                          example: "4242"
                                        amountCapturable:
                                          type: number
                                          example: 99900
                                        status:
                                          type: string
                                          example: succeeded
                                    amount:
                                      type: number
                                      example: 999
                                    currency:
                                      type: string
                                      example: USD
                                version:
                                  type: number
                                  example: 0
                                cartId:
                                  type: string
                                  example: 60b90dd7308ded0008ee3c5d
                        - type: object
                          properties:
                            isValid:
                              type: boolean
                              example: true
                            __v:
                              type: number
                              example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-payment/cart/{cartId}/payment/{paymentId}:
    delete:
      tags:
        - Payments
      summary: Delete payment
      description: Delete payment
      operationId: deletePayment
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: cartId
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 5f8f0da2d4cc8e00084b9e8e
          required: true
          description: Cart ID
        - in: path
          name: paymentId
          schema:
            type: string
            minLength: 24
            maxLength: 24
            example: 8e9f0da2d4cc8e11184b9e8e
          required: true
          description: Payment Id.
      responses:
        "200":
          description: Delete payment
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        required:
                          - billToAddress
                        properties:
                          billToAddress:
                            type: object
                            required:
                              - name
                              - phone
                              - email
                              - street1
                              - city
                              - state
                              - country
                              - zipCode
                            properties:
                              name:
                                type: object
                                required:
                                  - first
                                  - last
                                properties:
                                  first:
                                    type: string
                                    example: John
                                  last:
                                    type: string
                                    example: Smith
                              email:
                                type: string
                                format: email
                                minLength: 5
                                example: user1@gmail.com
                              phone:
                                type: object
                                properties:
                                  number:
                                    type: string
                                    example: "3334445555"
                                  kind:
                                    type: string
                                    example: Mobile
                              street1:
                                type: string
                                example: 1000 main street
                              street2:
                                type: string
                                example: 1000 main street
                              city:
                                type: string
                                example: Seattle
                              state:
                                type: string
                                example: WA
                              country:
                                type: string
                                example: US
                              zipCode:
                                type: string
                                example: "98101"
                      - type: object
                        properties:
                          _id:
                            type: string
                            example: 5fee9d59f2f08a1b3cbdea08
                          createdAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                          updatedAt:
                            type: string
                            example: "2020-12-31T02:09:53.914Z"
                      - type: object
                        properties:
                          paymentDetails:
                            type: object
                            properties:
                              transactionDetails:
                                type: object
                                properties:
                                  paymentType:
                                    type: string
                                    enum:
                                      - CARD_STRIPE
                                      - CARD_ADYEN
                                      - CARD_AUTHORIZENET
                                    example: CARD_STRIPE
                                  paymentToken:
                                    type: string
                                    example: pi_1IyMGc2YBvYaVyBQNkOiCE3E
                              paymentStatus:
                                type: object
                                properties:
                                  cardHolderFullName:
                                    type: string
                                    example: First Last
                                  paymentMethod:
                                    type: string
                                    example: visa
                                  last4:
                                    type: string
                                    example: "4242"
                                  amountCapturable:
                                    type: number
                                    example: 99900
                                  status:
                                    type: string
                                    example: succeeded
                              amount:
                                type: number
                                example: 999
                              currency:
                                type: string
                                example: USD
                          version:
                            type: number
                            example: 0
                          cartId:
                            type: string
                            example: 60b90dd7308ded0008ee3c5d
                  - type: object
                    properties:
                      isValid:
                        type: boolean
                        example: false
                      __v:
                        type: number
                        example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Delete payment (not found error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                PaymentNotFound:
                  value:
                    code: PAYMENT_NOT_FOUND_ERROR
                    message: Payment Not Found
                CartNotFound:
                  value:
                    code: CART_NOT_FOUND
                    message: Cart not found.
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/shipments:
    post:
      tags:
        - Order
      summary: Add shipment to order
      description: Add shipment to order
      operationId: addShipment
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - orderId
                - shipments
              properties:
                orderId:
                  type: string
                  minLength: 15
                  maxLength: 15
                  example: 2947-5955-82579
                shipments:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    required:
                      - shipmentCarrier
                      - trackingNumber
                      - shipmentStatus
                      - lineItems
                    properties:
                      shipmentRef:
                        type: string
                        example: ref-1234
                      shipmentCarrier:
                        type: string
                        minLength: 3
                        example: FedEx
                      shipmentCarrierUrl:
                        type: string
                        format: uri
                        example: https://www.fedex.com/
                      trackingNumber:
                        type: string
                        example: "2345367890876543"
                      lineItems:
                        type: array
                        minItems: 1
                        items:
                          type: object
                          required:
                            - lineItemId
                            - quantity
                          properties:
                            lineItemId:
                              type: number
                              example: 1
                            quantity:
                              type: number
                              minimum: 1
                      shipmentStatus:
                        type: string
                        example: Delivered
                      shippedDate:
                        type: string
                      estimatedDeliveryDate:
                        type: string
      responses:
        "200":
          description: Successfully Added shipment
          content:
            application/json:
              schema:
                type: object
                properties:
                  orderId:
                    type: string
                    example: 4217-7227-80339
                  status:
                    type: string
                    example: Successfully added shipment
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "404":
          description: Not Found error while adding shipment to order
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                OrderLineItemNotFound:
                  value:
                    code: ORDER_LINE_ITEM_NOT_FOUND
                    message: "Unable to Find lineItemId: 2"
                OrderNotFound:
                  value:
                    code: ORDER_NOT_FOUND
                    message: Order ID Not Found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/shipments-bulk:
    post:
      tags:
        - Order
      summary: Add shipment bulk to order
      description: Add shipment bulk to order
      operationId: addShipmentBulk
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                required:
                  - orderId
                  - shipments
                properties:
                  orderId:
                    type: string
                    minLength: 15
                    maxLength: 15
                    example: 2947-5955-82579
                  shipments:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      required:
                        - shipmentCarrier
                        - trackingNumber
                        - shipmentStatus
                        - lineItems
                      properties:
                        shipmentRef:
                          type: string
                          example: ref-1234
                        shipmentCarrier:
                          type: string
                          minLength: 3
                          example: FedEx
                        shipmentCarrierUrl:
                          type: string
                          format: uri
                          example: https://www.fedex.com/
                        trackingNumber:
                          type: string
                          example: "2345367890876543"
                        lineItems:
                          type: array
                          minItems: 1
                          items:
                            type: object
                            required:
                              - lineItemId
                              - quantity
                            properties:
                              lineItemId:
                                type: number
                                example: 1
                              quantity:
                                type: number
                                minimum: 1
                        shipmentStatus:
                          type: string
                          example: Delivered
                        shippedDate:
                          type: string
                        estimatedDeliveryDate:
                          type: string
      responses:
        "200":
          description: Successfully Added shipment
          content:
            application/json:
              schema:
                type: object
                properties:
                  successMessages:
                    type: array
                    items:
                      type: string
                    example:
                      - "Order: 1729-8742-69296 was sucessfully imported"
                      - "Order: 1742-1203-79830 was sucessfully imported"
                  errorMessages:
                    type: array
                    items:
                      type: string
                    example:
                      - "Order: 6562-1726-73447 - Error: Invalid Item Quantity"
                      - "Order: 2224-7457-16398 - Error: Invalid Item Quantity"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/cancel:
    patch:
      tags:
        - Order
      summary: Cancel order
      description: Cancel order
      operationId: cancelOrder
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - orderId
                - cancellationCode
              properties:
                cancellationCode:
                  type: string
                  example: "2001"
                orderId:
                  type: string
                  minLength: 15
                  maxLength: 15
                  example: 2947-5955-82579
                cancellationMessage:
                  type: string
                  example: Customer not interested
      responses:
        "200":
          description: Successfully Cancel order
          content:
            application/json:
              schema:
                type: object
                properties:
                  orderId:
                    type: string
                    example: 8568-9704-74294
                  status:
                    type: string
                    example: Successfully cancelled order
        "400":
          description: Order cancel invalid status
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                    example: ORDER_CANCELLATION_INVALID
                  message:
                    description: The error message
                    type: string
                    example: >-
                      Order status must be ORDER_PAYMENT_AUTHORIZED or
                      ORDER_CREATED
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "404":
          description: Not Found error while canceling order
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                Order not found:
                  value:
                    code: ORDER_NOT_FOUND
                    message: Order ID Not Found
                Order cancellation code not found:
                  value:
                    code: ORDER_CANCELLATION_CODE_NOT_FOUND
                    message: Cancellation Code Not Found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/return:
    patch:
      tags:
        - Order
      summary: Return order
      description: Return order
      operationId: returnOrder
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - orderId
                - returnCode
              properties:
                returnCode:
                  type: string
                  example: "2001"
                orderId:
                  type: string
                  minLength: 15
                  maxLength: 15
                  example: 2947-5955-82579
                returnMessage:
                  type: string
                  example: Customer not interested
                sugarRefund:
                  type: boolean
                  example: true
      responses:
        "200":
          description: Returned Order
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      orderId:
                        type: string
                        example: 1626-4972-66351
                      status:
                        type: string
                        example: Successfully Returned order
                  - type: object
                    properties:
                      order:
                        allOf:
                          - type: object
                            properties:
                              tags:
                                type: array
                              channel:
                                type: integer
                                example: 12
                              orderTotal:
                                type: number
                                example: 124.33
                              taxTotal:
                                type: number
                                example: 5.23
                              orderCurrency:
                                type: string
                                example: USD
                              status:
                                type: string
                                example: ORDER_RETURNED
                              statusLog:
                                type: string
                                example: Order has been Returned
                              customerUserId:
                                type: string
                                example: 5e3598e3007c5e00080d2bb8
                              customerAccountId:
                                type: string
                                example: 5e3598e3007c5e00080d2bb8
                              customerPhone:
                                type: object
                                properties:
                                  number:
                                    type: string
                                    example: 555-555-5555
                                  kind:
                                    type: string
                                    example: mobile
                              orderId:
                                type: string
                                example: 1626-4972-66351
                              revision:
                                type: integer
                                example: 2
                              totalQuantity:
                                type: number
                                example: 10
                              statusDescriptions:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    _id:
                                      type: string
                                      example: 614b0e0c6c4e26000906b513
                                    status:
                                      type: string
                                      example: ORDER_RETURNED
                                    code:
                                      type: string
                                      example: "2001"
                                    description:
                                      type: string
                                      example: >-
                                        Customer is no longer interested in
                                        product
                                    date:
                                      type: string
                                      example: "2021-09-22T11:05:48.210Z"
                                    id:
                                      type: string
                                      example: 614b0e0c6c4e26000906b513
                              events:
                                type: array
                              attributes:
                                type: array
                              __v:
                                type: number
                                example: 0
                          - type: object
                            properties:
                              _id:
                                type: string
                                example: 5fee9d59f2f08a1b3cbdea08
                              createdAt:
                                type: string
                                example: "2020-12-31T02:09:53.914Z"
                              updatedAt:
                                type: string
                                example: "2020-12-31T02:09:53.914Z"
                          - type: object
                            properties:
                              shipTo:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    address:
                                      type: object
                                      properties:
                                        name:
                                          type: object
                                          properties:
                                            first:
                                              type: string
                                              example: Mark
                                            middle:
                                              type: string
                                              example: p
                                            last:
                                              type: string
                                              example: styler
                                        phone:
                                          type: object
                                          properties:
                                            number:
                                              type: string
                                              example: 555-555-5555
                                            kind:
                                              type: string
                                              example: mobile
                                        isValidated:
                                          type: boolean
                                          example: false
                                        email:
                                          type: string
                                          example: mark@google.com
                                        street1:
                                          type: string
                                          example: 10400 NE 4th St
                                        street2:
                                          type: string
                                          example: Suite 500
                                        city:
                                          type: string
                                          example: Bellevue
                                        state:
                                          type: string
                                          example: WA
                                        country:
                                          type: string
                                          example: USA
                                        zipCode:
                                          type: string
                                          example: "98004"
                                        kind:
                                          type: string
                                          example: Ship to address
                                    delivery:
                                      type: object
                                      properties:
                                        actual:
                                          type: string
                                    shipping:
                                      type: object
                                      properties:
                                        actual:
                                          type: string
                                    promosApplied:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                            example: test1
                                    _id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4af
                                    shipToId:
                                      type: number
                                      example: 1000001
                                    shipToType:
                                      type: string
                                      example: SHIP_TO_ADDRESS
                                    price:
                                      type: number
                                      example: 24.87
                                    currency:
                                      type: string
                                      example: USD
                                    estimatedTax:
                                      type: number
                                      example: 10
                                    committedTax:
                                      type: number
                                      example: 10
                                    total:
                                      type: number
                                      example: 34.87
                                    taxCode:
                                      type: string
                                      example: FR020000
                                    shipmentCarrier:
                                      type: string
                                      example: Fedex
                                    shipmentMethod:
                                      type: string
                                      example: Express
                                    shipmentMethodId:
                                      type: string
                                      example: "10000001"
                                    promisedDeliveryDate:
                                      type: string
                                      example: "2021-02-14T00:00:00.000Z"
                                    shipmentInstructions:
                                      type: string
                                      example: Leave at back door
                                    shipmentStatus:
                                      type: string
                                      example: Delivered
                                    readyForPickups:
                                      type: array
                                    id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4af
                          - type: object
                            properties:
                              items:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    group:
                                      type: array
                                      items:
                                        type: string
                                        example: Group1
                                    promosApplied:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                            example: test
                                    _id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4b0
                                    lineItemId:
                                      type: number
                                      example: 1
                                    itemId:
                                      type: number
                                      example: 1000000663
                                    sku:
                                      type: string
                                      example: "1538910"
                                    title:
                                      type: string
                                      example: Luminous Cushion Lagoon
                                    quantity:
                                      type: number
                                      example: 10
                                    price:
                                      type: number
                                      example: 4.5
                                    discount:
                                      type: number
                                      example: 1
                                    currency:
                                      type: string
                                      example: USD
                                    shipToId:
                                      type: number
                                      example: 1000001
                                    estimatedTax:
                                      type: number
                                      example: 10.25
                                    total:
                                      type: number
                                      example: 4.54
                                    taxCode:
                                      type: string
                                      example: FR020000
                                    weight:
                                      type: number
                                      example: 10
                                    weightUnit:
                                      type: string
                                      example: lb
                                    attributes:
                                      type: array
                                    reservedLocation:
                                      type: array
                                    id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4b0
                          - type: object
                            properties:
                              shipments:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    _id:
                                      type: string
                                      example: 602c1607128f5e00078ad8ed
                                    shippedDate:
                                      type: string
                                      example: "2021-02-16T18:59:11.480Z"
                                    shipToId:
                                      type: number
                                      example: 1000001
                                    shipmentCarrier:
                                      type: string
                                      example: USPS
                                    shipmentCarrierUrl:
                                      type: string
                                      example: >-
                                        https://tools.usps.com/go/TrackConfirmAction?tRef=fullpage&tLc=2&text28777=&tLabels=65765798989
                                    trackingNumber:
                                      type: string
                                      example: "65765798989"
                                    lineItems:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          _id:
                                            type: string
                                            example: 602c1607128f5e00078ad8ee
                                          lineItemId:
                                            type: number
                                            example: 1
                                          quantity:
                                            type: number
                                            example: 10
                                          id:
                                            type: string
                                            example: 602c1607128f5e00078ad8ee
                                    shipmentStatus:
                                      type: string
                                      example: ORDER_SHIPPED
                                    id:
                                      type: string
                                      example: 602c1607128f5e00078ad8ed
                          - type: object
                            properties:
                              payments:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    billToAddress:
                                      type: object
                                      properties:
                                        name:
                                          type: object
                                          properties:
                                            first:
                                              type: string
                                              example: Marl
                                            middle:
                                              type: string
                                              example: p
                                            last:
                                              type: string
                                              example: styler
                                        phone:
                                          type: object
                                          properties:
                                            number:
                                              type: string
                                              example: 555-555-5555
                                            kind:
                                              type: string
                                              example: mobile
                                        isValidated:
                                          type: boolean
                                          example: false
                                        email:
                                          type: string
                                          example: mark@google.com
                                        street1:
                                          type: string
                                          example: 10400 NE 4th St
                                        street2:
                                          type: string
                                          example: Suite 500
                                        city:
                                          type: string
                                          example: Bellevue
                                        state:
                                          type: string
                                          example: WA
                                        country:
                                          type: string
                                          example: USA
                                        zipCode:
                                          type: string
                                          example: "98004"
                                        kind:
                                          type: string
                                          example: Ship to address
                                    shipToId:
                                      type: array
                                      items:
                                        type: number
                                        example: 1000001
                                    _id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4b1
                                    billToId:
                                      type: number
                                      example: 1000001
                                    paymentIdentifier:
                                      type: object
                                      properties:
                                        cardIdentifier:
                                          type: number
                                          example: 4242
                                    paymentMethod:
                                      type: string
                                      example: Visa
                                    paymentToken:
                                      type: object
                                      properties:
                                        token:
                                          type: number
                                          example: 123456789
                                    paymentKind:
                                      type: string
                                      example: Default payment
                                    amount:
                                      type: number
                                      example: 533.33
                                    currency:
                                      type: string
                                      example: USD
                                    conversion:
                                      type: number
                                      example: 1
                                    paymentStatus:
                                      type: string
                                      example: Pending
                                    id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4b1
        "400":
          description: Order return invalid status
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                    example: ORDER_RETURN_INVALID
                  message:
                    description: The error message
                    type: string
                    example: >-
                      Order status must be ORDER_SHIPPED or ORDER_FULFILLED or
                      ORDER_DELIVERD
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "404":
          description: Not Found error while canceling order
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                Order not found:
                  value:
                    code: ORDER_NOT_FOUND
                    message: Order ID Not Found
                Return Code not found:
                  value:
                    code: ORDER_RETURN_CODE_NOT_FOUND
                    message: Return Code Not Found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/bulk-return:
    post:
      tags:
        - Order
      summary: Bulk return orders
      description: Bulk return orders
      operationId: bulkReturnOrder
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              required:
                - orderId
                - returnCode
              items:
                type: object
                properties:
                  returnCode:
                    type: string
                    example: "123"
                  orderId:
                    type: string
                    minLength: 15
                    maxLength: 15
                    example: 2947-5955-82579
                  returnMessage:
                    type: string
                    example: Customer not interested
                  sugarRefund:
                    type: boolean
                    example: true
      responses:
        "200":
          description: Successfully return orders
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  oneOf:
                    - properties:
                        orderId:
                          type: string
                        status:
                          type: string
                    - properties:
                        orderId:
                          type: string
                        status:
                          type: string
                        code:
                          type: string
                        message:
                          type: string
                example:
                  - orderId: 4719-4940-97474
                    status: Error
                    code: ORDER_RETURN_INVALID
                    message: >-
                      Order status must be ORDER_SHIPPED or ORDER_FULFILLED or
                      ORDER_DELIVERD
                  - orderId: 7579-4892-68436
                    status: Successfully Returned order
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/bulk-cancel:
    post:
      tags:
        - Order
      summary: Bulk cancel orders
      description: Bulk cancel orders
      operationId: bulkCancelOrder
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              required:
                - orderId
                - cancellationCode
              items:
                type: object
                properties:
                  cancellationCode:
                    type: string
                    example: "123"
                  orderId:
                    type: string
                    minLength: 15
                    maxLength: 15
                    example: 2947-5955-82579
                  returnMessage:
                    type: string
                    example: Customer not interested
      responses:
        "200":
          description: Successfully cancel orders
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  oneOf:
                    - properties:
                        orderId:
                          type: string
                        status:
                          type: string
                    - properties:
                        orderId:
                          type: string
                        status:
                          type: string
                        code:
                          type: string
                        message:
                          type: string
                example:
                  - orderId: 2566-5214-47418
                    status: Error
                    code: ORDER_NOT_FOUND
                    message: Order ID Not Found
                  - orderId: 8426-1549-34543
                    status: Successfully cancelled order
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/query:
    post:
      tags:
        - Order
      summary: Order query
      description: Order query
      operationId: orderQuery
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                offset:
                  type: integer
                  default: 0
                  minimum: 0
                limit:
                  type: integer
                  default: 10
                  minimum: 1
                  maximum: 500
                sortBy:
                  type: string
                  enum:
                    - createdAt
                    - orderTotal
                    - totalQuantity
                    - status
                  default: createdAt
                sortDirection:
                  type: string
                  enum:
                    - asc
                    - desc
                  default: desc
                filters:
                  type: object
                  properties:
                    status:
                      type: array
                      items:
                        type: string
                        enum:
                          - ORDER_CREATED
                          - ORDER_CONFIRMED
                          - ORDER_CANCELLED
                          - ORDER_PARTIALLY_SHIPPED
                          - ORDER_SHIPPED
                          - ORDER_PARTIALLY_DELIVERED
                          - ORDER_DELIVERED
                          - ORDER_RETURNED
                          - ORDER_PARTIALLY_RETURNED
                          - ORDER_PAYMENT_AUTHORIZED
                          - ORDER_PAYMENT_INVALID
                          - ORDER_FULFILLED
                          - ORDER_PARTIALLY_FULFILLED
                          - ORDER_REFUNDED
                      example:
                        - ORDER_CREATED
                        - ORDER_PAYMENT_AUTHORIZED
                    date:
                      title: Date
                      type: object
                      properties:
                        gte:
                          type: string
                        lte:
                          type: string
                      example:
                        gte: "2020-11-01T18:12:03.412Z"
                        lte: "2022-12-03T18:12:03.412Z"
                    orderTotal:
                      type: object
                    totalQuantity:
                      type: object
                    attributes:
                      type: array
                      items:
                        type: object
                        properties:
                          attributeId:
                            type: string
                            example: 60119337cb662800075717f8
                          value:
                            type: string
                            example: blue
                      description: ""
                    customerUserId:
                      type: array
                      items:
                        type: string
                      description: ""
                    customerEmail:
                      type: array
                      items:
                        type: string
                      description: ""
                    shipTo:
                      type: array
                      items:
                        type: object
                        properties:
                          address:
                            type: object
                            properties:
                              name:
                                type: object
                                properties:
                                  first:
                                    type: string
                                    example: Mark
                                  middle:
                                    type: string
                                    example: p
                                  last:
                                    type: string
                                    example: styler
                              phone:
                                type: object
                                properties:
                                  number:
                                    type: string
                                    example: 555-555-5555
                                  kind:
                                    type: string
                                    example: mobile
                              isValidated:
                                type: boolean
                                example: false
                              email:
                                type: string
                                example: mark@google.com
                              street1:
                                type: string
                                example: 10400 NE 4th St
                              street2:
                                type: string
                                example: Suite 500
                              city:
                                type: string
                                example: Bellevue
                              state:
                                type: string
                                example: WA
                              country:
                                type: string
                                example: USA
                              zipCode:
                                type: string
                                example: "98004"
                              kind:
                                type: string
                                example: Ship to address
                          delivery:
                            type: object
                            properties:
                              actual:
                                type: string
                          shipping:
                            type: object
                            properties:
                              actual:
                                type: string
                          promosApplied:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  example: test1
                          _id:
                            type: string
                            example: 602c1511fcc5e900078ba4af
                          shipToId:
                            type: number
                            example: 1000001
                          shipToType:
                            type: string
                            example: SHIP_TO_ADDRESS
                          price:
                            type: number
                            example: 24.87
                          currency:
                            type: string
                            example: USD
                          estimatedTax:
                            type: number
                            example: 10
                          committedTax:
                            type: number
                            example: 10
                          total:
                            type: number
                            example: 34.87
                          taxCode:
                            type: string
                            example: FR020000
                          shipmentCarrier:
                            type: string
                            example: Fedex
                          shipmentMethod:
                            type: string
                            example: Express
                          shipmentMethodId:
                            type: string
                            example: "10000001"
                          promisedDeliveryDate:
                            type: string
                            example: "2021-02-14T00:00:00.000Z"
                          shipmentInstructions:
                            type: string
                            example: Leave at back door
                          shipmentStatus:
                            type: string
                            example: Delivered
                          readyForPickups:
                            type: array
                          id:
                            type: string
                            example: 602c1511fcc5e900078ba4af
      responses:
        "200":
          description: Returned orders
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: object
                    properties:
                      limit:
                        type: number
                        example: 2
                      offset:
                        type: number
                        example: 0
                      count:
                        type: number
                        example: 6
                      orderTotalSum:
                        type: number
                        example: 13543.5
                      orderAverage:
                        type: number
                        example: 2257.25
                      totalQuantitySum:
                        type: number
                        example: 82
                      statusCounts:
                        type: object
                        properties:
                          ORDER_CREATED:
                            type: number
                            example: 0
                          ORDER_CONFIRMED:
                            type: number
                            example: 0
                          ORDER_CANCELLED:
                            type: number
                            example: 0
                          ORDER_PARTIALLY_SHIPPED:
                            type: number
                            example: 0
                          ORDER_SHIPPED:
                            type: number
                            example: 0
                          ORDER_PARTIALLY_DELIVERED:
                            type: number
                            example: 0
                          ORDER_DELIVERED:
                            type: number
                            example: 0
                          ORDER_RETURNED:
                            type: number
                            example: 0
                          ORDER_PARTIALLY_RETURNED:
                            type: number
                            example: 0
                          ORDER_PAYMENT_AUTHORIZED:
                            type: number
                            example: 0
                          ORDER_PAYMENT_INVALID:
                            type: number
                            example: 0
                          ORDER_FULFILLED:
                            type: number
                            example: 0
                          ORDER_PARTIALLY_FULFILLED:
                            type: number
                            example: 0
                          ORDER_REFUNDED:
                            type: number
                            example: 6
                      paymentStatusCounts:
                        type: object
                        properties:
                          succeeded:
                            type: number
                            example: 3
                  orders:
                    type: array
                    items:
                      type: object
                      properties:
                        _id:
                          type: string
                          example: 608c8f995cc215000848a8e0
                        tags:
                          type: array
                        cartId:
                          type: string
                          example: 608c8c9e79f00c00080fbacc
                        attributes:
                          type: array
                        customerEmail:
                          type: string
                          example: mike@fabric.inc
                        orderCurrency:
                          type: string
                          example: USD
                        orderTotal:
                          type: number
                          example: 950.5
                        taxTotal:
                          type: number
                          example: 2.5
                        channel:
                          type: number
                          example: 12
                        status:
                          type: string
                          example: ORDER_REFUNDED
                        statusLog:
                          type: string
                          example: Order has been shipped
                        orderReference:
                          type: string
                          example: 9975-7559-14446
                        orderId:
                          type: string
                          example: 2660-5356-89773
                        shipTo:
                          type: array
                          items:
                            type: object
                            properties:
                              pickupPerson:
                                type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        example: John
                                      last:
                                        type: string
                                        example: Doe
                                  phone:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        example: 8087769338
                                      kind:
                                        type: string
                                        example: Mobile
                                  email:
                                    type: string
                                    example: johndoe@fabric.inc
                              altPickupPerson:
                                type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        example: first
                                      last:
                                        type: string
                                        example: last
                                  phone:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        example: 8087769338
                                      kind:
                                        type: string
                                        example: Mobile
                                  email:
                                    type: string
                                    example: first@fabric.inc
                              promosApplied:
                                type: array
                              _id:
                                type: string
                                example: 608c8d2f798c0900083f60ee
                              shipToType:
                                type: string
                                example: BOPIS
                              taxCode:
                                type: string
                                example: FR1000
                              shipToId:
                                type: number
                                example: 978
                              price:
                                type: number
                                example: 0
                              currency:
                                type: string
                                example: null
                              shipmentMethodId:
                                type: string
                                example: null
                              estimatedTax:
                                type: number
                                example: 0
                              shipmentCarrier:
                                type: string
                                example: null
                              shipmentMethod:
                                type: string
                                example: null
                              total:
                                type: number
                                example: 0
                              id:
                                type: string
                                example: 608c8d2f798c0900083f60ee
                        items:
                          type: array
                          items:
                            type: object
                            properties:
                              group:
                                type: array
                                items:
                                  type: string
                                  example: 1.2312312312312322e+23
                              promosApplied:
                                type: array
                              _id:
                                type: string
                                example: 608c8cd679f00c00080fbace
                              price:
                                type: number
                                example: 900
                              weightUnit:
                                type: string
                                example: lb
                              isPickup:
                                type: boolean
                              itemId:
                                type: number
                                example: 1000000051
                              quantity:
                                type: number
                                example: 1
                              priceListId:
                                type: number
                                example: 100269
                              sku:
                                type: string
                                example: 1538910
                              taxCode:
                                type: string
                                example: PH060771
                              title:
                                type: string
                                example: Luminous Cushion Lagoon
                              weight:
                                type: number
                                example: 1
                              lineItemId:
                                type: number
                                example: 1
                              attributeTotalPrice:
                                type: number
                                example: 0
                              attributes:
                                type: array
                              warehouseId:
                                type: string
                                example: 605d0c47c87d0e0008a3b5a8
                              currency:
                                type: string
                                example: USD
                              shipToId:
                                type: number
                                example: 978
                              discount:
                                type: number
                                example: 0
                              estimatedTax:
                                type: number
                                example: 1
                              total:
                                type: number
                                example: 901
                              reservedLocation:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    _id:
                                      type: string
                                      example: 608c8f9de4b526000842505f
                                    warehouseId:
                                      type: string
                                      example: 605d0c47c87d0e0008a3b5a8
                                    quantity:
                                      type: number
                                      example: 1
                                    id:
                                      type: string
                                      example: 608c8f9de4b526000842505f
                              id:
                                type: string
                                example: 608c8cd679f00c00080fbace
                        shipments:
                          type: array
                          items:
                            type: object
                            properties:
                              _id:
                                type: string
                                example: 60936b987d5a2f0008e8bea6
                              shippedDate:
                                type: string
                                example: "2021-05-06T04:07:47.654Z"
                              shipToId:
                                type: number
                                example: 978
                              shipmentCarrier:
                                type: string
                                example: USPS
                              shipmentCarrierUrl:
                                type: string
                                example: >-
                                  https://tools.usps.com/go/TrackConfirmAction?tRef=fullpage&tLc=2&text28777=&tLabels=65765798989
                              trackingNumber:
                                type: string
                                example: 65765798989
                              lineItems:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    _id:
                                      type: string
                                      example: 60936b987d5a2f0008e8bea7
                                    lineItemId:
                                      type: number
                                      example: 1
                                    quantity:
                                      type: number
                                      example: 1
                                    id:
                                      type: string
                                      example: 60936b987d5a2f0008e8bea7
                              shipmentStatus:
                                type: string
                                example: ORDER_SHIPPED
                              id:
                                type: string
                                example: 60936b987d5a2f0008e8bea6
                        revision:
                          type: number
                          example: 2
                        totalQuantity:
                          type: number
                          example: 2
                        statusDescriptions:
                          type: array
                        events:
                          type: array
                        createdAt:
                          type: string
                          example: "2021-04-30T23:15:37.094Z"
                        updatedAt:
                          type: string
                          example: "2021-05-06T04:09:09.970Z"
                        __v:
                          type: number
                          example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/payment:
    post:
      tags:
        - Order
      summary: Return payment by orderId
      description: Return payment by orderId
      operationId: returnPaymentByOrderId
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
        - in: query
          name: Pagination parameters
          schema:
            type: object
            properties:
              offset:
                type: integer
                default: 0
                minimum: 0
              limit:
                type: integer
                default: 10
                minimum: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                orders:
                  type: array
                  items:
                    type: string
                    example: 4809-7758-87594
      responses:
        "200":
          description: returned orders
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: object
                    properties:
                      limit:
                        type: number
                        example: 10
                      offset:
                        type: number
                        example: 0
                      count:
                        type: number
                        example: 2
                  orders:
                    type: array
                    items:
                      type: object
                      properties:
                        _id:
                          type: string
                          example: 61160edde8af410009827c28
                        isSugarRefunded:
                          type: boolean
                        tags:
                          type: array
                        cartId:
                          type: string
                          example: 61160ddbffac450008316d70
                        attributes:
                          type: array
                        customerEmail:
                          type: string
                          example: mike@fabric.inc
                        orderCurrency:
                          type: string
                          example: USD
                        orderTotal:
                          type: number
                          example: 6011.99
                        taxTotal:
                          type: number
                          example: 0
                        channel:
                          type: number
                          example: 12
                        status:
                          type: string
                          example: ORDER_CREATED
                        statusLog:
                          type: string
                          example: Order has been created
                        orderReference:
                          type: string
                          example: 3635-1613-42753
                        orderId:
                          type: string
                          example: 4809-7758-87594
                        shipTo:
                          type: array
                          items:
                            type: object
                            properties:
                              address:
                                type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        example: First
                                      last:
                                        type: string
                                        example: Last
                                  phone:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        example: 123-992-9404
                                      kind:
                                        type: string
                                        example: Mobile
                                  street1:
                                    type: string
                                    example: 888 Broadway
                                  city:
                                    type: string
                                    example: New York
                                  state:
                                    type: string
                                    example: NY
                                  country:
                                    type: string
                                    example: United States
                                  zipCode:
                                    type: string
                                    example: 10003
                                  kind:
                                    type: string
                                    example: shipping
                                  email:
                                    type: string
                                    example: first@fabric.inc
                              delivery:
                                type: object
                                properties:
                                  actual:
                                    type: string
                                    format: nullable
                              shipping:
                                type: object
                                properties:
                                  actual:
                                    type: string
                                    format: nullable
                              promosApplied:
                                type: array
                              _id:
                                type: string
                                example: 61160dea8e37e00008266191
                              shipToType:
                                type: string
                                example: SHIP_TO_ADDRESS
                              taxCode:
                                type: string
                                example: FR1000
                              shipToId:
                                type: number
                                example: 1499
                              price:
                                type: number
                                example: 11.99
                              shipmentMethodId:
                                type: string
                                example: 10002
                              estimatedTax:
                                type: number
                                example: 0
                              shipmentCarrier:
                                type: string
                                example: 2 Day
                              total:
                                type: number
                                example: 11.99
                              readyForPickups:
                                type: array
                              id:
                                type: string
                                example: 61160dea8e37e00008266191
                        items:
                          type: array
                          items:
                            type: object
                            properties:
                              group:
                                type: array
                                items:
                                  type: string
                                  example: 1.2312312312312322e+23
                              promosApplied:
                                type: array
                              _id:
                                type: string
                                example: 61160ddbffac450008316d71
                              price:
                                type: number
                                example: 600
                              weightUnit:
                                type: string
                                example: kg
                              isPickup:
                                type: boolean
                              itemId:
                                type: number
                                example: 1000011164
                              quantity:
                                type: number
                                example: 10
                              priceListId:
                                type: number
                                example: 100000
                              sku:
                                type: string
                                example: BLUETEST
                              taxCode:
                                type: string
                                example: PH060771
                              title:
                                type: string
                                example: Loki Cat
                              weight:
                                type: number
                                example: 7
                              lineItemId:
                                type: number
                                example: 1
                              attributeTotalPrice:
                                type: number
                                example: 0
                              attributes:
                                type: array
                              currency:
                                type: string
                                example: USD
                              shipToId:
                                type: number
                                example: 1499
                              discount:
                                type: number
                                example: 0
                              estimatedTax:
                                type: number
                                example: 0
                              total:
                                type: number
                                example: 6000
                              reservedLocation:
                                type: array
                              id:
                                type: string
                                example: 61160ddbffac450008316d71
                        shipments:
                          type: array
                        payments:
                          type: array
                          items:
                            type: object
                            properties:
                              billToAddress:
                                type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        example: John
                                      last:
                                        type: string
                                        example: Smith
                                  phone:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        example: 7780811973
                                      kind:
                                        type: string
                                        example: mobile
                                  email:
                                    type: string
                                    example: johnsmith@gmail.com
                                  street1:
                                    type: string
                                    example: 600 Congress Ave
                                  street2:
                                    type: string
                                    example: suite 219
                                  city:
                                    type: string
                                    example: Austin
                                  state:
                                    type: string
                                    example: Tx
                                  country:
                                    type: string
                                    example: US
                                  zipCode:
                                    type: string
                                    example: 10033
                              shipToId:
                                type: array
                                items:
                                  type: number
                                  example: 1499
                              _id:
                                type: string
                                example: 61160edde8af410009827c2b
                              paymentStatus:
                                type: string
                                example: authorized
                              amount:
                                type: number
                                example: 5000
                              currency:
                                type: string
                                example: USD
                              paymentIdentifier:
                                type: object
                                properties:
                                  cardIdentifier:
                                    type: string
                                    example: 4242
                              paymentMethod:
                                type: string
                                example: visa
                              paymentKind:
                                type: string
                                example: CARD_STRIPE
                              conversion:
                                type: number
                                example: 1
                              paymentToken:
                                type: object
                                properties:
                                  token:
                                    type: string
                                    example: pi_3JNthOJxr7zyIFb91Tp0jQTG
                                  type:
                                    type: string
                                    example: CARD_STRIPE
                              id:
                                type: string
                                example: 61160edde8af410009827c2b
                        revision:
                          type: number
                          example: 0
                        totalQuantity:
                          type: number
                          example: 10
                        statusDescriptions:
                          type: array
                        events:
                          type: array
                        pickups:
                          type: array
                        createdAt:
                          type: string
                          example: "2021-08-13T06:19:09.589Z"
                        updatedAt:
                          type: string
                          example: "2021-08-13T06:19:09.589Z"
                        __v:
                          type: number
                          example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/pos/sync-status:
    post:
      tags:
        - Order
      summary: Sync order status
      description: Sync order status
      operationId: syncOrderStatus
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - orderId
              properties:
                orderId:
                  type: string
                  minLength: 15
                  maxLength: 15
                  example: 2947-5955-82579
                shipments:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    required:
                      - shipmentCarrier
                      - trackingNumber
                      - shipmentStatus
                      - lineItems
                    properties:
                      shipmentRef:
                        type: string
                        example: ref-1234
                      shipmentCarrier:
                        type: string
                        minLength: 3
                        example: FedEx
                      shipmentCarrierUrl:
                        type: string
                        format: uri
                        example: https://www.fedex.com/
                      trackingNumber:
                        type: string
                        example: "2345367890876543"
                      lineItems:
                        type: array
                        minItems: 1
                        items:
                          type: object
                          required:
                            - lineItemId
                            - quantity
                          properties:
                            lineItemId:
                              type: number
                              example: 1
                            quantity:
                              type: number
                              minimum: 1
                      shipmentStatus:
                        type: string
                        example: Delivered
                      shippedDate:
                        type: string
                        example: "2019-12-14"
                      estimatedDeliveryDate:
                        type: string
                        example: "2019-12-14"
      responses:
        "200":
          description: Successfully synced order
          content:
            application/json:
              schema:
                type: object
                properties:
                  orderId:
                    type: string
                    example: 2567-1064-60759
                  status:
                    type: string
                    example: POS order status synced.
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "404":
          description: Not Found error while syncing order status
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                Order not found:
                  value:
                    code: ORDER_NOT_FOUND
                    message: Order ID Not Found
                Order line item not found:
                  value:
                    code: ORDER_LINE_ITEM_NOT_FOUND
                    message: "Unable to Find lineItemId: 2 for ShipToId:"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/pos/orders:
    post:
      tags:
        - Order
      summary: Create POS order
      description: Create POS order
      operationId: createPosOrder
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - locationId
                - status
                - orderReference
              properties:
                channel:
                  type: number
                  example: 12
                orderReference:
                  type: string
                  example: 1234
                locationId:
                  type: string
                  example: 5efcc26a5ee50d00079ca2ab
                orderTotal:
                  type: number
                  example: 125.33
                taxTotal:
                  type: number
                  example: 5.23
                orderCurrency:
                  type: string
                  example: USD
                status:
                  type: string
                  example: ORDER_CREATED
                statusLog:
                  type: string
                  example: Order has been Shipped
                customerUserId:
                  type: string
                  example: 5e3598e3007c5e00080d2bb8
                customerAccountId:
                  type: string
                  example: 5e3598e3007c5e00080d2bb8
                customerEmail:
                  type: string
                  example: ino@fabric.inc
                customerPhone:
                  type: object
                  properties:
                    number:
                      type: string
                      example: 555-555-5555
                    kind:
                      type: string
                      example: mobile
                shipTo:
                  type: array
                  items:
                    type: object
                    properties:
                      shipToId:
                        type: number
                        example: 1000001
                      shipToType:
                        type: string
                        example: SHIP_TO_ADDRESS
                      address:
                        type: object
                        properties:
                          name:
                            type: object
                            properties:
                              first:
                                type: string
                                example: Mark
                              middle:
                                type: string
                                example: p
                              last:
                                type: string
                                example: styler
                          email:
                            type: string
                            example: mark@google.com
                          phone:
                            type: object
                            properties:
                              number:
                                type: string
                                example: 555-555-5555
                              kind:
                                type: string
                                example: mobile
                          street1:
                            type: string
                            example: 10400 NE 4th St
                          street2:
                            type: string
                            example: Suite 500
                          city:
                            type: string
                            example: Bellevue
                          state:
                            type: string
                            example: WA
                          country:
                            type: string
                            example: USA
                          zipCode:
                            type: string
                            example: 98004
                          kind:
                            type: string
                            example: Ship to address
                      price:
                        type: number
                        example: 24.8723423
                      currency:
                        type: string
                        example: USD
                      estimatedTax:
                        type: number
                        example: 10
                      committedTax:
                        type: number
                        example: 10
                      promosApplied:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              example: test1
                      total:
                        type: number
                        example: 34.87
                      taxCode:
                        type: string
                        example: FR020000
                      shipmentCarrier:
                        type: string
                        example: Fedex
                      shipmentMethod:
                        type: string
                        example: Express
                      shipmentMethodId:
                        type: number
                        example: 10000001
                      promisedDeliveryDate:
                        type: string
                        format: date
                        example: "2021-02-14"
                      shipmentInstructions:
                        type: string
                        example: Leave at back door
                      shipmentStatus:
                        type: string
                        example: Delivered
                      items:
                        type: array
                        items:
                          type: object
                          properties:
                            lineItemId:
                              type: number
                              example: 1
                            itemId:
                              type: number
                              example: 1000011127
                            sku:
                              type: string
                              example: 1538910
                            group:
                              type: array
                              items:
                                type: string
                                example: Group1
                            title:
                              type: string
                              example: Luminous Cushion Lagoon
                            quantity:
                              type: number
                              example: 10
                            price:
                              type: number
                              example: 4.5
                            discount:
                              type: number
                              example: 1
                            currency:
                              type: string
                              example: USD
                            shipToId:
                              type: number
                              example: 1000001
                            estimatedTax:
                              type: number
                              example: 10.25
                            committedTax:
                              type: number
                              example: 10.25
                            promosApplied:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    example: test
                            total:
                              type: string
                              example: 4.54234234
                            taxCode:
                              type: string
                              example: FR020000
                            weight:
                              type: number
                              example: 10
                            weightUnit:
                              type: string
                              example: lb
                      shipments:
                        type: array
                      payments:
                        type: array
                        items:
                          type: object
                          properties:
                            billToId:
                              type: number
                              example: 1000001
                            shipToId:
                              type: array
                              items:
                                type: number
                                example: 1000001
                            paymentIdentifier:
                              type: object
                              properties:
                                cardIdentifier:
                                  type: number
                                  example: 4242
                            paymentMethod:
                              type: string
                              example: Visa
                            paymentToken:
                              type: object
                              properties:
                                token:
                                  type: number
                                  example: 12345689
                            paymentKind:
                              type: string
                              example: Default payment
                            amount:
                              type: number
                              example: 533.33
                            currency:
                              type: string
                              example: USD
                            conversion:
                              type: number
                              example: 1
                            paymentStatus:
                              type: string
                              example: Pending
                            billToAddress:
                              type: object
                              properties:
                                name:
                                  type: object
                                  properties:
                                    first:
                                      type: string
                                      example: Marl
                                    middle:
                                      type: string
                                      example: p
                                    last:
                                      type: string
                                      example: styler
                                email:
                                  type: string
                                  example: mark@google.com
                                phone:
                                  type: object
                                  properties:
                                    number:
                                      type: string
                                      example: 555-555-5555
                                    kind:
                                      type: string
                                      example: mobile
                                street1:
                                  type: string
                                  example: 10400 NE 4th St
                                street2:
                                  type: string
                                  example: Suite 500
                                city:
                                  type: string
                                  example: Bellevue
                                state:
                                  type: string
                                  example: WA
                                country:
                                  type: string
                                  example: USA
                                zipCode:
                                  type: string
                                  example: 98004
                                kind:
                                  type: string
                                  example: Ship to address
      responses:
        "200":
          description: Created POS order
          content:
            application/json:
              schema:
                type: object
                properties:
                  tags:
                    type: array
                  _id:
                    type: string
                    example: 60944ade71cdfc0008a621a2
                  channel:
                    type: number
                    example: 12
                  orderReference:
                    type: string
                    example: testorder
                  orderTotal:
                    type: number
                    example: 125.33
                  taxTotal:
                    type: number
                    example: 5.23
                  orderCurrency:
                    type: string
                    example: USD
                  status:
                    type: string
                    example: ORDER_CREATED
                  statusLog:
                    type: string
                    example: Order has been created
                  customerUserId:
                    type: string
                    example: 5e3598e3007c5e00080d2bb8
                  customerAccountId:
                    type: string
                    example: 5e3598e3007c5e00080d2bb8
                  customerEmail:
                    type: string
                    example: ino@fabric.inc
                  customerPhone:
                    type: object
                    properties:
                      number:
                        type: string
                        example: 555-555-5555
                      kind:
                        type: string
                        example: mobile
                  orderId:
                    type: string
                    example: 7998-1161-63560
                  shipTo:
                    type: array
                    items:
                      type: object
                      properties:
                        address:
                          type: object
                          properties:
                            name:
                              type: object
                              properties:
                                first:
                                  type: string
                                  example: Mark
                                middle:
                                  type: string
                                  example: p
                                last:
                                  type: string
                                  example: styler
                            phone:
                              type: object
                              properties:
                                number:
                                  type: string
                                  example: 555-555-5555
                                kind:
                                  type: string
                                  example: mobile
                            email:
                              type: string
                              example: mark@google.com
                            street1:
                              type: string
                              example: 10400 NE 4th St
                            street2:
                              type: string
                              example: Suite 500
                            city:
                              type: string
                              example: Bellevue
                            state:
                              type: string
                              example: WA
                            country:
                              type: string
                              example: USA
                            zipCode:
                              type: string
                              example: 98004
                            kind:
                              type: string
                              example: Ship to address
                        promosApplied:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                example: test1
                        _id:
                          type: string
                          example: 60944ade71cdfc0008a621a3
                        shipToId:
                          type: number
                          example: 1000001
                        shipToType:
                          type: string
                          example: SHIP_TO_ADDRESS
                        price:
                          type: number
                          example: 24.87
                        currency:
                          type: string
                          example: USD
                        estimatedTax:
                          type: number
                          example: 10
                        committedTax:
                          type: number
                          example: 10
                        total:
                          type: number
                          example: 34.87
                        taxCode:
                          type: string
                          example: FR020000
                        shipmentCarrier:
                          type: string
                          example: Fedex
                        shipmentMethod:
                          type: string
                          example: Express
                        shipmentMethodId:
                          type: string
                          example: 10000001
                        promisedDeliveryDate:
                          type: string
                          example: "2021-02-14T00:00:00.000Z"
                        shipmentInstructions:
                          type: string
                          example: Leave at back door
                        shipmentStatus:
                          type: string
                          example: Delivered
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        group:
                          type: array
                          items:
                            type: string
                            example: Group1
                        promosApplied:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                example: test
                        _id:
                          type: string
                          example: 60944ade71cdfc0008a621a4
                        lineItemId:
                          type: number
                          example: 1
                        itemId:
                          type: number
                          example: 1000000051
                        priceListId:
                          type: number
                          example: 100003
                        sku:
                          type: string
                          example: 1538910
                        title:
                          type: string
                          example: Luminous Cushion Lagoon
                        quantity:
                          type: number
                          example: 10
                        price:
                          type: number
                          example: 4.5
                        discount:
                          type: number
                          example: 1
                        currency:
                          type: string
                          example: USD
                        shipToId:
                          type: number
                          example: 1000001
                        estimatedTax:
                          type: number
                          example: 10.25
                        committedTax:
                          type: number
                          example: 10.25
                        total:
                          type: number
                          example: 4.54
                        taxCode:
                          type: string
                          example: FR020000
                        weight:
                          type: number
                          example: 10
                        weightUnit:
                          type: string
                          example: lb
                        reservedLocation:
                          type: array
                        attributes:
                          type: array
                  shipments:
                    type: array
                  payments:
                    type: array
                    items:
                      type: object
                      properties:
                        billToAddress:
                          type: object
                          properties:
                            name:
                              type: object
                              properties:
                                first:
                                  type: string
                                  example: Marl
                                middle:
                                  type: string
                                  example: p
                                last:
                                  type: string
                                  example: styler
                            phone:
                              type: object
                              properties:
                                number:
                                  type: string
                                  example: 555-555-5555
                                kind:
                                  type: string
                                  example: mobile
                            email:
                              type: string
                              example: mark@google.com
                            street1:
                              type: string
                              example: 10400 NE 4th St
                            street2:
                              type: string
                              example: Suite 500
                            city:
                              type: string
                              example: Bellevue
                            state:
                              type: string
                              example: WA
                            country:
                              type: string
                              example: USA
                            zipCode:
                              type: string
                              example: 98004
                            kind:
                              type: string
                              example: Ship to address
                        shipToId:
                          type: array
                          items:
                            type: number
                            example: 1000001
                        _id:
                          type: string
                          example: 60944ade71cdfc0008a621a5
                        billToId:
                          type: number
                          example: 1000001
                        paymentIdentifier:
                          type: object
                          properties:
                            cardIdentifier:
                              type: number
                              example: 4242
                        paymentMethod:
                          type: string
                          example: Visa
                        paymentToken:
                          type: object
                          properties:
                            token:
                              type: number
                              example: 12345689
                        paymentKind:
                          type: string
                          example: Default payment
                        amount:
                          type: number
                          example: 533.33
                        currency:
                          type: string
                          example: USD
                        conversion:
                          type: number
                          example: 1
                        paymentStatus:
                          type: string
                          example: Pending
                  revision:
                    type: number
                    example: 0
                  totalQuantity:
                    type: number
                    example: 10
                  statusDescriptions:
                    type: array
                  events:
                    type: array
                  pickups:
                    type: array
                  attributes:
                    type: array
                  createdAt:
                    type: string
                    example: "2021-05-06T20:00:30.143Z"
                  updatedAt:
                    type: string
                    example: "2021-05-06T20:00:30.143Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/checkout:
    post:
      tags:
        - Order
      summary: Order checkout
      description: Order checkout
      operationId: orderCheckout
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cartId
                - paymentDetails
                - estimatedTax
              anyOf:
                - required:
                    - customerEmail
                - required:
                    - customerPhoneNumber
              properties:
                cartId:
                  type: string
                  minLength: 24
                  maxLength: 24
                  example: 5e4876e10cfe1d8902005d33
                customerAccountId:
                  type: string
                  example: 5e3598e3007c5e00080d2bb8
                  minLength: 3
                customerEmail:
                  type: string
                  format: email
                  minLength: 3
                customerPhoneNumber:
                  type: object
                  required:
                    - number
                    - kind
                  properties:
                    number:
                      type: string
                      minLength: 5
                      maxLength: 25
                      example: 123-456-7890
                    kind:
                      type: string
                      minLength: 3
                      maxLength: 25
                      example: Mobile
                paymentDetails:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    required:
                      - transactionDetails
                      - billToAddress
                      - paymentMethod
                      - paymentKind
                      - amount
                      - currency
                    properties:
                      billToId:
                        type: number
                        example: 1000001
                      shipToId:
                        type: array
                        minItems: 1
                        items:
                          type: number
                        example:
                          - 1000001
                          - 1000002
                      transactionDetails:
                        type: object
                        anyOf:
                          - required:
                              - tokenizedPaymentMethod
                              - paymentType
                          - required:
                              - cardNumber
                              - expDate
                              - cvv
                              - paymentType
                        properties:
                          paymentType:
                            type: string
                            enum:
                              - CARD
                              - NON_CARD
                            example: CARD
                            minLength: 4
                            maxLength: 8
                          tokenizedPaymentMethod:
                            type: string
                            example: 12fyg3fv4dbb56bbd7dfb890123456
                          cardNumber:
                            type: string
                            minLength: 13
                            maxLength: 19
                            example: "1234567890123456"
                          expDate:
                            type: string
                            minLength: 4
                            maxLength: 4
                            example: "0220"
                          cvv:
                            type: string
                            minLength: 3
                            maxLength: 4
                            example: "123"
                          cardHolderFullName:
                            type: string
                            minLength: 0
                            maxLength: 100
                            example: Mr John Smith
                          metadata:
                            type: object
                            default: {}
                      paymentMethod:
                        type: string
                        example: Visa
                        minLength: 2
                      paymentKind:
                        type: string
                      amount:
                        type: number
                        example: 533.33
                        minimum: 0
                      currency:
                        type: string
                        minLength: 3
                        maxLength: 3
                        example: USD
                      conversion:
                        type: number
                        default: 1
                        example: 1.12
                      billToAddress:
                        type: object
                        required:
                          - name
                          - email
                          - street1
                          - city
                          - state
                          - country
                          - zipCode
                        properties:
                          name:
                            type: object
                            required:
                              - first
                              - last
                            properties:
                              first:
                                type: string
                                minLength: 2
                                maxLength: 50
                                example: John
                              middle:
                                type: string
                                minLength: 1
                                maxLength: 50
                                example: Paul
                              last:
                                type: string
                                minLength: 2
                                maxLength: 50
                                example: Smith
                          email:
                            type: string
                            format: email
                            example: johnsmith@fabric.inc
                            minLength: 3
                          phone:
                            type: object
                            required:
                              - number
                              - kind
                            properties:
                              number:
                                type: string
                                minLength: 5
                                maxLength: 25
                                example: 123-456-7890
                              kind:
                                type: string
                                minLength: 3
                                maxLength: 25
                                example: Mobile
                          street1:
                            type: string
                            example: 10400 NE 4th St
                          street2:
                            type: string
                            example: Suite 500
                          city:
                            type: string
                            example: Bellevue
                            minLength: 2
                          state:
                            type: string
                            example: WA
                            minLength: 2
                          country:
                            type: string
                            example: USA
                            minLength: 2
                          zipCode:
                            type: string
                            example: "98004"
                            minLength: 2
                          kind:
                            type: string
                            example: Bill to address
                estimatedTax:
                  type: object
                  required:
                    - itemsTaxes
                    - shipToTaxes
                  properties:
                    itemsTaxes:
                      type: array
                      minItems: 1
                      items:
                        type: object
                        required:
                          - lineItemId
                          - amount
                        properties:
                          lineItemId:
                            type: number
                            minimum: 1
                            example: 2
                          amount:
                            type: number
                            minimum: 0
                            example: 20
                    shipToTaxes:
                      type: array
                      minItems: 1
                      items:
                        type: object
                        required:
                          - shipToId
                          - amount
                        properties:
                          shipToId:
                            type: string
                            minLength: 24
                            maxLength: 24
                            example: 5ec35a857e6cac8d99a57d3b
                          amount:
                            type: number
                            minimum: 0
                            example: 20
                shipFrom:
                  type: object
                  required:
                    - street1
                    - city
                    - state
                    - country
                    - zipCode
                  properties:
                    street1:
                      type: string
                      example: 10400 NE 4th St
                    city:
                      type: string
                      example: Bellevue
                      minLength: 2
                    state:
                      type: string
                      example: WA
                      minLength: 2
                    country:
                      type: string
                      example: USA
                      minLength: 2
                    zipCode:
                      type: string
                      example: "98004"
                      minLength: 2
      responses:
        "200":
          description: Order checkout
          content:
            application/json:
              schema:
                type: object
                properties:
                  checkoutComplete:
                    type: boolean
                    example: true
                  orderId:
                    type: string
                    example: 9376-1544-24209
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          description: Cart item ship to are missing
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                    example: CART_SHIP_TO_ERROR
                  message:
                    description: The error message
                    type: string
                    example: Cart item ship to are missing.
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/checkout-v4:
    post:
      tags:
        - Order
      summary: Order checkout (v4)
      description: Order checkout (v4)
      operationId: orderCheckoutV4
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cartId
                - estimatedTax
              anyOf:
                - required:
                    - customerEmail
                - required:
                    - customerPhoneNumber
              properties:
                cartId:
                  type: string
                  minLength: 24
                  maxLength: 24
                  example: 5e4876e10cfe1d8902005d33
                customerAccountId:
                  type: string
                  example: 5e3598e3007c5e00080d2bb8
                  minLength: 3
                customerEmail:
                  type: string
                  format: email
                  minLength: 3
                customerPhoneNumber:
                  type: object
                  required:
                    - number
                    - kind
                  properties:
                    number:
                      type: string
                      minLength: 5
                      maxLength: 25
                      example: 123-456-7890
                    kind:
                      type: string
                      minLength: 3
                      maxLength: 25
                      example: Mobile
                paymentDetails:
                  type: array
                  minItems: 0
                  items:
                    type: object
                    required:
                      - transactionDetails
                      - billToAddress
                      - paymentMethod
                      - paymentKind
                      - amount
                      - currency
                    properties:
                      billToId:
                        type: number
                        example: 1000001
                      shipToId:
                        type: array
                        minItems: 1
                        items:
                          type: number
                        example:
                          - 1000001
                          - 1000002
                      transactionDetails:
                        type: object
                        anyOf:
                          - required:
                              - tokenizedPaymentMethod
                              - paymentType
                          - required:
                              - cardNumber
                              - expDate
                              - cvv
                              - paymentType
                        properties:
                          paymentType:
                            type: string
                            enum:
                              - CARD
                              - NON_CARD
                            example: CARD
                            minLength: 4
                            maxLength: 8
                          tokenizedPaymentMethod:
                            type: string
                            example: 12fyg3fv4dbb56bbd7dfb890123456
                          cardNumber:
                            type: string
                            minLength: 13
                            maxLength: 19
                            example: "1234567890123456"
                          expDate:
                            type: string
                            minLength: 4
                            maxLength: 4
                            example: "0220"
                          cvv:
                            type: string
                            minLength: 3
                            maxLength: 4
                            example: "123"
                          cardHolderFullName:
                            type: string
                            minLength: 0
                            maxLength: 100
                            example: Mr John Smith
                          metadata:
                            type: object
                            default: {}
                      paymentMethod:
                        type: string
                        example: Visa
                        minLength: 2
                      paymentKind:
                        type: string
                      amount:
                        type: number
                        example: 533.33
                        minimum: 0
                      currency:
                        type: string
                        minLength: 3
                        maxLength: 3
                        example: USD
                      conversion:
                        type: number
                        default: 1
                        example: 1.12
                      billToAddress:
                        type: object
                        required:
                          - name
                          - email
                          - street1
                          - city
                          - state
                          - country
                          - zipCode
                        properties:
                          name:
                            type: object
                            required:
                              - first
                              - last
                            properties:
                              first:
                                type: string
                                minLength: 2
                                maxLength: 50
                                example: John
                              middle:
                                type: string
                                minLength: 1
                                maxLength: 50
                                example: Paul
                              last:
                                type: string
                                minLength: 2
                                maxLength: 50
                                example: Smith
                          email:
                            type: string
                            format: email
                            example: johnsmith@fabric.inc
                            minLength: 3
                          phone:
                            type: object
                            required:
                              - number
                              - kind
                            properties:
                              number:
                                type: string
                                minLength: 5
                                maxLength: 25
                                example: 123-456-7890
                              kind:
                                type: string
                                minLength: 3
                                maxLength: 25
                                example: Mobile
                          street1:
                            type: string
                            example: 10400 NE 4th St
                          street2:
                            type: string
                            example: Suite 500
                          city:
                            type: string
                            example: Bellevue
                            minLength: 2
                          state:
                            type: string
                            example: WA
                            minLength: 2
                          country:
                            type: string
                            example: USA
                            minLength: 2
                          zipCode:
                            type: string
                            example: "98004"
                            minLength: 2
                          kind:
                            type: string
                            example: Bill to address
                estimatedTax:
                  type: object
                  required:
                    - itemsTaxes
                    - shipToTaxes
                  properties:
                    itemsTaxes:
                      type: array
                      minItems: 1
                      items:
                        type: object
                        required:
                          - lineItemId
                          - amount
                        properties:
                          lineItemId:
                            type: number
                            minimum: 1
                            example: 2
                          amount:
                            type: number
                            minimum: 0
                            example: 20
                    shipToTaxes:
                      type: array
                      minItems: 1
                      items:
                        type: object
                        required:
                          - shipToId
                          - amount
                        properties:
                          shipToId:
                            type: string
                            minLength: 24
                            maxLength: 24
                            example: 5ec35a857e6cac8d99a57d3b
                          amount:
                            type: number
                            minimum: 0
                            example: 20
                shipFrom:
                  type: object
                  required:
                    - street1
                    - city
                    - state
                    - country
                    - zipCode
                  properties:
                    street1:
                      type: string
                      example: 10400 NE 4th St
                    city:
                      type: string
                      example: Bellevue
                      minLength: 2
                    state:
                      type: string
                      example: WA
                      minLength: 2
                    country:
                      type: string
                      example: USA
                      minLength: 2
                    zipCode:
                      type: string
                      example: "98004"
                      minLength: 2
      responses:
        "200":
          description: Order checkout
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      checkoutComplete:
                        type: boolean
                      pointOfFailure:
                        type: string
                        example: payment
                      paymentResp:
                        type: object
                        properties:
                          totalAmountCapturable:
                            type: string
                            example: 100
                          orderTotal:
                            type: string
                            example: 1001
                  - type: object
                    properties:
                      checkoutComplete:
                        type: boolean
                        example: true
                      orderId:
                        type: string
                        example: 9376-1544-24209
        "400":
          $ref: "#/components/responses/GenericClientError"
        "404":
          $ref: "#/components/responses/CartNotFound"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/orderNumber/{orderId}:
    get:
      tags:
        - Order
      summary: Get order
      description: Get order
      operationId: getOrder
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
        - in: path
          name: orderId
          required: true
          schema:
            type: string
            minLength: 15
            maxLength: 15
            example: 2947-5955-82579
      responses:
        "200":
          description: Order
          content:
            application/json:
              schema:
                type: object
                properties:
                  order:
                    type: object
                    properties:
                      _id:
                        type: string
                        example: 6021f6b8bd6ce10008579e8e
                      tags:
                        type: array
                      cartId:
                        type: string
                        example: 5e4876e10cfe1d8902005d33
                      channel:
                        type: number
                        example: 12
                      orderTotal:
                        type: number
                        example: 125.33
                      taxTotal:
                        type: number
                        example: 5.23
                      orderCurrency:
                        type: string
                        example: USD
                      status:
                        type: string
                        example: ORDER_CANCELLED
                      statusLog:
                        type: string
                        example: Order has been cancelled
                      customerUserId:
                        type: string
                        example: 5e3598e3007c5e00080d2bb8
                      customerAccountId:
                        type: string
                        example: 5e3598e3007c5e00080d2bb8
                      customerEmail:
                        type: string
                        example: ino@fabric.inc
                      customerPhone:
                        type: object
                        properties:
                          number:
                            type: string
                            example: 555-555-5555
                          kind:
                            type: string
                            example: mobile
                      orderId:
                        type: string
                        example: 8426-1549-34543
                      shipTo:
                        type: array
                        items:
                          type: object
                          properties:
                            address:
                              type: object
                              properties:
                                name:
                                  type: object
                                  properties:
                                    first:
                                      type: string
                                      example: john
                                    middle:
                                      type: string
                                      example: p
                                    last:
                                      type: string
                                      example: smith
                                phone:
                                  type: object
                                  properties:
                                    number:
                                      type: string
                                      example: 555-555-5555
                                    kind:
                                      type: string
                                      example: mobile
                                isValidated:
                                  type: boolean
                                email:
                                  type: string
                                  example: johnsmith@google.com
                                street1:
                                  type: string
                                  example: 10400 NE 4th St
                                street2:
                                  type: string
                                  example: Suite 500
                                city:
                                  type: string
                                  example: Bellevue
                                state:
                                  type: string
                                  example: WA
                                country:
                                  type: string
                                  example: USA
                                zipCode:
                                  type: string
                                  example: 98004
                                kind:
                                  type: string
                                  example: Ship to address
                            delivery:
                              type: object
                              properties:
                                actual:
                                  type: string
                                  format: nullable
                            shipping:
                              type: object
                              properties:
                                actual:
                                  type: string
                                  format: nullable
                            promosApplied:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    example: test1
                            _id:
                              type: string
                              example: 6021f6b8bd6ce10008579e8f
                            shipToId:
                              type: number
                              example: 1000001
                            shipToType:
                              type: string
                              example: SHIP_TO_ADDRESS
                            price:
                              type: number
                              example: 24.87
                            currency:
                              type: string
                              example: USD
                            estimatedTax:
                              type: number
                              example: 10
                            committedTax:
                              type: number
                              example: 10
                            total:
                              type: number
                              example: 34.87
                            taxCode:
                              type: string
                              example: FR020000
                            shipmentCarrier:
                              type: string
                              example: Fedex
                            shipmentMethod:
                              type: string
                              example: Express
                            shipmentMethodId:
                              type: string
                              example: 10000001
                            promisedDeliveryDate:
                              type: string
                              example: "2019-12-14T00:00:00.000Z"
                            shipmentInstructions:
                              type: string
                              example: Leave at back door
                            shipmentStatus:
                              type: string
                              example: Delivered
                            readyForPickups:
                              type: array
                            id:
                              type: string
                              example: 6021f6b8bd6ce10008579e8f
                      items:
                        type: array
                        items:
                          type: object
                          properties:
                            group:
                              type: array
                              items:
                                type: string
                                example: 123
                            promosApplied:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    example: test
                            _id:
                              type: string
                              example: 6021f6b8bd6ce10008579e90
                            lineItemId:
                              type: number
                              example: 1
                            itemId:
                              type: number
                              example: 1000000051098
                            priceListId:
                              type: number
                              example: 1000000
                            sku:
                              type: string
                              example: 1538910
                            title:
                              type: string
                              example: abcDNA Luminous Cushion Lagoon
                            quantity:
                              type: number
                              example: 1
                            price:
                              type: number
                              example: 4.5
                            discount:
                              type: number
                              example: 1
                            currency:
                              type: string
                              example: USD
                            shipToId:
                              type: number
                              example: 1000001
                            estimatedTax:
                              type: number
                              example: 10.25
                            committedTax:
                              type: number
                              example: 10.25
                            total:
                              type: number
                              example: 4.54
                            taxCode:
                              type: string
                              example: FR020000
                            weight:
                              type: number
                              example: 10
                            weightUnit:
                              type: string
                              example: lb
                            reservedLocation:
                              type: array
                            attributes:
                              type: array
                            id:
                              type: string
                              example: 6021f6b8bd6ce10008579e90
                      shipments:
                        type: array
                      payments:
                        type: array
                        items:
                          type: object
                          properties:
                            billToAddress:
                              type: object
                              properties:
                                name:
                                  type: object
                                  properties:
                                    first:
                                      type: string
                                      example: john
                                    middle:
                                      type: string
                                      example: p
                                    last:
                                      type: string
                                      example: smith
                                phone:
                                  type: object
                                  properties:
                                    number:
                                      type: string
                                      example: 555-555-5555
                                    kind:
                                      type: string
                                      example: mobile
                                isValidated:
                                  type: boolean
                                email:
                                  type: string
                                  example: johnsmith@google.com
                                street1:
                                  type: string
                                  example: 10400 NE 4th St
                                street2:
                                  type: string
                                  example: Suite 500
                                city:
                                  type: string
                                  example: Bellevue
                                state:
                                  type: string
                                  example: WA
                                country:
                                  type: string
                                  example: USA
                                zipCode:
                                  type: string
                                  example: 98004
                                kind:
                                  type: string
                                  example: Ship to address
                            shipToId:
                              type: array
                              items:
                                type: number
                                example: 1000001
                            _id:
                              type: string
                              example: 6021f6b8bd6ce10008579e92
                            billToId:
                              type: number
                              example: 1000001
                            paymentIdentifier:
                              type: object
                              properties:
                                cardIdentifier:
                                  type: number
                                  example: 4242
                            paymentMethod:
                              type: string
                              example: Visa
                            paymentToken:
                              type: object
                              properties:
                                token:
                                  type: number
                                  example: 12345689
                            paymentKind:
                              type: string
                              example: Default payment
                            amount:
                              type: number
                              example: 533.33
                            currency:
                              type: string
                              example: USD
                            conversion:
                              type: number
                              example: 1
                            paymentStatus:
                              type: string
                              example: Pending
                            id:
                              type: string
                              example: 6021f6b8bd6ce10008579e92
                      revision:
                        type: number
                        example: 1
                      totalQuantity:
                        type: number
                        example: 2
                      statusDescriptions:
                        type: array
                        items:
                          type: object
                          properties:
                            _id:
                              type: string
                              example: 614b25234a2b4e0009870c49
                            status:
                              type: string
                              example: ORDER_CANCELLED
                            code:
                              type: string
                              example: 1001
                            description:
                              type: string
                              example: Merchant Out of Stock
                            date:
                              type: string
                              example: "2021-09-22T12:44:19.703Z"
                            id:
                              type: string
                              example: 614b25234a2b4e0009870c49
                      events:
                        type: array
                      createdAt:
                        type: string
                        example: "2021-02-09T02:43:04.926Z"
                      updatedAt:
                        type: string
                        example: "2021-09-22T12:44:19.696Z"
                      __v:
                        type: number
                        example: 0
                  history:
                    type: array
                    items:
                      type: object
                      properties:
                        _id:
                          type: string
                          example: 614b25234a2b4e0009870c4f
                        tags:
                          type: array
                        cartId:
                          type: string
                          example: 5e4876e10cfe1d8902005d33
                        channel:
                          type: number
                          example: 12
                        orderTotal:
                          type: number
                          example: 125.33
                        taxTotal:
                          type: number
                          example: 5.23
                        orderCurrency:
                          type: string
                          example: USD
                        status:
                          type: string
                          example: ORDER_CANCELLED
                        statusLog:
                          type: string
                          example: Order has been cancelled
                        customerUserId:
                          type: string
                          example: 5e3598e3007c5e00080d2bb8
                        customerAccountId:
                          type: string
                          example: 5e3598e3007c5e00080d2bb8
                        customerEmail:
                          type: string
                          example: ino@fabric.inc
                        customerPhone:
                          type: object
                          properties:
                            number:
                              type: string
                              example: 555-555-5555
                            kind:
                              type: string
                              example: mobile
                        orderId:
                          type: string
                          example: 8426-1549-34543
                        shipTo:
                          type: array
                          items:
                            type: object
                            properties:
                              address:
                                type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        example: john
                                      middle:
                                        type: string
                                        example: p
                                      last:
                                        type: string
                                        example: smith
                                  phone:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        example: 555-555-5555
                                      kind:
                                        type: string
                                        example: mobile
                                  email:
                                    type: string
                                    example: johnsmith@google.com
                                  street1:
                                    type: string
                                    example: 10400 NE 4th St
                                  street2:
                                    type: string
                                    example: Suite 500
                                  city:
                                    type: string
                                    example: Bellevue
                                  state:
                                    type: string
                                    example: WA
                                  country:
                                    type: string
                                    example: USA
                                  zipCode:
                                    type: string
                                    example: 98004
                                  kind:
                                    type: string
                                    example: Ship to address
                              promosApplied:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                      example: test1
                              _id:
                                type: string
                                example: 6021f6b8bd6ce10008579e8f
                              shipToId:
                                type: number
                                example: 1000001
                              shipToType:
                                type: string
                                example: SHIP_TO_ADDRESS
                              price:
                                type: number
                                example: 24.87
                              currency:
                                type: string
                                example: USD
                              estimatedTax:
                                type: number
                                example: 10
                              committedTax:
                                type: number
                                example: 10
                              total:
                                type: number
                                example: 34.87
                              taxCode:
                                type: string
                                example: FR020000
                              shipmentCarrier:
                                type: string
                                example: Fedex
                              shipmentMethod:
                                type: string
                                example: Express
                              shipmentMethodId:
                                type: string
                                example: 10000001
                              promisedDeliveryDate:
                                type: string
                                example: "2019-12-14T00:00:00.000Z"
                              shipmentInstructions:
                                type: string
                                example: Leave at back door
                              shipmentStatus:
                                type: string
                                example: Delivered
                              id:
                                type: string
                                example: 6021f6b8bd6ce10008579e8f
                        items:
                          type: array
                          items:
                            type: object
                            properties:
                              group:
                                type: array
                                items:
                                  type: string
                                  example: 123
                              promosApplied:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                      example: test
                              _id:
                                type: string
                                example: 6021f6b8bd6ce10008579e90
                              lineItemId:
                                type: number
                                example: 1
                              itemId:
                                type: number
                                example: 1000000051098
                              sku:
                                type: string
                                example: 1538910
                              title:
                                type: string
                                example: abcDNA Luminous Cushion Lagoon
                              quantity:
                                type: number
                                example: 1
                              price:
                                type: number
                                example: 4.5
                              discount:
                                type: number
                                example: 1
                              currency:
                                type: string
                                example: USD
                              shipToId:
                                type: number
                                example: 1000001
                              estimatedTax:
                                type: number
                                example: 10.25
                              committedTax:
                                type: number
                                example: 10.25
                              total:
                                type: number
                                example: 4.54
                              taxCode:
                                type: string
                                example: FR020000
                              weight:
                                type: number
                                example: 10
                              weightUnit:
                                type: string
                                example: lb
                              id:
                                type: string
                                example: 6021f6b8bd6ce10008579e90
                        shipments:
                          type: array
                        payments:
                          type: array
                          items:
                            type: object
                            properties:
                              billToAddress:
                                type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        example: john
                                      middle:
                                        type: string
                                        example: p
                                      last:
                                        type: string
                                        example: smith
                                  phone:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        example: 555-555-5555
                                      kind:
                                        type: string
                                        example: mobile
                                  email:
                                    type: string
                                    example: johnsmith@google.com
                                  street1:
                                    type: string
                                    example: 10400 NE 4th St
                                  street2:
                                    type: string
                                    example: Suite 500
                                  city:
                                    type: string
                                    example: Bellevue
                                  state:
                                    type: string
                                    example: WA
                                  country:
                                    type: string
                                    example: USA
                                  zipCode:
                                    type: string
                                    example: 98004
                                  kind:
                                    type: string
                                    example: Ship to address
                              shipToId:
                                type: array
                                items:
                                  type: number
                                  example: 1000001
                              _id:
                                type: string
                                example: 6021f6b8bd6ce10008579e92
                              billToId:
                                type: number
                                example: 1000001
                              paymentIdentifier:
                                type: object
                                properties:
                                  cardIdentifier:
                                    type: number
                                    example: 4242
                              paymentMethod:
                                type: string
                                example: Visa
                              paymentToken:
                                type: object
                                properties:
                                  token:
                                    type: number
                                    example: 12345689
                              paymentKind:
                                type: string
                                example: Default payment
                              amount:
                                type: number
                                example: 533.33
                              currency:
                                type: string
                                example: USD
                              conversion:
                                type: number
                                example: 1
                              paymentStatus:
                                type: string
                                example: Pending
                              id:
                                type: string
                                example: 6021f6b8bd6ce10008579e92
                        revision:
                          type: number
                          example: 1
                        totalQuantity:
                          type: number
                          example: 2
                        statusDescriptions:
                          type: array
                          items:
                            type: object
                            properties:
                              _id:
                                type: string
                                example: 614b25234a2b4e0009870c49
                              status:
                                type: string
                                example: ORDER_CANCELLED
                              code:
                                type: string
                                example: 1001
                              description:
                                type: string
                                example: Merchant Out of Stock
                              date:
                                type: string
                                example: "2021-09-22T12:44:19.703Z"
                              id:
                                type: string
                                example: 614b25234a2b4e0009870c49
                        events:
                          type: array
                        __v:
                          type: number
                          example: 0
                        createdAt:
                          type: string
                          example: "2021-09-22T12:44:19.817Z"
                        updatedAt:
                          type: string
                          example: "2021-09-22T12:44:19.817Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "404":
          description: Order not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                    example: ORDER_NOT_FOUND
                  message:
                    description: The error message
                    type: string
                    example: Order ID Not Found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/user:
    get:
      tags:
        - Order
      summary: Get order by user
      description: Get order by user
      operationId: GetOrderByUser
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: Authorization
          required: true
          schema:
            type: string
          example: JWT
        - in: query
          name: Pagination parameters
          schema:
            type: object
            properties:
              offset:
                type: integer
                default: 0
                minimum: 0
              limit:
                type: integer
                minimum: 1
      responses:
        "200":
          description: Order
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: object
                    properties:
                      limit:
                        type: number
                        example: 2
                      offset:
                        type: number
                        example: 0
                      count:
                        type: number
                        example: 19
                      orderTotalSum:
                        type: number
                        example: 31719.46
                      orderAverage:
                        type: number
                        example: 1669.45
                      totalQuantitySum:
                        type: number
                        example: 132
                      statusCounts:
                        type: object
                        properties:
                          ORDER_CREATED:
                            type: number
                            example: 13
                          ORDER_CONFIRMED:
                            type: number
                            example: 0
                          ORDER_CANCELLED:
                            type: number
                            example: 1
                          ORDER_PARTIALLY_SHIPPED:
                            type: number
                            example: 0
                          ORDER_SHIPPED:
                            type: number
                            example: 2
                          ORDER_PARTIALLY_DELIVERED:
                            type: number
                            example: 0
                          ORDER_DELIVERED:
                            type: number
                            example: 0
                          ORDER_RETURNED:
                            type: number
                            example: 0
                          ORDER_PARTIALLY_RETURNED:
                            type: number
                            example: 0
                          ORDER_PAYMENT_AUTHORIZED:
                            type: number
                            example: 2
                          ORDER_PAYMENT_INVALID:
                            type: number
                            example: 0
                          ORDER_FULFILLED:
                            type: number
                            example: 0
                          ORDER_PARTIALLY_FULFILLED:
                            type: number
                            example: 1
                  orders:
                    type: array
                    items:
                      type: object
                      properties:
                        _id:
                          type: string
                          example: 60ca5d3dc0fac00008e64c91
                        tags:
                          type: array
                        cartId:
                          type: string
                          example: 60ca5b6ae3b5d900081ae44a
                        customerUserId:
                          type: string
                          example: 60c128045a38bf0009ad6502
                        attributes:
                          type: array
                        customerEmail:
                          type: string
                          example: mike@fabric.inc
                        orderCurrency:
                          type: string
                          example: USD
                        orderTotal:
                          type: number
                          example: 90.5
                        taxTotal:
                          type: number
                          example: 0.5
                        channel:
                          type: number
                          example: 12
                        status:
                          type: string
                          example: ORDER_CREATED
                        statusLog:
                          type: string
                          example: Order has been created
                        orderReference:
                          type: string
                          example: 1635-8532-92190
                        orderId:
                          type: string
                          example: 8677-7648-19307
                        shipTo:
                          type: array
                          items:
                            type: object
                            properties:
                              pickupPerson:
                                type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        example: John
                                      last:
                                        type: string
                                        example: Doe
                                  phone:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        example: 8087769338
                                      kind:
                                        type: string
                                        example: Mobile
                                  email:
                                    type: string
                                    example: us@fabric.inc
                              altPickupPerson:
                                type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        example: first
                                      last:
                                        type: string
                                        example: last
                                  phone:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        example: 8087769338
                                      kind:
                                        type: string
                                        example: Mobile
                                  email:
                                    type: string
                                    example: first@fabric.inc
                              promosApplied:
                                type: array
                              _id:
                                type: string
                                example: 60ca5c1c9f490e0008020b28
                              shipToType:
                                type: string
                                example: BOPIS
                              taxCode:
                                type: string
                                example: FR1000
                              shipToId:
                                type: number
                                example: 390
                              price:
                                type: number
                                example: 0
                              currency:
                                type: string
                                example: null
                              shipmentMethodId:
                                type: string
                                example: null
                              estimatedTax:
                                type: number
                                example: 0.5
                              shipmentCarrier:
                                type: string
                                example: null
                              shipmentMethod:
                                type: string
                                example: null
                              total:
                                type: number
                                example: 0.5
                              id:
                                type: string
                                example: 60ca5c1c9f490e0008020b28
                        items:
                          type: array
                          items:
                            type: object
                            properties:
                              group:
                                type: array
                                items:
                                  type: string
                                  example: 1.2312312312312322e+23
                              promosApplied:
                                type: array
                              _id:
                                type: string
                                example: 60ca5b6ae3b5d900081ae44b
                              price:
                                type: number
                                example: 90
                              weightUnit:
                                type: string
                                example: lb
                              isPickup:
                                type: boolean
                              itemId:
                                type: number
                                example: 89
                              quantity:
                                type: number
                                example: 1
                              priceListId:
                                type: number
                                example: 100000
                              sku:
                                type: string
                                example: GardenWoodSofa
                              taxCode:
                                type: string
                                example: tytuy
                              title:
                                type: string
                                example: Garden Wood Sofa
                              weight:
                                type: number
                                example: 2345
                              lineItemId:
                                type: number
                                example: 1
                              attributeTotalPrice:
                                type: number
                                example: 0
                              attributes:
                                type: array
                              warehouseId:
                                type: string
                                example: 60bf9615e66d120008b37e5e
                              currency:
                                type: string
                                example: USD
                              shipToId:
                                type: number
                                example: 390
                              discount:
                                type: number
                                example: 0
                              estimatedTax:
                                type: number
                                example: 0
                              total:
                                type: number
                                example: 90
                              reservedLocation:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    _id:
                                      type: string
                                      example: 60ca5d3e06b91d0008427435
                                    warehouseId:
                                      type: string
                                      example: 60bf9615e66d120008b37e5e
                                    quantity:
                                      type: number
                                      example: 1
                                    id:
                                      type: string
                                      example: 60ca5d3e06b91d0008427435
                              id:
                                type: string
                                example: 60ca5b6ae3b5d900081ae44b
                        shipments:
                          type: array
                        payments:
                          type: array
                          items:
                            type: object
                            properties:
                              billToAddress:
                                type: object
                                properties:
                                  name:
                                    type: object
                                    properties:
                                      first:
                                        type: string
                                        example: John
                                      last:
                                        type: string
                                        example: Smith
                                  phone:
                                    type: object
                                    properties:
                                      number:
                                        type: string
                                        example: 7780811973
                                      kind:
                                        type: string
                                        example: mobile
                                  email:
                                    type: string
                                    example: johnsmith@gmail.com
                                  street1:
                                    type: string
                                    example: 600 Congress Ave
                                  street2:
                                    type: string
                                    example: suite 219
                                  city:
                                    type: string
                                    example: Austin
                                  state:
                                    type: string
                                    example: Tx
                                  country:
                                    type: string
                                    example: US
                                  zipCode:
                                    type: string
                                    example: 10033
                              shipToId:
                                type: array
                                items:
                                  type: number
                                  example: 390
                              _id:
                                type: string
                                example: 60ca5d3dc0fac00008e64c94
                              paymentStatus:
                                type: string
                                example: succeeded
                              amount:
                                type: number
                                example: 90.5
                              currency:
                                type: string
                                example: USD
                              paymentIdentifier:
                                type: object
                                properties:
                                  cardIdentifier:
                                    type: string
                                    example: 4242
                              paymentMethod:
                                type: string
                                example: visa
                              paymentKind:
                                type: string
                                example: CARD_STRIPE
                              conversion:
                                type: number
                                example: 1
                              paymentToken:
                                type: object
                                properties:
                                  token:
                                    type: string
                                    example: pi_1J35DCJxr7zyIFb9axtM3OKv
                                  type:
                                    type: string
                                    example: CARD_STRIPE
                              id:
                                type: string
                                example: 60ca5d3dc0fac00008e64c94
                        revision:
                          type: number
                          example: 0
                        totalQuantity:
                          type: number
                          example: 1
                        statusDescriptions:
                          type: array
                        events:
                          type: array
                        pickups:
                          type: array
                        createdAt:
                          type: string
                          example: "2021-06-16T20:21:17.038Z"
                        updatedAt:
                          type: string
                          example: "2021-06-16T20:21:18.355Z"
                        __v:
                          type: number
                          example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          description: Provided userAuthToken is incorrect/expired
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    description: The error message
                    type: string
                    example: >-
                      User is not authorized to access this resource with an
                      explicit deny
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/user/guest:
    get:
      tags:
        - Order
      summary: Get order by email
      description: Get order by email
      operationId: GetOrderByEmail
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
        - in: query
          name: orderEmail
          schema:
            type: string
            format: email
            example: johnsmith@gmail.com
          required: true
          description: User email that we want to get orders for.
      responses:
        "200":
          description: Order
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    _id:
                      type: string
                      example: 60271eb8f69adb00083a80ac
                    tags:
                      type: array
                    cartId:
                      type: string
                      example: 602710f862e75a0009ed25b7
                    attributes:
                      type: array
                      items:
                        type: object
                        properties:
                          price:
                            type: number
                            example: 4
                          _id:
                            type: string
                            example: 60271baf8e1368000914bd0e
                          attributeId:
                            type: string
                            example: 60270ac95b4c090007cafde3
                          value:
                            type: string
                            example: true
                          name:
                            type: string
                            example: Small Package Giftwrap
                          type:
                            type: string
                            example: bool
                          id:
                            type: string
                            example: 60271baf8e1368000914bd0e
                    customerEmail:
                      type: string
                      example: abid@fabric.inc
                    orderCurrency:
                      type: string
                      example: USD
                    orderTotal:
                      type: number
                      example: 8433
                    taxTotal:
                      type: number
                      example: 22
                    channel:
                      type: number
                      example: 12
                    status:
                      type: string
                      example: ORDER_CREATED
                    statusLog:
                      type: string
                      example: Order has been created
                    orderReference:
                      type: string
                      example: 6015-4453-86622
                    orderId:
                      type: string
                      example: 1461-8514-32344
                    shipTo:
                      type: array
                      items:
                        type: object
                        properties:
                          address:
                            type: object
                            properties:
                              name:
                                type: object
                                properties:
                                  first:
                                    type: string
                                    example: Mike
                                  middle:
                                    type: string
                                    example: p
                                  last:
                                    type: string
                                    example: holard
                              phone:
                                type: object
                                properties:
                                  number:
                                    type: string
                                    example: 998-992-9404
                                  kind:
                                    type: string
                                    example: Mobile
                              street1:
                                type: string
                                example: 3520 Crowley Drive
                              city:
                                type: string
                                example: Vancouver
                              state:
                                type: string
                                example: BC
                              country:
                                type: string
                                example: Canada
                              zipCode:
                                type: string
                                example: 98004
                              kind:
                                type: string
                                example: shipping
                              email:
                                type: string
                                example: mike@fabric.inc
                          promosApplied:
                            type: array
                          _id:
                            type: string
                            example: 60271c6d8d9f7a000852a107
                          shipToType:
                            type: string
                            example: SHIP_TO_ADDRESS
                          taxCode:
                            type: string
                            example: FR1000
                          shipToId:
                            type: number
                            example: 49
                          price:
                            type: number
                            example: 5
                          currency:
                            type: string
                            example: USD
                          shipmentMethodId:
                            type: string
                            example: 10002
                          estimatedTax:
                            type: number
                            example: 2
                          shipmentCarrier:
                            type: string
                            example: Fedex
                          shipmentMethod:
                            type: string
                            example: Next Day
                          total:
                            type: number
                            example: 7
                          id:
                            type: string
                            example: 60271c6d8d9f7a000852a107
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          group:
                            type: array
                            items:
                              type: string
                              example: 1.2312312312312322e+23
                          promosApplied:
                            type: array
                            items:
                              type: object
                              properties:
                                unit:
                                  type: string
                                  example: 10%OFF
                                value:
                                  type: number
                                  example: 16
                                "ON":
                                  type: object
                                  properties:
                                    kind:
                                      type: string
                                      example: SKU
                                    value:
                                      type: string
                                      format: nullable
                                id:
                                  type: string
                                  example: 6023f20cb609010008c06af8
                                promoId:
                                  type: string
                                  example: 6023f20cb609010008c06af6
                          _id:
                            type: string
                            example: 602710f862e75a0009ed25b8
                          price:
                            type: number
                            example: 8400
                          weightUnit:
                            type: string
                            example: kg
                          itemId:
                            type: number
                            example: 1000000050
                          quantity:
                            type: number
                            example: 1
                          priceListId:
                            type: number
                            example: 100000
                          sku:
                            type: string
                            example: WATCH123456
                          taxCode:
                            type: string
                            example: PAC12345
                          title:
                            type: string
                            example: Watch
                          weight:
                            type: number
                            example: 2
                          lineItemId:
                            type: number
                            example: 1
                          attributeTotalPrice:
                            type: number
                            example: 2
                          attributes:
                            type: array
                            items:
                              type: object
                              properties:
                                price:
                                  type: number
                                  example: 2
                                _id:
                                  type: string
                                  example: 60271b3cfb9109000886b4a9
                                attributeId:
                                  type: string
                                  example: 602714e50e8f780007e66d97
                                value:
                                  type: string
                                  example: Happy for you
                                name:
                                  type: string
                                  example: Item Level free Text
                                type:
                                  type: string
                                  example: string
                                id:
                                  type: string
                                  example: 60271b3cfb9109000886b4a9
                          currency:
                            type: string
                            example: USD
                          shipToId:
                            type: number
                            example: 49
                          discount:
                            type: number
                            example: 1600
                          estimatedTax:
                            type: number
                            example: 20
                          total:
                            type: number
                            example: 8420
                          id:
                            type: string
                            example: 602710f862e75a0009ed25b8
                    shipments:
                      type: array
                    payments:
                      type: array
                      items:
                        type: object
                        properties:
                          billToAddress:
                            type: object
                            properties:
                              name:
                                type: object
                                properties:
                                  first:
                                    type: string
                                    example: Mike
                                  last:
                                    type: string
                                    example: holard
                              phone:
                                type: object
                                properties:
                                  number:
                                    type: string
                                    example: 7780811973
                                  kind:
                                    type: string
                                    example: Mobile
                              email:
                                type: string
                                example: mike@fabric.inc
                              street1:
                                type: string
                                example: 345 67 Main Street
                              street2:
                                type: string
                                example: tex
                              city:
                                type: string
                                example: AUSTIN
                              state:
                                type: string
                                example: TX
                              country:
                                type: string
                                example: US
                              zipCode:
                                type: string
                                example: 1003
                          shipToId:
                            type: array
                            items:
                              type: number
                              example: 49
                          _id:
                            type: string
                            example: 60271eb8f69adb00083a80b1
                          paymentIdentifier:
                            type: object
                            properties:
                              cardIdentifier:
                                type: string
                                example: 1111
                          paymentMethod:
                            type: string
                            example: Visa
                          paymentKind:
                            type: string
                            example: Fabric User
                          amount:
                            type: number
                            example: 8433
                          currency:
                            type: string
                            example: USD
                          conversion:
                            type: number
                            example: 1
                          paymentToken:
                            type: object
                            properties:
                              token:
                                type: string
                                example: 40059083049
                              type:
                                type: string
                                example: CARD
                          id:
                            type: string
                            example: 60271eb8f69adb00083a80b1
                    revision:
                      type: number
                      example: 0
                    totalQuantity:
                      type: number
                      example: 1
                    statusDescriptions:
                      type: array
                    events:
                      type: array
                    createdAt:
                      type: string
                      example: "2021-02-13T00:35:04.240Z"
                    updatedAt:
                      type: string
                      example: "2021-02-13T00:35:04.240Z"
                    __v:
                      type: number
                      example: 0
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/user/cancel:
    post:
      tags:
        - Order
      summary: Cancel order by user
      description: Cancel order by user
      operationId: cancelOrderByUser
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: Authorization
          required: true
          schema:
            type: string
          example: JWT
        - in: query
          name: orderId
          required: true
          schema:
            type: string
            minLength: 15
            maxLength: 15
            example: 2947-5955-82579
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cancellationCode
              properties:
                cancellationCode:
                  type: string
                  example: "2001"
                cancellationMessage:
                  type: string
                  example: Customer not interested
      responses:
        "200":
          description: Successfully canceled order
          content:
            application/json:
              schema:
                type: object
                properties:
                  orderId:
                    type: string
                    example: 8568-9704-74294
                  status:
                    type: string
                    example: Successfully cancelled order
        "400":
          description: Order cancel invalid status
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                    example: ORDER_CANCELLATION_INVALID
                  message:
                    description: The error message
                    type: string
                    example: >-
                      Order status must be ORDER_PAYMENT_AUTHORIZED or
                      ORDER_CREATED
        "404":
          description: Not Found error while canceling order
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                Order not found:
                  value:
                    code: ORDER_NOT_FOUND
                    message: Order ID Not Found
                Order cancellation code not found:
                  value:
                    code: ORDER_CANCELLATION_CODE_NOT_FOUND
                    message: Cancellation Code Not Found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/orders/user/return:
    post:
      tags:
        - Order
      summary: Return order by user
      description: Return order by user
      operationId: returnOrderByUser
      parameters:
        - $ref: "#/components/parameters/xSiteContent"
        - in: header
          name: Authorization
          required: true
          schema:
            type: string
          example: JWT
        - in: query
          name: orderId
          required: true
          schema:
            type: string
            minLength: 15
            maxLength: 15
            example: 2947-5955-82579
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - returnCode
              properties:
                returnCode:
                  type: string
                  example: "2001"
                returnMessage:
                  type: string
                  example: Customer not interested
      responses:
        "200":
          description: Successfully canceled order
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      orderId:
                        type: string
                        example: 1626-4972-66351
                      status:
                        type: string
                        example: Successfully Returned order
                  - type: object
                    properties:
                      order:
                        allOf:
                          - type: object
                            properties:
                              tags:
                                type: array
                              channel:
                                type: integer
                                example: 12
                              orderTotal:
                                type: number
                                example: 124.33
                              taxTotal:
                                type: number
                                example: 5.23
                              orderCurrency:
                                type: string
                                example: USD
                              status:
                                type: string
                                example: ORDER_RETURNED
                              statusLog:
                                type: string
                                example: Order has been Returned
                              customerUserId:
                                type: string
                                example: 5e3598e3007c5e00080d2bb8
                              customerAccountId:
                                type: string
                                example: 5e3598e3007c5e00080d2bb8
                              customerPhone:
                                type: object
                                properties:
                                  number:
                                    type: string
                                    example: 555-555-5555
                                  kind:
                                    type: string
                                    example: mobile
                              orderId:
                                type: string
                                example: 1626-4972-66351
                              revision:
                                type: integer
                                example: 2
                              totalQuantity:
                                type: number
                                example: 10
                              statusDescriptions:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    _id:
                                      type: string
                                      example: 614b0e0c6c4e26000906b513
                                    status:
                                      type: string
                                      example: ORDER_RETURNED
                                    code:
                                      type: string
                                      example: "2001"
                                    description:
                                      type: string
                                      example: >-
                                        Customer is no longer interested in
                                        product
                                    date:
                                      type: string
                                      example: "2021-09-22T11:05:48.210Z"
                                    id:
                                      type: string
                                      example: 614b0e0c6c4e26000906b513
                              events:
                                type: array
                              attributes:
                                type: array
                              __v:
                                type: number
                                example: 0
                          - type: object
                            properties:
                              _id:
                                type: string
                                example: 5fee9d59f2f08a1b3cbdea08
                              createdAt:
                                type: string
                                example: "2020-12-31T02:09:53.914Z"
                              updatedAt:
                                type: string
                                example: "2020-12-31T02:09:53.914Z"
                          - type: object
                            properties:
                              shipTo:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    address:
                                      type: object
                                      properties:
                                        name:
                                          type: object
                                          properties:
                                            first:
                                              type: string
                                              example: Mark
                                            middle:
                                              type: string
                                              example: p
                                            last:
                                              type: string
                                              example: styler
                                        phone:
                                          type: object
                                          properties:
                                            number:
                                              type: string
                                              example: 555-555-5555
                                            kind:
                                              type: string
                                              example: mobile
                                        isValidated:
                                          type: boolean
                                          example: false
                                        email:
                                          type: string
                                          example: mark@google.com
                                        street1:
                                          type: string
                                          example: 10400 NE 4th St
                                        street2:
                                          type: string
                                          example: Suite 500
                                        city:
                                          type: string
                                          example: Bellevue
                                        state:
                                          type: string
                                          example: WA
                                        country:
                                          type: string
                                          example: USA
                                        zipCode:
                                          type: string
                                          example: "98004"
                                        kind:
                                          type: string
                                          example: Ship to address
                                    delivery:
                                      type: object
                                      properties:
                                        actual:
                                          type: string
                                    shipping:
                                      type: object
                                      properties:
                                        actual:
                                          type: string
                                    promosApplied:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                            example: test1
                                    _id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4af
                                    shipToId:
                                      type: number
                                      example: 1000001
                                    shipToType:
                                      type: string
                                      example: SHIP_TO_ADDRESS
                                    price:
                                      type: number
                                      example: 24.87
                                    currency:
                                      type: string
                                      example: USD
                                    estimatedTax:
                                      type: number
                                      example: 10
                                    committedTax:
                                      type: number
                                      example: 10
                                    total:
                                      type: number
                                      example: 34.87
                                    taxCode:
                                      type: string
                                      example: FR020000
                                    shipmentCarrier:
                                      type: string
                                      example: Fedex
                                    shipmentMethod:
                                      type: string
                                      example: Express
                                    shipmentMethodId:
                                      type: string
                                      example: "10000001"
                                    promisedDeliveryDate:
                                      type: string
                                      example: "2021-02-14T00:00:00.000Z"
                                    shipmentInstructions:
                                      type: string
                                      example: Leave at back door
                                    shipmentStatus:
                                      type: string
                                      example: Delivered
                                    readyForPickups:
                                      type: array
                                    id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4af
                          - type: object
                            properties:
                              items:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    group:
                                      type: array
                                      items:
                                        type: string
                                        example: Group1
                                    promosApplied:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                            example: test
                                    _id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4b0
                                    lineItemId:
                                      type: number
                                      example: 1
                                    itemId:
                                      type: number
                                      example: 1000000663
                                    sku:
                                      type: string
                                      example: "1538910"
                                    title:
                                      type: string
                                      example: Luminous Cushion Lagoon
                                    quantity:
                                      type: number
                                      example: 10
                                    price:
                                      type: number
                                      example: 4.5
                                    discount:
                                      type: number
                                      example: 1
                                    currency:
                                      type: string
                                      example: USD
                                    shipToId:
                                      type: number
                                      example: 1000001
                                    estimatedTax:
                                      type: number
                                      example: 10.25
                                    total:
                                      type: number
                                      example: 4.54
                                    taxCode:
                                      type: string
                                      example: FR020000
                                    weight:
                                      type: number
                                      example: 10
                                    weightUnit:
                                      type: string
                                      example: lb
                                    attributes:
                                      type: array
                                    reservedLocation:
                                      type: array
                                    id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4b0
                          - type: object
                            properties:
                              shipments:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    _id:
                                      type: string
                                      example: 602c1607128f5e00078ad8ed
                                    shippedDate:
                                      type: string
                                      example: "2021-02-16T18:59:11.480Z"
                                    shipToId:
                                      type: number
                                      example: 1000001
                                    shipmentCarrier:
                                      type: string
                                      example: USPS
                                    shipmentCarrierUrl:
                                      type: string
                                      example: >-
                                        https://tools.usps.com/go/TrackConfirmAction?tRef=fullpage&tLc=2&text28777=&tLabels=65765798989
                                    trackingNumber:
                                      type: string
                                      example: "65765798989"
                                    lineItems:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          _id:
                                            type: string
                                            example: 602c1607128f5e00078ad8ee
                                          lineItemId:
                                            type: number
                                            example: 1
                                          quantity:
                                            type: number
                                            example: 10
                                          id:
                                            type: string
                                            example: 602c1607128f5e00078ad8ee
                                    shipmentStatus:
                                      type: string
                                      example: ORDER_SHIPPED
                                    id:
                                      type: string
                                      example: 602c1607128f5e00078ad8ed
                          - type: object
                            properties:
                              payments:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    billToAddress:
                                      type: object
                                      properties:
                                        name:
                                          type: object
                                          properties:
                                            first:
                                              type: string
                                              example: Marl
                                            middle:
                                              type: string
                                              example: p
                                            last:
                                              type: string
                                              example: styler
                                        phone:
                                          type: object
                                          properties:
                                            number:
                                              type: string
                                              example: 555-555-5555
                                            kind:
                                              type: string
                                              example: mobile
                                        isValidated:
                                          type: boolean
                                          example: false
                                        email:
                                          type: string
                                          example: mark@google.com
                                        street1:
                                          type: string
                                          example: 10400 NE 4th St
                                        street2:
                                          type: string
                                          example: Suite 500
                                        city:
                                          type: string
                                          example: Bellevue
                                        state:
                                          type: string
                                          example: WA
                                        country:
                                          type: string
                                          example: USA
                                        zipCode:
                                          type: string
                                          example: "98004"
                                        kind:
                                          type: string
                                          example: Ship to address
                                    shipToId:
                                      type: array
                                      items:
                                        type: number
                                        example: 1000001
                                    _id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4b1
                                    billToId:
                                      type: number
                                      example: 1000001
                                    paymentIdentifier:
                                      type: object
                                      properties:
                                        cardIdentifier:
                                          type: number
                                          example: 4242
                                    paymentMethod:
                                      type: string
                                      example: Visa
                                    paymentToken:
                                      type: object
                                      properties:
                                        token:
                                          type: number
                                          example: 123456789
                                    paymentKind:
                                      type: string
                                      example: Default payment
                                    amount:
                                      type: number
                                      example: 533.33
                                    currency:
                                      type: string
                                      example: USD
                                    conversion:
                                      type: number
                                      example: 1
                                    paymentStatus:
                                      type: string
                                      example: Pending
                                    id:
                                      type: string
                                      example: 602c1511fcc5e900078ba4b1
        "400":
          description: Order return invalid status
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                    example: ORDER_RETURN_INVALID
                  message:
                    description: The error message
                    type: string
                    example: >-
                      Order status must be ORDER_SHIPPED or ORDER_FULFILLED or
                      ORDER_DELIVERD
        "404":
          description: Not Found error while canceling order
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                Order not found:
                  value:
                    code: ORDER_NOT_FOUND
                    message: Order ID Not Found
                Return Code not found:
                  value:
                    code: ORDER_RETURN_CODE_NOT_FOUND
                    message: Return Code Not Found
        "500":
          $ref: "#/components/responses/GenericServerError"
  /api-order/subscriptions/orders:
    post:
      tags:
        - Order
      summary: Create subscriptions orders
      description: Create subscriptions orders
      operationId: createSubscriptionsOrders
      parameters:
        - in: header
          name: x-api-key
          schema:
            type: string
            example: 0LybWR49k95cCwYh3cu0waCYoh4H2Eux2J52wn4k
        - $ref: "#/components/parameters/xSiteContent"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cartId
                - channel
                - orderTotal
                - taxTotal
                - orderCurrency
                - status
                - shipTo
              anyOf:
                - required:
                    - customerUserId
                - required:
                    - customerEmail
                - required:
                    - customerPhone
              properties:
                cartId:
                  type: string
                  minLength: 24
                  maxLength: 24
                  example: 5e4876e10cfe1d8902005d33
                orderReference:
                  type: string
                channel:
                  type: number
                  example: 11
                orderTotal:
                  type: number
                  example: 125.99
                  minimum: 0
                taxTotal:
                  type: number
                  example: 5.23
                  minimum: 0
                orderCurrency:
                  type: string
                  example: USD
                  minLength: 3
                  maxLength: 3
                status:
                  type: string
                  enum:
                    - ORDER_CREATED
                    - ORDER_CONFIRMED
                    - ORDER_CANCELLED
                    - ORDER_PARTIALLY_SHIPPED
                    - ORDER_SHIPPED
                    - ORDER_PARTIALLY_DELIVERED
                    - ORDER_DELIVERED
                    - ORDER_RETURNED
                    - ORDER_PARTIALLY_RETURNED
                    - ORDER_PAYMENT_AUTHORIZED
                    - ORDER_PAYMENT_INVALID
                    - ORDER_FULFILLED
                    - ORDER_PARTIALLY_FULFILLED
                    - ORDER_REFUNDED
                  example: ORDER_CREATED
                  minLength: 5
                statusLog:
                  type: string
                  example: Order has been cancelled
                customerUserId:
                  type: string
                  minLength: 24
                  maxLength: 24
                  example: 5e3598e3007c5e00080d2bb8
                customerAccountId:
                  type: string
                  example: 5e3598e3007c5e00080d2bb8
                  minLength: 3
                customerEmail:
                  type: string
                  format: email
                  minLength: 3
                customerPhone:
                  type: object
                  required:
                    - number
                  properties:
                    number:
                      type: string
                      minLength: 3
                    kind:
                      type: string
                notes:
                  type: string
                  minLength: 1
                tags:
                  type: array
                  items:
                    type: string
                  example:
                    - tag100
                    - tag101
                events:
                  type: array
                  items:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - ORDER_CREATED
                          - ORDER_CONFIRMED
                          - ORDER_CANCELLED
                          - ORDER_PARTIALLY_SHIPPED
                          - ORDER_SHIPPED
                          - ORDER_PARTIALLY_DELIVERED
                          - ORDER_DELIVERED
                          - ORDER_RETURNED
                          - ORDER_PARTIALLY_RETURNED
                          - ORDER_PAYMENT_AUTHORIZED
                          - ORDER_PAYMENT_INVALID
                          - ORDER_FULFILLED
                          - ORDER_PARTIALLY_FULFILLED
                          - ORDER_REFUNDED
                        example: ORDER_CREATED
                        minLength: 5
                      data:
                        type: object
                shipTo:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    required:
                      - shipToId
                      - shipToType
                    properties:
                      shipToId:
                        type: number
                        example: 1000001
                      shipToType:
                        type: string
                        enum:
                          - BOPIS
                          - SHIP_TO_STORE
                          - SHIP_TO_ADDRESS
                          - STORE_PICKUP
                        example: SHIP_TO_ADDRESS
                      price:
                        type: number
                        example: 24.87
                      currency:
                        type: string
                        example: USD
                      estimatedTax:
                        type: number
                        example: 10.25
                      committedTax:
                        type: number
                        example: 10.25
                      promosApplied:
                        type: array
                        items:
                          type: object
                      total:
                        type: number
                        minimum: 0
                      taxCode:
                        type: string
                        minLength: 2
                        example: FR020000
                      shipmentCarrier:
                        type: string
                        example: Fedex
                      shipmentMethod:
                        type: string
                        example: Express
                      shipmentMethodId:
                        type: string
                        example: "10000001"
                      promisedDeliveryDate:
                        type: string
                        example: "2019-12-14"
                      shipmentInstructions:
                        type: string
                        example: Leave at back door
                      shipmentStatus:
                        type: string
                        example: Delivered
                      address:
                        type: object
                        required:
                          - name
                          - email
                          - street1
                          - city
                          - state
                          - country
                          - zipCode
                        properties:
                          name:
                            type: object
                            required:
                              - first
                              - last
                            properties:
                              first:
                                type: string
                                minLength: 2
                                maxLength: 50
                                example: John
                              middle:
                                type: string
                                minLength: 1
                                maxLength: 50
                                example: Paul
                              last:
                                type: string
                                minLength: 2
                                maxLength: 50
                                example: Smith
                          email:
                            type: string
                            format: email
                            example: johnsmith@google.com
                            minLength: 3
                          phone:
                            type: object
                            required:
                              - number
                            properties:
                              number:
                                type: string
                                minLength: 3
                              kind:
                                type: string
                          street1:
                            type: string
                            example: 10400 NE 4th St
                          street2:
                            type: string
                            example: Suite 500
                          city:
                            type: string
                            example: Bellevue
                            minLength: 2
                          state:
                            type: string
                            example: WA
                            minLength: 2
                          country:
                            type: string
                            example: USA
                            minLength: 2
                          zipCode:
                            type: string
                            example: "98004"
                            minLength: 2
                          kind:
                            type: string
                            example: Ship to address
      responses:
        "200":
          description: Created subscription order
          content:
            application/json:
              schema:
                type: object
                properties:
                  tags:
                    type: array
                    items:
                      type: string
                      example: Monthly Penut Bar
                  _id:
                    type: string
                    example: 60b5b8b08766410008dd72be
                  channel:
                    type: number
                    example: 13
                  orderTotal:
                    type: number
                    example: 125.33
                  taxTotal:
                    type: number
                    example: 5.23
                  orderCurrency:
                    type: string
                    example: USD
                  status:
                    type: string
                    example: ORDER_CREATED
                  statusLog:
                    type: string
                    example: Order has been created
                  customerUserId:
                    type: string
                    example: 5e3598e3007c5e00080d2bb8
                  customerAccountId:
                    type: string
                    example: 5e3598e3007c5e00080d2bb8
                  customerEmail:
                    type: string
                    example: ino@fabric.inc
                  customerPhone:
                    type: object
                    properties:
                      number:
                        type: string
                        example: 555-555-5555
                      kind:
                        type: string
                        example: mobile
                  orderId:
                    type: string
                    example: 2468-1668-79485
                  shipTo:
                    type: array
                    items:
                      type: object
                      properties:
                        address:
                          type: object
                          properties:
                            name:
                              type: object
                              properties:
                                first:
                                  type: string
                                  example: Mark
                                middle:
                                  type: string
                                  example: p
                                last:
                                  type: string
                                  example: styler
                            phone:
                              type: object
                              properties:
                                number:
                                  type: string
                                  example: 555-555-5555
                                kind:
                                  type: string
                                  example: mobile
                            email:
                              type: string
                              example: mark@google.com
                            street1:
                              type: string
                              example: 10400 NE 4th St
                            street2:
                              type: string
                              example: Suite 500
                            city:
                              type: string
                              example: Bellevue
                            state:
                              type: string
                              example: WA
                            country:
                              type: string
                              example: USA
                            zipCode:
                              type: string
                              example: 98004
                            kind:
                              type: string
                              example: Ship to address
                        promosApplied:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                example: test1
                        _id:
                          type: string
                          example: 60b5b8b08766410008dd72bf
                        shipToId:
                          type: number
                          example: 1000001
                        shipToType:
                          type: string
                          example: SHIP_TO_ADDRESS
                        price:
                          type: number
                          example: 24.87
                        currency:
                          type: string
                          example: USD
                        estimatedTax:
                          type: number
                          example: 10
                        committedTax:
                          type: number
                          example: 10
                        total:
                          type: number
                          example: 34.87
                        taxCode:
                          type: string
                          example: FR020000
                        shipmentCarrier:
                          type: string
                          example: Fedex
                        shipmentMethod:
                          type: string
                          example: Express
                        shipmentMethodId:
                          type: string
                          example: 10000001
                        promisedDeliveryDate:
                          type: string
                          example: "2021-02-14T00:00:00.000Z"
                        shipmentInstructions:
                          type: string
                          example: Leave at back door
                        shipmentStatus:
                          type: string
                          example: Delivered
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        group:
                          type: array
                          items:
                            type: string
                            example: Group1
                        promosApplied:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                example: test
                        _id:
                          type: string
                          example: 60b5b8b08766410008dd72c0
                        lineItemId:
                          type: number
                          example: 1
                        itemId:
                          type: number
                          example: 1000000051
                        priceListId:
                          type: number
                          example: 100003
                        sku:
                          type: string
                          example: 1538910
                        title:
                          type: string
                          example: Luminous Cushion Lagoon
                        quantity:
                          type: number
                          example: 10
                        price:
                          type: number
                          example: 4.5
                        discount:
                          type: number
                          example: 1
                        currency:
                          type: string
                          example: USD
                        shipToId:
                          type: number
                          example: 1000001
                        estimatedTax:
                          type: number
                          example: 10.25
                        committedTax:
                          type: number
                          example: 10.25
                        total:
                          type: number
                          example: 4.54
                        taxCode:
                          type: string
                          example: FR020000
                        weight:
                          type: number
                          example: 10
                        weightUnit:
                          type: string
                          example: lb
                        reservedLocation:
                          type: array
                        attributes:
                          type: array
                  shipments:
                    type: array
                  payments:
                    type: array
                    items:
                      type: object
                      properties:
                        billToAddress:
                          type: object
                          properties:
                            name:
                              type: object
                              properties:
                                first:
                                  type: string
                                  example: Marl
                                middle:
                                  type: string
                                  example: p
                                last:
                                  type: string
                                  example: styler
                            phone:
                              type: object
                              properties:
                                number:
                                  type: string
                                  example: 555-555-5555
                                kind:
                                  type: string
                                  example: mobile
                            email:
                              type: string
                              example: mark@google.com
                            street1:
                              type: string
                              example: 10400 NE 4th St
                            street2:
                              type: string
                              example: Suite 500
                            city:
                              type: string
                              example: Bellevue
                            state:
                              type: string
                              example: WA
                            country:
                              type: string
                              example: USA
                            zipCode:
                              type: string
                              example: 98004
                            kind:
                              type: string
                              example: Ship to address
                        shipToId:
                          type: array
                          items:
                            type: number
                            example: 1000001
                        _id:
                          type: string
                          example: 60b5b8b08766410008dd72c1
                        billToId:
                          type: number
                          example: 1000001
                        paymentIdentifier:
                          type: object
                          properties:
                            cardIdentifier:
                              type: number
                              example: 4242
                        paymentMethod:
                          type: string
                          example: Visa
                        paymentToken:
                          type: object
                          properties:
                            token:
                              type: number
                              example: 12345689
                        paymentKind:
                          type: string
                          example: Default payment
                        amount:
                          type: number
                          example: 533.33
                        currency:
                          type: string
                          example: USD
                        conversion:
                          type: number
                          example: 1
                        paymentStatus:
                          type: string
                          example: Pending
                  revision:
                    type: number
                    example: 0
                  totalQuantity:
                    type: number
                    example: 10
                  statusDescriptions:
                    type: array
                  events:
                    type: array
                  attributes:
                    type: array
                  createdAt:
                    type: string
                    example: "2021-06-01T04:33:52.118Z"
                  updatedAt:
                    type: string
                    example: "2021-06-01T04:33:52.118Z"
        "400":
          $ref: "#/components/responses/GenericClientError"
        "403":
          $ref: "#/components/responses/MissingXApiKeyHeader"
        "404":
          description: Not Found error while creating subscriptions orders
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: The error code
                    type: string
                  message:
                    description: The error message
                    type: string
              examples:
                ? Supscription order create failure when mentioned pricelist is
                  not mapped against ITEM
                : value:
                    code: PRICE_LIST_ITEM_ID_NOT_FOUND
                    message:
                      ItemIds, PriceListIds [1000000050, 100073] not found.
                Not Found in Stock:
                  value:
                    code: NOT_IN_STOCK
                    message: ItemIds 1000011037 are not in stock.
        "500":
          $ref: "#/components/responses/GenericServerError"
components:
  responses:
    CartNotFound:
      description: Cart not found
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                description: The error code
                example: CART_NOT_FOUND
                type: string
              message:
                description: The error message
                example: Cart not found.
                type: string
    GenericServerError:
      description: A generic server error
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                description: The error code
                type: string
              message:
                description: The error message
                type: string
    GenericClientError:
      description: A generic client error
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                description: The error code
                type: string
              message:
                description: The error message
                type: string
    Unauthenticated:
      description: Invalid/No userAuthToken provided
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                description: The error code
                example: INVALID_AUTHORIZATION_TOKEN
                type: string
              message:
                description: The error message
                example: Invalid Authorization Token
                type: string
    SoftDeleteCart:
      description: Soft delete cart
      content:
        application/json:
          schema:
            allOf:
              - allOf:
                  - type: object
                    properties:
                      registeredUser:
                        type: boolean
                        example: false
                      account:
                        type: string
                      approver:
                        type: string
                      po:
                        type: string
                      cartId:
                        type: number
                        example: 111166
                      status:
                        type: string
                        example: pending
                      allPromosApplied:
                        type: array
                      attributes:
                        type: array
                      __v:
                        type: number
                        example: 0
                      totalAmount:
                        type: object
                        properties:
                          currency:
                            type: string
                            minLength: 3
                            maxLength: 3
                            example: USD
                          amount:
                            type: number
                            example: 38
                      quantity:
                        type: number
                        example: 2
                  - $ref: "#/components/schemas/timeStamp"
              - type: object
                properties:
                  deleted:
                    type: boolean
                    example: true
                  items:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            price:
                              type: object
                              properties:
                                discount:
                                  type: object
                                  properties:
                                    discountAmount:
                                      type: number
                                      example: 0
                                    price:
                                      type: number
                                      example: 0
                                    promosApplied:
                                      type: array
                                sale:
                                  type: number
                                  example: 0
                                base:
                                  type: number
                                  example: 19
                                currency:
                                  type: string
                                  example: USD
                            sample:
                              type: boolean
                              example: false
                            isUnique:
                              type: boolean
                              example: false
                            discountedQuantity:
                              type: number
                              example: 0
                            group:
                              type: array
                              items:
                                type: string
                                example: "123123123123123123123123"
                            weightUnit:
                              type: string
                              example: lb
                            isPickup:
                              type: boolean
                              example: false
                            itemId:
                              type: number
                              example: 15
                            sku:
                              type: string
                              example: sk231212
                            taxCode:
                              type: string
                              example: TC1234567890
                            title:
                              type: string
                              example: fabric t-shirt
                            weight:
                              type: number
                              example: 4.2
                            quantity:
                              type: number
                              example: 2
                            lineItemId:
                              type: number
                              example: 1
                            attributeTotalPrice:
                              type: number
                              example: 0
                            totalPrice:
                              type: object
                              properties:
                                currency:
                                  type: string
                                  example: USD
                                amount:
                                  type: number
                                  example: 38
                            attributes:
                              type: array
                            id:
                              type: string
                              example: 6141a40c13f13a000876272a
                        - type: object
                          properties:
                            _id:
                              type: string
                              example: 5fee9d59f2f08a1b3cbdea08
                            createdAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                            updatedAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
    DeprecatedSoftDeleteCart:
      description: >-
        Cart soft delete, add the deleted boolean flag as true and add the
        order number to the cart.
      content:
        application/json:
          schema:
            allOf:
              - type: object
                properties:
                  deleted:
                    type: boolean
                    example: true
                  allPromosApplied:
                    type: array
                  items:
                    type: array
                    items:
                      allOf:
                        - type: object
                          required:
                            - itemId
                            - group
                            - quantity
                            - price
                          properties:
                            itemId:
                              type: number
                              example: 1000000012
                            priceListId:
                              type: number
                              example: 100002
                            isUnique:
                              type: string
                              example: 123
                            quantity:
                              type: number
                              minimum: 1
                              default: 1
                              example: 2
                            price:
                              type: object
                              required:
                                - currency
                                - base
                                - discount
                              properties:
                                currency:
                                  type: string
                                  maxLength: 3
                                  minLength: 3
                                  example: USD
                                base:
                                  type: number
                                  example: 15.99
                                sale:
                                  type: number
                                  example: 10.99
                                discount:
                                  type: object
                                  required:
                                    - price
                                  properties:
                                    price:
                                      type: number
                                      default: 0
                                      example: 10.99
                                    discountAmount:
                                      type: number
                                      default: 0
                                      example: 10.99
                                    promosApplied:
                                      type: array
                                      minItems: 0
                                      items:
                                        type: object
                                        properties:
                                          unit:
                                            type: string
                                          value:
                                            type: integer
                                            format: int32
                                          "ON":
                                            title: "ON"
                                            required:
                                              - kind
                                              - value
                                            type: object
                                            properties:
                                              kind:
                                                type: string
                                              value:
                                                type: string
                                                nullable: true
                                            example:
                                              kind: SKU
                                              value: ""
                                          id:
                                            type: string
                                          promoId:
                                            type: string
                                          promoCode:
                                            type: string
                            group:
                              type: array
                              minItems: 1
                              items:
                                type: string
                                minLength: 24
                                maxLength: 24
                                example: 5ddd1a156c5a5fed1e0d91fb
                        - type: object
                          properties:
                            discountedQuantity:
                              type: number
                              example: 0
                            lineItemId:
                              type: number
                              example: 1
                            totalPrice:
                              type: object
                              properties:
                                currency:
                                  type: string
                                  example: USD
                                amount:
                                  type: number
                                  example: 200
                            id:
                              type: string
                              example: 5fee9d59f2f08a1b3cbdea08
                            sample:
                              type: boolean
                              example: false
                            weightUnit:
                              type: string
                              example: kg
                            isPickup:
                              type: boolean
                              example: false
                            sku:
                              type: string
                              example: blue
                            taxCode:
                              type: string
                              example: PH0607
                            title:
                              type: string
                              example: item title
                            weight:
                              type: number
                              example: 7
                            attributeTotalPrice:
                              type: number
                              example: 0
                            attributes:
                              type: array
                              items:
                                type: object
                                properties:
                                  price:
                                    type: number
                                    example: 10
                                  _id:
                                    type: string
                                    example: 6146e98408e3700008b64611
                                  attributeId:
                                    type: string
                                    example: 60a77de306f682000975c24c
                                  value:
                                    type: string
                                    example: true/false
                                  name:
                                    type: string
                                    example: Gift Message
                                  type:
                                    type: string
                                  id:
                                    type: string
                                    example: 6146e98408e3700008b64611
                                  shipTo:
                                    allOf:
                                      - $ref: "#/components/schemas/timeStamp"
                                      - type: object
                                        required:
                                          - street1
                                          - city
                                          - state
                                          - country
                                          - zipCode
                                          - email
                                          - name
                                        properties:
                                          attention:
                                            type: string
                                            maxLength: 140
                                            example: Leave at the back door.
                                          street1:
                                            type: string
                                            maxLength: 140
                                            example: 123 Main Street
                                          street2:
                                            type: string
                                            maxLength: 240
                                            example: ABC Boulevard
                                          city:
                                            type: string
                                            maxLength: 140
                                            example: Seattle
                                          state:
                                            type: string
                                            maxLength: 25
                                            example: WA
                                          country:
                                            type: string
                                            maxLength: 140
                                            example:
                                              United States of America
                                          zipCode:
                                            type: string
                                            minLength: 3
                                            maxLength: 25
                                            example: 10008-1234
                                          kind:
                                            type: string
                                            maxLength: 24
                                            example: TBD
                                          name:
                                            type: object
                                            properties:
                                              first:
                                                type: string
                                                minLength: 2
                                                maxLength: 50
                                                example: John
                                              last:
                                                type: string
                                                minLength: 2
                                                maxLength: 50
                                                example: Smith
                                          phone:
                                            type: object
                                            required:
                                              - number
                                              - kind
                                            properties:
                                              number:
                                                type: string
                                                minLength: 5
                                                maxLength: 25
                                                example: 123-456-7890
                                              kind:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: Mobile
                                          email:
                                            type: string
                                            format: email
                                            minLength: 5
                                            maxLength: 100
                                            example: johnsmith@fabric.inc
                                      - type: object
                                        properties:
                                          shipTo:
                                            type: object
                                            properties:
                                              shipMethod:
                                                type: object
                                                properties:
                                                  shipMethodId:
                                                    type: string
                                                    minLength: 3
                                                    example: 1a2b3c4d5e6f7g8h9i0j
                                                  shipmentCarrier:
                                                    type: string
                                                    example: Fedex
                                                  shipmentMethod:
                                                    type: string
                                                    example: Next Day
                                                  cost:
                                                    type: object
                                                    required:
                                                      - currency
                                                      - amount
                                                    properties:
                                                      currency:
                                                        type: string
                                                        minLength: 3
                                                        example: USD
                                                      amount:
                                                        type: number
                                                        minimum: 0
                                                        example: 5.99
                                      - type: object
                                        properties:
                                          shipToId:
                                            type: string
                                            example: 5269
                                          cartId:
                                            type: object
                                            example: 61e03ff6a865fe00094f8620
                                          taxCode:
                                            type: string
                                            example: FR1000
                                          shipToType:
                                            type: string
                                            example: SHIP_TO_ADDRESS
                        - type: object
                          properties:
                            _id:
                              type: string
                              example: 5fee9d59f2f08a1b3cbdea08
                            createdAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                            updatedAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
              - type: object
                properties:
                  registeredUser:
                    type: boolean
                    example: false
                  cartId:
                    type: number
                    example: 4
                  totalAmmount":
                    type: object
                    properties:
                      currency:
                        type: string
                        example: USD
                      amount:
                        type: number
                        example: 200
                  quantity:
                    type: number
                    example: 2
                  __v:
                    type: number
                    example: 0
                  attributes:
                    type: array
                    items:
                      type: object
                      properties:
                        price:
                          type: number
                          example: 10
                        _id:
                          type: string
                          example: 6146e98408e3700008b64611
                        attributeId:
                          type: string
                          example: 60a77de306f682000975c24c
                        value:
                          type: string
                          example: true/false
                        name:
                          type: string
                          example: Gift Message
                        type:
                          type: string
                        id:
                          type: string
                          example: 6146e98408e3700008b64611
                  account:
                    type: string
                  approver:
                    type: string
                  po:
                    type: string
                  company:
                    type: string
                  status:
                    type: string
                    example: pending
                  extra:
                    type: object
                  errors:
                    type: object
                    properties:
                      inventory:
                        type: array
                      price:
                        type: array
                      promo:
                        type: array
              - $ref: "#/components/schemas/timeStamp"
    ShipToAddedToCart:
      description: shipTo added to cart
      content:
        application/json:
          schema:
            allOf:
              - type: object
                properties:
                  deleted:
                    type: boolean
                    example: false
                  allPromosApplied:
                    type: array
                  items:
                    type: array
                    items:
                      allOf:
                        - type: object
                          required:
                            - itemId
                            - group
                            - quantity
                            - price
                          properties:
                            itemId:
                              type: number
                              example: 1000000012
                            priceListId:
                              type: number
                              example: 100002
                            isUnique:
                              type: string
                              example: 123
                            quantity:
                              type: number
                              minimum: 1
                              default: 1
                              example: 2
                            price:
                              type: object
                              required:
                                - currency
                                - base
                                - discount
                              properties:
                                currency:
                                  type: string
                                  maxLength: 3
                                  minLength: 3
                                  example: USD
                                base:
                                  type: number
                                  example: 15.99
                                sale:
                                  type: number
                                  example: 10.99
                                discount:
                                  type: object
                                  required:
                                    - price
                                  properties:
                                    price:
                                      type: number
                                      default: 0
                                      example: 10.99
                                    discountAmount:
                                      type: number
                                      default: 0
                                      example: 10.99
                                    promosApplied:
                                      type: array
                                      minItems: 0
                                      items:
                                        type: object
                                        properties:
                                          unit:
                                            type: string
                                          value:
                                            type: integer
                                            format: int32
                                          "ON":
                                            title: "ON"
                                            required:
                                              - kind
                                              - value
                                            type: object
                                            properties:
                                              kind:
                                                type: string
                                              value:
                                                type: string
                                                nullable: true
                                            example:
                                              kind: SKU
                                              value: ""
                                          id:
                                            type: string
                                          promoId:
                                            type: string
                                          promoCode:
                                            type: string
                            group:
                              type: array
                              minItems: 1
                              items:
                                type: string
                                minLength: 24
                                maxLength: 24
                                example: 5ddd1a156c5a5fed1e0d91fb
                        - type: object
                          properties:
                            discountedQuantity:
                              type: number
                              example: 0
                            lineItemId:
                              type: number
                              example: 1
                            totalPrice:
                              type: object
                              properties:
                                currency:
                                  type: string
                                  example: USD
                                amount:
                                  type: number
                                  example: 200
                            id:
                              type: string
                              example: 5fee9d59f2f08a1b3cbdea08
                            sample:
                              type: boolean
                              example: false
                            weightUnit:
                              type: string
                              example: kg
                            isPickup:
                              type: boolean
                              example: false
                            sku:
                              type: string
                              example: blue
                            taxCode:
                              type: string
                              example: PH0607
                            title:
                              type: string
                              example: item title
                            weight:
                              type: number
                              example: 7
                            attributeTotalPrice:
                              type: number
                              example: 0
                            attributes:
                              type: array
                              items:
                                type: object
                                properties:
                                  price:
                                    type: number
                                    example: 10
                                  _id:
                                    type: string
                                    example: 6146e98408e3700008b64611
                                  attributeId:
                                    type: string
                                    example: 60a77de306f682000975c24c
                                  value:
                                    type: string
                                    example: true/false
                                  name:
                                    type: string
                                    example: Gift Message
                                  type:
                                    type: string
                                  id:
                                    type: string
                                    example: 6146e98408e3700008b64611
                                  shipTo:
                                    allOf:
                                      - $ref: "#/components/schemas/timeStamp"
                                      - type: object
                                        required:
                                          - street1
                                          - city
                                          - state
                                          - country
                                          - zipCode
                                          - email
                                          - name
                                        properties:
                                          attention:
                                            type: string
                                            maxLength: 140
                                            example: Leave at the back door.
                                          street1:
                                            type: string
                                            maxLength: 140
                                            example: 123 Main Street
                                          street2:
                                            type: string
                                            maxLength: 240
                                            example: ABC Boulevard
                                          city:
                                            type: string
                                            maxLength: 140
                                            example: Seattle
                                          state:
                                            type: string
                                            maxLength: 25
                                            example: WA
                                          country:
                                            type: string
                                            maxLength: 140
                                            example:
                                              United States of America
                                          zipCode:
                                            type: string
                                            minLength: 3
                                            maxLength: 25
                                            example: 10008-1234
                                          kind:
                                            type: string
                                            maxLength: 24
                                            example: TBD
                                          name:
                                            type: object
                                            properties:
                                              first:
                                                type: string
                                                minLength: 2
                                                maxLength: 50
                                                example: John
                                              last:
                                                type: string
                                                minLength: 2
                                                maxLength: 50
                                                example: Smith
                                          phone:
                                            type: object
                                            required:
                                              - number
                                              - kind
                                            properties:
                                              number:
                                                type: string
                                                minLength: 5
                                                maxLength: 25
                                                example: 123-456-7890
                                              kind:
                                                type: string
                                                minLength: 3
                                                maxLength: 25
                                                example: Mobile
                                          email:
                                            type: string
                                            format: email
                                            minLength: 5
                                            maxLength: 100
                                            example: johnsmith@fabric.inc
                                      - type: object
                                        properties:
                                          shipTo:
                                            type: object
                                            properties:
                                              shipMethod:
                                                type: object
                                                properties:
                                                  shipMethodId:
                                                    type: string
                                                    minLength: 3
                                                    example: 1a2b3c4d5e6f7g8h9i0j
                                                  shipmentCarrier:
                                                    type: string
                                                    example: Fedex
                                                  shipmentMethod:
                                                    type: string
                                                    example: Next Day
                                                  cost:
                                                    type: object
                                                    required:
                                                      - currency
                                                      - amount
                                                    properties:
                                                      currency:
                                                        type: string
                                                        minLength: 3
                                                        example: USD
                                                      amount:
                                                        type: number
                                                        minimum: 0
                                                        example: 5.99
                                      - type: object
                                        properties:
                                          shipToId:
                                            type: string
                                            example: 5269
                                          cartId:
                                            type: object
                                            example: 61e03ff6a865fe00094f8620
                                          taxCode:
                                            type: string
                                            example: FR1000
                                          shipToType:
                                            type: string
                                            example: SHIP_TO_ADDRESS
                        - type: object
                          properties:
                            _id:
                              type: string
                              example: 5fee9d59f2f08a1b3cbdea08
                            createdAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
                            updatedAt:
                              type: string
                              example: "2020-12-31T02:09:53.914Z"
              - type: object
                properties:
                  registeredUser:
                    type: boolean
                    example: false
                  cartId:
                    type: number
                    example: 4
                  totalAmmount":
                    type: object
                    properties:
                      currency:
                        type: string
                        example: USD
                      amount:
                        type: number
                        example: 200
                  quantity:
                    type: number
                    example: 2
                  __v:
                    type: number
                    example: 0
                  attributes:
                    type: array
                    items:
                      type: object
                      properties:
                        price:
                          type: number
                          example: 10
                        _id:
                          type: string
                          example: 6146e98408e3700008b64611
                        attributeId:
                          type: string
                          example: 60a77de306f682000975c24c
                        value:
                          type: string
                          example: true/false
                        name:
                          type: string
                          example: Gift Message
                        type:
                          type: string
                        id:
                          type: string
                          example: 6146e98408e3700008b64611
                  account:
                    type: string
                  approver:
                    type: string
                  po:
                    type: string
                  company:
                    type: string
                  status:
                    type: string
                    example: pending
                  extra:
                    type: object
                  errors:
                    type: object
                    properties:
                      inventory:
                        type: array
                      price:
                        type: array
                      promo:
                        type: array
              - $ref: "#/components/schemas/timeStamp"
    ShipToCreated:
      description: Ship To Created
      content:
        application/json:
          schema:
            allOf:
              - type: object
                properties:
                  shipToType:
                    type: string
                    enum:
                      - BOPIS
                      - SHIP_TO_STORE
                      - SHIP_TO_ADDRESS
                      - STORE_PICKUP
                    example: SHIP_TO_ADDRESS
                  warehouseId:
                    type: string
                    maxLength: 24
                    minLength: 24
                    example: 123456abcdef123456abcdef
                  isPickup:
                    type: boolean
                    example: true
                  shipMethod:
                    type: object
                    required:
                      - shipMethodId
                      - cost
                    properties:
                      shipMethodId:
                        type: string
                        minLength: 3
                        example: 1a2b3c4d5e6f7g8h9i0j
                      shipmentCarrier:
                        type: string
                        example: Fedex
                      shipmentMethod:
                        type: string
                        example: Next Day
                      cost:
                        type: object
                        required:
                          - currency
                          - amount
                        properties:
                          currency:
                            type: string
                            minLength: 3
                            example: USD
                          amount:
                            type: number
                            minimum: 0
                            example: 5.99
                  taxCode:
                    type: string
                    example: FR1000
                  storeId:
                    type: string
                    minLength: 5
                    maxLength: 50
                    example: TBD
                  pickupPerson:
                    $ref: "#/components/schemas/pickupPerson"
                  altPickupPerson:
                    $ref: "#/components/schemas/pickupPerson"
              - type: object
                properties:
                  address:
                    allOf:
                      - type: object
                        properties:
                          attention:
                            type: string
                            maxLength: 140
                            example: Leave at the back door.
                          street1:
                            type: string
                            maxLength: 140
                            example: 123 Main Street
                          street2:
                            type: string
                            maxLength: 240
                            example: ABC Boulevard
                          city:
                            type: string
                            maxLength: 140
                            example: Seattle
                          state:
                            type: string
                            maxLength: 25
                            example: WA
                          country:
                            type: string
                            maxLength: 140
                            example: United States of America
                          zipCode:
                            type: string
                            minLength: 3
                            maxLength: 25
                            example: 10008-1234
                          kind:
                            type: string
                            maxLength: 24
                            example: TBD
                      - type: object
                        properties:
                          name:
                            type: object
                            properties:
                              first:
                                type: string
                                minLength: 2
                                maxLength: 50
                                example: John
                              last:
                                type: string
                                minLength: 2
                                maxLength: 50
                                example: Smith
                          phone:
                            type: object
                            required:
                              - number
                              - kind
                            properties:
                              number:
                                type: string
                                minLength: 5
                                maxLength: 25
                                example: 123-456-7890
                              kind:
                                type: string
                                minLength: 3
                                maxLength: 25
                                example: Mobile
                          email:
                            type: string
                            format: email
                            minLength: 5
                            maxLength: 100
                            example: johnsmith@fabric.inc
                  cartId:
                    type: string
                    minLength: 24
                    maxLength: 24
                    example: 5e5818a84d030c206b2ffb02
                  shipToId:
                    type: number
                    example: 13812
              - type: object
                properties:
                  _id:
                    type: string
                    example: 5fee9d59f2f08a1b3cbdea08
                  createdAt:
                    type: string
                    example: "2020-12-31T02:09:53.914Z"
                  updatedAt:
                    type: string
                    example: "2020-12-31T02:09:53.914Z"          
    ShipToNotFound:
      description: ShipTo not found
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                description: The error code
                example: SHIPTO_NOT_FOUND
                type: string
              message:
                description: The error message
                example: Ship-to not found.
                type: string
    ShippingMethodNotFound:
      description: Shipping method not found
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                description: The error code
                example: SHIPPING_METHOD_NOT_FOUND
                type: string
              message:
                description: The error message
                example: Shipping Method Not Found.
    MissingXApiKeyHeader:
      description: Missing x-api-key in header
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                description: The error message
                example: Forbidden
                type: string 
  parameters:
    xSiteContent:
      name: x-site-context
      in: header
      description: >-
        The `x-site-context` header is a JSON object that contains information
        about the source you wish to pull from. The mandatory `account` is the
        24 character identifier found in Copilot. The `channel` (Sales channel
        ID), `stage` (environment name), and `date` attributes can be used to
        further narrow the scope of your data source.
      required: true
      schema:
        type: string
        example: >-
          {"date": "2023-01-01T00:00:00.000Z", "channel": 12, "account":
          "1234abcd5678efgh9ijklmno","stage":"production"}
  schemas:
    allPromosApplied:
      type: object
      properties:
        unit:
          type: string
        value:
          type: integer
          format: int32
        "ON":
          title: "ON"
          required:
            - kind
            - value
          type: object
          properties:
            kind:
              type: string
            value:
              type: string
              nullable: true
          example:
            kind: SKU
            value: ""
        id:
          type: string
        promoId:
          type: string
        promoCode:
          type: string
    timeStamp:
      type: object
      properties:
        _id:
          type: string
          example: 5fee9d59f2f08a1b3cbdea08
        createdAt:
          type: string
          example: "2020-12-31T02:09:53.914Z"
        updatedAt:
          type: string
          example: "2020-12-31T02:09:53.914Z"
    address:
      allOf:
        - type: object
          required:
            - street1
            - city
            - state
            - country
            - zipCode
            - email
            - name
        - type: object
          properties:
            attention:
              type: string
              maxLength: 140
              example: Leave at the back door.
            street1:
              type: string
              maxLength: 140
              example: 123 Main Street
            street2:
              type: string
              maxLength: 240
              example: ABC Boulevard
            city:
              type: string
              maxLength: 140
              example: Seattle
            state:
              type: string
              maxLength: 25
              example: WA
            country:
              type: string
              maxLength: 140
              example: United States of America
            zipCode:
              type: string
              minLength: 3
              maxLength: 25
              example: 10008-1234
            kind:
              type: string
              maxLength: 24
              example: TBD
        - type: object
          properties:
            name:
              type: object
              properties:
                first:
                  type: string
                  minLength: 2
                  maxLength: 50
                  example: John
                last:
                  type: string
                  minLength: 2
                  maxLength: 50
                  example: Smith
            phone:
              type: object
              required:
                - number
                - kind
              properties:
                number:
                  type: string
                  minLength: 5
                  maxLength: 25
                  example: 123-456-7890
                kind:
                  type: string
                  minLength: 3
                  maxLength: 25
                  example: Mobile
            email:
              type: string
              format: email
              minLength: 5
              maxLength: 100
              example: johnsmith@fabric.inc
    pickupPerson:
      type: object
      properties:
        name:
          type: object
          properties:
            first:
              type: string
              minLength: 2
              maxLength: 50
              example: John
            last:
              type: string
              minLength: 2
              maxLength: 50
              example: Smith
        phone:
          type: object
          required:
            - number
            - kind
          properties:
            number:
              type: string
              minLength: 5
              maxLength: 25
              example: 123-456-7890
            kind:
              type: string
              minLength: 3
              maxLength: 25
              example: Mobile
        email:
          type: string
          format: email
          minLength: 5
          maxLength: 100
          example: johnsmith@fabric.inc
    cartData:
      allOf:
        - type: object
          properties:
            deleted:
              type: boolean
              example: false
            allPromosApplied:
              type: array
              items:
                type: object
                properties:
                  unit:
                    type: string
                  value:
                    type: integer
                    format: int32
                  "ON":
                    title: "ON"
                    required:
                      - kind
                      - value
                    type: object
                    properties:
                      kind:
                        type: string
                      value:
                        type: string
                        nullable: true
                    example:
                      kind: SKU
                      value: ""
                  id:
                    type: string
                  promoId:
                    type: string
                  promoCode:
                    type: string
            items:
              type: array
              items:
                allOf:
                  - type: object
                    required:
                      - itemId
                      - group
                      - quantity
                      - price
                    properties:
                      itemId:
                        type: number
                        example: 1000000012
                      priceListId:
                        type: number
                        example: 100002
                      isUnique:
                        type: string
                        example: 123
                      quantity:
                        type: number
                        minimum: 1
                        default: 1
                        example: 2
                      price:
                        type: object
                        required:
                          - currency
                          - base
                          - discount
                        properties:
                          currency:
                            type: string
                            maxLength: 3
                            minLength: 3
                            example: USD
                          base:
                            type: number
                            example: 15.99
                          sale:
                            type: number
                            example: 10.99
                          discount:
                            type: object
                            required:
                              - price
                            properties:
                              price:
                                type: number
                                default: 0
                                example: 10.99
                              discountAmount:
                                type: number
                                default: 0
                                example: 10.99
                              promosApplied:
                                type: array
                                minItems: 0
                                items:
                                  $ref: "#/components/schemas/allPromosApplied"
                      group:
                        type: array
                        minItems: 1
                        items:
                          type: string
                          minLength: 24
                          maxLength: 24
                          example: 5ddd1a156c5a5fed1e0d91fb
                  - type: object
                    properties:
                      discountedQuantity:
                        type: number
                        example: 0
                      lineItemId:
                        type: number
                        example: 1
                      totalPrice:
                        type: object
                        properties:
                          currency:
                            type: string
                            example: USD
                          amount:
                            type: number
                            example: 200
                      id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      sample:
                        type: boolean
                        example: false
                      weightUnit:
                        type: string
                        example: kg
                      isPickup:
                        type: boolean
                        example: false
                      sku:
                        type: string
                        example: blue
                      taxCode:
                        type: string
                        example: PH0607
                      title:
                        type: string
                        example: item title
                      weight:
                        type: number
                        example: 7
                      attributeTotalPrice:
                        type: number
                        example: 0
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            price:
                              type: number
                              example: 10
                            _id:
                              type: string
                              example: 6146e98408e3700008b64611
                            attributeId:
                              type: string
                              example: 60a77de306f682000975c24c
                            value:
                              type: string
                              example: true/false
                            name:
                              type: string
                              example: Gift Message
                            type:
                              type: string
                            id:
                              type: string
                              example: 6146e98408e3700008b64611
                            shipTo:
                              allOf:
                                - $ref: "#/components/schemas/pickupPerson"
                                - type: object
                                  required:
                                    - street1
                                    - city
                                    - state
                                    - country
                                    - zipCode
                                    - email
                                    - name
                                  properties:
                                    attention:
                                      type: string
                                      maxLength: 140
                                      example: Leave at the back door.
                                    street1:
                                      type: string
                                      maxLength: 140
                                      example: 123 Main Street
                                    street2:
                                      type: string
                                      maxLength: 240
                                      example: ABC Boulevard
                                    city:
                                      type: string
                                      maxLength: 140
                                      example: Seattle
                                    state:
                                      type: string
                                      maxLength: 25
                                      example: WA
                                    country:
                                      type: string
                                      maxLength: 140
                                      example:
                                        United States of America
                                    zipCode:
                                      type: string
                                      minLength: 3
                                      maxLength: 25
                                      example: 10008-1234
                                    kind:
                                      type: string
                                      maxLength: 24
                                      example: TBD
                                    name:
                                      type: object
                                      properties:
                                        first:
                                          type: string
                                          minLength: 2
                                          maxLength: 50
                                          example: John
                                        last:
                                          type: string
                                          minLength: 2
                                          maxLength: 50
                                          example: Smith
                                    phone:
                                      type: object
                                      required:
                                        - number
                                        - kind
                                      properties:
                                        number:
                                          type: string
                                          minLength: 5
                                          maxLength: 25
                                          example: 123-456-7890
                                        kind:
                                          type: string
                                          minLength: 3
                                          maxLength: 25
                                          example: Mobile
                                    email:
                                      type: string
                                      format: email
                                      minLength: 5
                                      maxLength: 100
                                      example: johnsmith@fabric.inc
                                - type: object
                                  properties:
                                    shipTo:
                                      type: object
                                      properties:
                                        shipMethod:
                                          type: object
                                          properties:
                                            shipMethodId:
                                              type: string
                                              minLength: 3
                                              example: 1a2b3c4d5e6f7g8h9i0j
                                            shipmentCarrier:
                                              type: string
                                              example: Fedex
                                            shipmentMethod:
                                              type: string
                                              example: Next Day
                                            cost:
                                              type: object
                                              required:
                                                - currency
                                                - amount
                                              properties:
                                                currency:
                                                  type: string
                                                  minLength: 3
                                                  example: USD
                                                amount:
                                                  type: number
                                                  minimum: 0
                                                  example: 5.99
                                - type: object
                                  properties:
                                    shipToId:
                                      type: string
                                      example: 5269
                                    cartId:
                                      type: object
                                      example: 61e03ff6a865fe00094f8620
                                    taxCode:
                                      type: string
                                      example: FR1000
                                    shipToType:
                                      type: string
                                      example: SHIP_TO_ADDRESS
                  - type: object
                    properties:
                      _id:
                        type: string
                        example: 5fee9d59f2f08a1b3cbdea08
                      createdAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
                      updatedAt:
                        type: string
                        example: "2020-12-31T02:09:53.914Z"
        - type: object
          properties:
            registeredUser:
              type: boolean
              example: false
            cartId:
              type: number
              example: 4
            totalAmmount":
              type: object
              properties:
                currency:
                  type: string
                  example: USD
                amount:
                  type: number
                  example: 200
            quantity:
              type: number
              example: 2
            __v:
              type: number
              example: 0
            attributes:
              type: array
              items:
                type: object
                properties:
                  price:
                    type: number
                    example: 10
                  _id:
                    type: string
                    example: 6146e98408e3700008b64611
                  attributeId:
                    type: string
                    example: 60a77de306f682000975c24c
                  value:
                    type: string
                    example: true/false
                  name:
                    type: string
                    example: Gift Message
                  type:
                    type: string
                  id:
                    type: string
                    example: 6146e98408e3700008b64611
            account:
              type: string
            approver:
              type: string
            po:
              type: string
            company:
              type: string
            status:
              type: string
              example: pending
            extra:
              type: object
            errors:
              type: object
              properties:
                inventory:
                  type: array
                price:
                  type: array
                promo:
                  type: array
        - $ref: "#/components/schemas/pickupPerson"