Nodeblocks Catalog Service Default Adapter API Specification (1.0)

Download OpenAPI specification:Download

CatalogService API spec (Default Adapter)

API documentation for CatalogService default adapter.

App

Get app status

Retrieves app status information.

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "packageInfo": {
    }
}

Location

Get active location tree

Retrieves a location tree by queries.

Examples of $filter use

1. Get tree of regions and prefectures

https://{{catalogServiceEndpoint}}/locations-tree?$filter=type eq 'region'

2. Get tree of prefectures and cities

https://{{catalogServiceEndpoint}}/locations-tree?$filter=type eq 'prefecture'
Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

parentId
required
string^[0-9a-z]{24}$
Example: parentId=0123456789ab0123456789ab

A unique identifier of a category/location

$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{
  • "total": 100,
  • "count": 100,
  • "value": [
    ]
}

Get locations

Retrieves a list of locations by queries.

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt

Responses

Response samples

Content type
application/json
{}

Create a new location

Create a new location.

This operation requires System Admin role

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
Request Body schema: application/json

Post a location request body.

name
required
string (LocationName)

The name of the location.

parentId
string (ParentId) ^[0-9a-z]{24}$

A character hexadecimal string value.

code
string
type
string

Responses

Request samples

Content type
application/json
{
  • "name": "Hokkaido",
  • "parentId": "0123456789ab0123456789ab",
  • "code": "string",
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "type": "region",
  • "code": 10006,
  • "name": "Hokkaido",
  • "createdAt": "2022-01-01T00:00:00.000Z",
  • "updatedAt": "2022-01-01T00:00:00.000Z"
}

Get locations' product count

Retrieves a list of count of product locations by queries.

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
locationIds
required
string^[0-9a-z]{24}+(?:,[0-9a-z]{24}+)*$
Example: 0123456789ab0123456789ab

A list of unique identifiers of a location.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a location

Retrieves a single location by id.

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
locationId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a location.

Responses

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "type": "region",
  • "code": 10006,
  • "name": "Hokkaido",
  • "createdAt": "2022-01-01T00:00:00.000Z",
  • "updatedAt": "2022-01-01T00:00:00.000Z"
}

Update a location

Update a single location by id partially.

This operation requires System Admin role

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
locationId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a location.

query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
Request Body schema: application/json

Patch a location request body.

name
string (LocationName)

The name of the location.

parentId
string (ParentId) ^[0-9a-z]{24}$

A character hexadecimal string value.

code
string
type
string

Responses

Request samples

Content type
application/json
{
  • "name": "location1"
}

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "type": "region",
  • "code": 10006,
  • "name": "Hokkaido",
  • "createdAt": "2022-01-01T00:00:00.000Z",
  • "updatedAt": "2022-01-01T00:00:00.000Z"
}

Delete a location

Delete a single location by id.

This operation requires System Admin role

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
locationId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a location.

Responses

Response samples

Content type
application/json
{
  • "code": "Unauthorized",
  • "message": "Authorization has failed.",
  • "target": "Token",
  • "innererror": {
    }
}

Rail

Get rail areas

Retrieves a list of areas by queries.

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{}

Get rail lines

Retrieves a list of lines by queries.

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt

Responses

Response samples

Content type
application/json
{}

Get rail stations

Retrieves a list of stations by queries.

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt

Responses

Response samples

Content type
application/json
{}

Category

Get active category tree

Retrieves a active product category tree by queries.

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

parentId
required
string^[0-9a-z]{24}$
Example: parentId=0123456789ab0123456789ab

A unique identifier of a category/location

$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt

Responses

Response samples

Content type
application/json
{
  • "total": 100,
  • "count": 100,
  • "value": [
    ]
}

Get categories

Retrieves a list of product categories by queries.

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{}

Create a new category

Create a new category.

This operation requires System Admin role

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
Request Body schema: application/json

Post a category request body.

name
required
string (CategoryName)

The name of the product category.

description
string
parentId
string (ParentId) ^[0-9a-z]{24}$

A character hexadecimal string value.

status
string (CategoryStatus)
Enum: "ACTIVE" "ARCHIVED"

The status of the category.

  • ACTIVE: The category is available to the products
  • ARCHIVED: The category isn't available to the products.
sequence
number (CategorySequence)

