> ## 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.

# Search for carts

> Search for carts meeting specified criteria, including creation date, status, user, approver, and purchase order.



## OpenAPI

````yaml cart.openapi post /carts/search
openapi: 3.0.1
info:
  title: Cart
  description: >-
    fabric's **Cart API** lets 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, and apply coupons and other attributes (for example, gift
    wrapping) to the line items. Additionally, the API supports more advanced
    tasks such as using multiple carts within a B2B organization, sharing carts,
    and supporting a unified cart experience for multi-region and multi-brand
    businesses. The Cart API provides 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 fabric's
    Order Management System (OMS).
  version: 3.0.0
  x-audience: external-public
  contact:
    name: Cart Support
    email: support.cnc@fabric.inc
  license:
    name: fabric API License
    url: https://fabric.inc/api-license
  termsOfService: https://fabric.inc/terms-of-use
servers:
  - url: https://api.fabric.inc/v3
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Carts
    description: >-
      Carts endpoints let you perform basic cart operations, including finding,
      creating, updating, and merging carts. You can also apply or remove a
      promotion code to or from a cart.
  - name: Line Items
    description: >-
      Line Items endpoints let you perform basic line item operations, including
      creating, updating, and deleting line items in a cart. You can also get
      and update line item attributes and shipping details.
  - name: Shipping Details
    description: >-
      Shipping details endpoints let you get, create, and update cart shipping
      details.
  - name: Adjustments
    description: >-
      Using these endpoints, you can make adjustments to a cart or line items in
      a cart.
externalDocs:
  description: Find out more about Cart
  url: https://developer.fabric.inc/v3/reference/cart-getting-started
paths:
  /carts/search:
    post:
      tags:
        - Carts
      summary: Search for carts
      description: >-
        Search for carts meeting specified criteria, including creation date,
        status, user, approver, and purchase order.
      operationId: searchCarts
      parameters:
        - $ref: '#/components/parameters/xFabricTenantId'
        - $ref: '#/components/parameters/xFabricChannelId'
        - $ref: '#/components/parameters/xFabricRequestId'
        - $ref: '#/components/parameters/queryParameterLimit'
        - $ref: '#/components/parameters/queryParameterOffset'
      requestBody:
        description: Request body for search cart
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/searchCartRequest'
        required: true
      responses:
        '200':
          description: OK
          headers:
            x-fabric-request-id:
              $ref: '#/components/headers/xFabricRequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/searchCartResponse'
        '400':
          description: Client error
          headers:
            x-fabric-request-id:
              $ref: '#/components/headers/xFabricRequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error400'
        '401':
          description: Unauthorized
          headers:
            x-fabric-request-id:
              $ref: '#/components/headers/xFabricRequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error401'
        '500':
          description: Internal server error
          headers:
            x-fabric-request-id:
              $ref: '#/components/headers/xFabricRequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error500'
