openapi: 3.0.1 info: title: Cart Actions Endpoints Product 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: Product description: '**Product**, a subset of Product Catalog endpoints, aims at making item management more efficient. They create, update, and get items, which may be individual items or collection of items (called bundles). Each item has a title, item ID, description, category, and assigned attributes. Multiple options of a given item become variants of that item. For example, a t-shirt with three sizes may have small, medium, and large variants. Each variant has its own item ID, attributes, and other data points. Each variant is nested under its parent item, allowing the different options to appear on the same product page. You can also create or update one or more item attributes and attribute groups.' paths: /api-product/v1/product/bulk/insert: post: tags: - Product summary: Create Items and Bundles description: 'Creates multiple items or bundles along with their attributes. In addition, this endpoint supports data validation to ensure accuracy and consistency.
**Note**:
1) As a prerequisite category and attributes must be created beforehand.
2) To add an item variant, parentSku must be additionally specified.
3) An item is assigned to only one category but it can be fetched from Alternate categories.
4) Up to 50 items or bundles can be added.' operationId: createProducts security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductCreate' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProductResponse' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ClientError' '422': description: Failing items content: application/json: schema: $ref: '#/components/schemas/ProductModifyError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ServerError' /api-product/v1/product/bulk/update: post: tags: - Product summary: Update Items and Bundles description: 'With this endpoint, you can update multiple items or bundles, along with their attributes.
**Note**:
1) You can update up to 50 items or bundles.
2) By specifying the attribute `value` as NULL, a reserved keyword, you can remove the existing attribute value.' operationId: updateProducts security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductUpdate' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProductResponse' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ClientError' '422': description: Failing items content: application/json: schema: $ref: '#/components/schemas/ProductModifyError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ServerError' /api-product/v1/product/bulk/upsert: post: tags: - Product summary: Upsert Items and Bundles description: 'With this endpoint, you can create or update items or bundles along with their attributes.
**Note**:
1) If the SKU already exists, then the given item or bundle is updated. Otherwise, a new item or bundle is created with that SKU.
2) You can add or update up to 50 items or bundles.
3) By specifying the attribute `value` as NULL, a reserved keyword, you can remove the existing attribute value.' operationId: upsertProducts security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductCreate' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProductResponse' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ClientError' '422': description: Failing items content: application/json: schema: $ref: '#/components/schemas/ProductModifyError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ServerError' /api-product/v1/product/bundle/update: post: tags: - Product summary: Update Items in Bundle description: Updates bundle by adding or removing items and adjusting quantities. operationId: updateBundles security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/BundleUpdateRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BundleUpdateResponse' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ClientError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ServerError' /api-product/v1/product: get: tags: - Product summary: Get Items and Children Items description: 'Items can be individual items or a bundle of items. This endpoints allows you to retrieve items - individual items and bundles, along with their attributes, children items and their details.
**Note**:
1) Optional filter parameters can be passed in as query to narrow down the search results.
2) This API will only return the count and details of Parent SKU and not its variants' operationId: getProducts security: - authorization: [] parameters: - name: x-site-context in: header description: The `x-site-context` header is a JSON object that contains information about the source you wish to pull from. The mandatory `account` is the 24 character identifier found in Copilot. The `channel` (Sales channel ID), `stage` (environment name), and `date` attributes can be used to further narrow the scope of your data source. required: true schema: type: string example: '{"date": "2023-01-01T00:00:00.000Z", "channel": 12, "account": "1234abcd5678efgh9ijklmno","stage":"production"}' - in: query name: skus description: 'Stock Keeping Units (SKUs).
**Note**: Either `skus` or `itemIds` can be used to get specific items. If they are omitted, all items are returned in a paginated response. Using the query parameters `page` and `size`, you can narrow down the search results.' schema: type: array items: type: string example: - BUNDLE-01 - BUNDLE-02 explode: false - in: query name: itemIds description: 'Item IDs. Applicable only when `skus` are omitted.
**Note**: Either `skus` or `itemIds` can be used to get specific items. If they are omitted, all items are returned in a paginated response. Using the query parameters `page` and `size`, you can narrow down the search results.' schema: type: array items: type: number example: - 4 - 5 explode: false - in: query name: page description: Page number to be retrieved. Applicable only in a paginated response and always paired with `size`. schema: type: number example: 1 - in: query name: size description: Number of records per page. Applicable only in a paginated response and always paired with `page`. schema: type: number example: 10 - in: query name: status description: 'Item status.
**Note**:
1) Returns a paginated response.
2) When used as the only criteria, must be paired with `size` and `page` to narrow down the search results.' schema: type: string enum: - ACTIVE - INACTIVE example: ACTIVE - in: query name: createdAfter description: 'Lists items created after a specific date. Valid date formats are ''YYYY/MM/DD'', ''YYYY-MM-DDTHH:mm:ss.SSSZ''.
**Note**:
1) Applicable only when `skus` and `itemIds` are omitted.
2) Returns paginated response.
3) Must be paired with `size` and `page` to narrow down the search results.' schema: type: string example: '2021-05-28T16:36:50.055Z' - in: query name: createdBefore description: 'Lists items created before a specific date. Valid date formats are ''YYYY/MM/DD'', ''YYYY-MM-DDTHH:mm:ss.SSSZ''.
**Note**:
1) Applicable only when `skus` and `itemIds` are omitted.
2) Returns paginated response.
3) Must be paired with `size` and `page` to narrow down the search results.' schema: type: string example: '2021-05-28T16:36:50.055Z' - in: query name: modifiedAfter description: 'Lists items modified after a specific date. Valid date formats are ''YYYY/MM/DD'', ''YYYY-MM-DDTHH:mm:ss.SSSZ''.
**Note**:
1) Applicable only when `skus` or `itemIds` are omitted.
2) Returns paginated response.
3) Must be paired with `size` and `page` to narrow down the search results.' schema: type: string example: '2021-05-28T16:36:50.055Z' - in: query name: modifiedBefore description: 'Gets items modified before a specific date. Valid date formats are ''YYYY/MM/DD'', ''YYYY-MM-DDTHH:mm:ss.SSSZ''.
**Note**:
1) Applicable only when `skus` and `itemIds` are omitted.
2) Returns paginated response.
3) Must be paired with `size` and `page` to narrow down the search results.' schema: type: string example: '2021-05-28T16:36:50.055Z' - in: query name: onlyIncludeAttributes description: Attributes are included based on their exact, case-sensitive names. For example, if you specify the values as xyZ and Abc, the response will include these attributes in both parent and child objects. schema: type: array items: type: string example: - Image - Title - in: query name: onlyExcludeAttributes description: 'Attributes are excluded based on their exact, case-sensitive names. For example, if you specify the values as xyZ and Abc, the response will exclude these attributes from both parent and child objects.
**Note**: When both `onlyIncludeAttributes` and `onlyExcludeAttributes` are used, the `onlyIncludeAttributes` takes precedence. As a result, attributes are first filtered based on `onlyIncludeAttributes`, and then `onlyExcludeAttributes` is applied to further refine the selection.' schema: type: array items: type: string example: - Image - Title responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/ItemProductsResponse' - $ref: '#/components/schemas/BundleProductsResponse' - $ref: '#/components/schemas/NoProductsResponse' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ClientError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ServerError' /api-product/v2/product: get: tags: - Product summary: Get Items and Limited Children Items description: 'Gets items (single item or bundles) by `skus` or parent `skus`. When a parent SKU is sent as query parameter, you''ll get children items of those SKUs. When `parentSKU` is not specified, children items are not retrieved. Optionally, `page` and `size` can be used as query parameters. **Note**:
1) `status` and `date` query parameters works only with pagination when `parentSku` is omitted. Separate responses are shown for bundle and product.
2) when `parentSku` is passed as request parameter, it will only return the paginated response of children of `parentSKU`.' operationId: getProductsV2 security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' - in: query name: skus description: 'Stock Keeping Units (SKUs).
**Note**: Either `skus` or `itemIds` can be used to get specific items. If they are omitted, all items are returned in a paginated response. Using the query parameters `page` and `size`, you can narrow down the search results.' schema: type: string example: BUNDLE-01 - in: query name: page description: Page number to be retrieved. Applicable only in a paginated response and always paired with `size`. schema: type: number example: 1 - in: query name: size description: Number of records per page. Applicable only in a paginated response and always paired with `page`. schema: type: number example: 10 - in: query name: status description: 'Item status.
**Note**:
1) Returns a paginated response.
2) When used as the only criteria, must be paired with `size` and `page` to narrow down the search results.' schema: type: string enum: - ACTIVE - INACTIVE example: ACTIVE - in: query name: type description: 'Item type. **Note**: Set page and size to use this filter.' schema: type: string enum: - ITEM - BUNDLE - in: query name: createdAfter description: 'Items created after a specific date. Valid date formats are ''YYYY/MM/DD'', ''YYYY-MM-DDTHH:mm:ss.SSSZ''.
**Note**:
1) Applicable only when `skus` and `itemIds` are omitted.
2) Returns paginated response.
3) Must be paired with `size` and `page` to narrow down the search results.' schema: type: string example: '2021-05-28T16:36:50.055Z' - in: query name: createdBefore description: 'Items created before a specific date. Valid date formats are ''YYYY/MM/DD'', ''YYYY-MM-DDTHH:mm:ss.SSSZ''.
**Note**:
1) Applicable only when `skus` and `itemIds` are omitted.
2) Returns paginated response.
3) Must be paired with `size` and `page` narrow down the search results.' schema: type: string example: '2021-05-28T16:36:50.055Z' - in: query name: modifiedAfter description: 'Items modified after a specific date. Valid date formats are ''YYYY/MM/DD'', ''YYYY-MM-DDTHH:mm:ss.SSSZ''.
**Note**:
1) Applicable only when `skus` or `itemIds` are omitted.
2) Returns paginated response.
3) Must be paired with `size` and `page` to narrow down the search results.' schema: type: string example: '2021-05-28T16:36:50.055Z' - in: query name: modifiedBefore description: 'Items modified before a specific date. Valid date formats are ''YYYY/MM/DD'', ''YYYY-MM-DDTHH:mm:ss.SSSZ''.
**Note**:
1) Applicable only when `skus` and `itemIds` are omitted.
2) Returns paginated response.
3) Must be paired with `size` and `page` to narrow down the search results.' schema: type: string example: '2021-05-28T16:36:50.055Z' - in: query name: parentSku description: Parent SKU to get its children items.
**Note**
1) To get a p paginates response, optionally, `size` and `page` can be used as query parameters. When they are omitted, this endpoint returns all children.
2) Only `page` and `size` are supported with this query parameter, to narrow down the search results. schema: type: string example: parent123 responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/ItemProductsV2Response' - $ref: '#/components/schemas/BundleProductsResponse' - $ref: '#/components/schemas/NoProductsResponse' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ClientError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ServerError' /api-product/v1/product/search: get: tags: - Product summary: Find Items description: Finds items - both individual items and bundles. You will get a paginagted response, which you can narrow down using filter parameters, including `page` and `size`. operationId: productSearch security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' - in: query name: keyword description: Keywords related to SKU or title schema: type: string example: MOBO-1024 - in: query name: skus description: 'Searches for items based on SKU.
**Note**: If omitted, all items are retrieved.
Applicable only when `keyword` is omitted.' schema: type: array items: type: string example: - MOBO-1024 - MOBO-1025 explode: false - in: query name: itemIds description: 'Item IDs.
**Note**: If omitted, all items are retrieved
Applicable only when `keyword` and `skus` are omitted.' schema: type: array items: type: string example: - 4 - 5 explode: false - in: query name: page description: Page number to be retrieved. schema: type: number example: 10 - in: query name: size description: 'Number of records per page.
**Note**: 1) Always paired with `page`.
2) Applicable only in a paginated response.' schema: type: integer example: 10 - in: query name: type description: Item type schema: type: string enum: - ITEM - BUNDLE - ALL example: ITEM - in: query name: allAttributes description: 'true: Gets all attributes. false: Gets only the mapped attributes.
**Note**: Always clubbed with `page` and `size`. When they are not specified, you will get up to 10 records.' schema: type: boolean example: true - in: query name: excludeChildren description: 'true: Excludes children items
false: Includes children items' schema: type: boolean example: false - in: query name: onlyChildren description: 'true: Excludes parent items
false: Includes parent items' schema: type: boolean example: true responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/ItemProductSearchResponse' - $ref: '#/components/schemas/BundleProductSearchResponse' - $ref: '#/components/schemas/NoProductsResponse' '400': description: OK content: application/json: schema: $ref: '#/components/schemas/ClientError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ServerError' /api-product/v1/product/attribute: get: tags: - Product summary: Get Item Attributes description: 'Item attributes define characteristics of an item. For example, item name, its identifiers, and description are the common attributes of any item. Attributes are key-value pairs (color: red) that hold information for each property of an item.
This endpoint gets all attributes of an item, by SKU or itemId.
**Note**: The *Get item* (GET /v1/product) gets item details and their attribute. So, this endpoint is recommended when you have the item SKU or item ID, and only require its attributes.' operationId: getProductAttribute security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' - in: query name: sku description: 'Stock Keeping Unit (SKU) of item.
**Note**: If omitted `itemId` becomes mandatory.' schema: type: string example: MOBO-1024 - in: query name: itemId description: 'Item ID.
**Note**: If omitted `sku` becomes mandatory.' schema: type: number example: 3 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProductAttributePage' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/ClientError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ServerError' components: schemas: BundleProductsResponse: type: object properties: totalSize: type: number example: 100 description: Total number of records pageSize: type: number example: 10 description: Number of records in a page pages: type: number example: 10 description: Number of pages for the given `pageSize` products: type: array items: $ref: '#/components/schemas/Bundle' Bundle: type: object properties: sku: type: string example: BUNDLE-01 description: Stock Keeping Unit (SKU), a unique identifier of bundle itemId: type: number example: 4 description: Item ID type: description: Item type - Bundle (default) or Item type: string example: BUNDLE status: type: boolean example: true description: 'true: Bundle is active
false: Bundle is inactive' bundleItems: type: array items: $ref: '#/components/schemas/GetBundleItems' categories: type: array items: $ref: '#/components/schemas/ProductCategory' attributes: type: array items: $ref: '#/components/schemas/ProductAttribute' createdOn: type: string example: '2022-03-07T22:50:10.668Z' description: Time of bundle creation (UTC format) modifiedOn: type: string example: '2022-03-07T22:52:01.720Z' description: Time when bundle was last updated (UTC format) ClientError: type: object properties: code: description: Error code for machine consumption type: string example: 400 message: description: Human-readable error description type: string example: Client error ItemProductSearchResponse: type: object properties: totalSize: type: number example: 100 description: Total number of records pageSize: type: number example: 10 description: Number of records per page pages: type: number example: 10 description: Number of pages for the given pageSize products: type: array items: $ref: '#/components/schemas/ProductSearch' ProductResponse: type: object properties: success: type: array items: type: object properties: sku: type: string example: sku1 description: Stock Keeping Unit (SKU) of item itemId: type: string example: 611686da50fb7e0c5df78c2e description: Item ID itemIdSeq: type: number example: 12 description: Item ID, which increments sequentially message: type: string example: SKU created successfully. description: Success message errorAttributes: type: array items: type: object properties: name: type: string example: Inactive description: Error reason message: type: string example: Attribute value is invalid. description: Human-readable error message errorBundles: type: array items: type: object properties: name: type: string description: Error reason message: type: string description: Human-readable error message failed: type: array items: type: object properties: sku: type: string example: sku1 description: Stock Keeping Unit (SKU), a unique identifier of item message: type: string example: Failed because of validation description: Failure message itemIds: description: Item IDs example: - 611686da50fb7e0c5df78c2e - 711686da50fb7e0c5df78c22 type: array items: type: string BundleItems: type: object required: - sku - quantity properties: sku: description: Stock Keeping Unit (SKU) of item that must be added to bundle type: string example: sku123 quantity: description: Item quantity to be added to bundle type: number example: 6 AttributeValue: type: object properties: name: type: string example: Mobile description: Attribute name value: type: string example: AMD X570 mobo description: Attribute value ProductV2: type: object properties: sku: type: string example: MOBO-X570 description: Stock Keeping Unit (SKU) of item itemId: type: number example: 4 description: Item ID childrenSize: description: Number of children or variants of the item type: number default: 0 type: description: Item type - ITEM or BUNDLE type: string example: ITEM default: ITEM status: type: boolean example: true description: 'true: Item is Active
false: Item is Inactive' categories: type: array items: $ref: '#/components/schemas/ProductCategory' attributes: type: array items: $ref: '#/components/schemas/ProductAttribute' ProductSearch: allOf: - $ref: '#/components/schemas/SearchResponse' - type: object properties: children: type: array items: $ref: '#/components/schemas/ProductChild' InheritItemAttributesInsert: type: array items: type: object properties: name: type: string description: Name of the attribute that can be inherited example: color action: description: Action to set the inherited attribute example: SET type: string enum: - SET required: - name - action minItems: 1 SearchResponse: type: object properties: sku: type: string example: MSI-Z490 description: Stock Keeping Unit (SKU) of item itemId: type: number example: 2 description: Item ID type: description: Item type - either ITEM or BUNDLE type: string example: ITEM default: ITEM categories: type: array items: $ref: '#/components/schemas/ProductCategory' attributes: type: array items: $ref: '#/components/schemas/ProductAttribute' dependents: description: Children SKUs type: array items: type: string example: - Child1 - Child2 createdOn: type: string example: '2021-05-28T16:36:50.055Z' description: Time when the item was added to Product Catalog (UTC format) modifiedOn: description: Time when item was last updated (UTC format) type: string example: '2021-05-28T16:36:50.055Z' ProductModifyError: type: object properties: code: type: string enum: - STATUS_ERROR description: Error code for backend mapping message: type: array description: Error details for invalid items items: type: object properties: index: type: number description: Index of the item update request item: $ref: '#/components/schemas/ProductResponse' ProductCreate: type: array maxItems: 50 items: properties: sku: description: Stock Keeping Unit (SKU) of item type: string example: sku_abc type: description: Item type type: string enum: - ITEM - BUNDLE example: ITEM nodeName: description: Category name (along with parent category names) for which item is being created. type: string example: PRIMARY->electronics parentSku: description: Stock Keeping Unit (SKU) of the parent item.
Set the value as `detach` or `null` to disassociate the item from parent item. type: string nullable: true example: sku123 attributeValues: description: Attribute details type: array items: anyOf: - $ref: '#/components/schemas/AttributeValue' - $ref: '#/components/schemas/AttributeValueFrenchLocale' inheritedAttributes: description: Category item attributes to be inherited from parent item to children items $ref: '#/components/schemas/InheritItemAttributesInsert' bundleItems: description: Items to be added to a bundle. Includes SKU and item quantity. type: array items: $ref: '#/components/schemas/BundleItems' required: - sku - type - nodeName BundleUpdateResponse: type: array items: type: object properties: id: type: string example: 625367673ab7402268d8cccf description: A 24-character system-generated document ID (internal only) itemId: type: string example: 624d94fb27c894222534b260 description: A 24-character system-generated item ID bundleId: type: string example: 624d939227c894222534b247 description: A 24-character system-generated bundle ID quantity: type: number example: 1 description: Bundle quantity createdOn: type: string example: '2022-04-08T23:25:27.753Z' description: Time of bundle creation (UTC format) modifiedOn: type: string example: '2022-04-08T23:25:27.753Z' description: Time when bundle was last updated (UTC format) BundleUpdateRequest: type: object properties: action: type: string enum: - UPDATE example: UPDATE description: Action type bundles: type: array items: type: object required: - action - bundleSku - itemSku properties: action: type: string enum: - SET - UNSET example: SET description: Action type bundleSku: type: string example: iPhoneBundle description: Stock Keeping Unit (SKU) of bundle itemSku: type: string example: iPhone12 description: 'Stock Keeping Unit (SKU) of item ' quantity: type: number example: 1 description: Item quantity ProductAttributePage: type: object description: Attribute page object properties: totalSize: type: number description: Total number of records (item attributes) example: 100 pageSize: type: number description: Number of records (item attributes) in a page example: 10 pages: type: number description: Number of pages for the given `pageSize` example: 10 attributes: type: array description: Attributes details items: $ref: '#/components/schemas/ProductAttribute' Product: type: object properties: sku: type: string example: MOBO-X570 description: Stock Keeping Unit (SKU) of item itemId: type: number example: 4 description: Item ID children: type: array items: $ref: '#/components/schemas/ProductChild' type: description: Item type - ITEM or BUNDLE type: string example: ITEM default: ITEM status: type: boolean example: true description: 'true: Item is Active
false: Item is Inactive' categories: type: array items: $ref: '#/components/schemas/ProductCategory' attributes: type: array items: $ref: '#/components/schemas/ProductAttribute' createdOn: type: string example: '2022-03-07T22:50:10.668Z' description: Time of item creation (UTC format) modifiedOn: type: string example: '2022-03-07T22:52:01.720Z' description: Time when item was last updated (UTC format) Attribute: type: object properties: id: description: A 24-character system-generated attribute ID type: string example: 619a8ba6f1875f6dbcaf0521 name: description: Attribute name type: string example: notes description: type: string description: Attribute description example: Notes for this particular category. type: type: string enum: - TEXT - BOOLEAN - SERIAL - DECIMAL - INTEGER - DATETIME example: TEXT value: type: string example: Unable to fulfill demand. description: Value corresponding to `type` ProductAttribute: allOf: - $ref: '#/components/schemas/Attribute' - type: object properties: description: type: string description: Explains purpose of the selected attribute mapping: type: string example: description description: Attribute mapping (as received) BundleChild: type: object properties: sku: type: string description: Stock Keeping Unit (SKU) of item itemId: type: number description: Item ID attributes: type: array items: $ref: '#/components/schemas/ProductAttribute' ItemProductsResponse: type: object properties: totalSize: type: number example: 100 description: Total number of records (items) pageSize: type: number example: 10 description: Number of records (items) in a page pages: type: number example: 10 description: Number of pages for the given `pageSize` products: type: array items: $ref: '#/components/schemas/Product' AttributeValueFrenchLocale: type: object properties: name: type: string example: Mobile-French description: Attribute name in French value: type: string example: Le téléphone portatif AMD X570 description: Attribute value in French ServerError: type: object properties: code: description: Error code type: string example: 500 message: description: Human-readable error description type: string example: An internal error occurred. If the issue persists please contact support@fabric.inc. ItemProductsV2Response: type: object properties: totalSize: type: number example: 100 description: Total number of records (items) pageSize: type: number example: 10 description: Number of records (items) in a page pages: type: number example: 10 description: Number of pages for the given `pageSize` products: type: array items: $ref: '#/components/schemas/ProductV2' BundleProductSearchResponse: type: object properties: totalSize: type: number example: 100 description: Total number of records (bundle) pageSize: type: number example: 10 description: Number of records (bundle) in a page pages: type: number example: 10 description: Number of pages for the given `pageSize` products: type: array items: allOf: - $ref: '#/components/schemas/SearchResponse' - $ref: '#/components/schemas/BundleSearch' BundleSearch: allOf: - $ref: '#/components/schemas/SearchResponse' - type: object properties: bundleItems: type: array items: $ref: '#/components/schemas/ProductChild' GetBundleItems: type: object properties: sku: type: string example: MOBO-1023 description: Stock Keeping Unit (SKU) of item itemId: type: number example: 1 description: Item ID attributes: type: array items: $ref: '#/components/schemas/ProductAttribute' quantity: description: Item quantity type: number example: 6 children: type: array items: $ref: '#/components/schemas/BundleChild' NoProductsResponse: type: object properties: pageSize: type: number example: 0 description: Number of records in a page totalSize: type: number example: 0 description: Total number of records pages: type: number example: 0 description: Number of pages for the given `pageSize` products: description: Item details type: array items: type: string example: [] ProductCategory: type: object properties: id: type: string example: 621c121bff2e4507c199b7cb description: A 24-character system-generated category ID name: type: string example: electronics description: Category name nodeId: description: Numeric category ID type: number example: 30 breadcrumbs: type: array items: type: object properties: id: type: string example: 621c10f3ff2e4507c199b66b description: A 24-character system-generated breadcrumb ID nodeId: description: Numeric category ID type: number example: 31 name: type: string example: PRIMARY description: Category name attributes: type: array items: $ref: '#/components/schemas/ProductAttribute' ProductChild: type: object properties: sku: type: string description: Stock Keeping Unit (SKU) of item attributes: type: array items: $ref: '#/components/schemas/ProductAttribute' ProductUpdate: type: object properties: skus: description: Stock Keeping Units (SKUs) maxItems: 50 type: array items: type: string example: - sku12 - sku13 type: description: Item type - Bundle or Item type: string example: ITEM action: description: Action type type: string example: UPDATE parentSku: description: “Stock Keeping Unit (SKU) of the parent item.
Set the value as `detach` or `null` to disassociate the item from parent item.” type: string nullable: true example: sku234 attributeValues: type: array items: anyOf: - $ref: '#/components/schemas/AttributeValue' - $ref: '#/components/schemas/AttributeValueFrenchLocale' inheritedAttributes: description: Category item attributes to inherit from parent item to children items $ref: '#/components/schemas/InheritItemAttributesUpdate' InheritItemAttributesUpdate: type: array items: type: object properties: name: type: string description: Name of the attribute that can be inherited example: color action: type: string description: Action to set or unset (remove) the inherited attribute example: SET enum: - SET - UNSET required: - name - action minItems: 1 parameters: xSiteContent: name: x-site-context in: header description: The `x-site-context` header is a JSON object that contains information about the source you wish to pull from. The mandatory `account` is the 24 character identifier found in Copilot. The `channel` (Sales channel ID), `stage` (environment name), and `date` attributes can be used to further narrow the scope of your data source. required: true schema: type: string example: '{"date": "2023-01-01T00:00:00.000Z", "channel": 12, "account": "1234abcd5678efgh9ijklmno","stage":"production"}' 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. '