The sequence of the category. This is useful when user want to customize the order when displaying category

Responses

Request samples

Content type
application/json
{
  • "name": "Cat A",
  • "description": "string",
  • "parentId": "0123456789ab0123456789ab",
  • "status": "ACTIVE",
  • "sequence": 0
}

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "icon": {
    },
  • "parent": { },
  • "name": "Cat A",
  • "description": "This is a description of the product category.",
  • "status": "ACTIVE",
  • "sequence": 0
}

Get categories' product count

Retrieves a list of count of product categories by queries.

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
categoryIds
required
string^[0-9a-z]{24}+(?:,[0-9a-z]{24}+)*$
Example: 0123456789ab0123456789ab

A list of unique identifier of a category.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a category

Retrieve a single category by id.

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
categoryId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a category.

query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "icon": {
    },
  • "parent": { },
  • "name": "Cat A",
  • "description": "This is a description of the product category.",
  • "status": "ACTIVE",
  • "sequence": 0
}

Update a category

Update a single category by id partially.

This operation requires System Admin role

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
categoryId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a category.

query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
Request Body schema: application/json

Patch a category request body.

name
string (CategoryName)

The name of the product category.

description
string
parentId
string (ParentId) ^[0-9a-z]{24}$

A character hexadecimal string value.

status
string (CategoryStatus)
Enum: "ACTIVE" "ARCHIVED"

The status of the category.

  • ACTIVE: The category is available to the products
  • ARCHIVED: The category isn't available to the products.

Responses

Request samples

Content type
application/json
Example
{
  • "name": "Cat B"
}

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "icon": {
    },
  • "parent": { },
  • "name": "Cat A",
  • "description": "This is a description of the product category.",
  • "status": "ACTIVE",
  • "sequence": 0
}

Delete a category

Delete a single category by id.

This operation requires System Admin role

A category assigned to any of products cannot be deleted.

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
categoryId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a category.

Responses

Response samples

Content type
application/json
{
  • "code": "Unauthorized",
  • "message": "Authorization has failed.",
  • "target": "Token",
  • "innererror": {
    }
}

Product

Get published products

Retrieves a list of published products across organizations by queries. Only publication.status = 'ACTIVE' products will be returned.

Use /orgs/{orgId}/products to get the organization's products in any publication status.

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
$search
string

You can specify text to search. It will do free text search in product title, and description. The search is done in indexed data and support fuzzy search full-width / half-width change etc.

$apply
string

Transform and aggregate the response, such as applying a function to a property or grouping the response by a property. There are many supported types of aggregation and transformation. A full list of transformations can be found on the Nodeblocks documentation website.

Transformations are specified separated by then. For example, to apply a filter and then group by a category property, the query would be $apply=filter(name eq 'xxx') then groupby((category), aggregate($count as count)).

Grouping by multiple properties is supported.

Grouping supports pagination when there are many groups.

Certain restrictions may apply on transformations due to performance or security considerations.

Examples:

Group by a property and then return the top X results per group.

Before transformation,

{
  total: 4,
  count: 4,
  value: [
    {
      id: '0000000000',
      name: 'item_0',
      category: 'category_0',
      score: 100,
    },
    {
      id: '0000000001',
      name: 'item_1',
      category: 'category_0',
      score: 50
    }
    {
      id: '0000000002',
      name: 'item_2',
      category: 'category_1',
      score: 20
    }
    {
      id: '0000000003',
      name: 'item_3',
      category: 'category_1',
      score: 50
    }
  ]
}

By using $apply parameter,

$apply=groupby((category), orderby(score desc), top(2))

It will returns grouped information:

{
  total: 2,
  count: 2,
  value: [
    {
      category: 'category_0',
      top: [
        {
          id: '0000000000',
          name: 'item_0',
          category: 'category_0',
          score: 100,
        },
        {
          id: '0000000001',
          name: 'item_1',
          category: 'category_0',
          score: 50
        }
      ]
    },
    {
      category: 'category_1',
      top: [
        {
          id: '0000000003',
          name: 'item_3',
          category: 'category_1',
          score: 50
        },
        {
          id: '0000000002',
          name: 'item_2',
          category: 'category_1',
          score: 20
        }
      ]
    }
  ]
}

Responses

Response samples

