Download OpenAPI specification:Download
As brands and retailers grow, they often expand their product catalogs, resulting in the need to enrich and manage more product data. fabric product information management (PIM) solution alleviates the burden of managing large amounts of product data by means of a central storage repository. fabric PIM 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 product 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 PIM - Copilot UI, APIs, or both. As a prerequisite, you create a list of products 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 product attributes using POST /v1/product/attribute/bulk.
2) Map your product attributes to attributes available in PIM, via Copilot UI.
3) Create Primary category using the POST /v1/category to create the original organizational structure.
4) Assign product attributes to Primary category using POST /v1/category/item-attribute.
5) Create products using POST /v1/product/bulk/insert.
6) Create Alternate category, for distribution management and fulfilling various merchandising objectives.
Categories (also called hierarchies or nodes) are hierarchical structures to organize products and services into intuitive groups. Organizing products in this way simplifies product discovery and lifecycle management. There are two types of categories - Primary and Alternate. They enable you to create, organize, and distribute product data.
- Primary category is the original catalog tree with nested levels of categories that place each product where it belongs, within a category. For example, Computers
is a parent category with Laptops
and Desktops
as child categories, and MacBbook Pro
is a product 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 products 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 products 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 PIM endpoints, aims to simplify catalog management by letting you create, update, and get one or more categories, category attributes, and product attributes. In addition, you can add and update category sources, source exclusions, and product attribute conditions.
Creates Primary or Alternate category to organize products 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 product (POST /v1/product/bulk/insert).
OK
Client error
Internal server error
{- "name": "notes",
- "active": true,
- "parentNodeId": 1,
- "order": 3,
- "type": "ALTERNATE"
}
{- "id": "6170135a49b4af38190970fe",
- "nodeId": 12,
- "name": "Furniture",
- "createdOn": "2021-12-01T00:00:00.000Z",
- "modifiedOn": "2021-12-01T00:00:00.000Z",
- "attributes": [
- { }
], - "children": [
- { }
], - "breadcrumbs": [
- { }
]
}
Lists categories and their details including attributes, breadcrumbs, and details of child categories.
Note:
1) Specify 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. As a result, size
and page
becomes mandatory to support large data.
object Represents single or multi-tenancy. If omitted, |
OK
Client error
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "categories": [
- {
- "id": "6196b45b5cb04b7ce167cb46",
- "nodeId": 16,
- "name": "PCs",
- "hierarchy": "ALTERNATE",
- "isActive": true,
- "breadcrumbs": [
- {
- "id": "6196b44a5cb04b7ce167cb34",
- "nodeId": 10,
- "name": "Computers",
- "level": 0,
- "hierarchy": "ALTERNATE",
- "isActive": true,
- "createdOn": "2022-03-09T23:37:54.086Z",
- "modifiedOn": "2022-03-09T23:37:54.086Z"
}
], - "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "Notes for this particular category.",
- "type": "TEXT",
- "value": "Unable to fulfill demand."
}
], - "children": [
- {
- "id": "619973877a22c466eee93219",
- "name": "Apple",
- "breadcrumbs": [
- {
- "id": "6196b44a5cb04b7ce167cb34",
- "nodeId": 10,
- "name": "Computers",
- "level": 0,
- "hierarchy": "ALTERNATE",
- "isActive": true,
- "createdOn": "2022-03-09T23:37:54.086Z",
- "modifiedOn": "2022-03-09T23:37:54.086Z"
}
], - "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "Notes for this particular category.",
- "type": "TEXT",
- "value": "Unable to fulfill demand."
}
], - "children": [
- { }
]
}
], - "createdOn": "2022-03-09T23:37:54.086Z",
- "modifiedOn": "2022-03-09T23:37:54.086Z"
}
]
}
Updates category details such as name, parent, and its order of appearance amongst sibling categories.
OK
Client error
Internal server error
{- "name": "Furniture",
- "active": true,
- "parentNodeId": 1,
- "order": 3
}
{- "id": "6170135a49b4af38190970fe",
- "nodeId": 12,
- "name": "Furniture",
- "createdOn": "2021-12-01T00:00:00.000Z",
- "modifiedOn": "2021-12-01T00:00:00.000Z",
- "attributes": [
- { }
], - "children": [
- { }
], - "breadcrumbs": [
- { }
]
}
Finds categories, by keywords, category identifiers, type, or status.
Note:
1) Categories and child categories must already exist in the system.
2) When query parameters are omitted, this endpoint returns a paginated response with all the categories. As a result, page
and size
become mandatory to accommodate large data.
3) GET /v1/category (Store admin context) or Algolia search (Shopper context) is strongly recommended over this endpoint.
object Represents single or multi-tenancy. If omitted, |
OK
Client error
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "categories": [
- {
- "id": "6196b45b5cb04b7ce167cb46",
- "nodeId": 16,
- "name": "PCs",
- "hierarchy": "ALTERNATE",
- "isActive": true,
- "breadcrumbs": [
- {
- "id": "6196b44a5cb04b7ce167cb34",
- "nodeId": 10,
- "name": "Computers",
- "level": 0,
- "hierarchy": "ALTERNATE",
- "isActive": true,
- "createdOn": "2022-03-09T23:37:54.086Z",
- "modifiedOn": "2022-03-09T23:37:54.086Z"
}
], - "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "Notes for this particular category.",
- "type": "TEXT",
- "value": "Unable to fulfill demand."
}
], - "children": [
- {
- "id": "619973877a22c466eee93219",
- "name": "Apple",
- "breadcrumbs": [
- {
- "id": "6196b44a5cb04b7ce167cb34",
- "nodeId": 10,
- "name": "Computers",
- "level": 0,
- "hierarchy": "ALTERNATE",
- "isActive": true,
- "createdOn": "2022-03-09T23:37:54.086Z",
- "modifiedOn": "2022-03-09T23:37:54.086Z"
}
], - "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "Notes for this particular category.",
- "type": "TEXT",
- "value": "Unable to fulfill demand."
}
], - "children": [
- { }
]
}
], - "createdOn": "2022-03-09T23:37:54.086Z",
- "modifiedOn": "2022-03-09T23:37:54.086Z"
}
]
}
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.
object Represents single or multi-tenancy. If omitted, |
OK
Client error
Internal server error
{- "id": "6196b45b5cb04b7ce167cb46",
- "nodeId": 16,
- "name": "PCs",
- "hierarchy": "ALTERNATE",
- "isActive": true,
- "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "Notes for this particular category.",
- "type": "TEXT",
- "value": "Unable to fulfill demand."
}
], - "children": [
- {
- "id": "619973877a22c466eee93219",
- "name": "Apple",
- "breadcrumbs": [
- {
- "id": "6196b44a5cb04b7ce167cb34",
- "nodeId": 10,
- "name": "Computers",
- "level": 0,
- "hierarchy": "ALTERNATE",
- "isActive": true,
- "createdOn": "2022-03-09T23:37:54.086Z",
- "modifiedOn": "2022-03-09T23:37:54.086Z"
}
], - "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "Notes for this particular category.",
- "type": "TEXT",
- "value": "Unable to fulfill demand."
}
], - "children": [
- { }
]
}
], - "createdOn": "2022-03-09T23:37:54.086Z",
- "modifiedOn": "2022-03-09T23:37:54.086Z"
}
Gets SKUs of all products belonging to a category.
Note:
1) To get SKUs, Algolia search is recommended over this endpoint.
2) Categories must exist in the system to get SKUs in that category. If SKUs are not created in the given category ID, this endpoint returns an empty list.
object Represents single or multi-tenancy. If omitted, |
OK
Client error
Internal server error
{- "totalSize": 3,
- "pageSize": 10,
- "pages": 1,
- "id": "6196b45b5cb04b7ce167cb46",
- "nodeId": 2,
- "name": "electronics",
- "skus": [
- "mobo12001",
- "mobo12002",
- "mobo12003"
]
}
Category attributes let you define characteristics of categories and child categories.
This endpoint creates, updates, or removes attributes of a single category. The primary purpose is to assign attributes.
OK
Client error
Internal server error
{- "id": "6196b45b5cb04b7ce167cb46",
- "nodeId": 25,
- "attributes": [
- {
- "action": "SET",
- "attributeId": "609ac75051f11a0007cf38b3",
- "value": true
}
]
}
{- "id": "6196b45b5cb04b7ce167cb46",
- "nodeId": 25,
- "name": "notes",
- "attributes": [
- {
- "id": "61ba11481a29d52cb284252f",
- "name": "active",
- "type": "BOOLEAN",
- "value": true
}
]
}
Gets all attributes of a category.
Note:
Get category endpoint (GET /v1/category) returns categories, their attributes, child categories, and breadcrumb details. So, this endpoint is recommended if you have a category ID and only require its attributes.
object Represents single or multi-tenancy. If omitted, |
OK
Client error
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "id": "619a8ba6f1875f6dbcaf0521",
- "nodeId": 2,
- "name": "electronics",
- "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "Notes for this particular category.",
- "type": "TEXT",
- "value": "Unable to fulfill demand."
}
]
}
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.
OK
Client error
Internal server error
[- {
- "action": "UPDATE",
- "id": "61ba11691a29d52cb2842541",
- "name": "weight",
- "description": "Weight of the product, in KG",
- "type": "INTEGER",
- "textSubType": "HTML",
- "serialStart": 1000,
- "optionsType": "DATETIME",
- "format": "YYYY-MM-DD",
- "formula": "`${item.weightValue} ${item.weightUnit}`",
- "validation": {
- "required": true,
- "inheritable": true,
- "inverse": true,
- "unique": true,
- "exact": "string",
- "attributeTypes": [
- "Serial",
- "Integer"
], - "contains": "string",
- "range": {
- "min": "string",
- "max": "string"
}, - "formula": "value < 10 || value > 20",
- "oneOf": [
- "string"
]
}
}
]
{- "attributes": {
- "success": [
- {
- "id": "622932439c73c975335cb654",
- "name": "name",
- "message": "Attribute created successfully"
}
], - "failed": [
- {
- "name": "ITEM_ATTRIBUTE_VALUE_IS_INVALID",
- "errors": [
- [
- "Attribute value is invalid",
- "Attribute value not found"
]
]
}
]
}
}
Categories lets merchants segregate and group items. They also allow specifying 'mandatory' and 'optional' attributes that all products (aka items) within that category must have. They are used to store structured information about products.
This endpoint creates and updates (also deletes) product attributes for the specified category.
OK
Client error
Internal server error
{- "id": "619a8ba6f1875f6dbcaf0521",
- "nodeId": 25,
- "itemAttributes": [
- {
- "action": "SET",
- "attributeId": "609ac75051f11a0007cf38b3",
- "mandatory": false
}
]
}
{- "id": "619a8ba6f1875f6dbcaf0521",
- "nodeId": 25,
- "name": "electronics",
- "itemAttributes": [
- {
- "id": "61ba11691a29d52cb2842541",
- "name": "published",
- "type": "BOOLEAN",
- "required": false
}
]
}
Gets all the product (aka item) attributes for the specified category.
Note: Products may also inherit product attributes from parent categories.
object Represents single or multi-tenancy. If omitted, |
OK
Client error
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "itemAttributes": [
- {
- "id": "61701259125b7225cbfb21b9",
- "mapping": "image",
- "name": "picture",
- "type": "TEXT",
- "required": true
}
]
}
Creates and updates category sources.
Primary category is the original catalog tree consisting of nested levels of child categories and is used to place products 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 products in the Primary category appear within the Alternate category; it behaves like a symlink.
OK
client error
Internal server error
{- "id": "6170135a49b4af38190970fe",
- "nodeId": 12,
- "sources": [
- {
- "id": "61701259125b7225cbfb21b9",
- "nodeId": 24,
- "action": "SET"
}
]
}
{- "id": "6170135a49b4af38190970fe",
- "nodeId": 12,
- "name": "Furniture",
- "sources": [
- {
- "id": "61701259125b7225cbfb21b9",
- "name": "picture",
- "breadcrumbString": "PRIMARY/Furniture/Chairs"
}
], - "sourceExclusions": [
- {
- "id": "61701259125b7225cbfb21b9",
- "name": "picture",
- "breadcrumbString": "PRIMARY/Furniture/Chairs"
}
]
}
Gets all the available category sources.
Products 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 products that appear in Alternate categories. The category sources are Primary categories that can be used as product sources in Alternate categories. Sources behave similar to symlinks.
object Represents single or multi-tenancy. If omitted, |
OK
Client error
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "id": "6170135a49b4af38190970fe",
- "nodeId": 12,
- "name": "Furniture",
- "sources": [
- {
- "id": "61701259125b7225cbfb21b9",
- "nodeId": 12,
- "name": "picture",
- "breadcrumbString": "PRIMARY/Furniture/Chairs"
}
]
}
Creates and updates exclusions for category source, by ID. For example, a category source 'Electronics' has Laptop, Mobile, and Tablet as child categories. It's possible to exclude Tablet using this endpoint, so that it does not appear for shoppers.
OK
Client error
Internal server error
{- "id": "6170135a49b4af38190970fe",
- "nodeId": 12,
- "sourceExclusions": [
- {
- "id": "61701259125b7225cbfb21b9",
- "nodeId": 12,
- "action": "SET"
}
]
}
{- "id": "6170135a49b4af38190970fe",
- "nodeId": 12,
- "name": "Furniture",
- "sources": [
- {
- "id": "61701259125b7225cbfb21b9",
- "name": "picture",
- "breadcrumbString": "PRIMARY/Furniture/Chairs"
}
], - "sourceExclusions": [
- {
- "id": "61701259125b7225cbfb21b9",
- "name": "picture",
- "breadcrumbString": "PRIMARY/Furniture/Chairs"
}
]
}
Gets available exclusions applied to a category source.
object Represents single or multi-tenancy. If omitted, |
OK
Client error
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "id": "6170135a49b4af38190970fe",
- "nodeId": 12,
- "name": "Furniture",
- "sourceExclusions": [
- {
- "id": "61701259125b7225cbfb21b9",
- "nodeId": 12,
- "name": "picture",
- "breadcrumbString": "PRIMARY/Furniture/Chairs"
}
]
}
Creates or updates conditions for product attributes so that products 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 'product 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).
OK
Client error
Internal server error
{- "id": "6196b45b5cb04b7ce167cb46",
- "nodeId": 25,
- "itemAttributeConditions": [
- {
- "action": "SET",
- "attributeId": "609ac75051f11a0007cf38b3",
- "condition": {
- "type": "CONTAINS",
- "value": "shoe"
}
}
]
}
{- "id": "619a8ba6f1875f6dbcaf0521",
- "nodeId": 25,
- "itemAttributeConditions": [
- { }
]
}
You can filter products from Alternate categories based on the conditions set using the POST /v1/category/item-attribute/condition endpoint.
Note: Products may inherit conditions from parent category as well.
OK
Client error
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "id": "6196b45b5cb04b7ce167cb46",
- "nodeId": 25,
- "name": "electronics",
- "itemAttributeConditions": [
- { }
]
}
Product, a subset of PIM endpoints, aims at making product management more efficient. They create, update, and get products, which may be individual products or collection of products (called bundles). Each product has title, product ID, description, category, and assigned attributes. Multiple options of a given product become variants of that product. For example, a t-shirt with three sizes may have small, medium, and large variants. Each variant has its own product ID, attributes, and other data points. Each variant is nested under its parent product, allowing the different options to appear on the same product page. You can also create or update one or more product attributes and attribute groups.
Creates multiple products 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 a product variant, parentSku must be additionally specified.
3) A product is assigned to only one category but it can be fetched from alternate categories.
4) Up to 50 products or bundles can be added.
OK
Client error
Failing items
Internal server error
[- {
- "sku": "sku_abc",
- "type": "ITEM",
- "nodeName": "PRIMARY>electronics",
- "parentSku": "sku123",
- "attributeValues": [
- {
- "name": "Mobile",
- "value": "AMD X570 mobo"
}
], - "inheritedAttributes": [
- {
- "name": "color",
- "action": "SET"
}
], - "bundleItems": [
- {
- "sku": "sku123",
- "quantity": 6
}
]
}
]
{- "success": [
- {
- "sku": "sku1",
- "itemId": "611686da50fb7e0c5df78c2e",
- "itemIdSeq": 12,
- "message": "SKU created successfully.",
- "errorAttributes": [
- {
- "name": "Inactive",
- "message": "Attribute value is invalid."
}
], - "errorBundles": [
- {
- "name": "string",
- "message": "string"
}
]
}
], - "failed": [
- {
- "sku": "sku1",
- "message": "Failed because of validation"
}
], - "itemIds": [
- "611686da50fb7e0c5df78c2e",
- "711686da50fb7e0c5df78c22"
]
}
Updates multiple products or bundles, along with their attributes.
Note: Up to 50 products or bundles can be updated.
OK
Client error
Failing items
Internal server error
{- "skus": [
- "sku12",
- "sku13"
], - "type": "ITEM",
- "action": "UPDATE",
- "parentSku": "sku234",
- "attributeValues": [
- {
- "name": "Mobile",
- "value": "AMD X570 mobo"
}
], - "inheritedAttributes": [
- {
- "name": "color",
- "action": "SET"
}
]
}
{- "success": [
- {
- "sku": "sku1",
- "itemId": "611686da50fb7e0c5df78c2e",
- "itemIdSeq": 12,
- "message": "SKU created successfully.",
- "errorAttributes": [
- {
- "name": "Inactive",
- "message": "Attribute value is invalid."
}
], - "errorBundles": [
- {
- "name": "string",
- "message": "string"
}
]
}
], - "failed": [
- {
- "sku": "sku1",
- "message": "Failed because of validation"
}
], - "itemIds": [
- "611686da50fb7e0c5df78c2e",
- "711686da50fb7e0c5df78c22"
]
}
Creates or updates products or bundles along with their attributes.
Note:
1) If the SKU already exists, this endpoint updates a product. Otherwise, creates a new product with that SKU.
2) Up to 50 products or bundles can be added or updated.
OK
Client error
Failing items
Internal server error
[- {
- "sku": "sku_abc",
- "type": "ITEM",
- "nodeName": "PRIMARY>electronics",
- "parentSku": "sku123",
- "attributeValues": [
- {
- "name": "Mobile",
- "value": "AMD X570 mobo"
}
], - "inheritedAttributes": [
- {
- "name": "color",
- "action": "SET"
}
], - "bundleItems": [
- {
- "sku": "sku123",
- "quantity": 6
}
]
}
]
{- "success": [
- {
- "sku": "sku1",
- "itemId": "611686da50fb7e0c5df78c2e",
- "itemIdSeq": 12,
- "message": "SKU created successfully.",
- "errorAttributes": [
- {
- "name": "Inactive",
- "message": "Attribute value is invalid."
}
], - "errorBundles": [
- {
- "name": "string",
- "message": "string"
}
]
}
], - "failed": [
- {
- "sku": "sku1",
- "message": "Failed because of validation"
}
], - "itemIds": [
- "611686da50fb7e0c5df78c2e",
- "711686da50fb7e0c5df78c22"
]
}
Adds and removes items, and also changes quantities within a bundle.
OK
Client error
Internal server error
{- "action": "UPDATE",
- "bundles": [
- {
- "action": "SET",
- "bundleSku": "iPhoneBundle",
- "itemSku": "iPhone12",
- "quantity": 1
}
]
}
[- {
- "id": "625367673ab7402268d8cccf",
- "itemId": "624d94fb27c894222534b260",
- "bundleId": "624d939227c894222534b247",
- "quantity": 1,
- "createdOn": "2022-04-08T23:25:27.753Z",
- "modifiedOn": "2022-04-08T23:25:27.753Z"
}
]
Product attributes allow you to define specific characteristics for your items. Common examples of attributes include size, color, and material. Well-defined attributes are important because they enable product discovery and make catalog management easier.
This endpoint creates and updates product attributes to be assigned later.
Note:
1) You can add and manage unlimited attributes for your products. Once they are created, they appear as a selectable option on product pages.
2) In addition, you can assign attributes to products on an individual level or in bulk.
OK
Client error.
Internal server error
[- {
- "action": "UPDATE",
- "id": "621c1122ff2e4507c199b75d",
- "name": "Weight",
- "locales": [
- {
- "locale": [
- "fr-ca",
- "es-us"
], - "name": "le poids"
}
], - "description": "Example description.",
- "mapping": "title",
- "type": "TEXT",
- "textSubType": "SMALL_TEXT",
- "serialStart": 1,
- "optionsType": "TEXT",
- "format": "YYYY-MM-DD",
- "formula": "`${item.weightValue} ${item.weightUnit}`",
- "validation": {
- "required": true,
- "inheritable": true,
- "inverse": true,
- "unique": true,
- "exact": "string",
- "attributeTypes": [
- "Serial",
- "Integer"
], - "contains": "Demo",
- "startWith": 1,
- "incrementBy": 1,
- "range": {
- "min": "string",
- "max": "string"
}, - "formula": "value < 10 || value > 20",
- "oneOf": [
- "string"
]
}
}
]
{- "attributes": {
- "success": [
- {
- "id": "622932439c73c975335cb654",
- "name": "name",
- "message": "Attribute created successfully"
}
], - "failed": [
- {
- "name": "ITEM_ATTRIBUTE_VALUE_IS_INVALID",
- "errors": [
- [
- "Attribute value is invalid",
- "Attribute value not found"
]
]
}
]
}
}
Attribute groups enables merchants to collect various attributes together to make it easier to manage large volume of product information.
This endpoint creates, updates, or deletes attribute groups.
Note: Attribute group is optional. If created, must have at least one attribute.
OK
Client error
Internal server error
{- "transactional": true,
- "attributeGroup": [
- {
- "action": "UPDATE",
- "type": "COLLECTION",
- "description": "Weight of product, in KG",
- "name": "weight",
- "priorityOrder": 1,
- "id": "6259ec8d006b0d00092b3189",
- "editableAttributes": [
- {
- "action": "UPDATE",
- "id": "6245f16d11ae770009f19292",
- "order": 0
}
]
}
]
}
[- {
- "_id": "6259ec8d006b0d00092b3189",
- "description": "Weight of the product, in KG",
- "type": "COLLECTION",
- "name": "weight",
- "priorityOrder": 1,
- "createdOn": "2022-04-15T22:07:09.921Z",
- "modifiedOn": "2022-04-15T22:10:05.427Z",
- "attributes": [
- {
- "_id": "6259ec8defc2116dd6c0f3fc",
- "attributeGroupId": "6259ec8d006b0d00092b3189",
- "attributeId": "6245f16d11ae770009f19292",
- "isEditable": true,
- "createdOn": "2022-04-15T22:07:09.932Z",
- "modifiedOn": "2022-04-15T22:10:05.444Z",
- "order": 0
}
]
}
]
Finds attribute groups
OK
Client error
Internal server error
{- "page": 0,
- "size": 10,
- "include": {
- "attributes": true
}, - "match": {
- "target": "ITEM",
- "or": [
- {
- "name": "weight"
}
]
}, - "sort": [
- {
- "field": "priorityOrder",
- "direction": "DESC"
}
]
}
{- "totalSize": 7,
- "pageSize": 10,
- "pages": 1,
- "attributeGroups": [
- {
- "_id": "6259ec8d006b0d00092b3189",
- "description": "Weight of the product, in KG",
- "type": "COLLECTION",
- "name": "weight",
- "priorityOrder": 1,
- "createdOn": "2022-04-15T22:07:09.921Z",
- "modifiedOn": "2022-04-15T22:10:05.427Z",
- "totalAttributes": 1,
- "EditableAttributes": [
- {
- "_id": "6259ec8defc2116dd6c0f3fc",
- "attributeGroupId": "6259ec8d006b0d00092b3189",
- "attributeId": "6245f16d11ae770009f19292",
- "isEditable": true,
- "createdOn": "2022-04-15T22:07:09.932Z",
- "modifiedOn": "2022-04-15T22:10:05.444Z",
- "order": 0,
- "attribute": [
- {
- "_id": "6259ec8defc2116dd6c0f3fc",
- "description": "Weight of the product, in KG.",
- "formulaManuallyOverWritten": false,
- "formula": null,
- "type": "TEXT",
- "name": "weight",
- "textSubType": "SMALL_TEXT",
- "attributeValidationId": "624d92f8caa34e0009b5d849",
- "modifiedBy": "60aad2c835c5fb000885f679",
- "createdOn": "2022-04-15T22:07:09.932Z",
- "modifiedOn": "2022-04-15T22:10:05.444Z"
}
]
}
], - "ReadOnlyAttributes": [
- {
- "_id": "6259ec8defc2116dd6c0f3fc",
- "attributeGroupId": "6259ec8d006b0d00092b3189",
- "attributeId": "6245f16d11ae770009f19292",
- "isEditable": true,
- "createdOn": "2022-04-15T22:07:09.932Z",
- "modifiedOn": "2022-04-15T22:10:05.444Z",
- "order": 0,
- "attribute": [
- {
- "_id": "6259ec8defc2116dd6c0f3fc",
- "description": "Weight of the product, in KG.",
- "formulaManuallyOverWritten": false,
- "formula": null,
- "type": "TEXT",
- "name": "weight",
- "textSubType": "SMALL_TEXT",
- "attributeValidationId": "624d92f8caa34e0009b5d849",
- "modifiedBy": "60aad2c835c5fb000885f679",
- "createdOn": "2022-04-15T22:07:09.932Z",
- "modifiedOn": "2022-04-15T22:10:05.444Z"
}
]
}
], - "WorkflowAttributes": [
- { }
], - "ImpactedAttributes": [
- { }
]
}
]
}
Products can be individual products or a bundle of products. This endpoints allows you to get a list of products - individual products and product bundles, along with their attributes, child products and their details.
Note: Optional filter parameters can be passed in as query to narrow down the search results.
OK
Client error
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "products": [
- {
- "sku": "MOBO-X570",
- "itemId": 4,
- "children": [
- {
- "sku": "string",
- "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "string",
- "type": "TEXT",
- "value": "Unable to fulfill demand.",
- "mapping": "description"
}
]
}
], - "type": "ITEM",
- "status": true,
- "categories": [
- {
- "id": "621c121bff2e4507c199b7cb",
- "name": "electronics",
- "nodeId": 30,
- "breadcrumbs": [
- {
- "id": "621c10f3ff2e4507c199b66b",
- "nodeId": 31,
- "name": "PRIMARY",
- "attributes": [
- null
]
}
]
}
], - "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "string",
- "type": "TEXT",
- "value": "Unable to fulfill demand.",
- "mapping": "description"
}
], - "createdOn": "2022-03-07T22:50:10.668Z",
- "modifiedOn": "2022-03-07T22:52:01.720Z"
}
]
}
Gets products (individual product or bundle of products) by SKUs, itemIds or parentSkus. Optionally, page
and size
can be used query parameters. Note: status
and date
query parameters works only with pagination when parentSku is omitted. Separate responses are added for bundle and product, use the dropdown to view the corresponding response.
OK
Client error
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "products": [
- {
- "sku": "MOBO-X570",
- "itemId": 4,
- "childrenSize": 0,
- "type": "ITEM",
- "status": true,
- "categories": [
- {
- "id": "621c121bff2e4507c199b7cb",
- "name": "electronics",
- "nodeId": 30,
- "breadcrumbs": [
- {
- "id": "621c10f3ff2e4507c199b66b",
- "nodeId": 31,
- "name": "PRIMARY",
- "attributes": [
- null
]
}
]
}
], - "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "string",
- "type": "TEXT",
- "value": "Unable to fulfill demand.",
- "mapping": "description"
}
]
}
]
}
Finds products - both individually and in bundles. Optional filter parameters help narrow down the search results. When the response is large, page
and size
becomes mandatory to support pagination.
OK
OK
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "products": [
- {
- "sku": "MSI-Z490",
- "itemId": 2,
- "type": "ITEM",
- "categories": [
- {
- "id": "621c121bff2e4507c199b7cb",
- "name": "electronics",
- "nodeId": 30,
- "breadcrumbs": [
- {
- "id": "621c10f3ff2e4507c199b66b",
- "nodeId": 31,
- "name": "PRIMARY",
- "attributes": [
- null
]
}
]
}
], - "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "string",
- "type": "TEXT",
- "value": "Unable to fulfill demand.",
- "mapping": "description"
}
], - "dependents": [
- [
- "Child1",
- "Child2"
]
], - "createdOn": "2021-05-28T16:36:50.055Z",
- "modifiedOn": "2021-05-28T16:36:50.055Z",
- "children": [
- {
- "sku": "string",
- "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "string",
- "type": "TEXT",
- "value": "Unable to fulfill demand.",
- "mapping": "description"
}
]
}
]
}
]
}
Product attributes define characteristics of a product. For example, product name, its identifiers, and description are the common attributes of any product. Attributes are key-value pairs (color: red) that hold information for each property of a product.
This endpoint gets all attributes of a product, by SKU or itemId.
Note: The Get product (GET /v1/product) gets product details and their attribute. So, this endpoint is recommended when you have the product SKU or item ID, and only require its attributes.
OK
Client error
Internal server error
{- "totalSize": 100,
- "pageSize": 10,
- "pages": 10,
- "attributes": [
- {
- "id": "619a8ba6f1875f6dbcaf0521",
- "name": "notes",
- "description": "string",
- "type": "TEXT",
- "value": "Unable to fulfill demand.",
- "mapping": "description"
}
]
}
Generates CSV template to upload products for a specific category.
OK
Client error
Internal server error
{- "code": 400,
- "message": "Client error"
}
Generates CSV template to upload bundles for a specific category.
OK
Client error
Internal server error
{- "code": 400,
- "message": "Client error"
}
Generates CSV template to upload product attributes.
OK
Client error
Internal server error
{- "code": 400,
- "message": "Client error"
}
Generates S3 bucket URL to upload products using CSV file. Follow these steps for bulk upload usign 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
OK
Client error
Internal server error
{- "nodeId": "611eef8b81f92b882d4f9741",
- "fileName": "men-shoes.csv"
}
Generates S3 bucket URL to upload product bundles using CSV file
OK
Client error
Internal server error
{- "nodeId": "626a31a2d877f5e49efad330",
- "fileName": "men-shoes-bundle-local.csv"
}
Generates S3 bucket URL to upload product attribute using CSV file
OK
Client error
Internal server error
{- "fileName": "item-attributes.csv"
}