openapi: 3.0.0 info: title: Product Catalog description: >- As brands and retailers grow, they often expand their item catalogs, resulting in the need to enrich and manage more product (commonly referred to as item in fabric) data. fabric Product Catalog alleviates the burden of managing large amounts of item data by means of a central storage repository. fabric Product Catalog helps you with improved data quality, consistent customer experience, reduced time to market, easy integration with external systems, reduced management costs and risks, faster and easier updates, and easy scaling. You can create, import, enrich, validate, distribute, and manage complex item information, centrally. As a result, you deliver product experiences that drive sales through every channel.

During onboarding, you are given the necessary credentials to access Product Catalog - Copilot UI, APIs, or both. As a prerequisite, you create the items to be sold, identify their unique as well as common properties, and envision their organization into categories and sub categories. A basic workflow is:
1) **Create item attributes** using POST /api-product/v1/product/attribute/bulk.
2) **Update attribute mapping** using POST /api-product/v1/product/attribute/mapping
3) **Create Primary category** using the POST /api-category/v1/category to create the original organizational structure.
4) **Assign item attributes** to Primary category using POST /api-category/v1/category/item-attribute.
5) **Create items** using POST /api-product/v1/product/bulk/insert.
6) **Create Alternate category**, for distribution management and fulfilling various merchandising objectives. version: 2.0.0 contact: email: support@fabric.inc license: name: fabric API License url: https://fabric.inc/api-license 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. - 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. - name: Attributes description: >- Item attributes are the objective and factual descriptions of items that shoppers see when they browse through your site. Attributes may be technical specifications like size, weight, etc., design specifications like color, material, etc., or basic specifications like name, description, and ID. Ites attributes are crucial as they directly influence purchasing decisions. Complete and correct item information help shoppers narrow down their search and filter items with minimal cognitive load. - name: Bulk Import description: >- Set of endpoints to help bulk import of items, bundles, categories and attributes through CSV files externalDocs: description: Find out more about Product Catalog url: /v3/product-catalog/user-guides/product-catalog/overview servers: - url: https://live.copilot.fabric.inc description: Production 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' /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' /api-category/v1/category/attribute/bulk: post: tags: - Attributes summary: Create, Update and Delete Category Attributes description: >- Creates, updates and deletes category attributes. The primary purpose is to create and edit the attributes to be assigned to categories.
**Note**: They are generic category attributes and not specific to a category. operationId: postCategoryAttributeBulk security: - authorization: [] - api_key: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAttributeRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkAttributeResponse' '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/attribute/bulk: post: tags: - Attributes summary: Create Update and Delete Item Attributes description: >- Item attributes allow you to define specific characteristics for items. Common examples of attributes include size, color, and material. Well-defined attributes are important because they enable item discovery and make catalog management easier.
This endpoint creates and updates item attributes to be assigned later.
**Note**:
1) You can add and manage unlimited attributes for your items. Once they are created, they appear as a selectable option on product pages.
2) In addition, you can assign attributes to items on an individual level or in bulk. operationId: postProductAttributeBulk security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkProductAttributeRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkAttributeResponse' '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/attribute-group: post: tags: - Attributes summary: Create, Update and Delete Attribute Groups description: >- Using attribute groups, you can group various attributes together to make it easier to manage large volume of item information.
Use this endpoint to create, update, or delete attribute groups.
**Note**: In the context of Product Catalog, attribute group is optional. When created, it must have at least one attribute. operationId: modifyAttributeGroups security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/AttributeGroupRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AttributeGroupResponse' '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/attribute-group/search: post: tags: - Attributes summary: Find Attribute Groups description: >- Find attribute groups based on the given search criteria. You will get a paginated response, which you can narrow down using filter criteria such as `page` and `size`. operationId: searchAttributeGroups security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/AttributeGroupSearchRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AttributeGroupSearchResponse' '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/attribute/mapping/search: post: tags: - Attributes summary: Find Attribute Mapping description: >- Searches for attribute mapping based on the given search criteria. You will get a paginated response, which you can narrow down using filter criteria such as `page` and `size`. operationId: searchAttributeMappings security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/AttributeMappingSearch' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AttributeMappingPaginationResponse' '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/attribute/mapping: post: tags: - Attributes summary: Create and Update Attribute Mappings description: >- Set your attribute mapping to begin configuring your catalog. You can update the mappings only if there are no SKUs present in the catalog. security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' operationId: modifyAttributeMappings requestBody: content: application/json: schema: $ref: '#/components/schemas/AttributeMappingModify' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AttributeMappingResponse' '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/template: get: tags: - Bulk Import summary: Generate CSV Template for Categories description: Generates CSV template to bulk upload categories. operationId: generateCSVfileForCategory security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' responses: '200': description: OK content: application/csv: schema: type: string format: binary '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/upload-url: post: tags: - Bulk Import summary: Generate S3 Bucket URL for Categories Import description: >- Generates S3 bucket URL to upload categories using CSV file. Follow these steps to bulk upload categories using CSV:
1) Download the template using *GET /api-category/v1/category/bulk/template*
2) Upload the URL using *POST /api-category/v1/upload-url*
3) Open the URL from the response of the above endpoint (*POST /api-category/v1/upload-url*), change the method to PUT, update **binary** in the requestBody type to view the select file option and upload a CSV from local system
4) You may check the status using this endpoint *GET /api-category/v1/category/bulk/file/:fileId/status* operationId: generateS3urlForCategory security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/GetS3URLRequestUsingOnlyFileName' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetS3URLResponse' '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/file/search: post: tags: - Bulk Import summary: Get Imported Files for Categories description: >- Gets a list of files used for importing categories, along with their current statuses. You will get a paginated response, which you can narrow down using filter criteria such as `page` and `size`. operationId: fileSearchForCategories security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/FileSearchRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FilePaginationResponse' '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/file/{fileId}/status: get: tags: - Bulk Import summary: Get File Upload Status description: Gets file upload status by file ID. operationId: getFileStatusForCategories security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' - in: path name: fileId description: 24-character system-generated file ID schema: type: string required: true example: 626c3c28e041b10009810b21 responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/UploadFileStatusResponse' - $ref: '#/components/schemas/UploadFileStatusNoItemResponse' '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/bulk/template/{accountId}/{nodeId}: get: tags: - Bulk Import summary: Generate CSV Template File for Items description: Generates CSV template to upload items for a specific category. operationId: generateCSVfile security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' - in: path name: accountId description: Account ID schema: type: string required: true - in: path name: nodeId description: A 24-character system-generated category ID schema: type: string required: true example: 6131f771d4a7fa4314e45ebd responses: '200': description: OK content: application/csv: schema: type: string format: binary '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/upload-url: post: tags: - Bulk Import summary: Generate S3 Bucket URL for Item Import description: >- Generates S3 bucket URL to upload items using CSV file. Follow these steps for bulk upload using CSV:
1) Download the template using *GET /api-product/v1/product/bulk/template/:accountid/:nodeId*
2) Upload the url using *POST /api-product/v1/upload-url*
3) Open the URL from the response of the above endpoint (*POST /api-product/v1/upload-url*), change the method to PUT, update **binary** in the requestBody type to view the select file option and upload a CSV from local system
4) You may check the status using this endpoint *GET /api-product/v1/product/bulk/file/:fileId/status* operationId: generateS3url security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/GetS3URLRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetS3URLResponse' '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/file/search: post: tags: - Bulk Import summary: Get Imported Files for Items description: >- Gets a list of files used to import items, along with their current statuses. You will get a paginated response, which you can narrow down using filter criteria such as `page` and `size`. operationId: fileSearch security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/FileSearchRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FilePaginationResponse' '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/bulk/template/bundle/{accountId}/{nodeId}: get: tags: - Bulk Import summary: Generate CSV Template for Bundles description: Generates CSV template to upload bundles for a specific category. operationId: generateItemBundleCSVfile security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' - in: path name: accountId description: Account ID schema: type: string required: true - in: path name: nodeId description: A 24-character system-generated category ID schema: type: string required: true example: 6131f771d4a7fa4314e45ebd responses: '200': description: OK content: application/csv: schema: type: string format: binary '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/upload-url/bundle: post: tags: - Bulk Import summary: Generate S3 Bucket URL for Bundle Import description: Generates S3 bucket URL to upload item bundles using CSV file operationId: generateItemBundleS3url security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/GetS3URLBundleRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetS3URLBundleResponse' '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/file/bundle/search: post: tags: - Bulk Import summary: Get Imported Files for Bundles description: >- Gets a list of files used to import bundles, along with their current statuses. You will get a paginated response, which you can narrow down using filter criteria such as `page` and `size`. operationId: ItemBundleFileSearch security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/FileSearchRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FilePaginationResponse' '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/bulk/template/attribute: get: tags: - Bulk Import summary: Generate CSV Template for Item Attributes description: 'Generates CSV template to upload item attributes. ' operationId: generateItemAttributeCSVfile security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' responses: '200': description: OK content: application/csv: schema: type: string format: binary '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/upload-url/attribute: post: tags: - Bulk Import summary: Generate S3 Bucket URL for Item Attribute Import description: Generates S3 bucket URL to upload item attribute using CSV file operationId: generateItemAttributeS3url security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/GetS3URLItemAttributeRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetS3URLItemAttributeResponse' '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/file/attribute/search: post: tags: - Bulk Import summary: Get Imported Files for Item Attributes description: >- Gets a list of files used to import item attributes, along with their current statuses. You will get a paginated response, which you can narrow down using filter criteria such as `page` and `size`. operationId: ItemAttributeFileSearch security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' requestBody: content: application/json: schema: $ref: '#/components/schemas/FileSearchRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FilePaginationResponse' '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/bulk/file/{fileId}/status: get: tags: - Bulk Import summary: Get File Upload Status description: Gets file upload status by using file ID operationId: getFileStatus security: - authorization: [] parameters: - $ref: '#/components/parameters/xSiteContent' - in: path name: fileId description: A 24-character system-generated file ID schema: type: string required: true example: 626c3c28e041b10009810b21 responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/UploadFileStatusResponse' - $ref: '#/components/schemas/UploadFileStatusNoItemResponse' '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: securitySchemes: api_key: type: apiKey name: x-api-key description: >- The `x-api-key` enables you to access the fabric API without `Authorization`. You must request fabric Inc to obtain this key.
Authorization` header is required if `x-api-key` is omitted. in: header authorization: type: http scheme: bearer bearerFormat: JWT description: S2S access token (JWT) from fabric Identity service (during Login) schemas: BulkAttributeRequest: type: array items: type: object required: - type - name - action properties: action: type: string enum: - CREATE - UPDATE - DELETE example: UPDATE description: >- Action type.
**Note**:
1) Attribute ID is required only for `UPDATE` and `DELETE` actions (not for CREATE).
2) `CREATE` action replaces any existing category attribute with the same name. id: description: A 24-character system-generated attribute ID example: 61ba11691a29d52cb2842541 type: string name: description: Attribute name example: weight type: string description: description: Accurate description of the attribute and what it represents example: Item weight, in KG type: string type: description: Supported attribute types for the attribute example: INTEGER type: string enum: - TEXT - BOOLEAN - SERIAL - DECIMAL - INTEGER - DATETIME - OPTIONS textSubType: description: Conditionally required for `TEXT` attribute type example: HTML type: string enum: - SMALL_TEXT - TEXT_AREA - HTML serialStart: description: >- Conditionally required to indicate the starting value of `SERIAL` attribute type. When enabled, the subsequent attribute values increment by 1. example: 1000 type: number optionsType: description: >- Conditionally required to indicate the selectable values for `OPTIONS` attribute type type: string example: DATETIME enum: - TEXT - BOOLEAN - DECIMAL - INTEGER - DATETIME format: description: >- Attribute format. Currently used only for `DATETIME` attribute type. type: string example: YYYY-MM-DD formula: description: >- JavaScript expression to dynamically compute the attribute value. The data type returned by this expression must match the attribute's data type.
**Note**: When this is provided, `validation` is ignored. type: string example: '`${item.weightValue} ${item.weightUnit}`' validation: type: object properties: required: description: >- true: Attribute is mandatory
false: Attribute is optional type: boolean inheritable: description: >- true: Parent attributes inherited to children items
false: Parent attributes not inherited to children items type: boolean example: true inverse: description: >- true: Inverts existing validation (example - requires that the validation does not pass)
false: Follows existing validation type: boolean unique: description: >- true: Value is unique across all items or categories
false: Value is not unique type: boolean exact: description: Specified value must exactly match this value oneOf: - type: string - type: number - type: boolean attributeTypes: description: Attribute types type: array example: - Serial - Integer items: type: string enum: - TEXT - BOOLEAN - SERIAL - DECIMAL - INTEGER - ASSET - DATETIME contains: description: Specified value must contain this string type: string range: description: Specified range of values must be between this min and/or max type: object properties: min: description: >- Specified value must be greater than or equal to this value oneOf: - type: string - type: number max: description: Specified value must be less than or equal to this value oneOf: - type: string - type: number formula: description: JavaScript expression to determine if the value matches type: string example: value < 10 || value > 20 oneOf: description: Matches the value if it is one of these oneOf: - type: array items: type: string - type: array items: type: number - type: array items: type: boolean BulkAttributeResponse: type: object properties: attributes: type: object properties: success: type: array items: type: object properties: id: type: string example: 622932439c73c975335cb654 description: A 24-character system-generated attribute ID name: type: string example: name description: Attribute name message: type: string description: Success message example: Attribute created successfully failed: type: array items: type: object properties: name: type: string example: ITEM_ATTRIBUTE_VALUE_IS_INVALID description: Failure reason as stored backend errors: type: array items: type: string example: - Attribute value is invalid - Attribute value not found description: Human-readable failure reasons AttributeGroupRequest: type: object required: - transactional properties: transactional: description: >- true: All updates succeed or fail as a unit
false: Some can succeed or fail type: boolean attributeGroup: type: array items: type: object properties: action: type: string enum: - CREATE - UPDATE - DELETE example: UPDATE description: >- Action type. For `CREATE`, 'priorityOrder', 'type', 'name,' and 'editableAttributes' are mandatory. For `UPDATE` and `DELETE`, only `id` is mandatory. type: description: Type of attribute group example: COLLECTION type: string enum: - WORKFLOW - COLLECTION description: description: Accurate description of attribute and what it represents example: Item weight, in KG type: string name: description: Attribute group nam example: weight type: string priorityOrder: description: >- Attribute groups can be assigned a priority order. This is used for attributes that are under multiple attribute groups. They will be returned just once in the attribute group that has the highest priority.
**Note**: Mandatory attribute for 'CREATE', must be unique and start from 0 for the first group. example: 1 type: number id: description: >- A 24-character system-generated attribute group ID. Applicable only for `UPDATE` and `DELETE` actions. To be omitted for 'CREATE'. example: 6259ec8d006b0d00092b3189 type: string editableAttributes: type: array items: $ref: '#/components/schemas/AttributeGroupTypeRequest' AttributeGroupResponse: type: array items: type: object properties: _id: description: A 24-character system-generated attribute group ID example: 6259ec8d006b0d00092b3189 type: string description: description: Accurate description of attribute group and what it represents example: Item weight, in KG type: string type: description: Attribute group type example: COLLECTION type: string enum: - WORKFLOW - COLLECTION name: description: Attribute group name example: weight type: string priorityOrder: description: Order of priority of the attribute group example: 1 type: number createdOn: description: Time of attribute group creation (UTC format). example: '2022-04-15T22:07:09.921Z' type: string modifiedOn: description: Time when attribute group was last modified (UTC format). example: '2022-04-15T22:10:05.427Z' type: string attributes: type: array items: type: object properties: _id: description: A 24-character system-generated attribute ID example: 6259ec8defc2116dd6c0f3fc type: string attributeGroupId: description: A 24-character system-generated attribute group ID of items example: 6259ec8d006b0d00092b3189 type: string attributeId: description: >- A 24-character system-generated attribute ID. This is same as the `_id`. example: 6245f16d11ae770009f19292 type: string isEditable: type: boolean description: >- true: Attribute is editable
false: Attribute is non-editable createdOn: description: Time of attribute creation (UTC format) example: '2022-04-15T22:07:09.932Z' type: string modifiedOn: description: Time of when attribute was last modified (UTC format). example: '2022-04-15T22:10:05.444Z' type: string order: description: Order of item within the attribute group example: 0 type: number AttributeGroupSearchRequest: type: object properties: page: description: Page number to be retrieved example: 0 type: number size: description: Number of records (attribute groups) per page example: 10 type: number include: type: object properties: attributes: type: boolean description: 'true: Includes attributes
false: Excludes attributes' match: type: object properties: target: description: Search target. Currently, supports only ITEM. example: ITEM type: string or: type: array items: type: object properties: name: description: Attribute group name example: weight type: string sort: type: array items: type: object properties: field: description: Field on which the results must be sorted example: priorityOrder type: string direction: description: Direction (ascending or descending) or sorting the response example: DESC type: string enum: - ASC - DESC AttributeGroupSearchResponse: type: object properties: totalSize: description: Total number of records (attribute group) example: 7 type: number pageSize: description: Number of records (attribute group) per page example: 10 type: number pages: description: Number of pages for the given `pageSize` example: 1 type: number attributeGroups: type: array items: type: object properties: _id: description: A 24-character system-generated ID of the attribute group example: 6259ec8d006b0d00092b3189 type: string description: description: Accurate description of the attribute and what it represents example: Item weight, in KG type: string type: description: Attribute group type example: COLLECTION type: string enum: - WORKFLOW - COLLECTION name: description: Attribute group name example: weight type: string priorityOrder: description: Priority order of attribute group example: 1 type: number createdOn: description: Time of attribute group creation (UTC format) example: '2022-04-15T22:07:09.921Z' type: string modifiedOn: description: Time when attribute group was last modified (UTC format) example: '2022-04-15T22:10:05.427Z' type: string totalAttributes: description: Number of attributes in the attribute group example: 1 type: number EditableAttributes: type: array items: $ref: '#/components/schemas/AttributeGroupTypeResponse' ReadOnlyAttributes: type: array items: $ref: '#/components/schemas/AttributeGroupTypeResponse' WorkflowAttributes: items: description: Uses same response as AttributeGroupTypeResponse $ref: '#/components/schemas/WorkflowAttributes' ImpactedAttributes: items: description: Uses same response as AttributeGroupTypeResponse $ref: '#/components/schemas/ImpactedAttributes' WorkflowAttributes: type: object properties: {} ImpactedAttributes: type: object properties: {} AttributeGroupTypeRequest: type: object properties: action: description: >- Action type.
**Note**:
1) Attribute ID is required only for `UPDATE` and `DELETE` actions (not for CREATE).
2) The Create action replaces any existing category attribute with the same name. type: string enum: - ADD - UPDATE - DELETE example: UPDATE id: description: A 24-character system-generated ID of item attribute example: 6245f16d11ae770009f19292 type: string order: description: >- Order of item attributes within the attribute group. Relevant for sorting in the UI. example: 0 type: number AttributeGroupTypeResponse: type: object properties: _id: description: A 24-character system-generated ID, for internal use example: 6259ec8defc2116dd6c0f3fc type: string attributeGroupId: description: A 24-character system-generated ID of attribute group example: 6259ec8d006b0d00092b3189 type: string attributeId: description: A 24-character system-generated attribute ID example: 6245f16d11ae770009f19292 type: string isEditable: type: boolean description: 'true: Attribute is editable
false: Attribute is non-editable' createdOn: description: Time of attribute creation (UTC format) example: '2022-04-15T22:07:09.932Z' type: string modifiedOn: description: Time when attribute was last updated (UTC format) example: '2022-04-15T22:10:05.444Z' type: string order: description: Order of items within the attribute group example: 0 type: number attribute: type: array items: type: object properties: _id: description: A 24-character system-generated attribute ID example: 6259ec8defc2116dd6c0f3fc type: string description: description: Accurate description of attribute and what it represents example: Item weight, in KG. type: string formulaManuallyOverWritten: type: boolean example: false description: >- true: Formula can be manually overwritten
false: Formula cannot be manually overwritten formula: description: Formula for the item attribute example: null type: string type: description: Attribute type example: TEXT type: string name: description: Attribute name example: weight type: string textSubType: description: Conditionally required sub-type for `TEXT` attribute type example: SMALL_TEXT type: string attributeValidationId: example: 624d92f8caa34e0009b5d849 type: string description: Attribute validation ID modifiedBy: description: User ID that modified item attribute example: 60aad2c835c5fb000885f679 type: string createdOn: description: Time of attribute creation (UTC format) example: '2022-04-15T22:07:09.932Z' type: string modifiedOn: description: Time when the attribute was last modified (UTC format) example: '2022-04-15T22:10:05.444Z' type: string 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. 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' 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' 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) 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' 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 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 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' 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' 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 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` 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: {} 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' 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` 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` 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) 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: {} 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 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 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: {} 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 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 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 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 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 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 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. 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' 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' 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) 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' ProductChild: type: object properties: sku: type: string description: Stock Keeping Unit (SKU) of item attributes: type: array items: $ref: '#/components/schemas/ProductAttribute' 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) 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' 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' 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) 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' 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' 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: [] 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' 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' ProductSearch: allOf: - $ref: '#/components/schemas/SearchResponse' - type: object properties: children: type: array items: $ref: '#/components/schemas/ProductChild' BundleSearch: allOf: - $ref: '#/components/schemas/SearchResponse' - type: object properties: bundleItems: type: array items: $ref: '#/components/schemas/ProductChild' 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' 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 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 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' 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 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) 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 AttributeValue: type: object properties: name: type: string example: Mobile description: Attribute name value: type: string example: AMD X570 mobo description: Attribute value 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 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' ItemExport: type: object required: - type properties: include: type: object required: - children properties: children: type: boolean description: 'true: Includes children; false: Excludes children' default: false example: false type: type: string enum: - ITEM - BUNDLE default: ITEM example: ITEM description: Item type ids: type: array description: Item IDs minItems: 1 items: type: string example: - 611686da50fb7e0c5df78c2e - 711686da50fb7e0c5df78c22 ItemExportResponse: type: object properties: code: type: number example: 200 description: API response code message: type: string example: >- Your export has been queued, you will receive an email once the export is ready. description: Message corresponding to `code` trackingID: type: string example: 62daee2addfa4f000932cfc9 description: Tracking ID BulkProductAttributeRequest: type: array items: type: object properties: action: type: string description: >- Action to perform. `id` is required only for `UPDATE`, or `DELETE` (not for CREATE).
**Note**: `CREATE` action replaces any existing item attribute with the same name, if one already exists. enum: - CREATE - UPDATE - DELETE example: UPDATE id: description: A 24-character system-generated attribute ID type: string example: 621c1122ff2e4507c199b75d name: description: >- Attribute name, which is visible on all relevant Product Catalog pages. type: string example: Weight locales: type: array items: type: object properties: locale: type: string description: Language locale example: - fr-ca - es-us name: type: string description: Localized value of 'name' for this attribute example: le poids description: description: Attribute description type: string example: Example description. mapping: description: >- Attribute mapping of item. This corresponds to the `Attribute Mapping` settings of Product Catalog: `sku`, `title`, `image`, `active`, `isVariant`.
**Note**: Most attributes do not have a mapping, in which case this will be null.
**Warning**: Exercise caution while adding or removing mappings of attributes, as it could lead to bad data. type: string example: title type: description: Attribute type type: string enum: - TEXT - BOOLEAN - SERIAL - DECIMAL - INTEGER - DATETIME - OPTIONS textSubType: description: Conditionally required sub-type for `TEXT` attribute type type: string enum: - SMALL_TEXT - TEXT_AREA - HTML serialStart: description: >- Conditionally required to indicate the starting value of `SERIAL` attribute type. When enabled, the subsequent attribute values increment by 1. type: number example: 1 optionsType: description: >- Conditionally required to indicate the selectable values for the `OPTIONS` attribute type type: string enum: - TEXT - BOOLEAN - DECIMAL - INTEGER - DATETIME format: description: >- Attribute format. Currently used only for the attribute type `DATETIME`. type: string example: YYYY-MM-DD formula: description: >- JavaScript expression to dynamically compute the attribute's value. The type returned must match the attribute's type. If the attribute is weight, this formula helps calculate the weight.
**Note**: When this is provided, `validation` is ignored. type: string example: '`${item.weightValue} ${item.weightUnit}`' validation: type: object properties: required: description: >- true: Attribute is mandatory
false: Attribute is optional type: boolean inheritable: description: >- true: Parent attributes inherited to children items
false: Parent attributes not inherited to children items type: boolean inverse: description: >- true: Inverts existing validation (example - requires that the validation does not pass)
false: Follows existing validation type: boolean unique: description: >- true: Specified value is unique across all items or nodes
false: Specified value is not unique type: boolean exact: description: Specified value must exactly match this value oneOf: - type: string - type: number - type: boolean attributeTypes: description: Attribute types type: array example: - Serial - Integer items: type: string enum: - TEXT - BOOLEAN - SERIAL - DECIMAL - INTEGER - ASSET - DATETIME - RESOURCE - DYNAMIC_LOV contains: description: Specified value must contain this string type: string example: Demo startWith: description: Sequence should start with this value type: number example: 1 incrementBy: description: Sequence should increment by this value type: number example: 1 range: description: Specified range of values must be between this min and/or max type: object properties: min: description: >- Specified value must be greater than or equal to this value oneOf: - type: string - type: number max: description: Specified value must be less than or equal to this value oneOf: - type: string - type: number formula: description: JavaScript expression to determine if the value matches type: string example: value < 10 || value > 20 oneOf: description: Matches the value if it is one of these oneOf: - type: array items: type: string - type: array items: type: number - type: array items: type: boolean AttributeMappingSearch: type: object required: - page - size properties: include: type: object properties: attribute: type: boolean description: >- true: include the `attribute` in the response;
false: exclude `attribute` in the response sort: $ref: '#/components/schemas/AttributeMappingSort' match: $ref: '#/components/schemas/AttributeMappingMatch' page: description: >- Page number to be retrieved.
**Note**:
1) Applicable only in a paginated response.
2) Always paired with `size` type: number example: 0 size: description: >- Number of records per page
**Note**:
1) Applicable only in a paginated response.
2) Always paired with `page` type: number example: 10 AttributeMappingSort: description: Sorting preference type: array items: type: object description: Individual fields to sort properties: field: type: string enum: - createdOn - updatedOn - mapping description: >- The field to sort must be specified. Sorting is based on the attribute's *raw* value. direction: type: string enum: - ASC - DESC description: Sorting direction AttributeMappingMatch: description: Specification for matching attribute mapping. type: object properties: target: description: Attribute mapping for the specified target type: string mapping: description: Attribute mapping type: string attributeId: description: A 24-character system-generated Attribute ID type: string example: 62e2ae29c3004a000950ad5f name: description: Mapping for an attribute whose name contains the specified value type: string description: description: >- Mapping for an attribute whose description contains the specified value. type: string required: description: 'true: Returns only the attribute mappings that are mandatory' type: boolean example: true AttributeMappingPaginationResponse: 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: Total number of pages in the response type: number example: 10 mappings: type: array items: $ref: '#/components/schemas/AttributeMappingResponse' AttributeMappingResponse: type: object properties: attributeId: description: A 24-character system-generated attribute ID type: string example: 62e2ae29c3004a000950ad5f attribute: $ref: '#/components/schemas/AttributeResponse' description: >- Represents the mapped attributes. Only populated when `include.attribute` is true.
**Note**: Not applicable for an attribute mapping modify request mapping: description: Attribute mapping type: string example: SKU target: description: Returns attribute mapping for the specified target type: string example: ITEM name: description: Name of attribute mapping type: string example: Item SKU description: description: Description for attribute mapping type: string example: Item SKU required: description: 'true: Mapping is mandatory;
false: mapping is optional' type: boolean validation: $ref: '#/components/schemas/AttributeValidation' createdOn: description: Time of attribute creation (UTC format) type: string format: date-time example: '2021-09-23T17:47:04.231Z' createdBy: description: User ID that created item attribute type: string example: broma0 modifiedOn: description: Time of when the attribute was last modified type: string format: date-time modifiedBy: description: User ID that last modified item attribute type: string example: broma0 AttributeMappingModifyError: type: object properties: code: description: Error code type: string enum: - STATUS_ERROR message: type: array description: Errors for the invalid attributes. items: type: object properties: index: type: number description: >- Index of the 'attribute mapping modify request' to which this error corresponds. mapping: $ref: '#/components/schemas/AttributeMappingResponse' AttributeMappingModify: type: object properties: mappings: type: array items: type: object properties: attributeId: description: Attribute ID type: string example: ATTR1234 mapping: description: Attribute mapping type: string example: SKU name: description: Name of the attribute mapping type: string description: description: Description of the attribute mapping type: string example: Item SKU validation: $ref: '#/components/schemas/AttributeValidation' required: description: 'true: Mapping is mandatory
false: Mapping is optional' type: boolean AttributeResponse: type: object properties: id: description: Attribute ID type: string statuses: description: >- For 'attribute modify request', the `PIM` statuses (if applicable). For 'attribute search request', the statuses defined by the `include.status` request parameter. type: array items: $ref: '#/components/schemas/StatusResponse' files: description: Array of file's associated with an item type: array items: $ref: '#/components/schemas/FileResponse' name: description: Attribute name type: string description: description: Attribute description type: string locales: type: array items: type: object properties: locale: description: Locale identifier type: string example: fr-ca name: description: Localized string value type: string example: Un Nom Français localizable: description: >- true: attribute can be localized
false: attribute cannot be localized type: boolean mapping: description: >- Attribute mapping.
**Note**: Most attributes will not have a mapping, resulting in null value. nullable: true type: string type: description: Data type of the attribute type: string enum: - TEXT - BOOLEAN - SERIAL - DECIMAL - INTEGER - DATETIME serialStart: description: >- Conditionally required to indicate the starting value of `SERIAL` attribute type. When enabled, the subsequent attribute values increment by 1. type: number target: description: Indicates whether the attribute is for categories or items. type: string enum: - NODE - ITEM format: description: >- Attribute format. Currently used only for the attribute type `DATETIME`. type: string example: YYYY-MM-DD formula: description: >- JavaScript expression to dynamically compute the attribute's value.
**Note**: The type returned must match the attribute's type. type: string example: value < 10 || value > 20 validation: $ref: '#/components/schemas/AttributeValidation' createdOn: description: Time of attribute creation type: string format: date-time createdBy: description: ID that created the attribute type: string example: broma0 modifiedOn: description: Time when the attribute was last modified type: string format: date-time modifiedBy: description: User ID that last modified the attribute type: string example: broma0 AttributeValidation: type: object properties: required: description: Indicates mandatory attribute type: boolean inheritable: description: >- true: Parent attributes are inherited to children items
false: Parent attributes are not inherited to children items. type: boolean example: true inverse: description: >- true: Inverts existing validation (example - requires that the validation does not pass)
false: Follows existing validation type: boolean example: false unique: description: >- true: Value is unique across all items or categories
false: Value is not unique type: boolean exact: description: Specified value must exactly match this value oneOf: - type: string - type: number - type: boolean attributeTypes: description: Attribute types type: array items: type: string enum: - TEXT - BOOLEAN - SERIAL - DECIMAL - INTEGER - ASSET - DATETIME contains: description: Specified value must contain this string type: string range: description: Specified range of values must be between this min and/or max type: object properties: min: description: Specified value must be greater than or equal to this value oneOf: - type: string - type: number max: description: Specified value must be less than or equal to this value oneOf: - type: string - type: number formula: description: JavaScript expression to determine if the value matches type: string example: value < 10 || value > 20 oneOf: description: Match the value if it is one of these. oneOf: - type: array items: type: string - type: array items: type: number - type: array items: type: boolean FileResponse: type: object properties: type: description: Status type type: string enum: - IMPORT - EXPORT name: description: File name type: string statuses: description: Current status of the file type: array items: $ref: '#/components/schemas/StatusResponse' progress: description: Import progress in percentage type: number example: 100 createdOn: description: Time of file creation type: string format: date-time createdBy: description: User ID that created the file type: string example: broma0 modifiedOn: description: Time when file was last modified type: string format: date-time modifiedBy: type: string example: broma0 description: User ID that last modified the file secondsTakenToImport: description: >- Time taken to import the file (doesn't include the whole time for the full bulk import process). type: number secondsTakenToProcess: description: Time taken to process the file after the file was read type: number StatusResponse: type: object properties: code: description: Status code type: string type: description: Status type type: string enum: - ATTRIBUTE - ATTRIBUTE_VALUE - ITEM - BUNDLE - NODE - HIERARCHY source: description: Status source type: string enum: - PIM - WAM name: description: Status name type: string description: description: Status description type: string createdOn: description: Time of file creation type: string format: date-time createdBy: description: User ID that created the file type: string example: broma0 modifiedOn: type: string format: date-time description: Time when file was last modified modifiedBy: type: string example: broma0 description: User ID that last modified the file GetS3URLRequest: type: object properties: nodeId: description: Category ID associated with the file type: string example: 611eef8b81f92b882d4f9741 fileName: description: File name to be uploaded in the generated URL type: string example: men-shoes.csv GetS3URLRequestUsingOnlyFileName: type: object properties: fileName: description: File name to be uploaded in the generated URL type: string example: men-shoes.csv 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 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 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' 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' 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' GetS3URLResponse: type: object properties: fileId: description: A 24-character system-generated file ID type: string example: 626c3c28e041b10009810b21 url: description: S3 bucket URL, to upload the template file. type: string example: >- https://demo-dev02-bulk-import-pim.s3.amazonaws.com/item/609ac75051f11a0007cf38b3/dev02/1651260453554-men-shoes.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA26KLJWUACLU2AF6F%2F20220429%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220429T192736Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDsaCXVzLWVhc3QtMSJGMEQCIGW476Ala9Go95rgQ3gVPwSvCbcZPrm4WgLs186q0R6GAiBqqVo4yuAkTKZTMl2qBF8hJOySqicG42ObKpyPtBmGWir4Awj0%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAIaDDc1MjMxNDA3MDI3MiIMSeKQqQmLFWlfgsfVKswDvUDycKtqRnlcHaiuM56ZPrzPio9ylmxLaqjgUDCdF73ZqtkL41jqTf0kI%2FOnkXegoOks5dRbnprCbDwJxQFiwyOgQ9w8VC8ZCVzG6s6V7vnQDMQZ2mAVDk30KjL9BXShFNqBqY6r6COCJtyi5kMHpUjA8HM6Q7N19XOg7kH1VVnm4UZpWU%2F9blF8EMjiqIvWfjmRdv%2BnmBdx3RztZ0jEuJ9g4YeEmOZUUCaZoNLl78nE5vPoTQLNW%2F5YzKMO8ECTJ3Vr8nY%2BCVl5bTrAMK4TdCK%2BVaZjEpw7DQrSKmaR1JhQlYxD%2F%2F3WxPc%2FECeYD7eTLmWOYXh3LELhOYyy49%2Bx0MhdUaYQTlSsuU4NKnWcYcyeIh5J7%2Bef4Q9PgkBZqdE7gCN5m%2BqmfDLzu4W1SjR47MbdXYIiShDdvvM2DDrmwfMuTMS14fEWiMP4zhuehc12gA%2BGTwmuHjqYQCuRswGncP9574CXT1mzu%2BcW5bqMNKg80paslu2ipNJL4vScEjV%2FFYcYGCoXskYgBQr5IZJ4xdtv%2BYGrEMiCbob8UZ1oT5QtJSyLVqOqGt%2FvomDHdHqMved8fQbyddZo28DC%2BwB1DEI3XsLEp3rZFCeLzTCt3bCTBjqmAe%2F4uuvRSexVKYd%2F4XCVdbKrZG%2Fl7JoTsJv%2FI4k8nqezmqPAgpErsqCyvqyUXTx8jgrxi70EuiH6n1F5QEhMfge4C41jFKqYsY%2FxWEkwZw89koTrbzGs2z64i4eCzDU5u3OItYGVaEctdbHnpx%2FA3xnOgdPoGP%2FDQPVgCdsMWvjCkRDbNcBoSLXuXSRBgbOXy2RgkHY5YQ%2Fxys257mGLb3FZhjqvScs%3D&X-Amz-Signature=24c29de90587424ffdb21a7d970ef08c0a68ebaccd562f95b766dd01faad9d56&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-nodeid%3Bx-amz-meta-prefix%3Bx-amz-meta-stage&x-amz-meta-account=609ac75051f11a0007cf38b3&x-amz-meta-channel=12&x-amz-meta-fileid=626c3c28e041b10009810b21&x-amz-meta-filename=men-shoes-bundle-local.csv&x-amz-meta-nodeid=611eef8b81f92b882d4f9741&x-amz-meta-prefix=item&x-amz-meta-stage=dev02 key: description: S3 key of the file type: string example: item/609ac75051f11a0007cf38b3/dev02/1651260453554-men-shoes.csv GetS3URLItemAttributeRequest: type: object properties: fileName: description: File name to be uploaded in the generated URL type: string example: item-attributes.csv GetS3URLItemAttributeResponse: type: object properties: fileId: description: A 24-character system-generated file ID type: string example: 626c415430548500093811f1 url: description: S3 bucket url, to upload the template file. type: string example: >- https://demo-dev02-bulk-import-pim.s3.amazonaws.com/attribute/60ac19ef893ab1000864b771/dev02/1651261780352-item-attributes.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA26KLJWUAC474VT4E%2F20220429%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220429T194940Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDwaCXVzLWVhc3QtMSJHMEUCIQCesp8JqH%2F%2F3QZP%2BcybG392bRrSI2d%2BHbBfYknEgqDuXAIgStf8iZndc9fOzokQimbgivAGx1hum81ZVqKbxFuigaMqsAII9f%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARACGgw3NTIzMTQwNzAyNzIiDE7VWWdAw%2BMtShgibSqEAtJrxQ%2B0h7Bu9DE3FcCGCi4fyAoLxtkAFRUWQ28ciZDvS5PC%2BU4%2FOvjuXSttg%2Bz%2F8E3Ff0QqI8%2BWOOG02O4DQSpUEc9aDBqXFVB2nezNz6CCyoIhlxRhHJXrjboktovlKAHnRpB0KRgHo7B05v2%2BM9z49w%2FzFrB%2FrW5XF0bFMyYGsm3aK0%2B4C8kS9oJ0dDxaKYxe%2BaKrn0XmcBLBduu3fL2h6WRhv29%2FDQxmwDO9O%2FNXfYAxnB2iQYAo2ZuL8ujcyDQPp2zNLFYiwQpQYE4DhVCT2CDw1SJU7xTi3ZHYDmt7xfe2vgwKxPolZumOIVIhBa7%2Fj7tma%2FbuX%2BAjKHUFnBfMnE5oMPuBsZMGOpoBWHVtEmbAx%2FsCaUu9jpSJoHgNkIDwxVGvV2XPPoNJIhLg9aCC2cMnAkRbbLOplmV4fnWmsY15Hdjd6CIhX5fCKGv2gLJCs6XpanNOm89KI8Ro9q4Gh5MvytJlSIEXuYgBI%2B2%2FWF5iNF0%2BUZX7cNtZjLK7yXHytJP94f0vF%2BqbAIpG%2FT9yyn1Z9KKWyMeIpCYsAsEY%2F1seiB6slA%3D%3D&X-Amz-Signature=b029ce0c5158f33fc4867d6a40f59d133d15d34fb300615e6c74b7414f8fe668&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-prefix%3Bx-amz-meta-stage%3Bx-amz-meta-user&x-amz-meta-account=60ac19ef893ab1000864b771&x-amz-meta-channel=&x-amz-meta-fileid=626c415430548500093811f1&x-amz-meta-filename=item-attributes.csv&x-amz-meta-prefix=attribute&x-amz-meta-stage=dev02 key: description: S3 key of the file type: string example: >- attribute/60ac19ef893ab1000864b771/dev02/1651261780352-item-attributes.csv GetS3URLBundleRequest: type: object properties: nodeId: description: Category ID associated with the file type: string example: 626a31a2d877f5e49efad330 fileName: description: File name to be uploaded in the generated URL type: string example: men-shoes-bundle-local.csv GetS3URLBundleResponse: type: object properties: fileId: description: A 24-character system-generated file ID type: string example: 626c3c28e041b10009810b21 url: description: S3 bucket URL, to upload the template file type: string example: >- https://demo-dev02-bulk-import-pim.s3.amazonaws.com/item-bundles/609ac75051f11a0007cf38b3/dev02/1651266490891-men-shoes-bundle-local.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA26KLJWUAMB3F4HM7%2F20220429%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220429T210813Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDsaCXVzLWVhc3QtMSJGMEQCIGW476Ala9Go95rgQ3gVPwSvCbcZPrm4WgLs186q0R6GAiBqqVo4yuAkTKZTMl2qBF8hJOySqicG42ObKpyPtBmGWir4Awj0%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAIaDDc1MjMxNDA3MDI3MiIMSeKQqQmLFWlfgsfVKswDvUDycKtqRnlcHaiuM56ZPrzPio9ylmxLaqjgUDCdF73ZqtkL41jqTf0kI%2FOnkXegoOks5dRbnprCbDwJxQFiwyOgQ9w8VC8ZCVzG6s6V7vnQDMQZ2mAVDk30KjL9BXShFNqBqY6r6COCJtyi5kMHpUjA8HM6Q7N19XOg7kH1VVnm4UZpWU%2F9blF8EMjiqIvWfjmRdv%2BnmBdx3RztZ0jEuJ9g4YeEmOZUUCaZoNLl78nE5vPoTQLNW%2F5YzKMO8ECTJ3Vr8nY%2BCVl5bTrAMK4TdCK%2BVaZjEpw7DQrSKmaR1JhQlYxD%2F%2F3WxPc%2FECeYD7eTLmWOYXh3LELhOYyy49%2Bx0MhdUaYQTlSsuU4NKnWcYcyeIh5J7%2Bef4Q9PgkBZqdE7gCN5m%2BqmfDLzu4W1SjR47MbdXYIiShDdvvM2DDrmwfMuTMS14fEWiMP4zhuehc12gA%2BGTwmuHjqYQCuRswGncP9574CXT1mzu%2BcW5bqMNKg80paslu2ipNJL4vScEjV%2FFYcYGCoXskYgBQr5IZJ4xdtv%2BYGrEMiCbob8UZ1oT5QtJSyLVqOqGt%2FvomDHdHqMved8fQbyddZo28DC%2BwB1DEI3XsLEp3rZFCeLzTCt3bCTBjqmAe%2F4uuvRSexVKYd%2F4XCVdbKrZG%2Fl7JoTsJv%2FI4k8nqezmqPAgpErsqCyvqyUXTx8jgrxi70EuiH6n1F5QEhMfge4C41jFKqYsY%2FxWEkwZw89koTrbzGs2z64i4eCzDU5u3OItYGVaEctdbHnpx%2FA3xnOgdPoGP%2FDQPVgCdsMWvjCkRDbNcBoSLXuXSRBgbOXy2RgkHY5YQ%2Fxys257mGLb3FZhjqvScs%3D&X-Amz-Signature=24c29de90587424ffdb21a7d970ef08c0a68ebaccd562f95b766dd01faad9d56&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-nodeid%3Bx-amz-meta-prefix%3Bx-amz-meta-stage&x-amz-meta-account=609ac75051f11a0007cf38b3&x-amz-meta-channel=12&x-amz-meta-fileid=626c3c28e041b10009810b21&x-amz-meta-filename=men-shoes-bundle-local.csv&x-amz-meta-nodeid=626a31a2d877f5e49efad330&x-amz-meta-prefix=item&x-amz-meta-stage=dev02 key: description: S3 key of the file type: string example: >- item-bundles/609ac75051f11a0007cf38b3/dev02/1651266490891-men-shoes-bundle-local.csv FileSearchRequest: type: object properties: page: description: >- Page number to be retrieved.
**Note**:
1) Applicable only in a paginated response.
2) Always paired with `size` type: number example: 1 size: description: >- Number of records (attribute groups) per page
**Note**:
1) Applicable only in a paginated response.
2) Always paired with `page` example: 10 FilePaginationResponse: type: object properties: totalSize: description: Total number of records type: number example: 100 pageSize: description: Number of records (bundle) in a page type: number example: 10 pages: description: Number of pages for the given `pageSize` type: number example: 10 files: description: Files and their details type: array items: $ref: '#/components/schemas/FileResponse' UploadFileStatusResponse: type: object properties: createdOn: type: string description: Time of file upload (UTC format) example: '2021-09-14T22:10:30.618Z' name: type: string description: Name of CSV file example: Duplicate+New+Dup.csv csvLink: type: string description: URL to download uploaded CSV file. example: >- https://demo-dev02-bulk-import-pim.s3.amazonaws.com/item-bundles/609ac75051f11a0007cf38b3/dev02/1651266490891-men-shoes-bundle-local.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA26KLJWUAMB3F4HM7%2F20220429%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220429T210813Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDsaCXVzLWVhc3QtMSJGMEQCIGW476Ala9Go95rgQ3gVPwSvCbcZPrm4WgLs186q0R6GAiBqqVo4yuAkTKZTMl2qBF8hJOySqicG42ObKpyPtBmGWir4Awj0%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAIaDDc1MjMxNDA3MDI3MiIMSeKQqQmLFWlfgsfVKswDvUDycKtqRnlcHaiuM56ZPrzPio9ylmxLaqjgUDCdF73ZqtkL41jqTf0kI%2FOnkXegoOks5dRbnprCbDwJxQFiwyOgQ9w8VC8ZCVzG6s6V7vnQDMQZ2mAVDk30KjL9BXShFNqBqY6r6COCJtyi5kMHpUjA8HM6Q7N19XOg7kH1VVnm4UZpWU%2F9blF8EMjiqIvWfjmRdv%2BnmBdx3RztZ0jEuJ9g4YeEmOZUUCaZoNLl78nE5vPoTQLNW%2F5YzKMO8ECTJ3Vr8nY%2BCVl5bTrAMK4TdCK%2BVaZjEpw7DQrSKmaR1JhQlYxD%2F%2F3WxPc%2FECeYD7eTLmWOYXh3LELhOYyy49%2Bx0MhdUaYQTlSsuU4NKnWcYcyeIh5J7%2Bef4Q9PgkBZqdE7gCN5m%2BqmfDLzu4W1SjR47MbdXYIiShDdvvM2DDrmwfMuTMS14fEWiMP4zhuehc12gA%2BGTwmuHjqYQCuRswGncP9574CXT1mzu%2BcW5bqMNKg80paslu2ipNJL4vScEjV%2FFYcYGCoXskYgBQr5IZJ4xdtv%2BYGrEMiCbob8UZ1oT5QtJSyLVqOqGt%2FvomDHdHqMved8fQbyddZo28DC%2BwB1DEI3XsLEp3rZFCeLzTCt3bCTBjqmAe%2F4uuvRSexVKYd%2F4XCVdbKrZG%2Fl7JoTsJv%2FI4k8nqezmqPAgpErsqCyvqyUXTx8jgrxi70EuiH6n1F5QEhMfge4C41jFKqYsY%2FxWEkwZw89koTrbzGs2z64i4eCzDU5u3OItYGVaEctdbHnpx%2FA3xnOgdPoGP%2FDQPVgCdsMWvjCkRDbNcBoSLXuXSRBgbOXy2RgkHY5YQ%2Fxys257mGLb3FZhjqvScs%3D&X-Amz-Signature=24c29de90587424ffdb21a7d970ef08c0a68ebaccd562f95b766dd01faad9d56&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-nodeid%3Bx-amz-meta-prefix%3Bx-amz-meta-stage&x-amz-meta-account=609ac75051f11a0007cf38b3&x-amz-meta-channel=12&x-amz-meta-fileid=626c3c28e041b10009810b21&x-amz-meta-filename=men-shoes-bundle-local.csv&x-amz-meta-nodeid=626a31a2d877f5e49efad330&x-amz-meta-prefix=item&x-amz-meta-stage=dev02 errorCsv: type: string description: URL to download import error file. example: >- https://demo-dev02-bulk-import-pim.s3.amazonaws.com/item-bundles/609ac75051f11a0007cf38b3/dev02/1651266490891-error.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA26KLJWUAMB3F4HM7%2F20220429%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220429T210813Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDsaCXVzLWVhc3QtMSJGMEQCIGW476Ala9Go95rgQ3gVPwSvCbcZPrm4WgLs186q0R6GAiBqqVo4yuAkTKZTMl2qBF8hJOySqicG42ObKpyPtBmGWir4Awj0%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAIaDDc1MjMxNDA3MDI3MiIMSeKQqQmLFWlfgsfVKswDvUDycKtqRnlcHaiuM56ZPrzPio9ylmxLaqjgUDCdF73ZqtkL41jqTf0kI%2FOnkXegoOks5dRbnprCbDwJxQFiwyOgQ9w8VC8ZCVzG6s6V7vnQDMQZ2mAVDk30KjL9BXShFNqBqY6r6COCJtyi5kMHpUjA8HM6Q7N19XOg7kH1VVnm4UZpWU%2F9blF8EMjiqIvWfjmRdv%2BnmBdx3RztZ0jEuJ9g4YeEmOZUUCaZoNLl78nE5vPoTQLNW%2F5YzKMO8ECTJ3Vr8nY%2BCVl5bTrAMK4TdCK%2BVaZjEpw7DQrSKmaR1JhQlYxD%2F%2F3WxPc%2FECeYD7eTLmWOYXh3LELhOYyy49%2Bx0MhdUaYQTlSsuU4NKnWcYcyeIh5J7%2Bef4Q9PgkBZqdE7gCN5m%2BqmfDLzu4W1SjR47MbdXYIiShDdvvM2DDrmwfMuTMS14fEWiMP4zhuehc12gA%2BGTwmuHjqYQCuRswGncP9574CXT1mzu%2BcW5bqMNKg80paslu2ipNJL4vScEjV%2FFYcYGCoXskYgBQr5IZJ4xdtv%2BYGrEMiCbob8UZ1oT5QtJSyLVqOqGt%2FvomDHdHqMved8fQbyddZo28DC%2BwB1DEI3XsLEp3rZFCeLzTCt3bCTBjqmAe%2F4uuvRSexVKYd%2F4XCVdbKrZG%2Fl7JoTsJv%2FI4k8nqezmqPAgpErsqCyvqyUXTx8jgrxi70EuiH6n1F5QEhMfge4C41jFKqYsY%2FxWEkwZw89koTrbzGs2z64i4eCzDU5u3OItYGVaEctdbHnpx%2FA3xnOgdPoGP%2FDQPVgCdsMWvjCkRDbNcBoSLXuXSRBgbOXy2RgkHY5YQ%2Fxys257mGLb3FZhjqvScs%3D&X-Amz-Signature=24c29de90587424ffdb21a7d970ef08c0a68ebaccd562f95b766dd01faad9d56&X-Amz-SignedHeaders=host%3Bx-amz-meta-account%3Bx-amz-meta-channel%3Bx-amz-meta-fileid%3Bx-amz-meta-filename%3Bx-amz-meta-nodeid%3Bx-amz-meta-prefix%3Bx-amz-meta-stage&x-amz-meta-account=609ac75051f11a0007cf38b3&x-amz-meta-channel=12&x-amz-meta-fileid=626c3c28e041b10009810b21&x-amz-meta-filename=men-shoes-bundle-local.csv&x-amz-meta-nodeid=626a31a2d877f5e49efad330&x-amz-meta-prefix=item&x-amz-meta-stage=dev02 statuses: type: array description: Upload status items: oneOf: - $ref: '#/components/schemas/objectUploadFileStatus' - $ref: '#/components/schemas/objectUploadFileStatusNotFound' objectUploadFileStatus: type: object properties: code: description: Progress code type: string example: FILE_PROGRESS_COMPLETE description: description: Status description type: string example: Import successful name: description: Status name type: string example: file progress is complete objectUploadFileStatusNotFound: type: object properties: code: description: Status code type: string example: NOT_FOUND description: description: Description for status type: string example: status not found name: description: Status name type: string example: not found UploadFileStatusNoItemResponse: type: object properties: code: description: Status code type: string example: ITEM_NOT_FOUND description: description: Status description type: string example: item not found name: description: Status name type: string example: item not found 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 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 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 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 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 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 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"} 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 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 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 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