Content type
application/json
{
  • "total": 100,
  • "count": 100,
  • "value": [
    ]
}

Get published products for system admin

Retrieves a list of products across organizations by queries. This include publication.status = 'ACTIVE', 'DRAFT' and 'ARCHIVED' products.

Only system admin can access this API.

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
$search
string

You can specify text to search. It will do free text search in product title, and description. The search is done in indexed data and support fuzzy search full-width / half-width change etc.

$apply
string

Transform and aggregate the response, such as applying a function to a property or grouping the response by a property. There are many supported types of aggregation and transformation. A full list of transformations can be found on the Nodeblocks documentation website.

Transformations are specified separated by then. For example, to apply a filter and then group by a category property, the query would be $apply=filter(name eq 'xxx') then groupby((category), aggregate($count as count)).

Grouping by multiple properties is supported.

Grouping supports pagination when there are many groups.

Certain restrictions may apply on transformations due to performance or security considerations.

Examples:

Group by a property and then return the top X results per group.

Before transformation,

{
  total: 4,
  count: 4,
  value: [
    {
      id: '0000000000',
      name: 'item_0',
      category: 'category_0',
      score: 100,
    },
    {
      id: '0000000001',
      name: 'item_1',
      category: 'category_0',
      score: 50
    }
    {
      id: '0000000002',
      name: 'item_2',
      category: 'category_1',
      score: 20
    }
    {
      id: '0000000003',
      name: 'item_3',
      category: 'category_1',
      score: 50
    }
  ]
}

By using $apply parameter,

$apply=groupby((category), orderby(score desc), top(2))

It will returns grouped information:

{
  total: 2,
  count: 2,
  value: [
    {
      category: 'category_0',
      top: [
        {
          id: '0000000000',
          name: 'item_0',
          category: 'category_0',
          score: 100,
        },
        {
          id: '0000000001',
          name: 'item_1',
          category: 'category_0',
          score: 50
        }
      ]
    },
    {
      category: 'category_1',
      top: [
        {
          id: '0000000003',
          name: 'item_3',
          category: 'category_1',
          score: 50
        },
        {
          id: '0000000002',
          name: 'item_2',
          category: 'category_1',
          score: 20
        }
      ]
    }
  ]
}

Responses

Response samples

Content type
application/json
{
  • "total": 100,
  • "count": 100,
  • "value": [
    ]
}

Get products for an organization

Retrieves a list of products for an organization by queries.

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{
  • "total": 100,
  • "count": 100,
  • "value": [
    ]
}

Create a new product for an organization

Create a new product for an organization.

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
Request Body schema: application/json

Post a product request body.

categoryId
required
string (ObjectId) ^[0-9a-z]{24}$

A 24 character hexadecimal string value.

name
required
string (ProductName)

The name of the product.

description
string (ProductDescription)

A description of the product.

dimensions
string (ProductDimensions)

The size of the product.

imageIds
Array of strings (ObjectId)

An array of product images. These are ids referring to the organization service attachments.

object (PostGeoCoordinatesInProductRequest)

The geo coordinate date of the project.

Array of objects (PostProductVariantRequest)

An array of product variants.

variantNote
string (ProductVariantNote)

Extra information that is added to the variant.

locationIds
Array of strings (ProductLocationIds)

An array of product location ids. Each product can have a maximum of 10 locations.

tags
Array of strings (ProductTags)

Tags that are used for filtering and search.

Array of objects (ProductFeatures)

A list of product features. For example, Color and Material.

addressLine1
string (ProductAddressLine1)

The product's address line 1

addressLine2
string (ProductAddressLine2)

The product's address line 2

addressLine3
string (ProductAddressLine3)

The product's address line 3

postalCode
string (ProductPostalCode)

The product's postal code

additionalInformation
string (ProductAdditionalInformation)

Extra information that is added to the variant.

object

Publication information of the product.

customFields
object (CustomFields)

Custom fields that have been added to the customFields options in createCatalogDefaultAdapter.

Responses

Request samples

