openapi: 3.0.1 info: title: Cart Actions Endpoints Cart Adjustments API 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 the 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) contact: name: Cart Support email: support.cnc@fabric.inc license: name: fabric API License url: https://fabric.inc/api-license version: 3.0.0 servers: - url: https://api.fabric.inc/v3 security: - bearerAuth: [] tags: - name: Cart Adjustments description: Cart adjustment endpoints are used to add, update and remove adjustments at the Cart level. paths: /carts/{cartId}/adjustments: post: tags: - Cart Adjustments summary: Create Adjustment description: 'Creates adjustments to the corresponding cart. This is useful when a price needs to be adjusted by a CSR agent. The Cart ID from the [Create cart](/v3/cart-and-checkout/api-reference/carts-v3/carts/carts) endpoint is used in the path parameter. ' operationId: createAdjustment_2 parameters: - name: cartId in: path required: true schema: type: string description: The 24-character system-generated Cart ID. This ID is generated using the [Create cart](/v3/cart-and-checkout/api-reference/carts-v3/carts/carts) endpoint. - name: x-fabric-tenant-id in: header 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. \n" required: true schema: type: string example: 617329dfd5288b0011332311 - name: x-fabric-request-id in: header description: ' Unique request ID for tracking.' required: false schema: type: string example: 263e731c-45c8-11ed-b878-0242ac120002 - name: x-fabric-channel-id in: header description: x-fabric-channel-id identifies the sales channel through which the API request is being made; primarily for multichannel use cases. It is a required field. The default US channel is 12 while the default Canada channel is 11. required: false schema: type: string example: '12' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateAdjustmentRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/NewAdjustment' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ClientError' '404': description: Cart or Adjustment not found content: application/json: schema: $ref: '#/components/schemas/NotFound' /carts/{cartId}/adjustments/{adjustmentId}: delete: tags: - Cart Adjustments summary: Remove Adjustment description: 'Removes an adjustment made to the corresponding cart. The Cart ID from the [Create cart](/v3/cart-and-checkout/api-reference/carts-v3/carts/carts) endpoint is used in the path parameter. The Adjustment ID from the [Create adjustment](/v3/cart-and-checkout/api-reference/carts-v3/carts-adjustments/create-adjustments) endpoint is used in the path parameter. ' operationId: removeAdjustment_1 parameters: - name: cartId in: path required: true schema: type: string description: The 24-character system-generated Cart ID. This ID is generated using the [Create cart](/v3/cart-and-checkout/api-reference/carts-v3/carts/carts) endpoint. - name: adjustmentId in: path required: true schema: type: string description: The Adjustment ID generated when an adjustment was created using the [Create adjustment](/v3/cart-and-checkout/api-reference/carts-v3/carts-adjustments/create-adjustments) endpoint. - name: x-fabric-tenant-id in: header 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. \n" required: true schema: type: string example: 617329dfd5288b0011332311 - name: x-fabric-request-id in: header description: ' Unique request ID for tracking.' required: false schema: type: string example: 263e731c-45c8-11ed-b878-0242ac120002 - name: x-fabric-channel-id in: header description: x-fabric-channel-id identifies the sales channel through which the API request is being made; primarily for multichannel use cases. It is a required field. The default US channel is 12 while the default Canada channel is 11. required: false schema: type: string example: '12' responses: '204': description: No Content content: application/json: schema: $ref: '#/components/schemas/Adjustment' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ClientError' '404': description: Cart or Adjustment not found content: application/json: schema: $ref: '#/components/schemas/NotFound' patch: tags: - Cart Adjustments summary: Update Adjustment description: 'Updates the adjustments made to the corresponding cart. The Cart ID from the [Create cart](/v3/cart-and-checkout/api-reference/carts-v3/carts/carts) endpoint is used in the path parameter. The Adjustment ID from the [Create adjustment](/v3/cart-and-checkout/api-reference/carts-v3/carts-adjustments/create-adjustments) endpoint is used in the path parameter. ' operationId: updateAdjustment_2 parameters: - name: cartId in: path required: true schema: type: string description: The 24-character system-generated Cart ID. This ID is generated using the [Create cart](/v3/cart-and-checkout/api-reference/carts-v3/carts/carts) endpoint. - name: adjustmentId in: path required: true schema: type: string description: The Adjustment ID generated when an adjustment was created using the [Create adjustment](/v3/cart-and-checkout/api-reference/carts-v3/carts-adjustments/create-adjustments) endpoint. - name: x-fabric-tenant-id in: header 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. \n" required: true schema: type: string example: 617329dfd5288b0011332311 - name: x-fabric-request-id in: header description: ' Unique request ID for tracking.' required: false schema: type: string example: 263e731c-45c8-11ed-b878-0242ac120002 - name: x-fabric-channel-id in: header description: x-fabric-channel-id identifies the sales channel through which the API request is being made; primarily for multichannel use cases. It is a required field. The default US channel is 12 while the default Canada channel is 11. required: false schema: type: string example: '12' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateAdjustmentRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Adjustment' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ClientError' '404': description: Cart or Adjustment not found content: application/json: schema: $ref: '#/components/schemas/NotFound' components: schemas: UpdateAdjustmentRequest: type: object properties: price: $ref: '#/components/schemas/ResourcePrice' reason: type: string description: The reason for the adjustment. example: Price adjustment from Customer Representative attributes: type: object additionalProperties: type: object description: Custom attributes to provide more context, such as who made the adjustment. example: source: CSR description: Custom attributes to provide more context, such as who made the adjustment. example: source: CSR description: Adjustment Request NotFound: type: object properties: type: type: string description: Error code, meant for machine consumption example: CART_NOT_FOUND message: type: string description: Human-readable error description example: Cart not found description: Resource Not Found ClientError: type: object properties: type: type: string description: Error code, meant for machine consumption example: BAD_REQUEST message: type: string description: Human-readable error description example: x-fabric-tenant-id is required description: Client error details ResourcePrice: required: - amount type: object properties: amount: minimum: 0 exclusiveMinimum: false type: number description: Total fees amount example: 12.99 description: Price details NewAdjustment: type: object properties: id: type: string description: The unique identifier of an adjustment generated by this endpoint. This Adjustment ID is used for other endpoints. example: a8577d7f-0d4d-4b22-8e85-7b4a2e90dc93 price: $ref: '#/components/schemas/ResourcePrice' reason: type: string description: The reason for the adjustment. example: Price adjustment from customer representative. attributes: type: object additionalProperties: type: object description: Custom attributes used for price adjustments. example: source: CSR description: Custom attributes used for price adjustments. example: source: CSR updatedAt: type: string description: The date and time when the adjustment was last updated. example: 2024-06-13 16:50:00.682000+00:00 createdAt: type: string description: The date and time when the adjustment was created. example: 2024-06-13 16:50:00.682000+00:00 description: Adjustment CreateAdjustmentRequest: required: - price - reason type: object properties: price: $ref: '#/components/schemas/ResourcePrice' reason: type: string description: The reason for the adjustment. example: Price adjustment from Customer Representative attributes: type: object additionalProperties: type: object description: Custom attributes to provide more context, such as who made the adjustment. example: source: CSR description: Custom attributes to provide more context, such as who made the adjustment. example: source: CSR description: Adjustment Request Adjustment: type: object properties: id: type: string description: The Adjustment ID generated when an adjustment was created using the [Create adjustment](/v3/cart-and-checkout/api-reference/carts-v3/carts-adjustments/create-adjustments) endpoint. example: a8577d7f-0d4d-4b22-8e85-7b4a2e90dc93 price: $ref: '#/components/schemas/ResourcePrice' reason: type: string description: The reason for the adjustment. example: Price adjustment from customer representative. attributes: type: object additionalProperties: type: object description: Custom attributes used for price adjustments. example: source: CSR description: Custom attributes used for price adjustments. example: source: CSR updatedAt: type: string description: The date and time when the adjustment was last updated. example: 2024-06-13 16:50:00.682000+00:00 createdAt: type: string description: The date and time when the adjustment was created. example: 2024-06-13 16:50:00.682000+00:00 description: Adjustment securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'This is the authorization token used to authenticate the request. You must pass the access token generated from the system app. For more information, see the [Making your first API request](/v3/api-reference/getting-started/getting-started-with-fabric-apis#procedure) section. '