openapi: 3.0.1 info: title: Cart Actions Endpoints Category 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: Category
description: 'Categories (also called hierarchies or nodes) are hierarchical structures to organize items and services into intuitive groups. Organizing items in this way simplifies item discovery and lifecycle management. There are two types of categories - **Primary** and **Alternate**. They enable you to create, organize, and distribute item data. - Primary category is the original catalog tree with nested levels of categories that place each item where it belongs, within a category. For example, `Computers` is a parent category with `Laptops` and `Desktops` as children categories, and `MacBook Pro` is an item within `Laptops`. This organization can be represented as Computers > Laptops > MacBook Pro. - Alternate categories serve as alternate organizations of the Primary category. Their main purpose is distribution management by displaying items on your website based on separate browsing structure configurations you set to help you achieve various merchandizing objectives, such as organizational requirements, multi-regional assortments, multi-channel assortments, and collections. For example, a company that sells, repairs, and supports computers and related items and services will have a Primary category containing a full list of their SKUs. However, this Primary category is not granular enough to use on their storefront. Hence, multiple Alternate hierarchies are created to target specific shopper segment experiences. For laptop consumers they''ll have one Alternate category, which lists all the laptops and PCs. For large businesses they''ll have another Alternate category, which lists all commercial laptops, PCs, printers, and servers. Both of the Alternate categories act as filters of the Primary category, tailored to the purpose of that merchandising strategy. **Category**, a subset of Product Catalog endpoints, aims to simplify catalog management by letting you create, update, and get one or more categories, category attributes, and item attributes. In addition, you can add and update category sources, source exclusions, and item attribute conditions. **Note**: The root name of primary category is PRIMARY, and it cannot be changed.'
paths:
/api-category/v1/category:
post:
tags:
- Category
summary: Create Category
description: 'Creates Primary or Alternate category to organize items into logical groups.
**Note**:
1) To add **Primary** category, only `name` is required in the request.
2) To add a **child** category, both `name` and `parentNodeId` are required. For **child** category, you can additionally specify `order` of display.
3) To add an **Alternate** category, both `name` and `type` are required.
**Note**: Category details including category ID received in the response are required for subsequent calls. For example, it''s required to *Create item* (POST /v1/product/bulk/insert).'
operationId: categoryCreate
security:
- authorization: []
- api_key: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCategoryRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyCategory'
'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'
get:
tags:
- Category
summary: Get Categories
description: 'Gets categories and their details including attributes, breadcrumbs, and details of children categories.
**Note**:
1) Specify either `ids` or `nodeIds` to get specific categories.
2) Use `type` to get a specific category type.
3) When query parameters are omitted, this endpoint returns a paginated response listing all Alternate categories in Active status. Using the query parameters `size` and `page`, you can narrow down the search results.'
operationId: getCategoriesById
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
- in: query
name: ids
description: A 24-character system-generated category IDs. If `ids` and `nodeIds` are omitted, this endpoint returns all Alternate categories in Active status. Using `size` and `page`, you can narrow down the search results.
example:
- 6196b45b5cb04b7ce167cb46
- 7196b45b5cb04b7ce167cb45
explode: false
schema:
type: array
items:
type: string
- in: query
name: nodeIds
description: Numeric category IDs. When `ids` and `nodeIds` are omitted, specify `size` and `page` to narrow down the search results.
example:
- 123
- 234
explode: false
schema:
type: array
items:
type: number
- in: query
name: keyword
description: Keywords to search for categories. You will get a pagination response. Using `size` and `page`, you can narrow down the search results.
example: computers
schema:
type: string
- in: query
name: type
description: 'Category type.
**Note**: When omitted, you will get `ALTERNATE` categories by default.'
schema:
type: string
enum:
- PRIMARY
- ALTERNATE
- ALL
example: ALL
- in: query
name: status
description: 'Category status.
**Note**: If omitted, you will get Alternate categories in Active status by default.
**Note**: When `type` is Primary, `status` must be Active. Inactive status is not applicable for Primary category.'
schema:
type: string
enum:
- ACTIVE
- INACTIVE
- ALL
example: ALL
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Size'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryPage'
'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-category/v1/category/{nodeId}:
put:
tags:
- Category
summary: Modify Category
description: Updates category details such as name, parent, and its order of appearance amongst sibling categories.
operationId: categoryModify
security:
- authorization: []
- api_key: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
- in: path
name: nodeId
required: true
description: Numeric category ID
example: 1204
schema:
type: number
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyCategoryRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyCategory'
'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-category/v1/category/search:
get:
tags:
- Category
summary: Find Categories
description: 'Finds categories, by keywords, category identifiers, type, or status.
**Note**:
1) Categories and children categories must already exist in the system.
2) When query parameters are omitted, this endpoint returns a paginated response with all the categories. Using `size` and `page`, you can narrow down the search results.
3) GET /v1/category (Store admin context) or Algolia search (Shopper context) is strongly recommended over this endpoint.'
operationId: searchCategories
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
- in: query
name: keyword
description: Keywords to search for categories. The response is paginated. Using query parameters `page` and `size`, you can narrow down the search results.
example: computers
schema:
type: string
- in: query
name: ids
description: A 24-characters system-generated category IDs. If `ids` and `nodeIds` are omitted, this endpoint returns a paginated response. Using query parameters `page` and `size`, you can narrow down the search results.
example:
- 6196b45b5cb04b7ce167cb46
- 7196b45b5cb04b7ce167cb47
explode: false
schema:
type: array
items:
type: string
- in: query
name: nodeIds
description: Numeric category IDs. If `ids` and `nodeIds` are omitted, this endpoint returns a paginated response. Using query parameters `page` and `size`, you can narrow down the search results.
example:
- 15
- 16
explode: false
schema:
type: array
items:
type: number
- in: query
name: type
description: 'Category type.
**Note**: If omitted, you will get a paginated response with `ALL` categories. Using query parameters `page` and `size`, you can narrow down the search results.'
schema:
type: string
enum:
- PRIMARY
- ALTERNATE
- ALL
example: ALL
- in: query
name: status
description: 'Category status. If omitted, you will get a paginated response of categories in `ACTIVE` status. Using the query parameters `page` and `size`, you can narrow down the search results.
**Note**: When `type` is Primary, `status` must be Active. Inactive status is not applicable for Primary category.'
schema:
type: string
enum:
- ACTIVE
- INACTIVE
- ALL
example: ALL
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Size'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryPage'
'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-category/v1/category/tree:
get:
tags:
- Category
summary: Get Category Tree
description: 'Hierarchy of parent and children categories form a tree structure. This endpoint returns a tree of categories rooted in the category identified by `id` or `nodeId`.
**Note**:
1) If parent category does not exist in the system, you''ll get a `404 - Not found` error
2) If a child category does not exist for the given parent, you''ll get a success response but `children` property will show a blank array.'
operationId: getCategoryTree
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
- in: query
name: id
description: A 24-character system-generated ID of root category. Either `id` or `nodeId` must be specified.
example: 6196b44a5cb04b7ce167cb34
schema:
type: string
- in: query
name: nodeId
description: Numeric category ID. Either `id` or `nodeId` must be specified.
example: 12
schema:
type: integer
- in: query
name: depth
description: Limits the size of the hierarchical category tree returned in the response. Depth of 0 means no children categories, attributes, or breadcrumbs, are included in the response. Unless depth is specified, entire category is returned up to the last set of categories (that have no more children categories).
example: 1
schema:
type: number
- in: query
name: excludeAttributes
description: Set `true` to exclude attributes from both parent and children objects or false to include attributes in both parent and children details.
The default setting false.
example: true
schema:
type: boolean
- in: query
name: excludeBreadcrumbs
description: Set `true` to exclude breadcrumbs from both parent and children objects or false to include breadcrumbs in both parent and children details.
The default setting false.
example: true
schema:
type: boolean
- in: query
name: excludeItemIds
description: Set `true` to exclude item IDs from both parent and children objects or false to include item IDs in both parent and children details.
The default setting false.
example: true
schema:
type: boolean
- 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:
- Category Image
- Category Type
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryTree'
'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-category/v1/category/sku:
get:
tags:
- Category
summary: Get Skus in a Category
description: 'Gets SKUs of all items belonging to a category.
**Note**:
1) Categories must exist in the system to get SKUs in that category. If SKUs are not available in the given category ID, this endpoint returns an empty list.'
operationId: getCategorySKUs
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
- in: query
name: id
description: A 4-character system-generated category ID. Either `id` or `nodeId` must be specified.
example: 6196b45b5cb04b7ce167cb46
schema:
type: string
- in: query
name: nodeId
description: Numeric category ID. Either `id` or `nodeId` must be specified.
example: 2
schema:
type: integer
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Size'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SKUPage'
'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-category/v1/category/attribute:
post:
tags:
- Category
summary: Assign and Unassign Category Attributes
description: Category attributes let you define characteristics of categories and children categories.
This endpoint assigns or unassigns attributes of a single category. The primary purpose is to assign attributes.
operationId: postCategoryAttributeByID
security:
- authorization: []
- api_key: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyCategoryAttributesRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryAttributes'
'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'
get:
tags:
- Category
summary: Get Assigned Category Attributes
description: 'Gets all attributes assigned to a category.
**Note**:
*Get category* endpoint (GET /v1/category) returns categories, their attributes, children categories, and breadcrumb details. So, this endpoint is recommended if you have a category ID and only require its attributes.'
operationId: getCategoryAttributesByID
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
- in: query
name: id
description: A 24-character system-generated category ID. Either `id` or `nodeId` must be specified.
example: 619a8ba6f1875f6dbcaf0521
schema:
type: string
- in: query
name: nodeId
description: Numeric category ID. Either `nodeId` or `id` must be specified.
example: 2
schema:
type: integer
- in: query
name: status
description: Attribute status. When `id` or `nodeId` is specified along with `status` = `Assigned`, the response is faster because the data is fetched from cache. When the `status` is `Unassigned`, the data is fetched from the DB and the response could take longer.
schema:
type: string
enum:
- ASSIGNED
- UNASSIGNED
example: ASSIGNED
- $ref: '#/components/parameters/MandatoryPage'
- $ref: '#/components/parameters/MandatorySize'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AttributePage'
'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-category/v1/category/item-attribute:
post:
tags:
- Category
summary: Assign and Unassign Item Attributes
description: Categories are used to segregate and group items. You can specify `mandatory` and `optional` attributes that all items within that category must have. Attributes are used to store structured information about items.
Use this endpoint to create and manage item attributes for the specified category.
operationId: postCategoryItemibuteByID
security:
- authorization: []
- api_key: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyCategoryItemAttributesRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryItemAttributes'
'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'
get:
tags:
- Category
summary: Get Assigned Item Attributes
description: 'Gets all the item attributes for the specified category.
**Note**: Items may also inherit item attributes from parent categories.'
operationId: getCategoryItemAttributes
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
- in: query
name: id
description: 'A 24-character system-generated category ID. `id` and `nodeId` are the two identifiers of a category.
**Note**: If `id` is specified, `status` must be specified as well.'
example: 6196b45b5cb04b7ce167cb46
schema:
type: string
- in: query
name: nodeId
description: 'Numeric category ID. `id` and `nodeId` are the two identifiers of a category.
**Note**: If `nodeId` is specified, `status` must be specified as well.'
example: 25
schema:
type: number
- in: query
name: status
description: Status of item attributes. `Assigned` indicates item attributes are already assigned to categories and `unassigned` indicates otherwise. Applicable only when `id` or `nodeId` is specified.
schema:
type: string
enum:
- ASSIGNED
- UNASSIGNED
- $ref: '#/components/parameters/MandatoryPage'
- $ref: '#/components/parameters/MandatorySize'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetCategoryItemAttributes'
'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-category/v1/category/source:
post:
tags:
- Category
summary: Add and Remove Category Source Inclusions
description: Adds and removes category sources.
Primary category is the original catalog tree consisting of nested levels of children categories and is used to place items where they belong. Alternate categories are dynamic and populated from the Primary category, which is the original source of items. Source for an Alternate category points to a Primary category, and makes all items in the Primary category appear within the Alternate category; it behaves like a symlink.
operationId: modifyCategoriesNodeSources
security:
- authorization: []
- api_key: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyNodeSourcesRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NodeSourcesAndExclusions'
'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'
get:
tags:
- Category
summary: Get Category Source Inclusions
description: Gets all the available category sources.
Items are created under the Primary category, and Alternate categories are created to export alternate organizations of the Primary category. So, the Primary category is the source of items that appear in Alternate categories. The category sources are Primary categories that can be used as item sources in Alternate categories. Sources behave similar to symlinks.
operationId: getCategoriesNodeSources
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
- in: query
name: id
description: A 24-character system-generated category ID. `id` and `nodeId` are the two identifiers of a category and one of them must be specified.
schema:
type: string
example: 6170135a49b4af38190970fe
- in: query
name: nodeId
description: Numeric category ID. `id` and `nodeId` are the two identifiers of a category and one of them must be specified.
schema:
type: number
example: 12
- in: query
name: status
description: Status of Category source. If omitted, 'ASSIGNED' status is used as default.
schema:
type: string
enum:
- ASSIGNED
- UNASSIGNED
example: ASSIGNED
- $ref: '#/components/parameters/MandatoryPage'
- $ref: '#/components/parameters/MandatorySize'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NodeSources'
'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-category/v1/category/source/exclusion:
post:
tags:
- Category
summary: Add and Remove Category Source Exclusions
description: Adds and removes exclusions for category source, by ID. For example, a category source `Electronics` has Laptop, Mobile, and Tablet as children categories. It's possible to exclude Tablet using this endpoint, so that it does not appear for shoppers.
operationId: modifyCategoriesNodeSourceExclusions
security:
- authorization: []
- api_key: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NodeSourcesAndExclusionsRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NodeSourcesAndExclusions'
'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'
get:
tags:
- Category
summary: Get Category Source Exclusions
description: Gets available exclusions applied to a category source.
operationId: getCategoriesNodeSourceExclusions
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
- in: query
name: id
description: A 24-character system-generated category ID. `id` and `nodeId` are the two identifiers of a category and one of them must be specified.
schema:
type: string
- in: query
name: nodeId
description: Numeric category ID. `id` and `nodeId` are the two identifiers of a category and one of them must be specified.
schema:
type: number
- in: query
name: status
description: 'Status of category source.
**Note**: If omitted, ''ASSIGNED'' status is used by default.'
schema:
type: string
enum:
- ASSIGNED
- UNASSIGNED
example: ASSIGNED
- $ref: '#/components/parameters/MandatoryPage'
- $ref: '#/components/parameters/MandatorySize'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NodeSourceExclusions'
'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-category/v1/category/item-attribute/condition:
post:
tags:
- Category
summary: Add and Remove Item Attribute Conditions
description: 'Adds conditions for item attributes so that items can be filtered based on these conditions, from an Alternate category.
For example, a Primary category called **Chairs** has three chairs of different materials. An Alternate category called **Wooden Chairs** with Primary category **Chairs** as source will list all the three chairs. Through this endpoint you can add a ''item attribute condition'' to filter chairs made of wood from **Wooden Chairs**. Another example: Using this endpoint, you can combine categories and list items on sale (where sale attribute is true).'
operationId: postCategoryItemAttributeByID
security:
- authorization: []
- api_key: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryItemAttributeConditionsRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryItemAttributeConditions'
'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'
get:
tags:
- Category
summary: Get Item Attribute Conditions
description: 'You can filter items from Alternate categories based on the conditions set using the POST /v1/category/item-attribute/condition endpoint.
**Note**: Items may inherit conditions from parent category as well.'
operationId: getCategoryItemAttributesCondition
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
- in: query
name: id
description: A 24-character system-generated category ID. `id` and `nodeId` are the two identifiers of a category, and one of them must be specified.
example: 6196b45b5cb04b7ce167cb46
schema:
type: string
- in: query
name: nodeId
description: Numeric category ID. `id` and `nodeId` are the two identifiers of a category, and one of them must be specified.
example: 25
schema:
type: number
- in: query
name: status
description: Status of item attribute
schema:
type: string
enum:
- ASSIGNED
- UNASSIGNED
example: ASSIGNED
- $ref: '#/components/parameters/MandatoryPage'
- $ref: '#/components/parameters/MandatorySize'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetCategoryItemAttributeConditions'
'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-category/v1/category/bulk/upsert:
post:
tags:
- Category
summary: Create or Update Multiple Categories or Collections
description: 'With endpoint, you can create or update up to 20 categories and collections, along with their children. It is particularly useful when dealing with complex organization structures.
**Note**:
1) `parentNodeName` is a breadcrumb string of parent having delimeter as **->**
2) **PRIMARY** is the root category (level 0) name. To create root categories or children of PRIMARY root category, pass **PRIMARY** as `parentNodeName` parameter. For collections, the collection name is the root, followed by its children with delimeter
3) If a category name already exists as a parent category, use this endpoint to update the existing category. Otherwise, it creates a new category under the given parent.'
operationId: postBulkUpsertCategories
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertCategory'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertCategoryResponse'
'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-category/v1/category/find:
post:
tags:
- Category
summary: Find Categories
description: Using this endpoint, you can search for categories and collections based on status, type, or category attributes. You will get a paginated response, which you can fine tune by specifying the query parameters `page` and `size`.
Data is retrieved from the database, ensuring latest results.
operationId: findCategories
security:
- authorization: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/findCategoryRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryPage'
'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-category/v1/category/bulk/category-attribute:
post:
tags:
- Category
summary: Manage Category Attributes for Multiple Categories or Collections
description: With this endpoint, you can efficiently assign and unassign category attributes to specified categories and collections. You can assign or unassign up to 10 category attributes simultaneously. For example, you can assign category attributes, such as material or color, to all clothing categories, such as dresses and shirts.
operationId: manageCategoryAttributes
security:
- authorization: []
- api_key: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/manageCategoryAttributesRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/manageCategoryAttributesResponse'
'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-category/v1/category/bulk/item-attribute:
post:
tags:
- Category
summary: Manage Item Attributes for Multiple Categories
description: Use this endpoint to assign and unassign item attributes to specified categories. You can assign or unassign up to 10 item attributes simultaneously.
operationId: manageItemAttributes
security:
- authorization: []
- api_key: []
parameters:
- $ref: '#/components/parameters/xSiteContent'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/manageItemAttributesRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/manageItemAttributesResponse'
'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:
ModifyCategory:
type: object
properties:
id:
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
type: string
example: 6170135a49b4af38190970fe
nodeId:
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
type: number
example: 12
name:
description: Category name
type: string
example: Furniture
createdOn:
description: Time of category creation (UTC format)
type: string
example: '2021-12-01T00:00:00.000Z'
modifiedOn:
description: Time when category was last updated (UTC format)
type: string
example: '2021-12-01T00:00:00.000Z'
attributes:
type: array
items:
type: object
properties: {}
children:
type: array
items:
type: object
properties: {}
breadcrumbs:
description: Path of categories leading to root of category
type: array
items:
type: object
properties: {}
CategoryTree:
type: object
properties:
id:
description: A 24-character system-generated category ID
type: string
example: 6196b45b5cb04b7ce167cb46
nodeId:
description: Numeric category ID
type: number
example: 16
name:
description: Category name
type: string
example: PCs
hierarchy:
type: string
enum:
- PRIMARY
- ALTERNATE
example: ALTERNATE
description: Category type
isActive:
description: 'true: Category is Active
false: Category is Inactive
**Note**: Inactive status is not applicable for Primary category.'
type: boolean
example: true
attributes:
description: Details of attributes belonging to this category
type: array
items:
$ref: '#/components/schemas/Attribute'
children:
description: Children categories of this category
type: array
items:
$ref: '#/components/schemas/CategoryChild'
createdOn:
type: string
example: '2022-03-09T23:37:54.086Z'
description: Time of category creation (UTC format)
modifiedOn:
type: string
example: '2022-03-09T23:37:54.086Z'
description: Time when category was last updated (UTC format)
SKUPage:
type: object
properties:
totalSize:
description: Total number of records
type: number
example: 3
pageSize:
description: Number of records (SKUs) per page
type: number
example: 10
pages:
description: Number of pages for the given `pageSize`
type: number
example: 1
id:
type: string
example: 6196b45b5cb04b7ce167cb46
description: A 24-character system-generated category ID
nodeId:
type: number
example: 2
description: Numeric category ID
name:
type: string
example: electronics
description: Numeric category ID
skus:
description: SKUs of items belonging to this category.
type: array
example:
- mobo12001
- mobo12002
- mobo12003
items:
type: string
BulkUpsertCategoryResponse:
type: object
properties:
success:
type: array
items:
type: object
properties:
id:
description: 24-character system-generated category ID
type: string
example: 611686da50fb7e0c5df78c2e
name:
type: string
description: Category name
example: Sofa
parentId:
type: string
description: 24-character system-generated parent category ID
example: 63ea48368da1ae00089b7052
nodeId:
type: number
description: Category ID
example: 12
message:
type: string
example: Categories upserted successfully
failed:
type: array
items:
type: object
properties:
name:
type: string
example: testNodeChild
description: Category name
parentNodeName:
type: string
example: PRIMARY->testNode
description: Parent category name
message:
type: string
example: Parent node not found
description: Error message
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
AttributePage:
type: object
properties:
totalSize:
description: Total number of records (attributes)
type: number
example: 100
pageSize:
description: Number of records (attributes) in a page
type: number
example: 10
pages:
description: Number of pages for the given `pageSize`
type: number
example: 10
id:
type: string
example: 619a8ba6f1875f6dbcaf0521
description: A 24-character system-generated category ID
nodeId:
type: number
example: 2
description: Numeric category ID
name:
type: string
example: electronics
attributes:
type: array
items:
$ref: '#/components/schemas/Attribute'
CategoryItemAttribute:
type: object
properties:
id:
description: A 24-character system-generated attribute ID
type: string
example: 61ba11691a29d52cb2842541
name:
description: Attribute name
type: string
example: published
type:
description: Attribute type
type: string
enum:
- TEXT
- BOOLEAN
- SERIAL
- DECIMAL
- INTEGER
- DATETIME
example: BOOLEAN
required:
type: boolean
example: false
description: 'true: Attribute is mandatory
false: Attribute is optional'
Breadcrumbs:
type: object
properties:
id:
description: A 24-character system-generated category ID
type: string
example: 6196b44a5cb04b7ce167cb34
nodeId:
type: number
example: 10
description: Numeric category ID
name:
description: Category name
type: string
example: Computers
level:
description: Depth below the root of the tree
type: number
example: 0
hierarchy:
description: Category type
type: string
enum:
- PRIMARY
- ALTERNATE
example: ALTERNATE
isActive:
description: 'true: Category is Active
false: Category is Inactive
**Note**: Inactive status is not applicable for Primary category.'
type: boolean
example: true
createdOn:
type: string
example: '2022-03-09T23:37:54.086Z'
description: Time of category creation (UTC format)
modifiedOn:
type: string
example: '2022-03-09T23:37:54.086Z'
description: Time when category was last updated (UTC format)
manageCategoryAttributesRequest:
type: object
properties:
attributes:
type: array
items:
type: object
required:
- action
- attributeId
properties:
action:
type: string
description: Assign or unassign category attributes
example: SET
enum:
- SET
- UNSET
id:
type: string
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
example: 6196b45b5cb04b7ce167cb46
nodeId:
type: number
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
example: 25
attributeId:
type: string
description: A 24-character system-generated attribute ID
example: 609ac75051f11a0007cf38b3
value:
oneOf:
- type: boolean
- type: number
- type: string
BulkUpsertCategory:
type: array
items:
type: object
required:
- name
- parentNodeName
properties:
name:
description: Category name to upsert
type: string
example: Sofa
parentNodeName:
description: Parent Category breadcrumb starting from **PRIMARY** which is the name of root node
type: string
example: PRIMARY->Furniture
order:
description: Order in which category will be displayed in Product Catalog in Copilot.
type: number
example: 2
ModifyCategoryItemAttributesRequest:
type: object
required:
- itemAttributes
properties:
id:
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
type: string
example: 619a8ba6f1875f6dbcaf0521
nodeId:
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
type: number
example: 25
itemAttributes:
description: Item attributes within a category
type: array
items:
type: object
required:
- action
- attributeId
properties:
action:
type: string
enum:
- SET
- UNSET
description: Action type
attributeId:
type: string
example: 609ac75051f11a0007cf38b3
description: A 24-character system-generated attribute ID
mandatory:
type: boolean
example: false
description: 'true: Attribute is mandatory
false: Attribute is optional'
findCategoryRequest:
type: object
properties:
include:
type: object
description: Inclusion criteria
properties:
children:
description: 'true: Include children in the response
false: Exclude children from response'
example: false
type: boolean
itemAttributes:
description: 'true: Include item attributes in the response
false: Exclude item attributes from the response'
example: false
type: boolean
nodeAttributes:
description: 'true: Include category attributes in the response
false: Exclude category attributes from the response'
example: false
type: boolean
filters:
description: 'true: Include attributes in the response
false: Exclude attributes from the response'
example: false
type: boolean
sources:
description: 'true: Include sources in the response
false: Exclude sources from the response'
example: false
type: boolean
statuses:
description: 'true: Include statuses in the response
false: Exclude statuses from the response'
example: true
type: boolean
type:
description: Category type. The primary hierarchy contains all branches, whereas alternate hierarchies exist to export alternate organizations of the primary hierarchy. If omitted `ALTERNATE` is considered by default.
example: ALTERNATE
type: string
enum:
- PRIMARY
- ALTERNATE
status:
description: Category status. Only ALTERNATE Hierarchies can be filtered using this paramater. If omitted `ACTIVE` status is considered by default.
example: ALL
type: string
enum:
- ACTIVE
- INACTIVE
- ALL
page:
description: Number of pages in the response.
type: number
example: 1
size:
description: Number of categories per page.
type: number
example: 10
match:
type: object
properties:
attribute:
$ref: '#/components/schemas/CategoryAttributeMatch'
and:
type: array
items:
type: object
properties:
attribute:
$ref: '#/components/schemas/CategoryAttributeMatch'
or:
type: array
items:
type: object
properties:
attribute:
$ref: '#/components/schemas/CategoryAttributeMatch'
CategoryChild:
type: object
properties:
id:
description: A 24-character system-generated category ID
type: string
example: 619973877a22c466eee93219
name:
description: Category name
type: string
example: Apple
breadcrumbs:
description: Path of categories leading to root of categories
type: array
items:
$ref: '#/components/schemas/Breadcrumbs'
attributes:
description: Attributes and their details
type: array
items:
$ref: '#/components/schemas/Attribute'
children:
description: Details of children categories
type: array
items:
$ref: '#/components/schemas/CategoryChild'
CategorySingle:
type: object
properties:
id:
description: A 24-character system-generated category ID
type: string
example: 6196b45b5cb04b7ce167cb46
nodeId:
description: Numeric category ID
type: number
example: 16
name:
description: Category name
type: string
example: PCs
hierarchy:
description: Category type
type: string
enum:
- PRIMARY
- ALTERNATE
example: ALTERNATE
isActive:
description: 'true: Category is Active
false: Category is Inactive
**Note**: Inactive status is not applicable for Primary category.'
type: boolean
example: true
breadcrumbs:
description: Path of categories leading to root of categories
type: array
items:
$ref: '#/components/schemas/Breadcrumbs'
attributes:
description: Attributes belonging to this category
type: array
items:
$ref: '#/components/schemas/Attribute'
children:
description: Children categories of this category
type: array
items:
$ref: '#/components/schemas/CategoryChild'
createdOn:
type: string
example: '2022-03-09T23:37:54.086Z'
description: Time of category creation (UTC format)
modifiedOn:
type: string
description: Time when category was last updated (UTC format)
example: '2022-03-09T23:37:54.086Z'
CategoryItemAttributeConditionsRequest:
type: object
required:
- itemAttributes
properties:
id:
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
type: string
example: 6196b45b5cb04b7ce167cb46
nodeId:
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
type: number
example: 25
itemAttributeConditions:
description: Details of conditions set or unset
type: array
items:
type: object
required:
- action
- attributeId
properties:
action:
type: string
enum:
- SET
- UNSET
description: Action type
attributeId:
type: string
example: 609ac75051f11a0007cf38b3
description: A 24-character system-generated attribute ID
condition:
type: object
required:
- type
properties:
type:
description: Applicable criteria
type: string
enum:
- 'YES'
- 'NO'
- CONTAINS
- DOES_NOT_CONTAIN
- IS_EXACT_MATCH
- IS_EQUAL_TO
- IS_GREATER_THAN
- IS_LESS_THAN
- INCLUDES
- EXCLUDES
example: CONTAINS
value:
type: string
example: shoe
description: Value corresponding to condition `type`
CategoryAttribute:
type: object
properties:
id:
description: A 24-character system-generated attribute ID
type: string
example: 61ba11481a29d52cb284252f
name:
description: Attribute name
type: string
example: active
type:
description: Attribute type
type: string
example: BOOLEAN
enum:
- TEXT
- BOOLEAN
- SERIAL
- DECIMAL
- INTEGER
- DATETIME
value:
example: true
description: Value corresponding to `type`
manageItemAttributesResponse:
type: object
properties:
success:
type: array
items:
type: object
properties:
action:
type: string
description: action performed for an attribute to a node (SET | UNSET)
example: SET
id:
type: string
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
example: 6196b45b5cb04b7ce167cb46
nodeId:
type: number
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
example: 25
attributeId:
type: string
description: A 24-character system-generated attribute ID
example: 609ac75051f11a0007cf38b3
name:
type: string
description: Attribute name
example: Image
nodeName:
type: string
description: Category name
example: Sofa
mandatory:
type: boolean
example: false
failed:
type: array
items:
type: object
properties:
index:
type: number
description: Points to the user attributes array index where the error occured
filter:
type: object
properties:
id:
type: string
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category or node, and one of them must be specified.
example: 6196b45b5cb04b7ce167cb46
nodeId:
type: number
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
example: 25
attributeId:
type: string
description: 24-character system-generated attribute ID
example: 609ac75051f11a0007cf38b3
statuses:
type: array
items:
type: object
properties:
code:
type: string
description: The error code
example: NODE_NOT_FOUND
name:
type: string
description: error name
example: Node not found
description:
type: string
description: Node doesn't exists in node collection
CategoryAttributes:
type: object
properties:
id:
description: A 24-character system-generated category ID
type: string
example: 6196b45b5cb04b7ce167cb46
nodeId:
type: number
example: 25
description: Numeric category ID
name:
description: Category name
type: string
example: notes
attributes:
description: Attributes and their details
type: array
items:
$ref: '#/components/schemas/CategoryAttribute'
ModifyCategoryRequest:
type: object
required:
- name
properties:
name:
description: Category name
type: string
example: Furniture
active:
description: 'true: Category is Active
false: Category is Inactive
**Note**: Inactive status is not applicable for Primary category.'
type: boolean
example: true
parentNodeId:
description: Numeric ID of parent category, for external users
type: number
example: 1
order:
description: Position of this category amongst sibling categories within the same parent category
type: number
example: 3
manageItemAttributesRequest:
type: object
properties:
attributes:
type: array
items:
type: object
required:
- action
- attributeId
properties:
action:
type: string
description: Assign or unassign item attributes
example: SET
enum:
- SET
- UNSET
id:
type: string
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
example: 6196b45b5cb04b7ce167cb46
nodeId:
type: number
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
example: 25
attributeId:
type: string
description: A 24-character system-generated attribute ID
example: 609ac75051f11a0007cf38b3
mandatory:
type: boolean
description: 'true: Attribute is mandatory
false: Attribute is optional'
example: false
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`
CategoryPage:
type: object
properties:
totalSize:
description: Total number of records (categories)
type: number
example: 100
pageSize:
description: Number of records (categories) per page
type: number
example: 10
pages:
description: Number of pages for the given `pageSize`
type: number
example: 10
categories:
type: array
items:
$ref: '#/components/schemas/CategorySingle'
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.
NodeSources:
type: object
properties:
totalSize:
description: Total number of records (categories)
type: number
example: 100
pageSize:
description: Number of records (categories) in a page
type: number
example: 10
pages:
description: Number of pages for the given `pageSize`
type: number
example: 10
id:
type: string
example: 6170135a49b4af38190970fe
description: A 24-character system-generated category ID
nodeId:
type: number
example: 12
description: Numeric category ID
name:
type: string
example: Furniture
description: Category name
sources:
type: array
items:
type: object
properties:
id:
type: string
example: 61701259125b7225cbfb21b9
description: A 24-character system-generated attribute ID
nodeId:
type: number
example: 12
description: Numeric category ID
name:
type: string
example: picture
description: Category name
breadcrumbString:
type: string
example: PRIMARY/Furniture/Chairs
description: Path of categories leading to source category
CategoryItemAttributes:
type: object
properties:
id:
type: string
example: 619a8ba6f1875f6dbcaf0521
description: A 24-character system-generated category ID
nodeId:
type: number
example: 25
description: Numeric category ID
name:
type: string
example: electronics
description: Category name
itemAttributes:
type: array
items:
$ref: '#/components/schemas/CategoryItemAttribute'
CategoryItemAttributeConditions:
type: object
properties:
id:
type: string
example: 619a8ba6f1875f6dbcaf0521
description: A 24-character system-generated category ID
nodeId:
type: number
example: 25
description: Numeric category ID
itemAttributeConditions:
type: array
items:
type: object
properties: {}
NodeSourceExclusions:
type: object
properties:
totalSize:
description: Total number of records
type: number
example: 100
pageSize:
description: Number of records (categories) in a page
type: number
example: 10
pages:
description: Number of pages for the given `pageSize`
type: number
example: 10
id:
type: string
example: 6170135a49b4af38190970fe
description: A 24-character system-generated category ID.
nodeId:
type: number
example: 12
description: Numeric category ID
name:
type: string
example: Furniture
description: Category name
sourceExclusions:
type: array
items:
type: object
properties:
id:
type: string
example: 61701259125b7225cbfb21b9
description: A 24-character system-generated category ID
nodeId:
type: number
example: 12
description: Numeric category ID
name:
type: string
example: picture
description: Category name
breadcrumbString:
type: string
example: PRIMARY/Furniture/Chairs
description: Path leading to source of category
GetCategoryItemAttributes:
type: object
properties:
totalSize:
description: Total number of records
type: number
example: 100
pageSize:
description: Number of records in a page
type: number
example: 10
pages:
description: Number of pages for the given `pageSize`
type: number
example: 10
itemAttributes:
type: array
items:
type: object
properties:
id:
description: A 24-character system-generated attribute ID
type: string
example: 61701259125b7225cbfb21b9
mapping:
description: If this attribute is mapped to one of the standard names used by Product Catalog, this is the name the attribute is mapped to.
type: string
example: image
name:
description: Attribute name
type: string
example: picture
type:
description: Attribute type
type: string
example: TEXT
required:
description: 'true: Attribute is mandatory
false: Attribute is optional'
type: boolean
example: true
ModifyCategoryAttributesRequest:
type: object
required:
- attributes
properties:
id:
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
type: string
example: 6196b45b5cb04b7ce167cb46
nodeId:
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
type: number
example: 25
attributes:
description: Details of category attributes
type: array
items:
type: object
required:
- action
- attributeId
properties:
action:
type: string
enum:
- SET
- UNSET
description: Action type
attributeId:
type: string
example: 609ac75051f11a0007cf38b3
description: A 24-character system-generated attribute ID
value:
oneOf:
- type: boolean
- type: number
- type: string
NodeSourcesAndExclusionsRequest:
type: object
properties:
id:
type: string
example: 6170135a49b4af38190970fe
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
nodeId:
type: number
example: 12
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
sourceExclusions:
type: array
items:
type: object
properties:
id:
type: string
example: 61701259125b7225cbfb21b9
description: A 24-character system-generated category ID
nodeId:
type: number
example: 12
description: Numeric category ID
action:
type: string
enum:
- SET
- UNSET
description: Action type
ModifyNodeSourcesRequest:
type: object
properties:
id:
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
type: string
example: 6170135a49b4af38190970fe
nodeId:
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
type: number
example: 12
sources:
type: array
items:
type: object
properties:
id:
type: string
example: 61701259125b7225cbfb21b9
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifiers of a category and one of them must be specified.
nodeId:
type: number
description: Numeric category ID. `nodeId` and `id` are the two identifiers of a category and one of them must be specified.
example: 24
action:
type: string
enum:
- SET
- UNSET
description: Action type
CategoryAttributeMatch:
type: object
properties:
id:
description: 24-character system-generated attribute ID
type: string
example: 6196b44a5cb04b7ce167cb34
name:
description: Attribute name
type: string
example: Category Code
value:
$ref: '#/components/schemas/CategoryAttributeMatchValue'
manageCategoryAttributesResponse:
type: object
properties:
success:
type: array
items:
type: object
properties:
action:
type: string
description: Action performed on a category attribute such as set or unset
example: SET
id:
type: string
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category or node, and one of them must be specified.
example: 6196b45b5cb04b7ce167cb46
nodeId:
type: number
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
example: 25
attributeId:
type: string
description: 24-character system-generated attribute ID
example: 609ac75051f11a0007cf38b3
name:
type: string
description: Attribute name
example: Image
nodeName:
type: string
description: Node name
example: Sofa
value:
oneOf:
- type: boolean
- type: number
- type: string
failed:
type: array
items:
type: object
properties:
index:
type: number
description: Points to the user attributes array index where the error occured
filter:
type: object
properties:
id:
type: string
description: A 24-character system-generated category ID. `nodeId` and `id` are the two identifier of a category or node, and one of them must be specified.
example: 6196b45b5cb04b7ce167cb46
nodeId:
type: number
description: Numeric category ID. `nodeId` and `id` are the two identifier of a category, and one of them must be specified.
example: 25
attributeId:
type: string
description: 24-character system-generated attribute ID
example: 609ac75051f11a0007cf38b3
statuses:
type: array
items:
type: object
properties:
code:
type: string
description: The error code
example: NODE_NOT_FOUND
name:
type: string
description: error name
example: Node not found
description:
type: string
description: Node does not exists
CreateCategoryRequest:
type: object
required:
- name
properties:
name:
description: Category name
type: string
example: notes
active:
description: 'true: Category is Active
false: Category is Inactive
**Note**: When `type` is Primary, `status` must be Active. Inactive status is not applicable for Primary category.'
type: boolean
example: true
parentNodeId:
description: Numeric ID of parent category. If omitted, new category is created under the root category.
type: number
example: 1
order:
description: 'The order in which this child category appears among the sibling categories (of the same parent).
**Note**:
1) Applicable only for children categories.
2) Order 0 means this child category appears at the beginning of other sibling categories.
3) Unless order is specified, the child category appears at the end.'
type: number
example: 3
type:
type: string
enum:
- ALTERNATE
- PRIMARY
description: Category type. Specify this field to create a new root category. Applicable only if `parentNodeId` is omitted.
CategoryAttributeMatchValue:
type: object
properties:
exact:
description: Exact value to match
oneOf:
- type: string
- type: integer
- type: boolean
example: '1234'
contains:
description: Value to match as a substring
type: string
example: '1234'
GetCategoryItemAttributeConditions:
type: object
properties:
totalSize:
description: Total number of records
type: number
example: 100
pageSize:
description: Number of records in a page
type: number
example: 10
pages:
description: Number of pages for the given `pageSize`
type: number
example: 10
id:
type: string
example: 6196b45b5cb04b7ce167cb46
description: A 24-character system-generated category ID
nodeId:
type: number
example: 25
description: Numeric category ID
name:
type: string
example: electronics
itemAttributeConditions:
type: array
items:
type: object
properties: {}
NodeSourcesAndExclusions:
type: object
properties:
id:
type: string
example: 6170135a49b4af38190970fe
description: A 24-character system-generated category ID
nodeId:
type: number
example: 12
description: Numeric category ID
name:
type: string
example: Furniture
description: Category name
sources:
type: array
items:
type: object
properties:
id:
type: string
example: 61701259125b7225cbfb21b9
description: A 24-character system-generated category ID
name:
type: string
example: picture
description: Category name
breadcrumbString:
type: string
example: PRIMARY/Furniture/Chairs
description: Path of categories leading to source of categories
sourceExclusions:
type: array
items:
type: object
properties:
id:
type: string
example: 61701259125b7225cbfb21b9
description: A 24-character system-generated category ID
name:
type: string
example: picture
description: Category name
breadcrumbString:
type: string
example: PRIMARY/Furniture/Chairs
description: Path of categories leading to root of categories
parameters:
Size:
in: query
name: size
description: 'Number of records per page
**Note**:
1) Always paired with `page`.
2) Applicable only in a paginated response.
3) No default value set. Unless a value is specified, endpoint returns an error.'
example: 10
schema:
type: number
MandatoryPage:
in: query
name: page
description: Page number to be retrieved. Applicable only in a paginated response and always paired with `size`.
example: 1
schema:
type: number
required: true
Page:
in: query
name: page
description: 'Page number to be retrieved.
**Note**:
1) Applicable only in a paginated response.
2) Always paired with `size`
3) No default value set. Unless a value is specified, endpoint returns an error.'
example: 1
schema:
type: number
MandatorySize:
in: query
name: size
description: Number of records per page. Applicable only in a paginated response and always paired with `page`.
example: 10
schema:
type: number
required: true
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.
'