Content type
application/json
Example
{
  • "categoryId": "0123456789ab0123456789ab",
  • "name": "Product A",
  • "description": "Product A description",
  • "variants": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "category": {
    },
  • "name": "Product A",
  • "description": "This is a description of the product.",
  • "dimensions": "100 x 100 x 100",
  • "geoCoordinatesField": {
    },
  • "images": [
    ],
  • "isPromoted": true,
  • "variants": [
    ],
  • "variantNote": "string",
  • "locations": [
    ],
  • "tags": [
    ],
  • "features": [
    ],
  • "addressLine1": "東京都",
  • "addressLine2": "目黒区",
  • "addressLine3": "上目黒1-19-2",
  • "postalCode": "153-0051",
  • "additionalInformation": "string",
  • "publication": {
    },
  • "customFields": {
    },
  • "createdAt": "2022-01-01T00:00:00.000Z",
  • "updatedAt": "2022-01-01T00:00:00.000Z"
}

Create a list of new products for an organization

Create a list of new products for an organization.

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
Request Body schema: application/json

Post a list of product request body.

Array
categoryId
string (ObjectId) ^[0-9a-z]{24}$

A 24 character hexadecimal string value.

name
string (ProductName)

The name of the product.

description
string (ProductDescription)

A description of the product.

dimensions
string (ProductDimensions)

The size of the product.

imageIds
Array of strings (ObjectId)

An array of product images. These are ids referring to the organization service attachments.

object (PostGeoCoordinatesInProductRequest)

The geo coordinate date of the project.

Array of objects (PostProductVariantRequest)

An array of product variants.

variantNote
string (ProductVariantNote)

Extra information that is added to the variant.

locationIds
Array of strings (ProductLocationIds)

An array of product location ids. Each product can have a maximum of 10 locations.

tags
Array of strings (ProductTags)

Tags that are used for filtering and search.

Array of objects (ProductFeatures)

A list of product features. For example, Color and Material.

addressLine1
string (ProductAddressLine1)

The product's address line 1

addressLine2
string (ProductAddressLine2)

The product's address line 2

addressLine3
string (ProductAddressLine3)

The product's address line 3

postalCode
string (ProductPostalCode)

The product's postal code

additionalInformation
string (ProductAdditionalInformation)

Extra information that is added to the variant.

object

Publication information of the product.

customFields
object (CustomFields)

Custom fields that have been added to the customFields options in createCatalogDefaultAdapter.

Responses

Request samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Get a product

Retrieve a single product by id.

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "category": {
    },
  • "name": "Product A",
  • "description": "This is a description of the product.",
  • "dimensions": "100 x 100 x 100",
  • "geoCoordinatesField": {
    },
  • "images": [
    ],
  • "isPromoted": true,
  • "variants": [
    ],
  • "variantNote": "string",
  • "locations": [
    ],
  • "tags": [
    ],
  • "features": [
    ],
  • "addressLine1": "東京都",
  • "addressLine2": "目黒区",
  • "addressLine3": "上目黒1-19-2",
  • "postalCode": "153-0051",
  • "additionalInformation": "string",
  • "publication": {
    },
  • "customFields": {
    },
  • "createdAt": "2022-01-01T00:00:00.000Z",
  • "updatedAt": "2022-01-01T00:00:00.000Z"
}

Update a product

Update a single product by id partially.

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
Request Body schema: application/json

Update a product request body.

categoryId
string (ObjectId) ^[0-9a-z]{24}$

A 24 character hexadecimal string value.

name
string (ProductName)

The name of the product.

description
string (ProductDescription)

A description of the product.

dimensions
string (ProductDimensions)

The size of the product.

imageIds
Array of strings (ObjectId)

An array of product images.

isPromoted
boolean (ProductPromotion)

The promotion status of a product.

Array of objects (GeoCoordinatesField) <= 2 items

An nested array of geo coordinates.

Array of objects (PatchVariantInProductRequest)

An array of product variants.

variantNote
string (ProductVariantNote)

Extra information that is added to the variant.

locationIds
Array of strings (ProductLocationIds)

An array of product location ids. Each product can have a maximum of 10 locations.

tags
Array of strings (ProductTags)

Tags that are used for filtering and search.

Array of objects (ProductFeatures)

A list of product features. For example, Color and Material.

addressLine1
string (ProductAddressLine1)

The product's address line 1

addressLine2
string (ProductAddressLine2)

The product's address line 2

addressLine3
string (ProductAddressLine3)

The product's address line 3

postalCode
string (ProductPostalCode)

The product's postal code

