Product Information Management (1.0.0)

Download OpenAPI specification:Download

E-mail: support@fabric.inc License: fabric Inc

fabric PIM resource helps you with your products resource management. From product search, product category and getting SKUs to bulk inserts, PIM allows you to manage the end to end products.

Authentication

api_key

Security Scheme Type API Key
Header parameter name: x-api-key

Category

Category APIs

Get categories

Categories (also known as nodes) form hierarchies. These hierarchies are used to organize products. For example, the "Computers" category may contain several sub-categories, like "Laptops" and "PCs". A Macbook Pro is a product that would then fit inside the "Laptops" category.

Each category has an ID. This endpoint accepts one or more category IDs, to return the categories associated with those IDs. Alternatively, the endpoint can return all categories if size and page (for pagination) are provided and/or filter categories, usually for a keyword in the names of the categories.

By default, categories will be filtered by Active ALTERNATE Hierarchies

Request
query Parameters
ids
Array of strings

Array of 24-char hexadecimal identifiers of hierarchy categories to fetch.

If ids or nodeIds are omitted, page and size are required, since all categories are retrieved in pages instead.

Example: ids=6196b45b5cb04b7ce167cb46
nodeIds
Array of integers

Array of node identifiers of hierarchy categories to fetch.

If ids or nodeIds are omitted, page and size are required, since all categories are retrieved in pages instead.

Example: nodeIds=1&nodeIds=2&nodeIds=3
keyword
string

Keyword searches the category names for the given keyword. Cannot be used with ids, nodeIds, page or size.

Example: keyword=computers
type
string

Category type to retrieve. The primary hierarchy contains all nodes, whereas alternate hierarchies exist to export alternate organizations of the primary hierarchy.

If omitted ALTERNATE will be used by default.

Required if ids or nodeIds is not present.

Enum: "PRIMARY" "ALTERNATE" "ALL"
Example: type=ALL
status
string

Category status to retrieve. Only ALTERNATE Hierarchies can be filtered by this param.

If omitted ACTIVE will be used by default.

Required if ids or nodeIds is not present.

Enum: "ACTIVE" "INACTIVE" "ALL"
Example: status=ALL
page
number

The page to retrieve. Used for pagination.

This is only relevant when specific IDs are omitted from the call. It is always paired with size.

Example: page=1
size
number

The size of the pages to retrieve. Used for pagination.

This is only relevant when specific IDs are omitted from the call. It is always paired with page.

Example: size=10
header Parameters
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

The requested categories.

400

A generic client error.

500

Internal server error.

get/v1/category
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "categories": [
    ]
}

Create Category

Categories (also known as nodes) form hierarchies. These hierarchies are used to organize products. For example, the "Computers" category may contain several sub-categories, like "Laptops" and "PCs". A Macbook Pro is a product that would then fit inside the "Laptops" category.

This endpoint accepts the name, parent, and type of a category, and creates it.

Request
header Parameters
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
name
required
string

Category name.

active
boolean

Category's active status. Only for ALTERNATE Hierarchies.

parentNodeId
number

Category parent's node ID, since categories form a hierarchy tree.

If omitted, new node will be created under the root PRIMARY node.

order
number

Category's order.

type
string

Hierarchy type. Can only be the alternate hierarchy.

Provide this field to create a new root node, only needed if parentNodeId is omitted.

Value: "ALTERNATE"
Responses
200

Created category.

400

A generic client error.

500

Internal server error.

post/v1/category
Request samples
application/json
{
  • "name": "notes",
  • "active": true,
  • "parentNodeId": 1,
  • "order": 3,
  • "type": "ALTERNATE"
}
Response samples
application/json
{
  • "id": "6170135a49b4af38190970fe",
  • "nodeId": 12,
  • "name": "Furniture",
  • "createdOn": "2021-12-01T00:00:00.000Z",
  • "modifiedOn": "2021-12-01T00:00:00.000Z",
  • "attributes": [ ],
  • "children": [ ],
  • "breadcrumbs": [ ]
}

Modify Category

Categories (also known as nodes) form hierarchies. These hierarchies are used to organize products. For example, the "Computers" category may contain several sub-categories, like "Laptops" and "PCs". A Macbook Pro is a product that would then fit inside the "Laptops" category.

This endpoint allows the name, parent, or order (within category siblings) of a category to be changed.

Request
path Parameters
nodeId
required
number

Category node ID.

Example: 12
header Parameters
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
name
string

Category's name.

active
boolean

Category's active status. Only for ALTERNATE Hierarchies.

parentNodeId
number

Category parent's node ID, since categories form a hierarchy tree.

order
number

Category's order amongst its sibling categories (i.e. categories with the same parent).

Responses
200

Updated category.

400

A generic client error.

500

Internal server error.

