> ## Documentation Index
> Fetch the complete documentation index at: https://developer.fabric.inc/llms.txt
> Use this file to discover all available pages before exploring further.

# Get order draft by ID

> Get order draft details by order draft ID.



## OpenAPI

````yaml cart-service get /v2/order-drafts/{id}
openapi: 3.0.1
info:
  title: Cart API
  description: >-
    fabric's Cart APIs let you add, update, and remove items from your
    Storefront cart, either as a guest user or as a logged-in user. It also
    provides functionality to merge carts when you switch from guest user to
    logged-in user, to apply coupon codes and other attributes (for example,
    gift wrapping) to the cart items. Additionally, it supports more advanced
    use cases such as using multiple carts within a B2B organization and sharing
    of carts, as well as supporting a unified cart experience for multi-region
    and multi-brand businesses. <br /><br />These APIs provide high performance,
    scalability, multi-tenancy, and configurability to the end-to-end order
    processing actions that start from an item being added to the cart, through
    the pre-checkout stage that includes billing, shipping, and payment details,
    to the checkout stage where the order is processed and confirmed by the
    fabric Order Management System (OMS) or alternatively an Order Draft can be
    created. An order draft can be used to coordinate the creation of an order
    in any other downstream systems.
  contact:
    name: Cart Support
    email: support.cnc@fabric.inc
  license:
    name: fabric API License
    url: https://fabric.inc/api-license
  version: 2.0.0
servers:
  - url: https://prod.cart.fabric.inc
security: []
tags:
  - name: Cart
    description: >-
      Cart endpoints let you do basic cart operations, such as create a cart,
      add item to the cart, update items, remove items, delete cart, update
      status of the cart, and more.
  - name: Attribute
    description: >-
      Attribute endpoints let you add, update, and remove different types of
      attributes to and from the cart, and items in the cart.
  - name: Shipping
    description: >-
      Shipping endpoints let you do shipping related activities, such as create
      or update shipping details ID, add shipping information to all items of
      the cart, add different shipping details for different items, and more.
  - name: Order Draft
    description: >-
      Order drafts are the final state of a cart, containing all the required
      information needed to create an order. All these information undergoes
      validations before being generated and stored as order drafts. Once an
      order draft is created, it cannot be changed.The following endpoints let
      you create and manage such order drafts.
  - name: Adjustments
    description: >-
      Using these endpoints, you can make adjustments to a cart or to the line
      items within a cart.
paths:
  /v2/order-drafts/{id}:
    get:
      tags:
        - Order Draft
      summary: Get order draft by ID
      description: Get order draft details by order draft ID.
      operationId: getOrderDraft
      parameters:
        - $ref: '#/components/parameters/x-site-context'
        - name: id
          in: path
          description: Order draft ID
          required: true
          schema:
            type: string
            example: d7e78a21-bee3-4448-bf1c-d5b5461dbda2
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDraftResponse'
        '400':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/orderDraftNotFound'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