components:
  parameters:
    xFabricTenantId:
      in: header
      name: x-fabric-tenant-id
      description: >-
        A header used by fabric to identify the tenant making the request. You
        must include tenant id in the authentication header for an API request
        to access any of fabric’s endpoints. You can retrieve the tenant id ,
        which is also called account id, from
        [Copilot](/v3/platform/settings/account-details/getting-the-account-id).
        This header is required.
      schema:
        type: string
      example: 617329dfd5288b0011332311
      required: true
    xFabricChannelId:
      in: header
      name: x-fabric-channel-id
      description: >-
        x-fabric-channel-id identifies the sales channel where the API request
        is being made; primarily for multichannel use cases. The channel ids are
        12 corresponding to US and 13 corresponding to Canada. The default
        channel id is 12. This field is required.
      schema:
        type: string
      example: '12'
      required: false
    xFabricRequestId:
      in: header
      name: x-fabric-request-id
      description: Unique request ID
      schema:
        type: string
      example: 263e731c-45c8-11ed-b878-0242ac120002
      required: false
    queryParameterLimit:
      name: limit
      in: query
      description: Number of records to be returned
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        default: 10
        maximum: 100
    queryParameterOffset:
      name: offset
      in: query
      description: Number of records to skip before returning records
      required: false
      schema:
        type: integer
        format: int32
        default: 0
        minimum: 0
        example: 10
  schemas:
    searchCartRequest:
      description: >-
        Cart search parameters and response pagination details <br /> Search for
        carts meeting specified criteria, including creation date and status
      required:
        - filter
      type: object
      properties:
        filter:
          allOf:
            - description: Cart search parameters
            - $ref: '#/components/schemas/cartFilter'
    searchCartResponse:
      description: Cart search response object
      type: object
      properties:
        query:
          $ref: '#/components/schemas/paginationListQueryResponse'
        data:
          description: Details for carts meeting search criteria
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/cartResponse'
    error400:
      type: object
      description: Bad request error
      properties:
        type:
          description: Error code
          type: string
          example: BAD_REQUEST
        message:
          description: Error description
          type: string
          example: Bad Request
    error401:
      type: object
      description: Unauthorized
      properties:
        type:
          description: Error code
          type: string
          example: UNAUTHORIZED
        message:
          description: Error description
          type: string
          example: Unauthorized User
    error500:
      type: object
      description: Internal server error
      properties:
        type:
          description: Error code
          type: string
          example: INTERNAL_SERVER_ERROR
        message:
          description: Error description
          type: string
          example: Internal server error
    cartFilter:
      description: Parameters used to search for carts
      type: object
      properties:
        attributes:
          additionalProperties: true
          description: Search within attributes of the cart
          example:
            requestId: 620d8896058edb0009385311
          nullable: true
          type: object
        date:
          allOf:
            - $ref: '#/components/schemas/cartDateRange'
            - nullable: true
          description: Creation date range of carts to be returned
        description:
          type: string
          description: Cart description
          nullable: true
          example: IT department cart
        name:
          type: string
          description: Cart name
          nullable: true
          example: cart_it
        statuses:
          description: Status of carts to be returned
          items:
            $ref: '#/components/schemas/cartStatus'
          nullable: true
          type: array
    paginationListQueryResponse:
      description: Paging details used for returning records
      type: object
      required:
        - count
        - limit
        - offset
      properties:
        limit:
          description: Number of records being returned
          type: integer
          format: int32
          minimum: 1
          maximum: 100
          example: 10
        count:
          description: Total number of records found
          type: integer
          format: int32
          minimum: 0
          example: 10
        offset:
          description: Number of records to skip before returning records
          type: integer
          format: int32
          example: 150
    cartResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique cart identifier
          example: c695af14-5e33-402c-9d8d-71edcf4856a8
          nullable: true
        createdAt:
          allOf:
            - $ref: '#/components/schemas/baseTime'
            - description: Time cart was created
              nullable: true
        updatedAt:
          allOf:
            - $ref: '#/components/schemas/baseTime'
            - description: Time cart was last updated
              nullable: true
        name:
          type: string
          description: Cart name
          nullable: true
          example: cart_it
        description:
          type: string
          description: Cart description
          nullable: true
          example: IT department cart
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/lineItemResponse'
        totalItems:
          type: integer
          description: Number of line items in the cart
          format: int32
          nullable: true
          example: 3
        totalUniqueItems:
          type: integer
          description: >-
            Number of different (unique) line items in the cart based on line
            item ID
          format: int32
          nullable: true
          example: 2
        status:
          allOf:
            - $ref: '#/components/schemas/cartStatus'
            - nullable: true
        accountId:
          type: string
          description: Customer account ID
          nullable: true
          example: 5f689caa4216e7000750d1ef
        configuration:
          type: object
          description: Cart configurations
          nullable: true
          allOf:
            - $ref: '#/components/schemas/cartConfiguration'
        customerContext:
          type: object
          description: Customer context
          nullable: true
          allOf:
            - $ref: '#/components/schemas/customerContext'
        totalAmount:
          allOf:
            - $ref: '#/components/schemas/baseMoney'
            - description: >-
                Total price of line items after discount, including shipping and
                shipping discount
              nullable: true
        totalDiscount:
          allOf:
            - $ref: '#/components/schemas/baseMoney'
            - description: Total discount applied to cart
              nullable: true
        totalFees:
          allOf:
            - $ref: '#/components/schemas/baseMoney'
            - description: Total fees applied to cart
              nullable: true
        subTotal:
          allOf:
            - $ref: '#/components/schemas/baseMoney'
            - description: Total price of line items, including shipping, without discount
              nullable: true
        currency:
          type: string
          description: Currency type
          example: USD
          default: USD
        attributes:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
          description: Cart attributes
          example:
            approver: 620d8896058edb0009385311
        appliedDiscounts:
          description: Applied discounts
          type: array
          items:
            type: object
            description: Discount details
            example:
              promotionId: 6197ec46e836ff000952c665
              promotionName: Buy shoes get socks for free
              couponCode: SUPERCOUPON20
              type: COUPON
              amount: 105.15
            properties:
              promotionId:
                type: string
                nullable: true
                description: Promotion ID
                example: 6197ec46e836ff000952c664
              couponCode:
                type: string
                nullable: true
                description: Coupon code
                example: SUPERCOUPON20
              promotionName:
                type: string
                nullable: true
                description: Promotion name
                example: 20% off
              type:
                type: string
                nullable: true
                description: Promotion type
                example: COUPON
              amount:
                type: number
                nullable: true
                description: Discount amount
                format: double
                example: 10.15
        fees:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/fees'
        suggestedProducts:
          type: array
          nullable: true
          description: Suggested free products
          items:
            type: object
            description: >-
              Complimentary or free products offered to shoppers in the context
              of BuyGet and SpendGet promotions.
            properties:
              promotionId:
                type: string
                nullable: true
                description: The promotion ID
                example: 6197ec46e836ff000952c665
              promotionName:
                type: string
                nullable: true
                description: The promotion name
                example: Buy shoes get socks for free
              itemId:
                type: integer
                nullable: true
                description: The item ID of the free product
                format: int32
                example: 234343
              itemIds:
                type: array
                description: >-
                  The suggested item IDs from which shoppers can choose one or
                  more items based on the configuration of BuyGet promotion.
                  Even if an item ID is already in the cart, they appear in the
                  list of potential item IDs. This ensures visibility and
                  enables shoppers to make informed decisions during the
                  checkout process.
                items:
                  type: integer
                  description: The item ID of the free product.
                  format: int32
                  example: 500001
              sku:
                type: string
                description: The Stock Keeping Unit (SKU) of the free product.
                example: SHOE1234
              skus:
                type: array
                description: >-
                  The suggested SKUs from which shoppers can choose one or more
                  items based on the configuration of BuyGet promotion. Even if
                  an SKU is already in the cart, they appear in the list of
                  potential SKUs. This ensures visibility and enables shoppers
                  to make informed decisions during the checkout process.
                items:
                  type: string
                  description: The Stock Keeping Unit (SKU) of the free product.
                  example: SHOE-4
              eligiblePriceLists:
                type: array
                description: >-
                  The price list IDs eligible for promotion. When they're not
                  specified, promotion applies to all price lists.
                items:
                  type: integer
                  description: The price list ID.
                  format: int32
                  example: 1000
              quantity:
                type: integer
                description: The number of complimentary items in the promotion.
                format: int32
                example: 2
              promotionQuantity:
                type: integer
                description: >-
                  The maximum limit of complimentary items available for the
                  BuyGet promotion. For example, consider the
                  `promotionQuantity` is 10 and promotion condition is Buy 1
                  pair of shoes and Get 1 pair of socks free. If a shopper
                  purchases up to 10 pairs of shoes, they will get an equivalent
                  number of socks for free. However, even if they buy more than
                  10 pairs of shoes, the maximum free pairs of socks will remain
                  10, as defined by the `promotionQuantity` parameter.
                format: int32
                example: 10
              isFree:
                type: boolean
                description: >-
                  A flag indicating whether a free item is included as part of
                  promotion. Set to `true` to indicate a free item is offered as
                  promotion and `false` to indicate otherwise.
              discountType:
                type: string
                description: The type of discount.
                example: PERCENTAGE_OFF
              amount:
                type: number
                description: The discount amount.
                format: double
                example: 100.15
        orderNumber:
          $ref: '#/components/schemas/orderNumber'
          nullable: true
        error:
          allOf:
            - $ref: '#/components/schemas/cartError'
            - description: Errors in this cart
    cartDateRange:
      description: Filter used to search for carts created within the specified date range
      properties:
        endsAt:
          description: Latest cart creation time for carts to be returned
          example: '2022-03-02T15:12:40.974Z'
          format: date-time
          nullable: true
          type: string
        startsAt:
          description: Earliest cart creation time for carts to be returned
          example: '2022-02-24T15:12:40.974Z'
          format: date-time
          nullable: true
          type: string
      type: object
    cartStatus:
      type: string
      example: PENDING
      enum:
        - PENDING
        - DELETED
      description: >-
        Cart status <br/> `PENDING` - Cart is in pending state <br/>  `DELETED`
        - Cart is in deleted state
    baseTime:
      description: Date time in ISO-8601 format
      type: string
      format: date-time
      example: '2022-09-06T14:07:17.000Z'
    lineItemResponse:
      description: Line item details
      type: object
      properties:
        id:
          type: string
          description: Line item ID
          nullable: true
          example: 12gved0f-7645-40cb-y7b0-167f8bggdb3z
        itemId: 798ab69d-923b-453c-ada2-4fe4e1e359a6
        position:
          minimum: 1
          type: integer
          description: Line item position number (starts at 1)
          format: int32
          example: 1
        name:
          type: string
          description: Line item name
          nullable: true
          example: Varnet Garden Light Kit
        sku:
          type: string
          description: Line item SKU
          example: 16B2GS8LD5FDS
        productAttributes:
          description: Additional line item options
          type: array
          nullable: true
          items:
            description: Product attribute as defined within Product Catalog.
            required:
              - value
              - name
            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: Attribute mapping
                nullable: true
                example: ITEM
              type:
                type: string
                description: Attribute type
                example: GIFT
                nullable: true
              value:
                type: string
                description: Attribute value
                nullable: true
                example: 'true'
              price:
                type: number
                format: double
                nullable: true
                description: Attribute price
                example: 10
              level:
                type: string
                description: Attribute level
                nullable: true
                example: order
        createdAt:
          allOf:
            - $ref: '#/components/schemas/baseTime'
            - description: Time line item was created
        updatedAt:
          allOf:
            - $ref: '#/components/schemas/baseTime'
            - description: Time line item was last updated
        quantity:
          type: integer
          format: int32
          description: Line item quantity
          example: 15
        priceListId:
          type: integer
          description: Line item price list ID
          nullable: true
          format: int32
          example: 108674
        isActive:
          description: 'true: Item is active<br />false: Item is inactive'
          type: boolean
          nullable: true
          example: true
        price:
          description: Individual line item price
          allOf:
            - 4beadef5-95d7-4ca2-8dc5-888227ed2b50
            - nullable: true
        discounts:
          description: Individual line item discount
          type: array
          items: 7506aca7-e848-4b12-a8cf-390aa46550d1
        groups:
          type: array
          nullable: true
          items:
            type: string
            description: Group or category ID to which line item belongs
            example: 61d38e117162b7dba69c3d6d
        attributes:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
          description: Attributes passed by caller
          nullable: true
          example:
            productFamily: Laptop computers
        channel:
          $ref: '#/components/schemas/salesChannel'
        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
        shippingDetails:
          description: Shipping details
          allOf:
            - $ref: '#/components/schemas/shippingDetailResponse'
            - nullable: true
        fulfillment:
          $ref: '#/components/schemas/fulfillmentResponse'
        fees:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/fees'
        adjustments:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/priceAdjustment'
    cartConfiguration:
      description: Cart configurations
      type: object
      properties:
        allowAnonymousUser:
          type: boolean
          default: true
          description: >-
            true: Cart can be a guest cart, allowing users to configure a cart
            without logging in <br/> false: User must log in to configure a cart
        orderNumberSource:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/orderNumberSource'
        isSoftReservationEnabled:
          type: boolean
          default: false
          description: >-
            true: Soft reservation is enabled. When shoppers add items to cart,
            fabric reserves the items in inventory. <br/> false: fabric doesn't
            reserve the items when added to cart.
        orderSequence:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/orderSequence'
        orderNumberGeneration:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/orderNumberGeneration'
    customerContext:
      description: Customer context of a cart
      type: object
      properties:
        id:
          type: string
          description: Identifies a customer
          example: d7e78a21-bee3-4448-bf1c-d5b5461dbda2
          nullable: true
        type:
          type: string
          description: Customer type
          example: EMPLOYEE
          nullable: true
        attributes:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
          description: Customer attributes
          nullable: true
          example:
            isAdmin: false
        segments:
          type: array
          nullable: true
          description: The segments to which the shopper or customer belong.
          items:
            type: object
            description: The segments to which the user belong.
            example:
              - name: category
                value:
                  - GOLD
                  - YELLOW
            properties:
              name:
                description: The segment name.
                type: string
                example: category
              value:
                type: array
                description: The segment values.
                items:
                  type: string
                  example: GOLD
    baseMoney:
      type: number
      format: double
      nullable: true
      description: Money amount in specified currency
      example: 10
    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:
            anyOf:
              - type: string
              - type: number
              - type: boolean
          description: Placeholder for additional information in `key:value` pairs
          nullable: true
          example:
            from: sam
    orderNumber:
      type: string
      description: The order number
      example: '121213'
    cartError:
      description: Cart error information
      type: object
      properties:
        prices:
          description: Offers
          type: array
          items:
            $ref: '#/components/schemas/offers'
        promotionErrors:
          description: Promotion exception details
          type: array
          items:
            $ref: '#/components/schemas/exceptionDetail'
        inventoryErrors:
          description: Inventory exception details
          type: array
          items:
            $ref: '#/components/schemas/exceptionDetail'
    salesChannel:
      description: Sales channel
      type: string
      example: '12'
    shippingDetailResponse:
      description: Shipping Details
      type: object
      properties:
        id:
          type: string
          description: Shipping details ID
          example: fef78121-bee3-4448-bf1c-d5b5461dbda2
        createdAt:
          allOf:
            - $ref: '#/components/schemas/baseTime'
            - description: Time shipping detail was created
        updatedAt:
          allOf:
            - $ref: '#/components/schemas/baseTime'
            - description: Time shipping detail was last updated
        address:
          description: Shipping address
          allOf:
            - $ref: '#/components/schemas/address'
            - nullable: true
        type:
          type: string
          description: Shipping type
          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
        shippingCost:
          type: number
          format: double
          description: Shipping cost
          example: 150.25
        shippingMethodId:
          type: string
          description: Shipping method ID
          example: dfsae-2d32113-32lpdd
        shippingDiscount:
          type: number
          format: double
          description: Discount amount
          example: 150.25
        shippingMethodName:
          type: string
          description: Shipping method name
          nullable: true
          example: Express Delivery
    fulfillmentResponse:
      description: The fulfillment details.
      type: object
      nullable: true
      properties:
        inventory:
          description: The inventory response.
          nullable: true
          type: object
          properties:
            inventoryId:
              type: string
              description: >-
                System-generated inventory ID. This ID is generated during
                inventory creation.
              example: 723910d81723
            sku:
              type: string
              description: >-
                Product SKU (Stock Keeping Unit) identifier. It serves as the
                primary reference key for the inventory and provides uniqueness
                to the item.
              example: SKU1
            itemId:
              type: integer
              description: >-
                Merchant-defined item ID whose inventory is created or updated.
                If omitted, fabric Inventory service generates the `itemId`. If
                you choose to use the `itemId` in your environment, you must
                include it in all inventory *Write* requests.
              format: int32
              example: 12345
            locationNumber:
              type: integer
              description: >-
                Represents the warehouse or store location where the inventory
                is stored. It's recommended to link `locationNumber` to the
                corresponding value in the fabric Locations service.
              format: int32
              example: 12345
            region:
              type: string
              description: Region where inventory is managed
              example: North America
            channelId:
              type: string
              description: >-
                x-fabric-channel-id identifies the sales channel where the API
                request is being made; primarily for multichannel use cases. The
                channel ids are 12 corresponding to US and 13 corresponding to
                Canada. The default channel id is 12. This field is required.;
                identifies business operations location.
              example: channel_xyz
            vendorId:
              type: string
              description: >-
                ID of the vendor who will replenish the inventory for the
                retailer
              example: vendor1
            createdAt:
              type: string
              description: Time of inventory creation
              format: date-time
              example: '2022-08-01T18:03:28.483971941Z'
            updatedAt:
              type: string
              description: Time when inventory was last updated
              format: date-time
              example: '2022-08-01T20:03:28.483971941Z'
            leadTime:
              type: string
              description: >-
                Time between when an order is placed to replenish inventory and
                when the order is received at warehouse
              example: 5 days
            type:
              type: string
              description: >-
                Inventory type - a classifier attribute that provides
                flexibility to define inventory types
              example: primary
            hasInfiniteInventory:
              type: boolean
              description: >-
                Infinite inventory flag.<br />true: Inventory can be used any
                number of times and doesn't have any consumption limit.<br
                />false: Inventory can't be used infinitely, and has a
                consumption limit.
              example: false
              default: false
            backorderShipmentAt:
              type: string
              description: Time when backorder is shipped
              format: date-time
              example: '2022-08-01T20:03:28.483971941Z'
            preorderShipmentAt:
              type: string
              description: Time when preorder is shipped
              format: date-time
              example: '2022-08-01T20:03:28.483971941Z'
            backorderLimit:
              type: integer
              description: Maximum restock inventory quantity
              format: int32
              example: 50
            preorderLimit:
              type: integer
              description: Maximum first-shipping inventory quantity
              format: int32
              example: 40
            safetyStock:
              type: integer
              description: Reserved inventory quantity at the location
              format: int32
              example: 10
            lowStock:
              type: integer
              description: >-
                Inventory quantity below which consumer service wants to be
                alerted as low stock at the location
              format: int32
              example: 10
            networkCode:
              type: string
              description: Code of the network to which the inventory belongs
              example: ShipToHome
            counters:
              type: object
              additionalProperties:
                type: integer
                description: >-
                  Merchant-defined inventory counter (also known as inventory
                  position)
                format: int32
              description: >-
                Merchant-defined inventory counter (also known as inventory
                position)
              example:
                onHand: 100
                allocated: 10
                shipped: 20
            customAttributes:
              type: object
              additionalProperties:
                type: string
                description: Placeholder for additional info
                example: '{"isBopis":true}'
              description: Placeholder for additional info
              example:
                isBopis: true
            networkCounters:
              type: object
              additionalProperties:
                type: integer
                description: Indicates inventory positions at network
                format: int32
              description: Indicates inventory positions at network
              example:
                softReserve: 10
            virtualCounters:
              type: object
              additionalProperties:
                type: integer
                format: int32
                description: Virtual counters are calculated at run time from counters
              description: Virtual counters are calculated at run time from counters
              example:
                availableToPurchase: 60
      allOf:
        - $ref: '#/components/schemas/fulfillmentRequest'
        - description: Fulfillment details
        - nullable: true
    priceAdjustment:
      description: >-
        Price adjustment details for the specified line item or the specified
        cart
      required:
        - id
        - amount
        - reason
      type: object
      properties:
        id:
          type: string
          description: >-
            Price adjustment ID; it identifies a single price adjustment object
            within the price adjustments array.
          example: c695af14-5e33-402c-9d8d-71edcf4856a8
          nullable: false
        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: 60.5
        reason:
          type: string
          description: Price adjustment reason
          example: CSR Adjustment
        attributes:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
          description: Placeholder for additional information
          nullable: true
          example:
            productFamily: Laptop computers
        createdAt:
          allOf:
            - $ref: '#/components/schemas/baseTime'
            - description: Time cart was created
              nullable: true
        updatedAt:
          allOf:
            - $ref: '#/components/schemas/baseTime'
            - description: Time cart was last updated
              nullable: true
    orderNumberSource:
      type: string
      default: CART_ID
      description: >-
        Determines the order number <br/> CART_ID - Use `cartId` as
        `orderNumber` <br/> FABRIC - Represents the option of allowing the
        merchant to configure the order number by adding a prefix, sequenceKey,
        or other identifier to the fabric-generated order number. <br/> EXTERNAL
        - Represents the option of allowing the tenant or customer to provide a
        custom order number, which can align with their own internal systems or
        processes <br/> NONE - order number isn't required for checkout
      enum:
        - CART_ID
        - FABRIC
        - EXTERNAL
        - NONE
    orderSequence:
      required:
        - sequenceName
      type: object
      properties:
        sequenceName:
          type: string
          description: Order Sequence module name
          example: ORDER_NUMBER
        sequenceKey:
          type: string
          nullable: true
          description: Order sequence format or variant
          example: LOCATE
    orderNumberGeneration:
      type: string
      default: NONE
      description: >-
        Determines the order number generation enum <br/> AUTO - Fabric will
        automatically generate an order number and use it during checkout <br/>
        MANUAL - order number is required to be passed in to the cart journey
        using addOrderNumber endpoint <br/> NONE - order number isn't required
        for checkout.
      enum:
        - AUTO
        - MANUAL
        - NONE
    offers:
      description: Offer details
      required:
        - channel
        - price
      type: object
      properties:
        price:
          allOf:
            - description: Item or discount price details
            - type: object
              description: Calculated price details of line items
              example:
                sale: 1000.15
                cost: 900.15
                base: 2000.15
                unitPriceWithoutDiscounts: 2000.15
                lineTotalWithoutDiscounts: 2000.15
                lineTotalWithDiscounts: 2000.15
                type: BASE
              properties:
                sale:
                  type: number
                  description: Price at which the product is offered for sale
                  format: double
                  example: 1000.15
                  nullable: true
                cost:
                  type: number
                  description: >-
                    Cost of goods sold, from either producing or purchasing from
                    other vendors
                  format: double
                  example: 900.15
                base:
                  type: number
                  description: Starting price of a single item
                  format: double
                  example: 2000.15
                unitPriceWithoutDiscounts:
                  type: number
                  nullable: true
                  description: >-
                    Price of a single item without discount. This price is
                    either the `base` or `sale` price. The type used is noted in
                    the `type` property.
                  format: double
                  example: 2000.15
                lineTotalWithoutDiscounts:
                  type: number
                  nullable: true
                  description: >-
                    Total price of all items without calculating discounts. This
                    is the `unitPriceWithoutDiscounts` multiplied by the
                    quantity.
                  format: double
                  example: 5000.15
                lineTotalWithDiscounts:
                  type: number
                  nullable: true
                  description: >-
                    Total price of all items after all discounts. This is the
                    unitPriceWithoutDiscounts multiplied by the quantity, less
                    the promotion discounts.
                  format: double
                  example: 5000.15
                type:
                  type: string
                  nullable: true
                  description: Price type
                  example: BASE
                currency:
                  type: string
                  description: Currency string value
                  example: USD
        kind:
          description: Offer type
          type: string
          nullable: true
          example: PROMOTION
        channel:
          $ref: '#/components/schemas/salesChannel'
        position:
          minimum: 1
          type: integer
          description: Line item position number (starts at 1)
          format: int32
          example: 1
        discounts:
          description: Discounts
          type: array
          nullable: true
          items:
            type: object
            description: Promotion discount
            example:
              amount: 100.15
              quantity: 1
              proratedAmount: 100.15
              proratedQuantity: 1
              application: 1
              promotion:
                id: 6197ec46e836ff000952d668
                value: 2000.15
                groupId: 61a6354d0d70e30009415f16
                level: 1
                isStackable: true
                isAlwaysApplied: true
                name: 20% OFF
                type: Coupon
                discountType: AMOUNT_OFF
            properties:
              amount:
                type: number
                description: Actual discount amount
                format: double
                example: 1000.15
              quantity:
                type: integer
                description: The number of items eligible for the promotional discount.
                format: int32
                example: 5
              proratedAmount:
                type: number
                description: >-
                  The discount amount distributed proportionally among all the
                  selected items. The distribution is determined based on each
                  item's price relative to the total price of all participating
                  items. Typically, `proratedAmount` matches the `amount`.
                  However, there might be variations, particularly in the
                  context of Buy-Get promotions.
                format: double
                example: 1000.15
              proratedQuantity:
                type: integer
                description: >-
                  This 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
                example: 5
              application:
                type: integer
                nullable: true
                description: >-
                  An identifier for an instance of the Buy-Get promotion that
                  can be applied repeatedly. For example, consider a promotion -
                  Buy 1 shirt and get 1 pant at a 20% off. If a shopper buys
                  three shirts, 20% discount is individually applied to each
                  shirt-pant pair. Each such discounted pair is assigned a
                  unique `application` number for tracking purposes.
                format: int32
                example: 1
              promotion:
                type: object
                description: The promotion details.
                example:
                  id: 6197ec46e836ff000952c668
                  value: 2000.15
                  groupId: 61a6354d0d70e30009415f16
                  level: 1
                  isStackable: true
                  isAlwaysApplied: true
                  name: 20% OFF
                  type: Coupon
                  discountType: AMOUNT_OFF
                properties:
                  id:
                    type: string
                    description: A 24-character system-generated Promotion ID.
                    example: 6197ec46e836ff000952c667
                  value:
                    type: number
                    description: The discount in percent or amount.
                    format: double
                    example: 2000.15
                  groupId:
                    type: string
                    nullable: true
                    description: ID of the group or category this product belongs to
                    example: 61a6354d0d70e30009415f16
                  level:
                    type: integer
                    nullable: true
                    description: The order in which the current promotion is executed.
                    format: int32
                    example: 1
                  isStackable:
                    type: boolean
                    nullable: true
                    description: >-
                      A flag indicating whether the promotion is stackable. Set
                      to `true` to combine the given promotion with other
                      promotions. The discount of the current promotion is
                      combined with other promotions, if applicable, to the
                      item. Set to `false` if the promotion isn't stackable; the
                      given promotion can't be combined with other promotions.
                    example: true
                  isAlwaysApplied:
                    type: boolean
                    nullable: true
                    description: >-
                      A flag indicating whether the promotion is always applied
                      regardless of any exclusive promotions on the same item.
                      Set to `true` if the promotion is always applied and set
                      to `false` if the promotion isn't applied on the item by
                      default.
                    example: true
                  name:
                    type: string
                    description: The name of the promotion.
                    example: 20% off
                  type:
                    type: string
                    description: The type of the promotion.
                    example: COUPON
                  discountType:
                    example: PERCENTAGE_OFF
                    type: string
                    description: The type of discount.
                    enum:
                      - PERCENTAGE_OFF
                      - AMOUNT_OFF
                      - FIXED_PRICE
    exceptionDetail:
      description: Exception details
      required:
        - code
        - detail
      type: object
      properties:
        itemId:
          type: integer
          description: Item ID obtained from Product Catalog.
          format: int32
          example: 1730902008
        sku:
          type: string
          description: Item SKU to which the exception applies
          nullable: true
          example: 16B2GS8LD5FDS
        code:
          allOf:
            - description: Error code
            - $ref: '#/components/schemas/errorEnum'
        detail:
          description: Error detail
          type: string
          example: Item is out of stock
        position:
          minimum: 1
          type: integer
          description: Line item position number (starts at 1)
          format: int32
          example: 1
    address:
      allOf:
        - $ref: '#/components/schemas/baseAddress'
        - description: Shipping address details
          required:
            - city
            - country
            - region
            - addressLine1
            - postalCode
          type: object
          properties:
            attention:
              type: string
              description: Address recipient
              nullable: true
              example: Billing manager
            email:
              type: string
              description: Receiver's email address
              nullable: true
              example: test@example.com
            type:
              type: string
              description: Address type
              nullable: true
              example: shipping
            name:
              description: Recipient's name
              allOf:
                - $ref: '#/components/schemas/name'
                - nullable: true
            phone:
              description: Recipient's phone number and type
              allOf:
                - $ref: '#/components/schemas/phone'
                - nullable: true
    pickupPerson:
      description: Designated person who will pick up the line items
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/name'
            - nullable: true
        phone:
          allOf:
            - $ref: '#/components/schemas/phone'
            - nullable: true
        email:
          type: string
          description: Receiver's email address
          nullable: true
          example: test@example.com
    fulfillmentRequest:
      description: Fulfillment request details
      type: object
      nullable: true
      properties:
        type:
          type: string
          description: Fulfillment type
          nullable: true
          example: WEB_SDD
        networkCode:
          type: string
          description: Inventory network code
          nullable: true
          example: ShipToHome
        channelId:
          $ref: '#/components/schemas/salesChannel'
        inventoryType:
          type: string
          description: >-
            Inventory type - a classifier attribute that provides flexibility to
            define inventory types
          default: availableToPurchase
          example: availableToPurchase
    errorEnum:
      description: List of error codes
      type: string
      example: UNKNOWN_ERROR
      enum:
        - UNKNOWN_ERROR
        - BAD_REQUEST
        - INVALID_TOKEN
        - INVALID_ACCOUNT_ID
        - 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
        - PRICE_NOT_FOUND
        - 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
        - INVALID_PENDING_COUNT
        - ITEM_SERVICE_NOT_CONFIGURED
        - ATTRIBUTE_SERVICE_NOT_CONFIGURED
        - SHIP_ID_NOT_FOUND
        - INVALID_DATE_RANGE
        - INVALID_DATE_FORMAT
        - INVALID_SEARCH_ATTRIBUTE
        - BAD_CONFIGURATION
        - SERVICE_NOT_ENABLED
    baseAddress:
      type: object
      description: Base address object
      properties:
        addressLine1:
          type: string
          description: Address line 1
          example: 123 Main St.
        addressLine2:
          type: string
          description: Address line 2
          example: Suite 100
          nullable: true
        addressLine3:
          type: string
          description: Address line 3
          example: Seventh floor
          nullable: true
        addressLine4:
          type: string
          description: Address line 4
          example: 'Attention: Pat E. Kake'
          nullable: true
        city:
          type: string
          description: City
          example: Seattle
        region:
          type: string
          description: Region or state
          example: WA
        country:
          description: Country (can be full name, or ISO 3166-1 alpha-2 or alpha-3 code)
          type: string
          example: USA
        postalCode:
          type: string
          description: Postal or ZIP code
          example: '98121'
    name:
      description: Person's full name
      type: string
      example: Pat E Kake
    phone:
      description: Phone number details
      required:
        - number
      type: object
      properties:
        number:
          type: string
          description: Phone number
          example: 123-456-7899
        type:
          type: string
          description: Phone type
          nullable: true
          example: MOBILE
  headers:
    xFabricRequestId:
      description: Unique request ID
      schema:
        type: string
      example: 263e731c-45c8-11ed-b878-0242ac120002
      required: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````