put/v1/category/{nodeId}
Request samples
application/json
{
  • "name": "Furniture",
  • "active": true,
  • "parentNodeId": 1,
  • "order": 3
}
Response samples
application/json
{
  • "id": "6170135a49b4af38190970fe",
  • "nodeId": 12,
  • "name": "Furniture",
  • "createdOn": "2021-12-01T00:00:00.000Z",
  • "modifiedOn": "2021-12-01T00:00:00.000Z",
  • "attributes": [ ],
  • "children": [ ],
  • "breadcrumbs": [ ]
}

Search categories

Search categories, usually for a keyword in the names of the categories.

Searching categories will be done with one of ids, nodeIds, keyword, status or type. If all of these are missing, then this will return all results in a paginated form, thus requiring page and size.

GET /v1/category is a much preferable call to this one, as this call is more expensive. Please refrain from using this call without good reason.

Request
query Parameters
keyword
string

Keyword searches the category names for the given keyword.

page and size query args are also required, since all categories are retrieved in pages.

Example: keyword=computers
ids
Array of strings

Array of 24-char hexadecimal identifiers of hierarchy categories to fetch.

If ids or nodeIds are omitted, page and size are required, since all categories are retrieved in pages instead.

Example: ids=6196b45b5cb04b7ce167cb46
nodeIds
Array of numbers

The categories identified by ids to retrieve.

If ids or nodeIds are omitted, page and size are required, since all categories are retrieved in pages instead.

Example: nodeIds=15&nodeIds=16
type
string

Category type to retrieve. The primary hierarchy contains all nodes, whereas alternate hierarchies exist to export alternate organizations of the primary hierarchy.

If omitted ALL will be used by default.

Required if ids or nodeIds not present. page and size query args are also required, since all categories are retrieved in pages.

Enum: "PRIMARY" "ALTERNATE" "ALL"
Example: type=ALL
status
string

Category status to retrieve. Only ALTERNATE Hierarchies can be filtered by this param.

If omitted ACTIVE will be used by default.

Required if ids or nodeIds not present. page and size query args are also required, since all categories are retrieved in pages.

Enum: "ACTIVE" "INACTIVE" "ALL"
Example: status=ALL
page
number

The page to retrieve. Used for pagination.

This is only relevant when specific IDs are omitted from the call. It is always paired with size.

Example: page=1
size
number

The size of the pages to retrieve. Used for pagination.

This is only relevant when specific IDs are omitted from the call. It is always paired with page.

Example: size=10
header Parameters
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

List of requested categories.

400

A generic client error.

500

Internal server error.

get/v1/category/search
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "categories": [
    ]
}

Get a category tree.

Get a tree of categories. Categories have parents and children, forming a hierarchy. This call returns the tree of categories rooted in the category identified by id or nodeId.

Request
query Parameters
id
string

The 24-char hexadecimal identifier of the category to use as root of tree to return. Must have either this or nodeId.

Example: id=6196b44a5cb04b7ce167cb34
nodeId
integer

The numeric node id of the category. Must have either this or id.

Example: nodeId=12
depth
number

Since the tree can grow large, this limits how large the tree returned is. A depth of 0 means no children, breadcrumbs or attributes will be populated in results.

Example: depth=1
header Parameters
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

The category tree.

400

A generic client error.

500

Internal server error.

get/v1/category/tree
Response samples
application/json
{
  • "id": "6196b45b5cb04b7ce167cb46",
  • "nodeId": 16,
  • "name": "PCs",
  • "hierarchy": "ALTERNATE",
  • "isActive": true,
  • "attributes": [
    ],
  • "children": [
    ],
  • "createdOn": "2022-03-09T23:37:54.086Z",
  • "modifiedOn": "2022-03-09T23:37:54.086Z"
}

Get SKUs in a category.

This will return the SKUs of all products that belong to a particular category.

Request
query Parameters
id
string

The 24-char hexadecimal identifier of the category. Either this or nodeId must be provided.

Example: id=6196b45b5cb04b7ce167cb46
nodeId
integer

The numeric node id of the category. Either this or id must be provided.

Example: nodeId=2
page
number

The page to retrieve. Used for pagination.

This is only relevant when specific IDs are omitted from the call. It is always paired with size.

Example: page=1
size
number

The size of the pages to retrieve. Used for pagination.

This is only relevant when specific IDs are omitted from the call. It is always paired with page.

Example: size=10
header Parameters
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

List of SKUs associated with given category.

400

A generic client error.

500

Internal server error.

get/v1/category/sku
Response samples
application/json
{
  • "totalSize": 3,
  • "pageSize": 10,
  • "pages": 1,
  • "id": "6196b45b5cb04b7ce167cb46",
  • "nodeId": 2,
  • "name": "electronics",
  • "skus": [
    ]
}

Get category attributes by ID.