additionalInformation
string (ProductAdditionalInformation)

Extra information that is added to the variant.

object

Publication information of the product.

customFields
object (CustomFields)

Custom fields that have been added to the customFields options in createCatalogDefaultAdapter.

Responses

Request samples

Content type
application/json
Example
{
  • "name": "Product A"
}

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "category": {
    },
  • "name": "Product A",
  • "description": "This is a description of the product.",
  • "dimensions": "100 x 100 x 100",
  • "geoCoordinatesField": {
    },
  • "images": [
    ],
  • "isPromoted": true,
  • "variants": [
    ],
  • "variantNote": "string",
  • "locations": [
    ],
  • "tags": [
    ],
  • "features": [
    ],
  • "addressLine1": "東京都",
  • "addressLine2": "目黒区",
  • "addressLine3": "上目黒1-19-2",
  • "postalCode": "153-0051",
  • "additionalInformation": "string",
  • "publication": {
    },
  • "customFields": {
    },
  • "createdAt": "2022-01-01T00:00:00.000Z",
  • "updatedAt": "2022-01-01T00:00:00.000Z"
}

Delete a product

Delete a single product by id.

It also deletes all its variants.

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

Responses

Response samples

Content type
application/json
{
  • "code": "Unauthorized",
  • "message": "Authorization has failed.",
  • "target": "Token",
  • "innererror": {
    }
}

Delete multiple products

Delete multiple products by ids array in body and data

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

Request Body schema: application/json

delete a list of product request body.

ids
Array of strings (ObjectId)

An array of product ids.

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "BadArgument",
  • "message": "Multiple invalid values in the request body.",
  • "target": "RequestBody",
  • "details": {
    }
}

Update multiple products

Update multiple products by ids array in body and data

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

Request Body schema: application/json

update a list of product request body.

Array
ids
Array of strings (ObjectId)

An array of product ids.

object

The data of the product to update.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "code": "BadArgument",
  • "message": "Multiple invalid values in the request body.",
  • "target": "RequestBody",
  • "details": {
    }
}

Copy a product

Copy a product by id.

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

Responses

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "category": {
    },
  • "name": "Product A",
  • "description": "This is a description of the product.",
  • "dimensions": "100 x 100 x 100",
  • "geoCoordinatesField": {
    },
  • "images": [
    ],
  • "isPromoted": true,
  • "variants": [
    ],
  • "variantNote": "string",
  • "locations": [
    ],
  • "tags": [
    ],
  • "features": [
    ],
  • "addressLine1": "東京都",
  • "addressLine2": "目黒区",
  • "addressLine3": "上目黒1-19-2",
  • "postalCode": "153-0051",
  • "additionalInformation": "string",
  • "publication": {
    },
  • "customFields": {
    },
  • "createdAt": "2022-01-01T00:00:00.000Z",
  • "updatedAt": "2022-01-01T00:00:00.000Z"
}

ProductVariant

Create multiple product variants

Create a list of new product variants. Variants can be created for multiple products at the same time.

This operation requires the specified organization owner role for all products that are being used

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
Request Body schema: application/json

Post a product variant bulk request body.

Array
productId
string (ObjectId) ^[0-9a-z]{24}$

A 24 character hexadecimal string value.

sku
string (ProductVariantSku)

A unique identifier for the product variant in the organization.

title
required
string (ProductVariantTitle)

The title of the product variant.

description
string (ProductVariantDescription)

A description of the product variant.

imageIds
Array of strings (ObjectId)

An array of product images. These are ids referring to the organization service attachments.

required
object

Product price information

customFields
object (CustomFields)

Custom fields that have been added to the customFields options in createCatalogDefaultAdapter.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Delete multiple product variants

Delete multiple product variants using a list of ids. Variants can be deleted for multiple products at the same time.

This operation requires the specified organization owner role for all products that are being used

Authorizations:
x-nb-fingerprintbearerAuth
Request Body schema: application/json

Delete a product variant bulk request body.

ids
Array of strings (ObjectId)

An array of product variant ids.

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "BadArgument",
  • "message": "Multiple invalid values in the request body.",
  • "target": "RequestBody",
  • "details": {
    }
}

Update multiple product variants

Update multiple product variants using a list of ids. Variants can be updated for multiple products at the same time. Product id for variants can not be updated