components:
  parameters:
    x-site-context:
      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:
    OrderDraftResponse:
      required:
        - cartId
        - createdAt
        - currency
        - items
        - orderDiscount
        - orderStatus
        - orderSubTotal
        - orderTotal
        - shipInfo
        - taxTotal
      type: object
      properties:
        cartId:
          $ref: '#/components/schemas/cartId'
        orderNumber:
          $ref: '#/components/schemas/OrderNumber'
        orderType:
          $ref: '#/components/schemas/OrderType'
        orderSubType:
          $ref: '#/components/schemas/OrderSubType'
        orderStatus:
          $ref: '#/components/schemas/OrderStatus'
        orderTotal:
          $ref: '#/components/schemas/OrderTotal'
        orderSubTotal:
          $ref: '#/components/schemas/OrderSubTotal'
        taxTotal:
          $ref: '#/components/schemas/OrderTaxTotal'
        orderDiscount:
          $ref: '#/components/schemas/OrderDiscount'
        currency:
          $ref: '#/components/schemas/currency'
        createdAt:
          type: string
          description: Time order draft was created
          format: date-time
          example: '2022-02-18T15:12:40.974580'
        items:
          type: array
          items:
            $ref: '#/components/schemas/ItemDetails'
        customer:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/Customer'
            - type: object
              description: Customer details
        attributes:
          type: object
          additionalProperties: true
          description: Cart metadata
          nullable: true
          example:
            approver: 620d8896058edb0009385311
        shipInfo:
          type: array
          items:
            $ref: '#/components/schemas/ShipResponse'
        payments:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/PaymentDetails'
        accountId:
          type: string
          description: Customer account ID
          nullable: true
          example: 5f689caa4216e7000750d1ef
        totalItems:
          type: integer
          description: Total number of items in the cart
          format: int32
          nullable: true
          example: 3
        totalUniqueItems:
          type: integer
          description: Total number of unique line items in the cart
          format: int32
          nullable: true
          example: 2
        configuration:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CartConfiguration'
            - type: object
              description: Cart configuration
        fees:
          type: array
          description: >-
            Fees associated with a specific cart or an individual line item of a
            cart
          nullable: true
          items:
            $ref: '#/components/schemas/fees'
        orderTotalFees:
          $ref: '#/components/schemas/OrderTotalFees'
        error:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ExceptionDetail'
            - type: object
              description: error object
      description: Order draft response
    ClientError:
      description: Client error details
      type: object
      properties:
        code:
          description: Error code, meant for machine consumption
          type: string
          example: Bad Request
        message:
          description: Human-readable error description
          type: string
          example: User ID or Cart ID does not exist
    orderDraftNotFound:
      type: object
      description: Order draft not found error
      properties:
        type:
          description: Error code
          type: string
          example: NOT_FOUND
        message:
          description: Error description
          type: string
          example: Order draft not found
    ServerError:
      description: Server error details
      type: object
      properties:
        code:
          description: Error code, meant for machine consumption
          type: string
          example: Internal Server Error
        message:
          description: Human-readable error description
          type: string
          example: >-
            An internal error occurred. If the issue persists please contact
            support@fabric.inc.
    cartId:
      type: string
      description: Cart ID
      example: b8a64b52-dab4-8137-8d6a-f2c2337abc1
    OrderNumber:
      type: string
      description: Order number
      nullable: true
      example: 123123123
    OrderType:
      type: string
      description: Order type (WEB, CSC, MOBILE_APP, POS)
      nullable: true
      example: WEB
    OrderSubType:
      type: string
      description: Order sub type (Android/IOS/International)
      nullable: true
      example: Android
    OrderStatus:
      required:
        - paymentStatus
      type: object
      properties:
        ready:
          type: boolean
          description: >-
            true: Order draft is ready to generate the final order.<br />false:
            Order draft is not ready.
          default: false
          example: true
        paymentStatus:
          allOf:
            - $ref: '#/components/schemas/OrderPaymentStatus'
            - type: object
              description: Payment status
              example: AUTHORIZED
    OrderTotal:
      type: number
      description: Total amount for the order
      format: double
      example: 60
    OrderSubTotal:
      type: number
      description: Total amount for the order without discounts
      format: double
      example: 60
    OrderTaxTotal:
      type: number
      description: Total tax applied on the order
      format: double
      example: 60
    OrderDiscount:
      type: number
      description: Total discount applied on the order
      format: double
      example: 60
    currency:
      type: string
      description: Currency code
      example: USD
    ItemDetails:
      required:
        - itemId
        - shippingDetailsId
        - sku
        - lineItemId
      type: object
      allOf:
        - $ref: '#/components/schemas/CartItemResponse'
      properties:
        type:
          type: string
          description: >-
            ItemType(WEB_SHIP/WEB_PICKUP/WEB_SDD/INTERNATIONAL/POS/POS_SHIP/POS_PICKUP)
          nullable: true
          example: WEB_SHIP
        subType:
          type: string
          description: >-
            Item sub type. For International type, provide subType as
            Borderfree.
          nullable: true
          example: Borderfree
        uom:
          type: string
          description: Unit Of measure
          nullable: true
          example: ITEM
        itemTaxTotal:
          type: number
          description: Total tax on item
          format: double
          nullable: true
        taxCode:
          type: string
          description: Tax code for an item
          nullable: true
          example: FR1000
        taxDetail:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/Tax'
            - type: object
              description: Item tax details
    Customer:
      type: object
      properties:
        id:
          type: string
          description: Customer ID
          nullable: true
          example: 8fb78749
        type:
          type: string
          description: Customer type
          nullable: true
          example: employee
        segments:
          type: string
          description: Customer segments
          nullable: true
          example: '{subscription: [''premium'']}'
        attributes:
          type: string
          description: Customer attributes
          nullable: true
          example: '{email: John.doe@foo.com}'
    ShipResponse:
      description: Shipping response body
      type: object
      properties:
        shipToId:
          type: string
          description: Shipping details ID
          nullable: true
          example: fef78121-bee3-4448-bf1c-d5b5461dbda2
        cartId:
          description: Cart ID
          type: string
          nullable: true
          example: d7e78a21-bee3-4448-bf1c-d5b5461dbda2
        createdAt:
          type: string
          description: Shipping details creation time
          format: date-time
          nullable: true
          example: '2022-02-18T15:12:40.974580'
        updatedAt:
          type: string
          description: Last time shipping details were updated
          format: date-time
          nullable: true
          example: '2022-02-18T15:12:40.974580'
        shipMethod:
          description: Shipping method and details
          allOf:
            - $ref: '#/components/schemas/ShipMethod'
            - nullable: true
        address:
          description: Shipping address
          allOf:
            - $ref: '#/components/schemas/Address'
            - nullable: true
        shipToType:
          type: string
          description: Shipping type
          nullable: true
          example: SHIP_TO_ADDRESS
        taxCode:
          type: string
          description: Shipping tax code
          nullable: true
          example: FR1000
        isPickup:
          description: 'true: Item is set for pickup<br />false: Item is set for delivery'
          type: boolean
          example: true
        altPickupPerson:
          description: Alternative pickup person
          allOf:
            - $ref: '#/components/schemas/PickupPerson'
            - nullable: true
        pickupPerson:
          description: Designated pickup person
          allOf:
            - $ref: '#/components/schemas/PickupPerson'
            - nullable: true
        warehouseId:
          type: string
          description: Warehouse ID
          nullable: true
          example: XYZ-1234
        storeId:
          type: string
          description: Store ID
          nullable: true
          example: ABC-123
        estimatedShipDate:
          type: string
          description: Estimated date for shipping
          format: date-time
          nullable: true
          example: '2022-02-18T15:12:40.974580'
        estimatedDeliveryDate:
          type: string
          description: Estimated date for delivery
          format: date-time
          nullable: true
          example: '2022-02-18T15:12:40.974580'
        shipmentInstructions:
          type: string
          description: Store ID
          nullable: true
          example: Additional user instructions for shipping
    PaymentDetails:
      required:
        - paymentToken
        - amount
      type: object
      allOf:
        - $ref: '#/components/schemas/PaymentDetailsRequest'
    CartConfiguration:
      type: object
      properties:
        allowAnonymousUser:
          type: boolean
          nullable: true
          default: true
          example: true
          description: >-
            true: Allows a cart to be a guest cart.<br />false: Allows cart only
            if user is logged in.
        orderNumberSource:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/OrderNumberSource'
        softReserve:
          type: boolean
          nullable: true
          default: false
          example: false
          description: >-
            true: Soft reserve is used for an inventory check.<br/> false: Soft
            reserve is not used for an inventory check.
        addItemBySku:
          type: boolean
          default: false
          example: false
          description: >-
            true: Item can be added to cart by SKU; itemId is not mandatory to
            add an item to cart <br/> false: itemId is mandatory to add item to
            cart
        inventory:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/InventoryConfiguration'
    fees:
      type: object
      properties:
        feeId:
          type: string
          description: >-
            System-generated fee ID, in UUID format. While creating a cart or
            line item with fee, fabric generates this ID for the specified fee.
          example: 73bc09d0-874a-4c3d-84d0-df1670d03578
        name:
          type: string
          description: Attribute for which fee is applied
          nullable: true
          example: gift
        type:
          type: string
          description: Fee type
          nullable: true
          example: gift_wrap
        amount:
          type: number
          format: double
          description: Fee amount
          default: 0
          example: 10.5
        attributes:
          type: object
          additionalProperties: true
          description: Placeholder for additional information in `key:value` pairs
          nullable: true
          example: '{''from'': ''sam'', ''to'': ''david'' }'
    OrderTotalFees:
      type: number
      description: Total fees applied on the order
      format: double
      nullable: true
      example: 60
    ExceptionDetail:
      description: Exception details
      required:
        - code
        - detail
      type: object
      properties:
        itemId:
          description: ID of item to which exception applies
          type: string
          nullable: true
          example: '1000000001'
        sku:
          type: string
          description: SKU of item to which exception applies
          nullable: true
          example: 16B2GS8LD5FDS
        code:
          $ref: '#/components/schemas/ErrorEnum'
          description: Error code
        detail:
          description: Error detail
          type: string
          example: Item is out of stock
        lineItemId:
          minimum: 1
          type: integer
          description: Cart item sequence number (starts at 1)
          format: int32
          example: 1
    OrderPaymentStatus:
      type: string
      enum:
        - AUTHORIZED
        - FAILED
        - SETTLED
        - NOT_COMPLETED
    CartItemResponse:
      description: Cart item details
      required:
        - quantity
        - sku
        - items
        - isPickup
      type: object
      properties:
        cartItemId:
          type: string
          description: Cart item ID
          nullable: true
          example: 88cded0f-1439-40eb-a7a0-167e8bffdb3b
        itemId:
          type: string
          description: Item ID
          nullable: true
          example: '1000000001'
        title:
          type: string
          description: Item name
          nullable: true
          example: Varnet Garden Light Kit
        sku:
          type: string
          description: Item SKU
          example: 16B2GS8LD5FDS
        items:
          type: array
          description: Cart item details
          items:
            $ref: '#/components/schemas/CartItem'
        attributeTotalPrice:
          type: number
          description: Total price of attributes
          format: double
          nullable: true
          example: 10
        createdAt:
          type: string
          description: Item creation time
          format: date-time
          nullable: true
          example: '2022-02-18T15:12:40.974580'
        updatedAt:
          type: string
          description: Last time item was updated
          format: date-time
          nullable: true
          example: '2022-02-18T15:12:40.974580'
        quantity:
          type: integer
          description: Number of items in cart
          format: int32
          example: 1
        priceListId:
          type: string
          description: Item price list ID
          nullable: true
          example: '100000'
        lineItemId:
          minimum: 1
          type: integer
          description: Cart item sequence number (starts at 1)
          format: int32
          nullable: true
          example: 1
        isActive:
          description: true = Item is active<br />false = Item is not active
          type: boolean
          nullable: true
          example: true
        unitPrice:
          description: Individual item price
          allOf:
            - $ref: '#/components/schemas/CartPrice'
            - nullable: true
        totalPrice:
          description: Total price for the full quantity of this item
          allOf:
            - $ref: '#/components/schemas/CartPrice'
            - nullable: true
        attributes:
          description: Additional item options
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductAttributes'
        priceAdjustments:
          description: List of price adjustments for the line item
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CartItemPriceAdjustment'
        isPickup:
          description: 'true: Item is set for pickup<br />false: Item is set for delivery'
          type: boolean
          example: true
        warehouseId:
          type: string
          description: Warehouse ID
          nullable: true
          example: XYZ-1234
        shipTo:
          description: Shipment details
          allOf:
            - $ref: '#/components/schemas/ShipObject'
            - nullable: true
        channel:
          description: Sales channel
          type: number
          example: 12
          nullable: true
        group:
          type: array
          nullable: true
          items:
            type: string
            description: Group or Category ID to which item belongs
            example: 61d38e117162b7dba69c3d6d
        fees:
          type: array
          description: >-
            Fees associated with a specific cart or an individual line item of a
            cart
          nullable: true
          items:
            $ref: '#/components/schemas/fees'
    Tax:
      type: object
      properties:
        type:
          type: string
          description: Tax type
          nullable: true
          example: state_tax
        amount:
          type: number
          description: Tax amount
          format: double
          nullable: true
          example: 2.5
        rateType:
          type: string
          description: Rate type
          nullable: true
          example: rateType
        rate:
          type: number
          description: Rate
          format: double
          nullable: true
          example: 10
    ShipMethod:
      description: Shipping method and details
      type: object
      properties:
        cost:
          description: Shipping cost
          allOf:
            - $ref: '#/components/schemas/ShipCost'
            - nullable: true
        shipMethodId:
          type: string
          description: Shipping method ID
          example: '1234'
        shipmentCarrier:
          type: string
          description: Shipment carrier
          nullable: true
          example: FedEx
        shipmentMethod:
          type: string
          description: Shipment method type
          nullable: true
          example: Next Day
    Address:
      description: Shipping address details
      type: object
      properties:
        attention:
          type: string
          description: Address recipient
          nullable: true
          example: Billing manager
        street1:
          type: string
          description: Address line 1
          nullable: true
          example: 100 NE 100th St.
        street2:
          type: string
          description: Address line 2
          nullable: true
          example: Suite 710
        street3:
          type: string
          description: Address line 3
          nullable: true
          example: Seventh floor
        street4:
          type: string
          description: Address line 4
          nullable: true
          example: 'Attention: Pat E. Kake'
        city:
          type: string
          description: City name
          nullable: true
          example: Seattle
        state:
          type: string
          description: State name
          nullable: true
          example: Washington
        country:
          type: string
          description: Country name
          nullable: true
          example: USA
        zipCode:
          type: string
          description: Zip code
          nullable: true
          example: '98125'
        email:
          type: string
          description: Receiver's email address
          nullable: true
          example: test@mail.com
        kind:
          type: string
          description: Address type
          nullable: true
          example: shipping
        name:
          description: Recipient's name
          allOf:
            - $ref: '#/components/schemas/Name'
            - nullable: true
        phone:
          description: address details for the shipping
          nullable: true
          allOf:
            - $ref: '#/components/schemas/Phone'
            - nullable: true
    PickupPerson:
      description: >-
        Details of the designated or alternative person who will pick up the
        cart items
      type: object
      properties:
        name:
          description: Name of pickup person
          allOf:
            - $ref: '#/components/schemas/Name'
            - nullable: true
        phone:
          description: Number of pickup person
          allOf:
            - $ref: '#/components/schemas/Phone'
            - nullable: true
        email:
          type: string
          description: Receiver's email address
          nullable: true
          example: test@mail.com
    PaymentDetailsRequest:
      required:
        - amount
        - billToAddress
        - connectorName
        - currency
        - conversion
        - paymentToken
      type: object
      properties:
        connectorName:
          type: string
          description: Payment connector name
          example: Authorizenet
        paymentMethod:
          type: string
          description: Payment method
          nullable: true
          example: card
        paymentMethodType:
          type: string
          description: Payment method type
          nullable: true
          example: tamara or tabby
        paymentToken:
          type: string
          description: Payment token identifier
          example: 534234543
        amount:
          $ref: '#/components/schemas/baseAmount'
          description: Payment amount
        currency:
          $ref: '#/components/schemas/currency'
        conversion:
          $ref: '#/components/schemas/currencyConversion'
        billToAddress:
          allOf:
            - $ref: '#/components/schemas/BillToAddress'
            - type: object
              description: Billing address for the order
        attributes:
          type: object
          additionalProperties: true
          description: Payment Attributes
          nullable: true
          example:
            Attribute1: 620d8896058edb0009385311
    OrderNumberSource:
      type: string
      description: Determines how an order number is created
      enum:
        - CART_ID
        - FABRIC
        - EXTERNAL
        - NONE
    InventoryConfiguration:
      type: object
      properties:
        source:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/DependencySource'
        ttl:
          description: Expiry time in seconds
          type: integer
          format: int32
          example: 60
          nullable: true
        newItemBehaviour:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ConfigurationBehaviour'
        updateItemBehaviour:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ConfigurationBehaviour'
        viewItemBehaviour:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ConfigurationBehaviour'
        expiredDataBehaviour:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ConfigurationBehaviour'
    ErrorEnum:
      description: List of error codes
      type: string
      enum:
        - UNKNOWN_ERROR
        - BAD_REQUEST
        - INVALID_TOKEN
        - ACCOUNT_ID_NOT_CONFIGURED
        - ACCOUNT_ID_ALREADY_EXISTS
        - DEPLOYMENT_IN_PROGRESS
        - INVALID_CART_ID
        - CART_NOT_FOUND
        - ITEM_NOT_FOUND
        - UNABLE_TO_GET_CART
        - UNABLE_TO_GET_INVENTORY
        - ITEM_OUT_OF_STOCK
        - UPDATE_CART_ERROR
        - DELETE_CART_ATTRIBUTE_ERROR
        - EMPTY_CART_ERROR
        - UNABLE_TO_GET_PRICE
        - UNABLE_TO_GET_PROMO
        - UNABLE_TO_GET_ITEM
        - PROMO_ALREADY_APPLIED_ERROR
        - CART_ALREADY_SHARED_ERROR
        - PROMO_NOT_FOUND_ERROR
        - PROMO_NOT_APPLICABLE_ERROR
        - USER_NOT_FOUND
        - ATTRIBUTE_NOT_FOUND
        - INCORRECT_ATTRIBUTE_LEVEL
        - INCORRECT_ATTRIBUTE_VALUE
        - ITEM_ATTRIBUTE_ALREADY_EXIST
        - LINE_ITEM_ID_NOT_FOUND
        - ITEM_ID_NOT_APPLICABLE
        - CART_STATUS_NOT_FOUND
        - CART_STATUS_CANNOT_BE_UPDATED
        - GUEST_CART_STATUS_CANNOT_BE_UPDATED
        - CART_STATUS_ALREADY_ASSIGNED
        - TOKEN_INTROSPECT_ERROR
        - MAX_CARTS_LIMIT_REACHED
        - UNAUTHORIZED_USER_ERROR
        - API_PERMISSION_UNDEFINED
        - INVALID_DATE_RANGE
        - INVALID_DATE_FORMAT
        - INVALID_SEARCH_ATTRIBUTE
        - ITEM_SERVICE_NOT_CONFIGURED
        - ATTRIBUTE_SERVICE_NOT_CONFIGURED
        - SHIP_ID_NOT_FOUND
        - NEGATIVE_SHIPPING_COST
        - REQUEST_DENIED
        - BAD_CONFIGURATION
        - SERVICE_NOT_ENABLED
    CartItem:
      description: Cart item details
      required:
        - quantity
        - sku
      type: object
      properties:
        items:
          type: array
          description: List of items in a cart
          allOf:
            - $ref: '#/components/schemas/CartItem'
            - nullable: true
        cartItemId:
          type: string
          description: Cart item ID
          nullable: true
          example: 12gved0f-7645-40cb-y7b0-167f8bggdb3z
        itemId:
          type: string
          description: Item ID
          nullable: true
          example: '1730902008'
        title:
          type: string
          description: Item name
          nullable: true
          example: Light Cover
        sku:
          type: string
          description: Item SKU
          example: 13B9CL6WT2SLW
        attributes:
          description: Additional item options
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProductAttributes'
        createdAt:
          type: string
          description: Item creation time
          format: date-time
          nullable: true
          example: '2022-02-18T15:12:40.974580'
        updatedAt:
          type: string
          description: Last time item was updated
          format: date-time
          nullable: true
          example: '2022-02-18T15:12:40.974580'
        quantity:
          type: integer
          format: int32
          description: total quantity of the line item
          example: 15
        type:
          type: string
          description: >-
            ItemType(WEB_SHIP/WEB_PICKUP/WEB_SDD/INTERNATIONAL/POS/POS_SHIP/POS_PICKUP)
          nullable: true
          example: WEB_SHIP
        subType:
          type: string
          description: ItemSubType(For International type, provide subType as Border-free)
          nullable: true
          example: Border-free
        priceListId:
          type: string
          description: Item price list ID
          nullable: true
          example: '108674'
        lineItemId:
          minimum: 1
          type: integer
          description: Cart item sequence number (starts at 1)
          format: int32
          example: 1
        isActive:
          description: true = Item is active<br />false = Item is not active
          type: boolean
          nullable: false
          example: true
          default: true
        unitPrice:
          description: Individual item price
          allOf:
            - $ref: '#/components/schemas/CartPrice'
            - nullable: true
        totalPrice:
          description: Total price for the full quantity of this item
          allOf:
            - $ref: '#/components/schemas/CartPrice'
            - nullable: true
        attributeTotalPrice:
          type: number
          description: Total price of item attributes
          format: double
          nullable: true
          example: 10
        group:
          type: array
          nullable: true
          items:
            type: string
            description: Group or Category ID to which item belongs
            example: 61d38e117162b7dba69c3d6d
        extra:
          type: object
          additionalProperties: true
          description: Extra metadata passed by caller
          nullable: true
          example:
            productFamily: Laptop computers
        channel:
          description: Sales channel
          type: number
          example: 12
        isPickup:
          description: 'true: Item is set for pickup<br />false: Item is set for delivery'
          type: boolean
          example: true
        warehouseId:
          type: string
          description: Warehouse ID
          nullable: true
          example: XYZ-1234
        shipToId:
          type: string
          description: Shipping ID
          nullable: true
          example: fef78121-bee3-4448-bf1c-d5b5461dbda2
        shipTo:
          description: Shipment details
          allOf:
            - $ref: '#/components/schemas/ShipObject'
            - nullable: true
        fulfillment:
          description: Item details for order fulfillment
          allOf:
            - $ref: '#/components/schemas/Fulfillment'
            - nullable: false
    CartPrice:
      description: Price of all items in the cart
      required:
        - amount
        - currency
        - discount
      type: object
      properties:
        currency:
          type: string
          description: Currency type
          example: USD
          default: USD
        amount:
          type: number
          description: Price before discount
          format: double
          example: 100
        sale:
          type: number
          description: Price after discount
          format: double
          nullable: true
          example: 80
        discount:
          description: >-
            Offer discount details. Empty list {} should be passed in case of no
            discount.
          allOf:
            - $ref: '#/components/schemas/OfferDiscount'
    ProductAttributes:
      description: Additional item options
      required:
        - attributeId
        - name
        - price
        - type
      type: object
      properties:
        attributeId:
          type: string
          description: Attribute ID
          example: 60c2a358eb2ec30008ae70a1
        name:
          type: string
          description: Attribute name
          example: gift wrapping (small)
        description:
          type: string
          description: Attribute description
          nullable: true
          example: Gift wrapping for a small package
        mapping:
          type: string
          description: 'ITEM: Item-level attribute<br />ORDER: Cart-level attribute'
          nullable: true
          example: ITEM
        type:
          type: string
          description: Attribute type
          example: GIFT
        value:
          type: string
          description: Attribute applicability
          nullable: true
          example: 'true'
        price:
          type: number
          description: Attribute price
          format: float
          example: 10
        level:
          type: string
          description: Attribute level
          nullable: true
          example: order
        items:
          type: array
          nullable: true
          items:
            type: string
            description: Discount object
            example: '1000000001'
    CartItemPriceAdjustment:
      description: Price adjustment details
      required:
        - id
        - reason
        - amount
      type: object
      properties:
        id:
          type: string
          description: >-
            Price adjustment ID; it identifies a single price adjustment object
            from the list of price adjustments.
          nullable: false
          example: d7e78a21-bee3-4448-bf1c-d5b5461dbda2
        reason:
          type: string
          description: Price adjustment reason
          nullable: false
          example: compensation for delay
        amount:
          type: number
          description: >-
            Amount by which the line item's total amount or the specified cart's
            total amount is adjusted
          format: double
          example: 20
          minimum: 0
        attributes:
          type: object
          additionalProperties: true
          description: Placeholder for additional information
          nullable: true
          example:
            goldMember:
              - false
    ShipObject:
      description: Cart shipping details
      type: object
      properties:
        shipToId:
          type: string
          description: Shipping details ID
          nullable: true
          example: fef78121-bee3-4448-bf1c-d5b5461dbda2
        cartId:
          description: Cart ID
          type: string
          nullable: true
          example: d7e78a21-bee3-4448-bf1c-d5b5461dbda2
        createdAt:
          type: string
          description: Shipping details creation time
          format: date-time
          nullable: true
          example: '2022-02-18T15:12:40.974580'
        updatedAt:
          type: string
          description: Last time shipping details were updated
          format: date-time
          nullable: true
          example: '2022-02-18T15:12:40.974580'
        shipMethod:
          description: Shipping method and details
          allOf:
            - $ref: '#/components/schemas/ShipMethod'
            - nullable: true
        address:
          description: Shipping address
          allOf:
            - $ref: '#/components/schemas/Address'
            - nullable: true
        shipToType:
          type: string
          description: Shipping type
          nullable: true
          example: SHIP_TO_ADDRESS
        taxCode:
          type: string
          description: Shipping tax code
          nullable: true
          example: FR1000
        isPickup:
          description: true = Item is set for pickup<br />false = Item is set for delivery
          type: boolean
          example: true
        altPickupPerson:
          description: Alternative pickup person
          allOf:
            - $ref: '#/components/schemas/PickupPerson'
            - nullable: true
        pickupPerson:
          description: Designated pickup person
          allOf:
            - $ref: '#/components/schemas/PickupPerson'
            - nullable: true
        warehouseId:
          type: string
          description: Warehouse ID
          nullable: true
          example: XYZ-1234
        storeId:
          type: string
          description: Store ID
          nullable: true
          example: ABC-123
    ShipCost:
      description: Shipping cost and details
      required:
        - amount
      type: object
      properties:
        amount:
          type: number
          description: Shipping cost
          format: double
          example: 10
        currency:
          type: string
          description: Currency type
          example: USD
          nullable: true
        discount:
          description: Shipping discount
          type: number
          format: double
          nullable: true
          example: 5
    Name:
      description: Person's name
      type: object
      properties:
        first:
          type: string
          description: Individual's first name
          nullable: true
          example: Pat
        middle:
          type: string
          description: Individual's middle name or initial
          nullable: true
          example: E
        last:
          type: string
          description: Individual's last name
          nullable: true
          example: Kake
    Phone:
      description: Phone number details
      required:
        - number
      type: object
      properties:
        number:
          type: string
          description: Phone number
          example: 123-456-7899
        kind:
          type: string
          description: Phone number type
          nullable: true
          example: MOBILE
          enum:
            - MOBILE
            - HOME
            - BUSINESS
    baseAmount:
      type: number
      format: double
      description: Amount
      nullable: true
      example: 10.5
    currencyConversion:
      type: number
      description: Currency Conversion (For USD = 1, For Non-USD = conversion ratio to USD)
      format: double
      default: 1
      example: 0.5
    BillToAddress:
      description: Billing address details
      required:
        - city
        - country
        - customerId
        - postalCode
        - state
        - street1
      type: object
      properties:
        name:
          description: Recipient's name
          allOf:
            - $ref: '#/components/schemas/Name'
            - nullable: true
        phone:
          description: Recipient's phone number details
          nullable: true
          allOf:
            - $ref: '#/components/schemas/Phone'
            - nullable: true
        email:
          type: string
          description: Receiver's email address
          nullable: true
          example: test@mail.com
        street1:
          type: string
          description: Address line 1
          example: 100 NE 100th St.
        street2:
          type: string
          description: Address line 2
          nullable: true
          example: Suite 710
        street3:
          type: string
          description: Address line 3
          nullable: true
          example: Seventh floor
        street4:
          type: string
          description: Address line 4
          nullable: true
          example: 'Attention: Pat E. Kake'
        city:
          type: string
          description: City name
          example: Seattle
        state:
          type: string
          description: State name
          example: Washington
        country:
          type: string
          description: Country name
          example: USA
        postalCode:
          type: string
          description: Postal code
          example: '98125'
        customerId:
          type: string
          description: Customer ID created for payment instruction
          example: 98121
        type:
          type: string
          description: Address type
          nullable: true
          example: Residence
        latitude:
          type: number
          description: Latitude
          nullable: true
          example: 35.294952
        longitude:
          type: number
          description: Longitude
          nullable: true
          example: 32.294952
    DependencySource:
      type: string
      description: Source of an order number
      enum:
        - FABRIC
        - EXTERNAL
        - NONE
    ConfigurationBehaviour:
      type: string
      description: Cart configurations used to determine behavior of cart.
      enum:
        - BLOCK
        - WARN
        - DROP
        - NONE
    Fulfillment:
      description: Item details for order fulfillment
      type: object
      properties:
        type:
          type: string
          description: Type of order fulfillment
          nullable: true
          example: WEB_SHIP
        networkCode:
          type: string
          description: Specifies the network of inventory for item
          nullable: true
          example: ShipToCNC
        channelId:
          type: string
          description: Specifies the channel of inventory for item
          nullable: true
          example: '12'
        inventoryType:
          type: string
          description: Specifies the type of inventory for item
          nullable: true
          example: availablePreorder
        inventory:
          type: object
          description: Inventory details of the cart item
          allOf:
            - $ref: '#/components/schemas/InventoryV2'
            - nullable: true
    OfferDiscount:
      description: Offer discount details
      required:
        - discounts
        - price
        - promosApplied
      type: object
      properties:
        price:
          type: number
          description: Discounted price of the item
          format: double
          minimum: 0
          example: 80
        discountAmount:
          type: number
          description: Discounted percentage amount of the item
          format: double
          example: 20
          minimum: 0
        promosApplied:
          type: array
          items:
            $ref: '#/components/schemas/CartPromo'
        discounts:
          description: List of discounts applied
          type: array
          items:
            $ref: '#/components/schemas/Discount'
    InventoryV2:
      description: Inventory details of the cart item
      type: object
      properties:
        virtualCounters:
          description: >-
            View quantity of inventory, based on pre configured value. For
            example, 'availableToPurchase' can be a custom attribute configured
            by merchants.
          type: object
          example:
            availableToPurchase: 10
        id:
          description: Inventory ID
          type: string
          example: 62272e917b12209e68751d94
        sku:
          description: SKU of  the item
          type: string
          example: SKU00025
        itemId:
          description: Item ID for which inventory is updated
          type: integer
          format: int64
          example: 4225678911
        locationNum:
          description: >-
            Location number is used to identify the warehouse or location where
            the inventory is kept
          type: integer
          format: int32
          example: 473746
        channelId:
          description: >-
            Sales channel ID. This field is used to identify where the business
            operations are being held.
          type: string
          example: 12
        vendorId:
          description: Vendor ID
          type: string
          example: vendor123
        leadTime:
          description: >-
            The amount of time between when a purchase order is placed to
            replenish products and when the order is received in the warehouse
          type: string
          example: 1234
        inventoryType:
          description: Type of inventory
          type: string
          example: Safety stock
        infiniteInventory:
          description: >-
            Infinite inventory flag.<br /> `true` indicates that the inventory
            can be consumed any number of times as per need<br />`false`
            indicates that the inventory cannot be used infinitely, and has a
            limit to be consumed
          type: boolean
          example: true
        counters:
          description: >-
            Inventory counter (also known as inventory position) configured by
            the merchant
          type: object
          example:
            on-hand: 10
        attributes:
          description: Custom inventory attributes configured by the merchant
          type: object
          example:
            buy online, pick up in-store (bopis): true
        backOrderDate:
          type: string
          description: Inventory restock date
          format: date-time
          example: '2022-08-08T00:00:00.000Z'
        preOrderDate:
          type: string
          description: First ship date of inventory
          format: date-time
          example: '2022-08-08T00:00:00.000Z'
        backOrderLimit:
          type: integer
          description: Maximum restock inventory quantity
          format: int32
          example: 100
        preOrderLimit:
          type: integer
          description: Maximum quanity of inventory for first-ship
          format: int32
          example: 100
        safetyStock:
          type: integer
          description: Reserved inventory quantity at the location
          format: int32
          example: 10
        lowStock:
          type: integer
          description: Inventory quantity to mark as low stock at the location
          format: int32
          example: 10
        segment:
          type: string
          description: Inventory segment
          example: Clothing
        region:
          type: string
          description: Region where inventory is managed
          example: US
    CartPromo:
      description: Promotions or coupons for cart items
      required:
        - promoId
      type: object
      properties:
        promoId:
          type: string
          description: Unique promotion/coupon ID
          example: fza065tdr787
        promoCode:
          type: string
          description: General promotion/coupon code
          nullable: true
          example: coupon123
        value:
          type: string
          description: Promotion/coupon code discount value
          nullable: true
          example: '20'
        unit:
          type: string
          description: Promotion/coupon code discount unit
          nullable: true
          example: '%OFF'
    Discount:
      description: Promotion or coupon applied to an item
      required:
        - promoId
      type: object
      properties:
        promoId:
          type: string
          description: Unique promotion/coupon ID
          example: fza065tdr787
        promoCode:
          type: string
          description: General promotion/coupon code
          nullable: true
          example: coupon123
        promoTitle:
          type: string
          description: Promotion name
          nullable: true
          example: New Year discount
        quantity:
          type: integer
          description: Quantity of this item in the cart
          format: int32
          nullable: true
          example: 1
        amount:
          type: number
          description: Total amount of discount applied
          format: double
          nullable: true
          example: 20
        value:
          type: number
          description: Promotion value
          format: double
          nullable: true
          example: 20
        groupId:
          type: string
          description: Promotion group ID
          nullable: true
          example: new-items
        promotionType:
          type: string
          description: Promotion type
          nullable: true
          example: PROMOTION
        priority:
          type: integer
          description: Promotion priority
          format: int32
          nullable: true
          example: 1
        stackable:
          type: boolean
          description: >-
            true = This promotion is stackable with other promotions<br />false
            = This promotion cannot be stacked with other promotions
          nullable: true
          example: false
        sku:
          type: string
          description: Item SKU to which promotion is applied
          nullable: true
          example: 16B2GS8LD5FDS
        itemId:
          type: string
          description: ID of item to which promotion is applied
          nullable: true
          example: '1000000001'
        itemKey:
          type: string
          description: Key of item to which promotion is applied
          nullable: true
          example: Key1234
        message:
          type: string
          description: Coupon code description
          nullable: true
          example: New Year Promotion
        unit:
          type: string
          description: Discount unit
          nullable: true
          example: '%OFF'
        proratedQuantity:
          type: integer
          description: >-
            The `proratedQuantity` is used in conjunction with `proratedAmount`
            to determine the discount portion allocated to the respective units
            of BuyGet promotions. This is applicable in partial return
            scenarios.
          format: int32
          nullable: true
          example: 1
        proratedAmount:
          type: number
          description: The prorated discount amount.
          format: double
          nullable: true
          example: 3.33

````