Usually you'll get a category's details with a call to /v1/category, but this is an alternative if you have a category's ID, and want the attributes only.

Request
query Parameters
id
string

The 24-char hexadecimal identifier of the category.

Example: id=619a8ba6f1875f6dbcaf0521
nodeId
integer

The numeric node id of the category.

Example: nodeId=2
status
string

Attribute status, that being whether it is assigned to a category or not.

Required if id or nodeId were provided.

Enum: "ASSIGNED" "UNASSIGNED"
Example: status=ASSIGNED
page
required
number

The page to retrieve. Used for pagination.

Example: page=1
size
required
number

The size of the pages to retrieve. Used for pagination.

Example: size=10
header Parameters
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

List of category's attributes.

400

A generic client error.

500

Internal server error.

get/v1/category/attribute
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "id": "619a8ba6f1875f6dbcaf0521",
  • "nodeId": 2,
  • "name": "electronics",
  • "attributes": [
    ]
}

Modify category attribute values.

Categories have attributes that are attached to themselves specifically, rather than the products that belong to categories. This call allows modification of those attributes.

Request
header Parameters
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
id
string

The 24-char hexadecimal identifier of the category. This is one of two identifiers that exist for each node, the other being nodeId.

If id is omitted, nodeId is required.

nodeId
number

The category's node ID. This is one of two identifiers that exist for each node, the other being id. This identifier is just a number, which is simpler for people to deal with than id.

If nodeId is omitted, id is required.

required
Array of objects

Category attributes to modify.

Responses
200

The category's attributes.

400

A generic client error.

500

Internal server error.

post/v1/category/attribute
Request samples
application/json
{
  • "id": "6196b45b5cb04b7ce167cb46",
  • "nodeId": 25,
  • "attributes": [
    ]
}
Response samples
application/json
{
  • "id": "6196b45b5cb04b7ce167cb46",
  • "nodeId": 25,
  • "name": "notes",
  • "attributes": [
    ]
}

Create or update category attributes in bulk.

Create or update multiple category attributes in one call.

While POST /v1/category/attribute supports a singular update to an attribute, this supports both create and update for multiple attributes at the same time.

Request
header Parameters
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
Array
action
required
string

The action to perform.

If "CREATE", id must be omitted.

If "UPDATE", or "DELETE", id must be provided.

Performing "CREATE" will replace any existing category attribute with the same name, if one already exists.

Enum: "CREATE" "UPDATE" "DELETE"
id
string

The attribute's ID.

name
required
string

The attribute's name.

description
string

Accurate description of what this attribute represents.

type
required
string

The data type of the attribute, indicating the kind of value it holds.

Enum: "TEXT" "BOOLEAN" "SERIAL" "DECIMAL" "INTEGER" "DATETIME" "OPTIONS"
textSubType
string

Conditionally required property for type of text for the TEXT type attributes.

Enum: "SMALL_TEXT" "TEXT_AREA" "HTML"
serialStart
number

Conditionally required property to indicate starting value for the SERIAL type attributes.

optionsType
string

Conditionally required property to indicate the selectable values for the OPTIONS type attributes.

Enum: "TEXT" "BOOLEAN" "DECIMAL" "INTEGER" "DATETIME"
format
string

The format of the attribute.

Currently this is used only for formatting DATETIME type attributes.

formula
string

A JavaScript expression that will be used to dynamically compute the attribute's value.

The type returned by this expression must match the attribute's type.

When this is provided, validation is ignored.

object
Responses
200

Bulk attribute response.

400

A generic client error.

500

Internal server error.

post/v1/category/attribute/bulk
Request samples
application/json
[
  • {
    }
]
Response samples
application/json
{
  • "attributes": {
    }
}

Get available item attributes.

A category specifies the required and optional attributes that all products (aka items) within that category must have. This call returns the attributes those products support for the requested category.

Be aware that categories can inherit attributes for their products from the category's parents as well.

Request
query Parameters
id
string

The 24-char hexadecimal identifier of the category. This is one of two identifiers that exist for each node, the other being nodeId.

If id is present, status is required.

Example: id=6196b45b5cb04b7ce167cb46
nodeId
number

The category's node ID. This is one of two identifiers that exist for each node, the other being id. This identifier is just a number, which is simpler for people to deal with than id.

If nodeId is present, status is required.

Example: nodeId=25
status
string

Item attribute status, that being whether it is assigned to a category or not.

This is only relevant when id or nodeId is provided, and is then required.

Enum: "ASSIGNED" "UNASSIGNED"
page
required
number

The page to retrieve. Used for pagination.

Example: page=1
size
required
number

The size of the pages to retrieve. Used for pagination.

Example: size=10
header Parameters
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

Item attributes for this category.

400

A generic client error.

500

Internal server error.

get/v1/category/item-attribute
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "itemAttributes": [
    ]
}