This operation requires the specified organization owner role for all products that are being used

Authorizations:
x-nb-fingerprintbearerAuth
Request Body schema: application/json

Patch a product variant bulk request body.

Array
ids
Array of strings (ObjectId)

An array of product variant ids.

object

The product variant data to update.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "code": "BadArgument",
  • "message": "Multiple invalid values in the request body.",
  • "target": "RequestBody",
  • "details": {
    }
}

Get product's variants

Retrieves a list of variants for the product by queries.

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{
  • "total": 100,
  • "count": 100,
  • "value": [
    ]
}

Create a new product variant

Create a new product variant.

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
Request Body schema: application/json

Post a product variant request body.

sku
string (ProductVariantSku)

A unique identifier for the product variant in the organization.

title
required
string (ProductVariantTitle)

The title of the product variant.

description
string (ProductVariantDescription)

A description of the product variant.

imageIds
Array of strings (ObjectId)

An array of product images. These are ids referring to the organization service attachments.

required
object

Product price information

customFields
object (CustomFields)

Custom fields that have been added to the customFields options in createCatalogDefaultAdapter.

Responses

Request samples

Content type
application/json
{
  • "sku": "SKU123ABC",
  • "title": "This is a title of Product variant A.",
  • "description": "This is a description of Product variant A.",
  • "imageIds": [
    ],
  • "price": {
    },
  • "customFields": {
    }
}

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "productId": "0123456789ab0123456789ab",
  • "sku": "SKU123ABC",
  • "title": "This is a title of Product variant A.",
  • "description": "This is a description of Product variant A.",
  • "images": [
    ],
  • "price": {
    },
  • "customFields": {
    },
  • "createdAt": "2022-01-01T00:00:00.000Z",
  • "updatedAt": "2022-01-01T00:00:00.000Z"
}

Get a product variant

Retrieve a single product variant by id.

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

variantId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product variant.

query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "productId": "0123456789ab0123456789ab",
  • "sku": "SKU123ABC",
  • "title": "This is a title of Product variant A.",
  • "description": "This is a description of Product variant A.",
  • "images": [
    ],
  • "price": {
    },
  • "customFields": {
    },
  • "createdAt": "2022-01-01T00:00:00.000Z",
  • "updatedAt": "2022-01-01T00:00:00.000Z"
}

Update a product variant

Update a single product variant by id partially.

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

variantId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product variant.

query Parameters
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}
Request Body schema: application/json

Patch a product variant request body.

sku
string (ProductVariantSku)

A unique identifier for the product variant in the organization.

title
string (ProductVariantTitle)

The title of the product variant.

description
string (ProductVariantDescription)

A description of the product variant.

imageIds
Array of strings (ObjectId)

An array of product images. These are ids referring to the organization service attachments.

object

Product price information

customFields
object (CustomFields)

Custom fields that have been added to the customFields options in createCatalogDefaultAdapter.

Responses

Request samples

Content type
application/json
{
  • "sku": "SKU123ABC",
  • "title": "This is a title of Product variant A.",
  • "description": "This is a description of Product variant A.",
  • "imageIds": [
    ],
  • "price": {
    },
  • "customFields": {
    }
}

Response samples

Content type
application/json
{
  • "id": "0123456789ab0123456789ab",
  • "productId": "0123456789ab0123456789ab",
  • "sku": "SKU123ABC",
  • "title": "This is a title of Product variant A.",
  • "description": "This is a description of Product variant A.",
  • "images": [
    ],
  • "price": {
    },
  • "customFields": {
    },
  • "createdAt": "2022-01-01T00:00:00.000Z",
  • "updatedAt": "2022-01-01T00:00:00.000Z"
}

Delete a product variant

Delete a single product variant by id.

This operation requires user is

  • a system admin
  • or have owner/admin role in the organization
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

variantId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product variant.

Responses

Response samples

Content type
application/json
{
  • "code": "Unauthorized",
  • "message": "Authorization has failed.",
  • "target": "Token",
  • "innererror": {
    }
}

Follow

Follow product

Follow a product

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

Request Body schema: application/json
followerId
string
followerType
string

Responses

Request samples

Content type
application/json
{
  • "followerId": "string",
  • "followerType": "string"
}

Response samples

Content type
application/json
{
  • "code": "BadArgument",
  • "message": "Multiple invalid values in the request body.",
  • "target": "RequestBody",
  • "details": {
    }
}

Unfollow product

Unfollow a product

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

Request Body schema: application/json
followerId
string
followerType
string

Responses

Request samples

Content type
application/json
{
  • "followerId": "string",
  • "followerType": "string"
}

Response samples

Content type
application/json
{
  • "code": "BadArgument",
  • "message": "Multiple invalid values in the request body.",
  • "target": "RequestBody",
  • "details": {
    }
}

Get Product Follower List

Get product follower list

Validations

  • Valid Bearer token have been specified in the request header
  • Bearer token is super product token or a system internal token
Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
productId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a product.

query Parameters
type
required
string

type of follow/follower examples:

  • user
  • organization
  • product
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "count": 0,
  • "@nextLink": "string",
  • "@previousLink": "string",
  • "value": [
    ]
}

Get User Product Follow List

Get user product follow list

Filtration

  • filter by product id or follow id: productId eq 'xxx' or followId eq 'xxx' will be change to followId eq 'xxx'

Validations

  • Valid Bearer token have been specified in the request header
  • Bearer token is super product token or a system internal token
Authorizations:
bearerAuthx-nb-fingerprint
path Parameters
userId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a user.

query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "count": 0,
  • "@nextLink": "string",
  • "@previousLink": "string",
  • "value": [
    ]
}

Attribute

Get attributes

Retrieves a list of attributes by queries.

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{
  • "total": 100,
  • "count": 100,
  • "value": [
    ]
}

Create a new attribute

Create a new attribute

Authorizations:
x-nb-fingerprintbearerAuth
Request Body schema: application/json

Post an attribute request body.

categoryIds
Array of strings

relation to categories

Array of objects

List of select options. Used when type is 'Select' or 'MultiSelect'

Array of objects

List of groups to group together select options. Used when type is 'Select' or 'MultiSelect'

name
required
string

name

order
number

order

type
required
string

type of the attribute, one of 'Boolean', 'Text', 'Number', 'Select', 'MultiSelect'

customFields
object (CustomFields)

Custom fields that have been added to the customFields options in createCatalogDefaultAdapter.

Responses

Request samples

Content type
application/json
{
  • "categoryIds": [
    ],
  • "items": [
    ],
  • "itemGroups": [
    ],
  • "name": "string",
  • "order": 0,
  • "type": "string",
  • "customFields": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "categoryIds": [
    ],
  • "groupName": "string",
  • "items": [
    ],
  • "itemGroups": [
    ],
  • "name": "string",
  • "order": 0,
  • "type": "string",
  • "customFields": {
    }
}

Update an attribute

Update a single attribute by id partially.

This operation requires System Admin role

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
attributeId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a attribute.

Request Body schema: application/json

Patch an attribute request body.

categoryIds
Array of strings

relation to categories

Array of objects

list of select options, used when type is 'Select' or 'MultiSelect'

name
string

name

order
number

order

type
string

type of the attribute, one of 'Boolean', 'Text', 'Number', 'Select', 'MultiSelect'

Responses

Request samples

Content type
application/json
{
  • "categoryIds": [
    ],
  • "items": [
    ],
  • "name": "string",
  • "order": 0,
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "categoryIds": [
    ],
  • "groupName": "string",
  • "items": [
    ],
  • "itemGroups": [
    ],
  • "name": "string",
  • "order": 0,
  • "type": "string",
  • "customFields": {
    }
}

Delete an attribute

Delete a single attribute by id.

This operation requires System Admin role

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
attributeId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of a attribute.

Responses

Response samples

Content type
application/json
{
  • "code": "Unauthorized",
  • "message": "Authorization has failed.",
  • "target": "Token",
  • "innererror": {
    }
}

Attachment

Get attachments list for organization

Retrieves a list of attachments for organization

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{}

Create attachment for organization

Organization user can create attachment for its organization, and use it as product image etc.

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "isPublic": true,
  • "ownerId": "string",
  • "ownerType": "string",
  • "type": "string",
  • "url": "string"
}

Get one attachment

Retrieves one attrachment

Authorizations:
x-nb-fingerprintbearerAuth
path Parameters
orgId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