Modify category item attribute types.

A category specifies the required and optional attributes that all products (aka items) within that category must have. This call modifies the attributes types those products support for the requested category.

Request
header Parameters
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
id
string

The 24-char hexadecimal identifier of the category. This is one of two identifiers that exist for each node, the other being nodeId.

If id is omitted, nodeId is required.

nodeId
number

The category's node ID. This is one of two identifiers that exist for each node, the other being id. This identifier is just a number, which is simpler for people to deal with than id.

If nodeId is omitted, id is required.

required
Array of objects

Category item attributes to modify.

Responses
200

The category's item attributes.

400

A generic client error.

500

Internal server error.

post/v1/category/item-attribute
Request samples
application/json
{
  • "id": "619a8ba6f1875f6dbcaf0521",
  • "nodeId": 25,
  • "itemAttributes": [
    ]
}
Response samples
application/json
{
  • "id": "619a8ba6f1875f6dbcaf0521",
  • "nodeId": 25,
  • "name": "electronics",
  • "itemAttributes": [
    ]
}

Get available Node Sources.

Get available Node Sources.

Request
query Parameters
id
string

The category's ID.

Note, if id is omitted, nodeId will be required.

Example: id=6170135a49b4af38190970fe
nodeId
number

The category's node ID.

Note, if nodeId is omitted, id will be required.

Example: nodeId=12
status
string

Node source status. If omitted "ASSIGNED" will be used by default.

Enum: "ASSIGNED" "UNASSIGNED"
Example: status=ASSIGNED
page
required
number

The page to retrieve. Used for pagination.

Example: page=1
size
required
number

The size of the pages to retrieve. Used for pagination.

Example: size=10
header Parameters
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

The node sources

400

A generic client error

500

Internal server error.

get/v1/category/source
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "id": "6170135a49b4af38190970fe",
  • "nodeId": 25,
  • "name": "Furniture",
  • "sources": [
    ]
}

Modify Node Sources by ID.

Modify Node Sources by ID.

Request
header Parameters
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
id
string

Id of node. If this is not present, nodeId must be provided.

nodeId
number

Numeric ID of node. If this is not present, id must be provided.

required
Array of objects
Responses
200

Created category.

400

A generic client error.

500

Internal server error.

post/v1/category/source
Request samples
application/json
{
  • "id": "6170135a49b4af38190970fe",
  • "nodeId": 12,
  • "sources": [
    ]
}
Response samples
application/json
{
  • "id": "6170135a49b4af38190970fe",
  • "nodeId": 12,
  • "name": "Furniture",
  • "sources": [
    ],
  • "sourceExclusions": [
    ]
}

Get available Node Source Exclusions.

Get available Node Source Exclusions.

Request
query Parameters
id
string

The category's ID

Note, if id is omitted, nodeId will be required.

nodeId
number

The category's node ID

Note, if nodeId is omitted, id will be required.

status
string

Node source status. If omitted "ASSIGNED" will be used by default.

Enum: "ASSIGNED" "UNASSIGNED"
Example: status=ASSIGNED
page
required
number

The page to retrieve. Used for pagination.

Example: page=1
size
required
number

The size of the pages to retrieve. Used for pagination.

Example: size=10
header Parameters
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

The node sources

400

A generic client error

500

Internal server error.

get/v1/category/source/exclusion
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "id": "6170135a49b4af38190970fe",
  • "nodeId": 12,
  • "name": "Furniture",
  • "sourceExclusions": [
    ]
}

Modify Node Source Exclusions by ID.

Modify Node Source Exclusions by ID.

Request
header Parameters
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
id
string

Note, if id is omitted, nodeId will be required.

nodeId
number

Note, if nodeId is omitted, id will be required.

required
Array of objects
Responses
200

Created category.

400

A generic client error.

500

Internal server error.

post/v1/category/source/exclusion
Request samples
application/json
{
  • "id": "6170135a49b4af38190970fe",
  • "nodeId": 12,
  • "sourceExclusions": [
    ]
}
Response samples
application/json
{
  • "id": "6170135a49b4af38190970fe",
  • "nodeId": 12,
  • "name": "Furniture",
  • "sources": [
    ],
  • "sourceExclusions": [
    ]
}

Get available item attribute conditions.

A category specifies the required and optional attributes that all products (aka items) within that category must have. This call returns the attributes those products support for the requested category.

Be aware that categories can inherit attributes for their products from the category's parents as well.

Request
query Parameters
id
string

The 24-char hexadecimal identifier of the category. This is one of two identifiers that exist for each node, the other being nodeId.

Note, if id is omitted, nodeId will be required.

Example: id=6196b45b5cb04b7ce167cb46
nodeId
number

The category's node ID. This is one of two identifiers that exist for each node, the other being id. This identifier is just a number, which is simpler for people to deal with than id.