attachmentId
required
string^[0-9a-z]{24}$
Example: 0123456789ab0123456789ab

A unique identifier of an organization.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "isPublic": true,
  • "ownerId": "string",
  • "ownerType": "string",
  • "type": "string",
  • "url": "string"
}

Get attachments list

Retrieves a list of attachments

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
$top
integer [ 1 .. 100 ]
Example: $top=20

The maximum number of results to show on the page (The default value is 20).

$skip
integer
Example: $skip=20

The maximum number of the items to skip (The Default value is 0).

$nextToken
string
Example: $nextToken=token

A unique token to get next batch of data. (base64 format)

$previousToken
string
Example: $previousToken=token

A unique token to get previous batch of data. (base64 format)

$filter
string

Return only items which matches to a condition (The operators below are listed in order of precedence from highest to lowest).

Operator Description Example
( ) Precedence grouping (items.quantity eq 1 or name eq 'T-Shirt') and price.amount gt 100
not Logical negation not price.amount le 3.5
gt Greater than price.amount gt 20
ge Greater than or equal price.amount ge 10
lt Less than price.amount lt 20
le Less than or equal price.amount le 100
eq Equal categoryId eq '01234567890123456789ab'
ne Not equal publication.status ne 'DRAFT'
in In tags in ('a', 'b')
and Logical and price.amount le 200 and price.amount gt 3.5
or Logical or price.amount le 3.5 or price.amount gt 200
geoWithinBox MongoDB operator geoWithinBox geoCoordinatesField.coordinates geoWithinBox [10, 10, 19, 19]

Examples:

Simple example of filtering by a property value.

This is just a reference, the actual values may vary based on the service implementation.

$filter=name eq 'xxx'
$orderBy
string

Return sorted items based on property values. It can contains a comma-separated list of expressions. The expression may include the suffix "asc" for ascending or "desc" for descending, separated from the property name by one or more spaces. If "asc" or "desc" is not specified, the service MUST order by the specified property in ascending order. The sort order is the inherent order for the type of the property.

Examples:

Return all orders sorted by publishedAt in descending order and a secondary sort order of updatedAt in ascending order.

This is just a reference, the actual values may vary based on the service implementation.

$orderBy=publication.publishedAt desc,updatedAt
$expand
string

Include extra information that are not included in responses by default in the response. By default, the fields that supports this query contain only uri for referring to the full information of it. To include the full information of the field, specify the field by $expand.

You can expand recursively by specifying nested fields after a dot (.). until For example, requesting product.category on a product image will expand the product property into a full product object, and will then expand the category property on that product into a full category object. Expansions have a maximum depth of 3 levels.

You can use the expand param on any endpoint which returns expandable fields, including list, create, and update endpoints.

You can expand multiple objects at once by identifying multiple items in comma-separated style.

Examples:

Include full category and organization information in the response.

Before expanding,

{
  ...
  "category": {
    "uri": "https://{{catalogServiceEndpoint}}/categories/01234567890123456789ab"
  },
  "organization": {
    "uri": "https://{{organizationServiceEndpoint}}/organization/01234567890123456789ab"
  },
  ...
}

By using $expand parameter,

$expand=category,organization

It will returns full information:

{
  ...
  "category": {
    "id": "01234567890123456789ab",
    "name": "Category A",
    "description": "Description of Category A.",
    ...
  },
  "organization": {
    "id": "01234567890123456789ab",
    "name": "Org A",
    "description": "Description of Org A.",
    ...
  },
  ...
}

Responses

Response samples

Content type
application/json
{}

Get attachment upload url

Retrieves a list of attachment upload url. You need to specify a content length, and content type of the files you would like to upload After getting the upload url, you can upload the file to the url with PUT method, and the file will be uploaded to the cloud storage. After uploading the file, you need to call the create attachment api to create the attachment.

Note that the file you upload later must much the content length and content type you specified in the query.

Authorizations:
x-nb-fingerprintbearerAuth
query Parameters
contentLength
required
number
Example: contentLength=100000

The contentLengh of the object to upload

contentType
required
string
Example: contentType=image/png

The contentType of the object to upload

Responses

Response samples

Content type
application/json
{
  • "code": "BadArgument",
  • "message": "Multiple invalid values in the request body.",
  • "target": "RequestBody",
  • "details": {
    }
}