Note, if nodeId is omitted, id will be required.

Example: nodeId=25
status
string

Item attribute status, that being whether it is assigned to a category or not.

Enum: "ASSIGNED" "UNASSIGNED"
Example: status=ASSIGNED
page
required
number

The page to retrieve. Used for pagination.

Example: page=1
size
required
number

The size of the pages to retrieve. Used for pagination.

Example: size=10
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

Item attributes for this category.

400

A generic client error.

500

Internal server error.

get/v1/category/item-attribute/condition
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "id": "6196b45b5cb04b7ce167cb46",
  • "nodeId": 25,
  • "name": "electronics",
  • "itemAttributeConditions": [
    ]
}

Modify category item attribute conditions.

A category specifies the required and optional attributes that all products (aka items) within that category must have. This call modifies the attributes those products support for the requested category.

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
id
string

The 24-char hexadecimal identifier of the category. This is one of two identifiers that exist for each node, the other being nodeId.

If id is omitted, nodeId is required.

nodeId
number

The category's node ID. This is one of two identifiers that exist for each node, the other being id. This identifier is just a number, which is simpler for people to deal with than id.

If nodeId is omitted, id is required.

required
Array of objects

Category item attribute conditions to modify.

Responses
200

The category's item attributes.

400

A generic client error.

500

Internal server error.

post/v1/category/item-attribute/condition
Request samples
application/json
{
  • "id": "6196b45b5cb04b7ce167cb46",
  • "nodeId": 25,
  • "itemAttributeConditions": [
    ]
}
Response samples
application/json
{
  • "id": "619a8ba6f1875f6dbcaf0521",
  • "nodeId": 25,
  • "itemAttributeConditions": [ ]
}

Product

Product APIs

Get products by SKU or ItemId.

Get products, supports both ITEMS & BUNDLES.

One of the following are required in the query parameters.

page and size, or array of SKUs, or array of itemIds.

Note, status and date query parameters will work only with pagination.

Response samples, multiple examples have been added, click on the examples dropdown for respective response contract.

Request
query Parameters
skus
Array of strings

The SKUs to retrieve.

Note, if omitted, all products are retrieved.

Example: skus=BUNDLE-01
itemIds
Array of numbers

The ItemIds to retrieve.

Note, if omitted, all products are retrieved, and this is only relevant when skus are omitted.

Example: itemIds=4
page
number

The page of products to retrieve.

Note, this is only relevant when skus and itemIds are omitted. Must be paired with size.

Example: page=1
size
number

The page size.

Note, this is only relevant when skus and itemIds are omitted. Must be paired with page.

Example: size=10
status
string

Status of the products to retrieve.

Enum: "ACTIVE" "INACTIVE"
Example: status=ACTIVE
createdAfter
string

To fetch items created after a specific date.

Valid date formats - "YYYY/MM/DD", "YYYY-MM-DDTHH:mm:ss.SSSZ".

Note, this is only relevant when skus or itemIds are omitted.

Example: createdAfter=2021-05-28T16:36:50.055Z
createdBefore
string

To fetch items created before a specific date.

Valid date formats - "YYYY/MM/DD", "YYYY-MM-DDTHH:mm:ss.SSSZ".

Note, this is only relevant when skus or itemIds are omitted.

Example: createdBefore=2021-05-28T16:36:50.055Z
modifiedAfter
string

To fetch items modified after a specific date.

Valid date formats - "YYYY/MM/DD", "YYYY-MM-DDTHH:mm:ss.SSSZ".

Note, this is only relevant when skus or itemIds are omitted.

Example: modifiedAfter=2021-05-28T16:36:50.055Z
modifiedBefore
string

To fetch items modified before a specific date.

Valid date formats - "YYYY/MM/DD", "YYYY-MM-DDTHH:mm:ss.SSSZ".

Note, this is only relevant when skus or itemIds are omitted.

Example: modifiedBefore=2021-05-28T16:36:50.055Z
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

The products (type ITEMS)

400

A generic client error

500

Internal server error.

get/v1/product
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "products": [
    ]
}

Search products by SKU, ItemId or title.

Search products by SKU, ItemId or title.

Request
query Parameters
keyword
string

Keyword searches the items for sku or title.

Note: one of keyword, itemIds, skus or page&size must be provided.

Example: keyword=MOBO-1024
skus
Array of strings

The SKUs to retrieve.

Note: one of keyword, itemIds, skus or page&size must be provided.

Example: skus=MOBO-1024
itemIds
Array of strings

The ItemIds to retrieve.

Note: one of keyword, itemIds, skus or page&size must be provided.

Example: itemIds=4
page
number

The page of products to retrieve.

Note: only relevant if keyword, itemIds and skus are omitted. Must be paired with size.

Example: page=10
size
integer

The page size.

Note: only relevant if keyword, itemIds and skus are omitted. Must be paired with page.

Example: size=10
type
string

Product type to retrieve.

Enum: "ITEM" "BUNDLE" "ALL"
Example: type=ITEM
allAttributes
boolean

Retrieve all attributes of the products.

Example: allAttributes=true
excludeChildren
boolean

Exclude children of the products.

Example: excludeChildren=false
onlyChildren
boolean

Exclude parent products.

Example: onlyChildren=true
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

The products.

400

A generic client error.

500

Internal server error.

get/v1/product/search
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "products": [
    ]
}

Get product attributes by SKU or ItemId.

Get product attributes by SKU or ItemId.

Request
query Parameters
sku
string

The product's SKU.

Note: one of sku or itemId is required.

Example: sku=MOBO-1024
itemId
number

The product's itemId.

Note: one of sku or itemId is required.

Example: itemId=3
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

The product attributes.

400

A generic client error.

500

Internal server error.

get/v1/product/attribute
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "attributes": [
    ]
}

Create or update product attributes in bulk.

Create or update product attributes in bulk.

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
Array
action
required
string

The action to perform.

Performing "CREATE" will replace any existing product attribute with the same name, if one already exists.

Enum: "CREATE" "UPDATE" "DELETE"
id
string

The attribute's ID.

If action is "CREATE", id must be omitted. If "UPDATE", or "DELETE", id must be provided.

name
required
string

The attribute's name.

description
string

The attribute's description.

mapping
string

The product attribute's mapping. This corresponds to the Attribute Mapping settings of PIM: sku, title, image, active, isVariant Most attributes will not have a mapping, in which case this will be null. Warning: Be careful adding or removing mappings of attributes, as it can lead to bad data.

type
required
string

The data type of the attribute.

Enum: "TEXT" "BOOLEAN" "SERIAL" "DECIMAL" "INTEGER" "DATETIME" "OPTIONS"
textSubType
string

Conditionally required property to indicate type of text field of TEXT type attributes.

Enum: "SMALL_TEXT" "TEXT_AREA" "HTML"
target
string

The attribute is attached to items (products).

serialStart
number

Conditionally required property to indicate starting value for the SERIAL type attributes.

optionsType
string

Conditionally required property to indicate the selectable values for the OPTIONS type attributes.

Enum: "TEXT" "BOOLEAN" "DECIMAL" "INTEGER" "DATETIME"
format
string

The format of the attribute.

Currently this is used only for formatting DATETIME type attributes.

formula
string

A JavaScript expression that will be used to dynamically compute the attribute's value. The type returned by this expression must match the attribute's type. When this is provided, validation is ignored.

object
Responses
200

Bulk attribute response.

400

A generic client error.

500

Internal server error.

post/v1/product/attribute/bulk
Request samples
application/json
[
  • {
    }
]
Response samples
application/json
{
  • "attributes": {
    }
}

Create, update or delete attribute groups

Create, update or delete attribute groups

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
transactional
required
boolean

Mandatory transactional attribute that determines whether all updates will succeed or fail as a unit, or whether some can succeed even if others fail

object
Responses
200

Attribute group response.

400

A generic client error.

500

Internal server error.

post/v1/product/attribute-group
Request samples
application/json
{
  • "transactional": true,
  • "attributeGroup": {
    }
}
Response samples
application/json
[
  • {
    }
]

Search for attribute groups

Search for attribute groups

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
page
required
number

The page of the search

size
required
number

The size of results to return

object
object
Array of objects
Responses
200

Attribute group response.

400

A generic client error.

500

Internal server error.

post/v1/product/attribute-group/search
Request samples
application/json
{
  • "page": 0,
  • "size": 10,
  • "include": {
    },
  • "match": {
    },
  • "sort": [
    ]
}
Response samples
application/json
{
  • "totalSize": 7,
  • "pageSize": 10,
  • "pages": 1,
  • "attributeGroups": [
    ]
}

Create products in bulk.

Create products in bulk with attribute values.

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
Array
sku
required
string

Product sku value.

type
required
string

It can be either ITEM or BUNDLE, by default type will be ITEM.

Enum: "ITEM" "BUNDLE"
nodeName
required
string

Name of the node (along with parent node names) for which the product needs to be created.

parentSku
string

Sku value of the parent, if there is one.

Array of objects (AttributeValue)

Node item attributes along with values.

Array of objects (BundleItems)

Items to be added to the bundle, this will contain sku and quantity.

Responses
200

The products.

400

A generic client error.

422

The failing items.

500

Internal server error.

post/v1/product/bulk/insert
Request samples
application/json
[
  • {
    }
]
Response samples
application/json
{
  • "success": [
    ],
  • "failed": [
    ],
  • "itemIds": [
    ]
}

Update products in bulk.

Update products in bulk with attribute values.

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
skus
required
Array of strings

Array of skus are required.

type
string

It can be either ITEM or BUNDLE, by default type will be ITEM.

action
required
string

Action is required, can be either update or delete.

Enum: "UPDATE" "DELETE"
parentSku
string

Parent sku, if a variant.

required
Array of objects (AttributeValue)

Node item attributes along with values.

Responses
200

The products.

400

A generic client error.

422

The failing items.

500

Internal server error.

post/v1/product/bulk/update
Request samples
application/json
{
  • "skus": [
    ],
  • "type": "ITEM",
  • "action": "UPDATE",
  • "parentSku": "sku234",
  • "attributeValues": [
    ]
}
Response samples
application/json
{
  • "success": [
    ],
  • "failed": [
    ],
  • "itemIds": [
    ]
}

Upsert products in bulk.

Upsert products in bulk with attribute values.

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
sku
required
string

Product sku value.

type
required
string

It can be either ITEM or BUNDLE, by default type will be ITEM.

Enum: "ITEM" "BUNDLE"
nodeName
required
string

Name of the node (along with parent node names) for which the product needs to be created.

parentSku
string

Sku value of the parent, if there is one.

Array of objects (AttributeValue)

Node item attributes along with values.

Array of objects (BundleItems)

Items to be added to the bundle, this will contain sku and quantity.

Responses
200

The products.

400

A generic client error.

422

The failing items.

500

Internal server error.

post/v1/product/bulk/upsert
Request samples
application/json
{
  • "sku": "sku_abc",
  • "type": "ITEM",
  • "nodeName": "PRIMARY->electronics",
  • "parentSku": "sku123",
  • "attributeValues": [
    ],
  • "bundleItems": [
    ]
}
Response samples
application/json
{
  • "success": [
    ],
  • "failed": [
    ],
  • "itemIds": [
    ]
}

Update bundle in bulk.

Update bundles in bulk, adding or removing items and changing quantities.

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
action
required
string
Value: "UPDATE"
required
Array of objects
Responses
200

The products.

400

A generic client error.

500

Internal server error.

post/v1/product/bundle/update
Request samples
application/json
{
  • "action": "UPDATE",
  • "bundles": [
    ]
}
Response samples
application/json
[
  • {
    }
]

Vendor

Vendor APIs

Create vendor.

Create vendor API. It supports creating a single vendor or multiple vendors in single request.

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

If this header is omitted, the Authorization header is required instead for many calls.

Request Body schema: application/json
Array
required
Array of objects

Node Vendor attributes along with values.

action
required
string
Default: "CREATE"

Action is required, default CREATE.

Value: "CREATE"
Responses
200

The vendor response.

400

A generic client error.

500

Internal server error.

post/v1/vendor
Request samples
application/json
[
  • {
    }
]
Response samples
application/json
{
  • "vendorResponse": {
    }
}

Search vendors by Query.

Search vendors by Query.

Request
query Parameters
vendorIds
Array of numbers

The vendor Ids

vendorStatus
string

The vendor Status

Enum: "ACTIVE" "INACTIVE"
Example: vendorStatus=ACTIVE
size
integer

The page size.

Note: must be paired with page, and only relevant when vendorIds is omitted.

page
integer

The page of vendors to retrieve.

Note: must be paired with size, and only relevant when vendorIds is omitted.

header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

If this header is omitted, the Authorization header is required instead for many calls.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

The vendors

400

A generic client error.

500

Internal server error.

get/v1/vendor
Response samples
application/json
{
  • "totalSize": 100,
  • "pageSize": 10,
  • "pages": 10,
  • "vendors": [
    ]
}

Update vendor.

Update Vendor API. It supports both bulk and single update requests.

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

If this header is omitted, the Authorization header is required instead for many calls.

Request Body schema: application/json
Array
id
required
string
action
required
string
Default: "UPDATE"
Value: "UPDATE"
required
Array of objects (VendorUpdateAttributes)

Vendor attributes along with values.

Responses
200

The vendors.

400

A generic client error.

500

Internal server error.

post/v1/vendor/update
Request samples
application/json
[
  • {
    }
]
Response samples
application/json
{
  • "vendorResponse": {
    }
}

Get vendor By Id.

Get Vendor By Vendor Id.

Request
path Parameters
vendorId
required
string

The vendor's ID.

header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

If this header is omitted, the Authorization header is required instead for many calls.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

The vendors.

400

A generic client error.

500

Internal server error.

get/v1/vendor/{vendorId}
Response samples
application/json
{
  • "id": "6227bca91b03a5654a3cbfd4",
  • "vendorId": 6,
  • "vendorStatus": "true",
  • "attributes": [
    ],
  • "contacts": [
    ],
  • "locations": [
    ],
  • "statuses": [
    ],
  • "createdBy": "61095b16ca806c0008f26085",
  • "createdOn": "2022-03-08T21:20:02.237Z",
  • "modifiedBy": "61095b16ca806c0008f26085",
  • "modifiedOn": "2022-03-08T21:20:02.237Z",
  • "publishedBy": "61095b16ca806c0008f26085",
  • "publishedOn": "2022-03-08T21:20:02.237Z"
}

Get vendor attributes.

Get all vendor attributes.

Request
query Parameters
page
required
number

The page to retrieve. Used for pagination.

Example: page=1
size
required
number

The size of the pages to retrieve. Used for pagination.

Example: size=10
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

If this header is omitted, the Authorization header is required instead for many calls.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Responses
200

The vendor attributes.

400

A generic client error.

500

Internal server error.

get/v1/vendor/attribute
Response samples
application/json
{
  • "attributes": [
    ]
}

Create or Update Attributes for Vendor in bulk.

Create or Update Attributes for Vendor in bulk.

Request
header Parameters
Authorization
string

The Authorization is a access-token (JWT) received after login from copilot-application.

If omitted, x-site-context is required. Some calls require Authorization even with x-site-context.

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxMDk1YjE2Y2E4MDZjMDAwOGYyNjA4NSIsInJvbGVzIjpbIkFkbWluIl0sInBlcm1pc3Npb25zIjpbInJlYWQ6Y29sbGVjdGlvbiIsIndyaXRlOnVzZXIiLCJ3cml0ZTpza3VzZXQiLCJ3cml0ZTpyb2xlIiwicmVhZDpwZXJtaXNzaW9uIiwid3JpdGU6YXR0cmlidXRlLWdyb3VwIiwicmVhZDp1c2VyIiwicmVhZDpza3VzZXQiLCJ3cml0ZTphdHRyaWJ1dGUiLCJyZWFkOmF0dHJpYnV0ZSIsInJlYWQ6cm9sZSIsIndyaXRlOmNvbGxlY3Rpb24iLCJyZWFkOmF0dHJpYnV0ZS1ncm91cCJdLCJhY2NvdW50IjoiNjA5YWM3NTA1MWYxMWEwMDA3Y2YzOGIzIiwiYWNjb3VudElkIjoxNDAzNTUyMTE1LCJ1c2VyVHlwZSI6eyJraW5kIjoiUkVHSVNURVJFRCJ9LCJpYXQiOjE2Mzc1MzYzNjIsImV4cCI6MTYzNzUzODE2Mn0.aUrXJ8e5TsADHdlP61Zg21dgJFoFxe5jsASHDxTj1h-WtodEpMR150vTpIA0pfpy1-3rKXlcjoOi6xidADhqZw
x-api-key
string

The x-api-key is a key allowing access to the API without Authorization. This key can only be provided to you by fabric Inc upon request.

If this header is omitted, the Authorization header is required instead for many calls.

object

The x-site-context is a JSON object, and needs to contain account, stage, date & channel attributes.

If this header is omitted, the Authorization header is required instead.

Request Body schema: application/json
Array
action
required
string

The action to perform.

Performing CREATE will replace any existing vendor attribute with the same name, if one already exists.

Enum: "CREATE" "UPDATE" "DELETE"
id
string

The attribute's ID.

If action was "CREATE", id must be omitted. If "UPDATE", or "DELETE", id must be provided.

name
required
string

The attribute's name.

description
string

Accurate description of what this attribute represents.

mapping
string

The vendor attribute's mapping. This corresponds to the Attribute Mapping settings of PIM: vendorName,vendorId, vendorStatus Most attributes will not have a mapping, in which case this will be null. Warning: Be careful adding or removing mappings of attributes, as it can lead to bad data.

type
required
string

The data type of the attribute.

Enum: "TEXT" "BOOLEAN" "SERIAL" "DECIMAL" "INTEGER" "DATETIME" "OPTIONS"
subTextType
string

Conditionally required property to indicate text type for the TEXT type attributes.

Enum: "SMALL_TEXT" "TEXT_AREA" "HTML"
serialStart
number

Conditionally required property to indicate starting value for the SERIAL type attributes.

optionsType
string

Conditionally required property to indicate the selectable values for the OPTIONS type attributes.

Enum: "TEXT" "BOOLEAN" "DECIMAL" "INTEGER" "DATETIME"
format
string

The format of the attribute.

Currently this is used only for formatting DATETIME type attributes.

formula
string

A JavaScript expression that will be used to dynamically compute the attribute's value. The type returned by this expression must match the attribute's type. When this is provided, validation is ignored.

object
Responses
200

Bulk attribute response.

400

A generic client error.

500

Internal server error.

post/v1/vendor/attribute/bulk
Request samples
application/json
[
  • {
    }
]
Response samples
application/json
{
  • "attributes": {
    }
}