openapi: 3.0.0
x-mint:
mcp:
enabled: true
info:
description: >-
fabric's **Catalog Connector** API is a lightweight service that you can use
when you have your own Product Information Management (PIM) and only want to
integrate with other fabric services, such as Offers and OMS (excluding the
fabric Products API service). It supports CRUD operations to add and manage
products in the Catalog Connector based on SKU, product ID, and item ID.
Using Catalog Connector API, you can retrieve an import template, import
product data into the Catalog Connector, export data, and check the status
of previous imports and exports. Additionally, you can search for products
based on specified filter conditions and perform bulk operations to manage
products.
title: Catalog - Connector
version: 3.0.0
x-audience: external-public
contact:
email: support@fabric.inc
name: Product team
license:
name: fabric API License
url: https://fabric.inc/api-license
termsOfService: https://fabric.inc/terms-of-use
externalDocs:
description: Find out more about Catalog Connector (previously called PIM Connector)
url: https://developer.fabric.inc/docs/products-overview
servers:
- url: https://api.fabric.inc/v3
description: Production URL
tags:
- name: Catalog Connector Files
description: >-
Retrieve an import template, import a file to the Catalog Connector, view
import and export status, and download a previously processed file.
- name: Catalog Connector Jobs
description: >-
Export data from the Catalog Connector and retrieve the status of
previously processed files.
- name: General Catalog Connector Operations
description: Search for products based on the specified filter conditions.
- name: Catalog Connector Operations by SKU
description: Supports product operations based on SKU.
- name: Catalog Connector Operations by Product ID
description: Supports product operations based on Product ID.
- name: Catalog Connector Operations by Item ID
description: Supports product operations based on Item ID.
paths:
/catalog-connector-templates/actions/generate:
post:
tags:
- Catalog Connector Files
summary: Retrieve an Import Template
description: >-
Use this endpoint to retrieve the product import template for Catalog
Connector in either CSV or JSONL format, based on your preferred data
handling method. You can open CSV template in applications, such as
Excel or Google Sheets and JSONL template in text editors compatible
with JSONL, such as Visual Studio Code. After filling in product data,
save the template file with a unique name on your local system.
operationId: generateTemplate
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
$ref: '#/components/requestBodies/generateTemplateRequest'
responses:
'200':
description: OK
content:
text/csv: {}
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFoundError'
'500':
$ref: '#/components/responses/internalServerError'
/catalog-connector-files:
post:
tags:
- Catalog Connector Files
summary: Create a File Object and Retrieve the File Upload URL
description: >-
Use this endpoint to retrieve the URL of the AWS S3 location to upload
the file that you want to import to the Catalog Connector.
operationId: createFile
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
$ref: '#/components/requestBodies/createProductFileRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/file'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'500':
$ref: '#/components/responses/internalServerError'
get:
tags:
- Catalog Connector Files
summary: Retrieve Import and Export History
description: >
Use this endpoint to access files previously imported to or exported
from the Catalog Connector, sorted in chronological order. You can
refine the search results by using the following query parameters:
- `ids`: Provide a comma-separated list of file IDs to retrieve multiple
files by their IDs. Note that pagination isn't supported when using this
parameter.
- Format type (`formatType`) : Specify the format of the file to filter
files by format. The options are **CSV** or **JSONL**.
- Operation type (`type`): Use this parameter to specify whether you
want imported or exported files.
- Pagination (`offset`, `limit`): Use offset and limit parameters to
refine the number of results returned.
- `sort`: Use this parameter to view results in ascending or descending
order.
If no query parameters are specified, the endpoint returns up to 10
records.
operationId: getFiles
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
- $ref: '#/components/parameters/ids'
- $ref: '#/components/parameters/fileName'
- $ref: '#/components/parameters/formatTypeQueryParam'
- $ref: '#/components/parameters/productFileType'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/sortBy'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/getFilesResponse'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'500':
$ref: '#/components/responses/internalServerError'
/catalog-connector-files/actions/download:
get:
tags:
- Catalog Connector Files
summary: Download a File by ID
description: >
Use this endpoint to retrieve the URL used to download a previously
processed file. You can then make a GET request with this URL to
retrieve the products data in CSV or JSONL format.
The download link is valid for five minutes.
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
- $ref: '#/components/parameters/fileId'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/fileDownloadResponse'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFoundError'
'500':
$ref: '#/components/responses/internalServerError'
/catalog-connector-jobs/actions/export:
post:
tags:
- Catalog Connector Jobs
summary: Export Products
description: >
Use this endpoint to start an internal job to export products from
Catalog Connector.
Specify the `formatType` query parameter to export data in either CSV or
JSONL format. In the request body, provide the `ids` of all products to
be exported, the product type, and the locale.
operationId: exportProductsJob
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
$ref: '#/components/requestBodies/exportIDJobRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/jobIdResponse'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'500':
$ref: '#/components/responses/internalServerError'
/catalog-connector-jobs:
get:
tags:
- Catalog Connector Jobs
summary: Retrieve Jobs
description: >
Use this endpoint to retrieve a paginated list of import and export jobs
related to Catalog Connector.
The following constraints apply when using the query parameters:
- The query parameter job `ids` can't be combined with any other query parameters.
- The query parameter `inputFileIds` can only be combined with the query parameter `lastJobOnly`.
- Pagination isn't supported when `ids` or `inputFileIds` is specified.
operationId: getJobs
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
- $ref: '#/components/parameters/ids'
- $ref: '#/components/parameters/productFileType'
- $ref: '#/components/parameters/inputFileIds'
- $ref: '#/components/parameters/lastJobOnly'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/productJob'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'500':
$ref: '#/components/responses/internalServerError'
/catalog-connector-jobs/search:
post:
tags:
- Catalog Connector Jobs
summary: Search Jobs
description: >-
Get a paginated list of jobs related to products and collections by
specifying the request body. You need to specify the criteria for the
search such as job `id`, `type`, `status`, `collectionId`, or
`inputFileId`.
operationId: getJobsBySearchCriteria
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
$ref: '#/components/requestBodies/jobSearchRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/productJob'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'500':
$ref: '#/components/responses/internalServerError'
/catalog-connector/products/search:
post:
tags:
- General Catalog Connector Operations
summary: Find Products
description: >
Use this endpoint to search for products based on names, IDs, SKUs,
image URLs, and more. By specifying the appropriate query parameters,
you can exclude one or more types of data, such as collections,
categories, variants, attributes, and products within a bundle.
- Use the `CONTAINS` search operation to search for products based on keywords of SKU, name, and more.
- Use the `IN` search operation to search for products based on one or more values, such as IDs, names, SKUs, image URLs, attributes, and types.
- Use the less than or equals to, `LTE`, greater than or equals to, `GTE`, less than, `LT`, greater than, `GT` and equals `EQ` operations to search for date-specific values, such as time of creation or modification.
operationId: getCatalogsBySearchCriteria
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/excludeBundleProductsParameter'
- $ref: '#/components/parameters/excludeCollectionsParameter'
- $ref: '#/components/parameters/excludeCategoriesParameter'
- $ref: '#/components/parameters/excludeVariantsParameter'
- $ref: '#/components/parameters/excludeAttributesParameter'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
$ref: '#/components/requestBodies/productSearchRequest'
responses:
'200':
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/getProductsBySearchResponse'
examples:
Product:
$ref: '#/components/examples/productSearchResultExample'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'413':
$ref: '#/components/responses/payloadLimitExceededError'
'500':
$ref: '#/components/responses/internalServerError'
/catalog-connector/products/skus/{skuId}:
get:
tags:
- Catalog Connector Operations by SKU
summary: Retrieve a Product by SKU
description: >
Use this endpoint to retrieve a single product by its SKU. You must
specify the query parameters `sku` and `locale` to corresponding to the
product. Optionally, you can set the following query parameters to
`true` to refine the search results:
- `excludeBundleProducts`: Exclude bundled products from the response.
- `excludeCollections`: Exclude collections from the response.
- `excludeCategories`: Exclude categories from the response.
- `excludeAttributes`: Exclude attributes from the response.
- `excludeVariants`: Exclude variants from the response.
If you don't have the product SKU, use one of the endpoints to retrieve
the product:
- [Retrieve a product by product ID](/v3/api-reference/catalog-connector/operations/product-operations/retrieve-by-product).
- [Retrieve a product by item ID](/v3/api-reference/catalog-connector/operations/item-operations/retrieve-by-item).
operationId: getCatalogBySku
parameters:
- in: path
name: skuId
schema:
type: string
required: true
example: CAXCC1234
description: The Stock Keeping Unit (SKU) of a product provided by the merchant.
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
- $ref: '#/components/parameters/excludeBundleProductsParameter'
- $ref: '#/components/parameters/excludeCollectionsParameter'
- $ref: '#/components/parameters/excludeCategoriesParameter'
- $ref: '#/components/parameters/excludeAttributesParameter'
- $ref: '#/components/parameters/excludeVariantsParameter'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/product'
examples:
Product:
$ref: '#/components/examples/ItemExample'
Variant:
$ref: '#/components/examples/variantExample'
Bundle:
$ref: '#/components/examples/bundleExample'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFoundError'
'413':
$ref: '#/components/responses/payloadLimitExceededError'
'500':
$ref: '#/components/responses/internalServerError'
put:
tags:
- Catalog Connector Operations by SKU
summary: Update a Product by SKU
description: >
Use this endpoint to update details of a product by its SKU. You can
update details of the product, such as the product name, category
details, product images, attributes, and collections. The new data
replaces the existing data. Note that you can't update the SKU.
If you don't have the product SKU, use one of the endpoints update the
product details:
- [Update a product by product ID](/v3/api-reference/catalog-connector/operations/product-operations/update-by-product).
- [Update a product by item ID](/v3/api-reference/catalog-connector/operations/item-operations/update-by-item).
operationId: updateCategoryBySku
parameters:
- in: path
name: skuId
schema:
type: string
required: true
example: CAXCC1234
description: The Stock Keeping Unit (SKU) of a product provided by the merchant.
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
$ref: '#/components/requestBodies/putCatalogRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/product'
examples:
Product:
$ref: '#/components/examples/ItemExample'
Variant:
$ref: '#/components/examples/variantExample'
Bundle:
$ref: '#/components/examples/bundleExample'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFoundError'
'413':
$ref: '#/components/responses/payloadLimitExceededError'
'500':
$ref: '#/components/responses/internalServerError'
delete:
tags:
- Catalog Connector Operations by SKU
summary: Delete a Product by SKU
description: >
Use this endpoint to delete a single product by using its SKU.
If you don't have the product SKU, use one of the endpoints to delete
the product:
- [Delete a product by product ID](/v3/api-reference/catalog-connector/operations/product-operations/delete-by-product).
- [Delete a product by item ID](/v3/api-reference/catalog-connector/operations/item-operations/delete-by-item).
operationId: deleteCatalogsBySku
parameters:
- in: path
name: skuId
schema:
type: string
required: true
example: CAXCC1234AASXSSSS
description: The Stock Keeping Unit (SKU) of a product provided by the merchant.
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
responses:
'204':
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
description: No Content
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'500':
$ref: '#/components/responses/internalServerError'
/catalog-connector/products:
post:
tags:
- Catalog Connector Operations by Product ID
summary: Add a Product
description: >
Use this endpoint to add a single product to Catalog Connector. You must
specify the `locale` in the query parameter and the product data in the
request body. Only `sku` is mandatory for product data. Optionally, you
can specify the `type` as item, variant, or bundle. The default setting
for `type` is item.
operationId: createProduct
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
- $ref: '#/components/parameters/localeParameter'
requestBody:
$ref: '#/components/requestBodies/insertCatalogRequest'
responses:
'200':
description: OK.
content:
application/json:
examples:
Item:
$ref: '#/components/examples/ItemExample'
Variant:
$ref: '#/components/examples/variantExample'
Bundle:
$ref: '#/components/examples/bundleExample'
schema:
$ref: '#/components/schemas/product'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'413':
$ref: '#/components/responses/payloadLimitExceededError'
'500':
$ref: '#/components/responses/internalServerError'
/catalog-connector/products/itemIds/{itemId}:
get:
tags:
- Catalog Connector Operations by Item ID
summary: Retrieve a Product or a Variant by Item ID
description: >
Use this endpoint to retrieve a single product by its `itemId`. You must
specify the query parameters `itemId` and `locale`. Optionally, you can
set the following query parameters to `true` to refine the search
results:
You must specify the query parameters `itemId` and `locale`.
Optionally, you can set the following query parameters to `true` to
refine the search results:
- `excludeBundleProducts`: Exclude bundled products from the response.
- `excludeCollections`: Exclude collections from the response.
- `excludeCategories`: Exclude categories from the response.
- `excludeAttributes`: Exclude attributes from the response.
- `excludeVariants`: Exclude variants from the response.
If you don't have the `itemId`, use one of the endpoints to retrieve the
product:
- [Update a product by SKU](/v3/api-reference/catalog-connector/operations/sku-operations/update-with-sku).
- [Update a product by product ID](/v3/api-reference/catalog-connector/operations/product-operations/update-by-product).
operationId: getCatalogByItemId
parameters:
- in: path
name: itemId
schema:
type: integer
format: int32
required: true
example: 123431
description: A sequential system-generated item ID.
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
- $ref: '#/components/parameters/excludeBundleProductsParameter'
- $ref: '#/components/parameters/excludeCollectionsParameter'
- $ref: '#/components/parameters/excludeCategoriesParameter'
- $ref: '#/components/parameters/excludeAttributesParameter'
- $ref: '#/components/parameters/excludeVariantsParameter'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/product'
examples:
Product:
$ref: '#/components/examples/ItemExample'
Variant:
$ref: '#/components/examples/variantExample'
Bundle:
$ref: '#/components/examples/bundleExample'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFoundError'
'413':
$ref: '#/components/responses/payloadLimitExceededError'
'500':
$ref: '#/components/responses/internalServerError'
put:
tags:
- Catalog Connector Operations by Item ID
summary: Update a Product by the Item ID.
description: >
Use this endpoint to update a single product by using its `itemId`. You
can update the product's details, such as its name, category details,
product images, attributes, and collections. However, you can't update
the `itemId`. The new data completely replaces the existing data.
You can update the product's details, such as its name, category
details, product images, attributes, and collections. However, you can't
update the itemId. The new data completely replaces the existing data.
If you don't have the `itemId`, use the one of the endpoints to delete
the product:
- [Update a product by SKU](/v3/api-reference/catalog-connector/operations/sku-operations/update-with-sku).
- [Update a product by product ID](/v3/api-reference/catalog-connector/operations/product-operations/update-by-product).
operationId: updateCategoryByItemId
parameters:
- in: path
name: itemId
schema:
type: integer
format: int32
required: true
example: 123431
description: A sequential system-generated item ID.
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
$ref: '#/components/requestBodies/putCatalogRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/product'
examples:
Product:
$ref: '#/components/examples/ItemExample'
Variant:
$ref: '#/components/examples/variantExample'
Bundle:
$ref: '#/components/examples/bundleExample'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFoundError'
'413':
$ref: '#/components/responses/payloadLimitExceededError'
'500':
$ref: '#/components/responses/internalServerError'
delete:
tags:
- Catalog Connector Operations by Item ID
summary: Delete a Product by Item ID
description: >
Use this endpoint to delete a single product by its `itemId`.
If you don't have the `itemId`, use one of the endpoints to delete the
product:
- [Delete a product by SKU](/v3/api-reference/catalog-connector/operations/sku-operations/delete-with-sku).
- [Delete a product by product ID](/v3/api-reference/catalog-connector/operations/product-operations/delete-by-product).
operationId: deleteCatalogsByItem ID
parameters:
- in: path
name: itemId
schema:
type: integer
format: int32
required: true
example: 123431
description: A sequential system-generated item ID.
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
responses:
'204':
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
description: No Content
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'500':
$ref: '#/components/responses/internalServerError'
/catalog-connector/products/{productId}:
get:
tags:
- Catalog Connector Operations by Product ID
summary: Retrieve a Product by Product ID
description: >
Use this endpoint to retrieve a single product by its `productId`.
You must specify the query parameters `productId` and `locale`.
Optionally, you can set the following query parameters to `true` to
refine the search results:
- `excludeBundleProducts`: Exclude bundled products from the response.
- `excludeCollections`: Exclude collections from the response.
- `excludeCategories`: Exclude categories from the response.
- `excludeAttributes`: Exclude attributes from the response.
- `excludeVariants`: Exclude variants from the response.
If you don't have the `productId`, use one of the endpoints to retrieve
the product:
- [Retrieve a product by SKU](/v3/api-reference/catalog-connector/operations/sku-operations/update-with-sku).
- [Retrieve a product by item ID](/v3/api-reference/catalog-connector/operations/item-operations/update-by-item).
operationId: getCatalogByProductId
parameters:
- in: path
name: productId
schema:
type: string
required: true
example: 6482b9524ffa4978fd9cbf5c
description: The UUID of the product.
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
- $ref: '#/components/parameters/excludeBundleProductsParameter'
- $ref: '#/components/parameters/excludeCollectionsParameter'
- $ref: '#/components/parameters/excludeCategoriesParameter'
- $ref: '#/components/parameters/excludeAttributesParameter'
- $ref: '#/components/parameters/excludeVariantsParameter'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/product'
examples:
Item:
$ref: '#/components/examples/ItemExample'
Variant:
$ref: '#/components/examples/variantExample'
Bundle:
$ref: '#/components/examples/bundleExample'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFoundError'
'413':
$ref: '#/components/responses/payloadLimitExceededError'
'500':
$ref: '#/components/responses/internalServerError'
put:
tags:
- Catalog Connector Operations by Product ID
summary: Update a Product by Product ID
description: >
Use this endpoint to update a single product by its `productId`.
You can update the product's details, such as its name, category
details, product images, attributes, and collections. However, you can't
update the productId.
The new data completely replaces the existing data.
If you don't have the `productId`, use one of the corresponding
endpoints:
- [Update a product by SKU](/v3/api-reference/catalog-connector/operations/product-operations/update-by-product).
- [Update a product by item ID](/v3/api-reference/catalog-connector/operations/item-operations/update-by-item).
operationId: updateCatalogByProductId
parameters:
- in: path
name: productId
schema:
type: string
required: true
example: 6482b9524ffa4978fd9cbf5c
description: The UUID of the product.
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
$ref: '#/components/requestBodies/putCatalogRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/product'
examples:
Product:
$ref: '#/components/examples/ItemExample'
Variant:
$ref: '#/components/examples/variantExample'
Bundle:
$ref: '#/components/examples/bundleExample'
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFoundError'
'413':
$ref: '#/components/responses/payloadLimitExceededError'
'500':
$ref: '#/components/responses/internalServerError'
delete:
tags:
- Catalog Connector Operations by Product ID
summary: Delete a Product by Product ID
description: >
Use this endpoint to delete a single product by its `productId`.
If you don't have the `productId`, use one of the endpoints to delete
the product:
- [Delete a product by SKU](/v3/api-reference/catalog-connector/operations/sku-operations/delete-with-sku).
- [Delete a product by item ID](/v3/api-reference/catalog-connector/operations/item-operations/delete-by-item).
operationId: deleteCatalogsByProductId
parameters:
- in: path
name: productId
schema:
type: string
required: true
example: 6482b9524ffa4978fd9cbf5c
description: The UUID of the product.
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/xFabricRequestId'
responses:
'204':
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
description: No Content
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'500':
$ref: '#/components/responses/internalServerError'
components:
examples:
productSearchResultExample:
value:
offset: 0
limit: 10
count: 1
data:
- sku: NIKE237765
productName: Nike runner shoes
id: 6482b9524ffa4978fd9cbf5c
itemId: 2700537
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: ITEM
variants:
- sku: NIKE237766
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
- name: Brand
value:
- Nike
id: 640db94f9fc28b255d155a42
type: LOV
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
paginatedVariantResultExample:
value:
offset: 0
limit: 10
count: 1
data:
- sku: NIKE237766
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: VARIANT
parentSku: NIKE237765
parentId: 6482b9524ffa4978fd9cbf5c
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
paginatedBundleResultExample:
value:
offset: 0
limit: 10
count: 1
data:
- sku: BUNDLE237765
productName: Nike runner shoes bundle
id: 60ad7e9d858eb50007abbb19#2700540
itemId: 2700540
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Shoes Combo
value: true
type: BOOLEAN
type: BUNDLE
bundleProducts:
- sku: NIKE237766
quantity: 1
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
type: VARIANT
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
- sku: NIKE237765
quantity: 1
productName: Nike runner shoes
id: 6482b9524ffa4978fd9cbf5c
itemId: 2700537
type: ITEM
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
ItemUpdateExample:
value:
productName: Nike runner shoes
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: ITEM
variants:
- sku: NIKE237766
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
ItemCreateExample:
value:
sku: NIKE237765
productName: Nike runner shoes
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: ITEM
variants:
- sku: NIKE237766
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
ItemExample:
value:
sku: NIKE237765
productName: Nike runner shoes
id: 6482b9524ffa4978fd9cbf5c
itemId: 2700537
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: ITEM
variants:
- sku: NIKE237766
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
variantUpdateExample:
value:
productName: Nike runner white shoes
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: VARIANT
parentSku: NIKE237765
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
variantCreateExample:
value:
sku: NIKE237766
productName: Nike runner white shoes
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: VARIANT
parentSku: NIKE237765
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
variantExample:
value:
sku: NIKE237766
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: VARIANT
parentSku: NIKE237765
parentId: 6482b9524ffa4978fd9cbf5c
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
bundleUpdateExample:
value:
productName: Nike runner shoes bundle
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Shoes Combo
value: true
type: BOOLEAN
type: BUNDLE
bundleProducts:
- sku: NIKE237766
quantity: 1
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
type: VARIANT
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
- sku: NIKE237765
quantity: 1
productName: Nike runner shoes
id: 6482b9524ffa4978fd9cbf5c
itemId: 2700537
type: ITEM
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
bundleCreateExample:
value:
sku: BUNDLE237765
productName: Nike runner shoes bundle
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Shoes Combo
value: true
type: BOOLEAN
type: BUNDLE
bundleProducts:
- sku: NIKE237766
quantity: 1
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
type: VARIANT
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
- sku: NIKE237765
quantity: 1
productName: Nike runner shoes
id: 6482b9524ffa4978fd9cbf5c
itemId: 2700537
type: ITEM
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
bundleExample:
value:
sku: BUNDLE237765
productName: Nike runner shoes bundle
id: 60ad7e9d858eb50007abbb19#2700540
itemId: 2700540
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Shoes Combo
value: true
type: BOOLEAN
type: BUNDLE
bundleProducts:
- sku: NIKE237766
quantity: 1
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
type: VARIANT
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
- sku: NIKE237765
quantity: 1
productName: Nike runner shoes
id: 6482b9524ffa4978fd9cbf5c
itemId: 2700537
type: ITEM
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
BulkItemCreateExample:
value:
products:
sku: NIKE237765
productName: Nike runner shoes
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: ITEM
variants:
- sku: NIKE237766
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
BulkVariantCreateExample:
value:
products:
sku: NIKE237766
productName: Nike runner white shoes
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: VARIANT
parentSku: NIKE237765
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
BulkBundleCreateExample:
value:
products:
sku: BUNDLE237765
productName: Nike runner shoes bundle
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Shoes Combo
value: true
type: BOOLEAN
type: BUNDLE
bundleProducts:
- sku: NIKE237766
quantity: 1
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
type: VARIANT
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
- sku: NIKE237765
quantity: 1
productName: Nike runner shoes
id: 6482b9524ffa4978fd9cbf5c
itemId: 2700537
type: ITEM
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
createdAt: 2021-12-13T13:56:09.006Z
updatedAt: 2021-12-13T13:56:09.006Z
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
securitySchemes:
authorization:
type: http
scheme: bearer
bearerFormat: JWT
description: >-
This is the authorization token used to authenticate the request. You
must pass the access token generated from the system app. For more
information, see the [Making your first API
request](/v3/api-reference/getting-started/getting-started-with-fabric-apis#procedure)
section.
parameters:
xFabricTenantId:
in: header
name: x-fabric-tenant-id
schema:
type: string
required: true
example: 5f328bf0b5f328bf0b5f328b
description: >-
A header retrieved from your [Copilot Account
Details](/v3/platform/settings/account-details/getting-the-account-id)
that's used by the API to identify the tenant making the request. Tenant
ID must be included in the authentication header for API requests to
access any of fabric’s endpoints.
xFabricRequestId:
in: header
name: x-fabric-request-id
description: Unique request ID
schema:
type: string
example: 263e731c-45c8-11ed-b878-0242ac120002
required: false
formatTypeQueryParam:
in: query
name: formatType
description: >-
Depending on the context, it represents the format of the file or
template.
schema:
$ref: '#/components/schemas/formatTypes'
example: csv
typeQueryParam:
in: query
name: type
description: >-
The type of product, such as items or variants and bundles. Note that
the template is the same for both items and variants.
schema:
type: string
enum:
- ITEM
- BUNDLE
default: ITEM
example: ITEM
localeParameter:
name: locale
in: query
example: en-US
description: >
The language code, which is a combination of language (ISO 639 format)
and country (ISO 3166 format).
The default value is en-US.
schema:
type: string
required: true
ids:
in: query
name: ids
description: >
The 24-character system-generated file ID created using the [Create a
File](/v3/api-reference/catalog-connector/files/create-file) endpoint.
Depending on the type of IDs, the array represents the file IDs or job
IDs. Specify up to 15 IDs separated by commas. Note the following
limitations of using this parameter:
- This parameter can't be combined with any other parameters.
- Pagination isn't supported when this parameter is specified.
schema:
type: string
example: 5f328bf0b5f328bf0b5f328b, 1e328bf0b5f328bf0b5f3287
fileId:
in: query
name: fileId
description: A 24-character system-generated file ID.
schema:
type: string
example: 5f328bf0b5f328bf0b5f328b
required: true
productFileType:
in: query
name: type
schema:
$ref: '#/components/schemas/productFileJobTypes'
description: >-
Specify the type of operation or job performed when the file was
uploaded.
productTypeParameter:
in: query
name: type
schema:
$ref: '#/components/schemas/productType'
description: The supported product types.
required: false
fileName:
in: query
name: fileName
schema:
type: string
description: Use this endpoint to specify the name of the file you want to retrieve.
example: bulk_import_123345677788999.csv
inputFileIds:
in: query
name: inputFileIds
description: >-
The file IDs specified in the request. You can specify up to 15 file IDs
separated by commas. - This parameter can only be combined with the
query parameter `lastJobOnly`. - Pagination isn't supported when this is
specified.
schema:
type: string
example: 87328bf0b5f328bf0b5f328b, 9f328bf0b5f328bf0b5f3258
lastJobOnly:
in: query
name: lastJobOnly
description: >-
A flag indicating whether the response should be based only on the last
job. Set it to `true` to show response based on the last job and `false`
to include response based on all jobs that meet the criteria. This is
only applicable with `type` and `inputFileIds`.
schema:
type: boolean
example: true
limit:
in: query
name: limit
description: The maximum number of records per page.
schema:
type: integer
format: int32
default: 10
example: 20
offset:
in: query
name: offset
description: >-
The number of records to skip before returning records. For example,
with an offset of 20 and limit of 10, the system returns records from 21
to 30.
schema:
type: integer
format: int32
default: 0
example: 2
required: false
sortBy:
in: query
name: sort
description: >-
The sorting criteria. Currently, the supported values are `updatedAt`
and `name`. Use `-` for descending order and `+` for ascending.
schema:
type: string
example: +name,-updatedAt
required: false
excludeBundleProductsParameter:
name: excludeBundleProducts
in: query
example: false
description: >-
A flag indicating whether the products associated with a bundle should
be excluded from the response. Set it to `true` to exclude products of a
bundle and `false` to include them in the response.
schema:
type: boolean
required: false
excludeCollectionsParameter:
name: excludeCollections
in: query
example: false
description: >-
A flag indicating whether the collections should be excluded from the
response. Set it to `true` to exclude collections and `false` to include
them in the response.
schema:
type: boolean
required: false
excludeCategoriesParameter:
name: excludeCategories
in: query
example: false
description: >-
A flag indicating whether the categories should be excluded from the
response. Set it to `true` to exclude categories and `false` to include
them in the response.
schema:
type: boolean
required: false
excludeVariantsParameter:
name: excludeVariants
in: query
example: false
description: >-
A flag indicating whether item variants should be excluded from the
response. Set it to `true` to exclude variants and `false` to include
them in the response.
schema:
type: boolean
required: false
excludeAttributesParameter:
name: excludeAttributes
in: query
example: false
description: >-
A flag indicating whether attributes should be excluded from the
response. Set it to `true` to exclude attributes and `false` to include
them in the response.
schema:
type: boolean
required: false
responses:
notAuthorized:
description: The requester is unauthorized.
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/genericError'
example:
type: UNAUTHORIZED_ERROR
message: Requester is unauthorized
forbidden:
description: The user isn't allowed to perform this action.
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/genericError'
example:
type: REQUEST_DENIED
message: User does not have the required permission
notFoundError:
description: The requested entity isn't found
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/genericError'
example:
type: NOT_FOUND
message: Resource not found
badRequest:
description: Request is invalid or malformed
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/genericError'
internalServerError:
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/genericError'
example:
type: SERVER_ERROR
message: Internal Server Error
payloadLimitExceededError:
description: The payload limit is exceeded. It should be less than 10MB.
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/genericError'
example:
type: PAYLOAD_LIMIT_EXCEEDED_ERROR
message: Payload exceeds maximum configured size
headers:
xFabricRequestId:
schema:
type: string
required: false
example: 263e731c-45c8-11ed-b878-0242ac120002
description: Unique request ID
requestBodies:
productSearchRequest:
content:
application/json:
schema:
type: object
required:
- search
properties:
sort:
type: string
description: >-
The sorting criteria. Currently, the supported values are
`sku`, `type`, `productName`, `itemId`, `categoryName`, and
`createdAt`. Use `-` to view the results in a descending order
and `+` for ascending.
example: +sku,-productName
search:
$ref: '#/components/schemas/productSearchRequest'
offset:
description: >-
The number of records to skip before returning records.
For example, when the offset is 20 and limit is 10, the system
returns records from 21 to 30.
type: integer
format: int32
default: 0
example: 2
limit:
description: The maximum number of records per page.
type: integer
format: int32
default: 10
example: 10
insertCatalogRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/insertCatalogRequestSchema'
examples:
Item:
$ref: '#/components/examples/ItemCreateExample'
Variant:
$ref: '#/components/examples/variantCreateExample'
Bundle:
$ref: '#/components/examples/bundleCreateExample'
bulkUpsertCatalogRequest:
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- products
description: A sample request to create multiple products.
properties:
products:
type: array
minItems: 1
items:
$ref: '#/components/schemas/insertCatalogRequestSchema'
examples:
Items:
$ref: '#/components/examples/BulkItemCreateExample'
Variants:
$ref: '#/components/examples/BulkVariantCreateExample'
Bundles:
$ref: '#/components/examples/BulkBundleCreateExample'
putCatalogRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/putCatalogRequestSchema'
examples:
Item:
$ref: '#/components/examples/ItemUpdateExample'
Variant:
$ref: '#/components/examples/variantUpdateExample'
Bundle:
$ref: '#/components/examples/bundleUpdateExample'
exportIDJobRequest:
content:
application/json:
schema:
type: object
additionalProperties: false
description: A sample request to export data.
required:
- ids
- locale
- type
properties:
ids:
type: array
minItems: 1
description: The product type IDs that must be exported.
items:
type: string
description: The product type IDs that must be exported.
example:
- 5f328bf0b5f328bf0b5f328b
- 22328bf0b5f328bf0b5f3287
formatType:
$ref: '#/components/schemas/formatTypes'
locale:
$ref: '#/components/schemas/locale'
type:
$ref: '#/components/schemas/productAsyncJobTypes'
generateTemplateRequest:
content:
application/json:
schema:
additionalProperties: false
description: Template request
required:
- type
- formatType
properties:
type:
$ref: '#/components/schemas/productsType'
formatType:
$ref: '#/components/schemas/formatTypes'
createProductFileRequest:
content:
application/json:
schema:
type: object
additionalProperties: false
description: >-
A sample request to create a file object and retrieve the upload
URL to import products to the Catalog Connector.
required:
- type
- name
- locale
- formatType
properties:
type:
$ref: '#/components/schemas/productFileJobTypes'
name:
type: string
description: The name of the file to be imported.
example: bulk_import_123345677788999.csv
locale:
$ref: '#/components/schemas/locale'
formatType:
$ref: '#/components/schemas/formatTypes'
jobSearchRequest:
content:
application/json:
schema:
type: object
required:
- match
description: Request for a job search.
properties:
sort:
type: string
description: >-
Sorting criteria. Sorting is supported on `id`, `type`,
`status`, `completedAt`, and `createdAt`. `-` refers to
descending while `+` refers to ascending order.
example: +id,-type
match:
$ref: '#/components/schemas/jobSearchRequestMatch'
offset:
description: |-
Number of records to skip before returning records.
For example, `offset=20, limit=10` returns records 21-30.
type: integer
format: int32
default: 0
example: 2
limit:
description: Maximum number of records per page.
type: integer
format: int32
default: 10
example: 10
schemas:
productJob:
description: The details of the job.
type: object
properties:
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/job'
type: object
properties:
type:
$ref: '#/components/schemas/productFileJobTypes'
offset:
description: >-
The number of records to skip before returning records.
For example, when the offset is 20 and limit is 10, the system
returns the records from 21 to 30.
type: integer
format: int32
default: 0
example: 5
limit:
description: The maximum number of records per page.
type: integer
format: int32
default: 10
example: 10
count:
description: The total number of records.
type: integer
format: int32
example: 100
fileDownloadResponse:
type: object
description: >-
The URL generated in the response of the `Download a file by ID`
request.
properties:
location:
type: string
description: The URL to download an imported file.
format: uri
example: >-
https://pim-v3-dev02-us-east-1-files.s3.us-east-1.amazonaws.com/local/PRODUCT_EXPORT/abc.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=EXAMPLEACCESSKEYID%252F20230317%252Fus-east-1%252Fs3%252Faws4_request&X-Amz-Date=20230317T171516Z&X-Amz-Expires=300&X-Amz-Signature=EXAMPLESIGNATURE&X-Amz-SignedHeaders=host&x-id=GetObject
getFilesResponse:
type: object
description: >-
The response of the `Retrieve import or export history` request, along
with pagination data.
properties:
data:
type: array
items:
$ref: '#/components/schemas/commonFileSchema'
offset:
description: >-
The number of records to skip before returning records.
For example, when the offset is 20 and limit is 10, the system
returns the records from 21 to 30.
type: integer
format: int32
default: 0
example: 5
limit:
description: The maximum number of records per page.
type: integer
format: int32
default: 10
example: 10
count:
description: The total number of records.
type: integer
format: int32
example: 100
file:
allOf:
- $ref: '#/components/schemas/newCommonFileSchema'
- type: object
properties:
location:
type: string
description: >-
The AWS S3 file location of the imported file is provided as a
URL.
example: >-
https://s3.console.aws.amazon.com/s3/buckets/greatwall-stg01-bulk-import-pim/bulk_import_123345677788999.csv
newCommonFileSchema:
type: object
description: The details of the file.
properties:
id:
type: string
description: A 24-character system-generated file ID.
example: 857f1f77bcf86cd799439054
type:
$ref: '#/components/schemas/productFileJobTypes'
name:
type: string
description: The name of the file name to be uploaded to the AWS S3 location.
example: bulk_import_123345677788999.csv
locale:
$ref: '#/components/schemas/locale'
formatType:
$ref: '#/components/schemas/formatTypes'
createdAt:
type: string
description: The time of file creation, in UTC format.
example: '2021-09-14T22:10:30.618Z'
updatedBy:
type: string
description: The email of the user who last updated the file.
example: test@email.com
updatedAt:
type: string
description: The time of last update to the file, in UTC format.
example: '2021-09-14T22:10:30.618Z'
commonFileSchema:
type: object
description: The details of the file.
properties:
id:
type: string
description: >-
The 24-character system-generated file ID created using the [Create
a File](/v3/api-reference/catalog-connector/files/create-file)
endpoint.
example: 857f1f77bcf86cd799439054
type:
$ref: '#/components/schemas/productFileJobTypes'
name:
type: string
description: The name of the file to be uploaded to the AWS S3 location.
example: bulk_import_123345677788999.csv
locale:
$ref: '#/components/schemas/locale'
formatType:
$ref: '#/components/schemas/formatTypes'
createdAt:
type: string
description: The time of file creation, in UTC format.
example: '2021-09-14T22:10:30.618Z'
updatedBy:
type: string
description: The email of the user who last updated the file.
example: test@email.com
updatedAt:
type: string
description: The time of last update to the file, in UTC format.
example: '2021-09-14T22:10:30.618Z'
locale:
type: string
description: >
The language code, which is a combination of language (ISO 639 format)
and country (ISO 3166 format).
The default value is `en-US`.
example: en-US
productFileJobTypes:
type: string
enum:
- CATALOG_CONN_ITEM_VARIANT_IMPORT
- CATALOG_CONN_ITEM_VARIANT_EXPORT
- CATALOG_CONN_BUNDLE_IMPORT
- CATALOG_CONN_BUNDLE_EXPORT
description: Specify the type of operation or job performed by uploading the file.
example: CATALOG_CONN_ITEM_VARIANT_IMPORT
productsType:
type: string
enum:
- ITEM
- BUNDLE
description: >-
Specify the product type you want to import using the product import
template you will receive from a successful response.
example: ITEM
formatTypes:
type: string
enum:
- csv
- jsonl
description: Specify the file format used to upload to Catalog Connector.
example: jsonl
jobStatuses:
type: string
enum:
- SCHEDULED
- COMPLETED_PARTIALLY
- IN_PROGRESS
- COMPLETED
- FAILED
- UPDATING_SEARCH_INDEX
- CANCELLATION_IN_PROGRESS
- CANCELLED
description: Job status
example: COMPLETED
productAsyncJobTypes:
type: string
enum:
- CATALOG_CONN_ITEM_VARIANT_EXPORT
- CATALOG_CONN_BUNDLE_EXPORT
description: The supported job types.
example: CATALOG_CONN_ITEM_VARIANT_EXPORT
job:
type: object
description: The details of the import or export job.
properties:
id:
type: string
description: >-
The 24-character system-generated file ID created using the [Create
a File](/v3/api-reference/catalog-connector/files/create-file)
endpoint.
example: 877f1f77bcf86cd799439087
inputFileId:
type: string
example: 327f1f77bcf86cd799439045
description: The IDs of the files to be processed as part of the job.
outputFiles:
type: array
description: >-
The IDs of the processed files. The output files include success
files, error files, and more.
items:
type: string
description: >-
The IDs of the processed files. The output files include success
files, error files, and more.
example: 507f1f77bcf86cd7994390163, 967f1f77bcf86cd799439058
errorFiles:
type: array
description: >-
The IDs of the processed files. The output files include success
files, error files, and more.
items:
type: string
description: >-
A 24-character system-generated IDs of the error files. The error
files list products that couldn't be processed through the job.
example: 887f1f77bcf86cd799439011, 997f1f77bcf86cd799439074
progressTracker:
type: object
properties:
updatedAt:
type: string
description: The time when the tracker was last updated, in UTC format.
example: '2023-02-14T22:10:30.618Z'
totalCount:
type: integer
format: int32
description: The total number of records to be processed through the job.
example: 100000
processedCount:
type: integer
format: int32
description: The total number of records processed.
example: 40000
errorCount:
type: integer
format: int32
description: Total number of records with error.
example: 10
status:
type: string
description: The job status.
enum:
- IN_PROGRESS
- COMPLETED
- FAILED
example: COMPLETED
statusMessage:
description: A brief message corresponding to the job `status`.
type: string
example: 100% completed
additionalDetails:
type: object
properties:
itemsCreated:
type: integer
format: int32
description: >-
The number of items created during the import process. Only
applicable when job `type` is `PRODUCT_IMPORT`.
example: 10
itemsUpdated:
type: integer
format: int32
description: >-
The number of items updated during the import process. Only
applicable when job `type` is `PRODUCT_IMPORT`.
example: 10
createdAt:
type: string
description: The time of job creation, in UTC format.
example: '2021-09-14T22:10:30.618Z'
completedAt:
type: string
description: The time of job completion, in UTC format.
example: '2021-09-14T22:10:30.618Z'
updatedBy:
type: string
description: The email of the user who last updated the job.
example: test@email.com
updatedAt:
type: string
description: The time when the job was last updated, in UTC format.
example: '2021-09-14T22:10:30.618Z'
jobIdResponse:
type: object
description: The job ID.
properties:
jobId:
type: string
description: A 24-character system-generated job ID.
example: 877f1f77bcf86cd799439087
productSearchRequest:
minProperties: 1
additionalProperties: false
description: The search criteria to find products.
type: object
properties:
keyword:
type: object
description: >-
The search criteria based on keywords of product name, SKU, item ID,
more.
properties:
op:
type: string
description: The type of search operation.
example: CONTAINS
enum:
- CONTAINS
value:
$ref: '#/components/schemas/stringSchema'
id:
$ref: '#/components/schemas/stringSearchOperation'
sku:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
productName:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
image:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
itemId:
$ref: '#/components/schemas/integerSearchOperation'
type:
$ref: '#/components/schemas/productTypeSearchOperation'
parentSku:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
categoryId:
$ref: '#/components/schemas/stringSearchOperation'
categoryName:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
collectionId:
$ref: '#/components/schemas/stringSearchOperation'
collectionName:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
bundleProductName:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
bundleProductSku:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
bundleProductCount:
$ref: '#/components/schemas/integerSearchOperation'
variantProductName:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
variantProductSku:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
attributes:
type: array
items:
anyOf:
- $ref: '#/components/schemas/attributeSearchOperation'
- $ref: >-
#/components/schemas/containsLessThanGreaterThanAttributeSearchOperation
createdAt:
anyOf:
- $ref: '#/components/schemas/datetimeInOperation'
- $ref: '#/components/schemas/datetimeRangeOperation'
- $ref: '#/components/schemas/datetimeOperation'
updatedAt:
anyOf:
- $ref: '#/components/schemas/datetimeInOperation'
- $ref: '#/components/schemas/datetimeRangeOperation'
- $ref: '#/components/schemas/datetimeOperation'
example:
keyword:
op: CONTAINS
value: NIKE237765
id:
op: IN
value:
- 6482b9524ffa4978fd9cbf5c
sku:
op: IN
value:
- NIKE237765
productName:
op: IN
value:
- Nike runner shoes
image:
op: IN
value:
- https://myawsomestore.com/is/image/nike/8801290_s7
itemId:
op: IN
value:
- 2700537
type:
op: IN
value:
- ITEM
parentSku:
op: CONTAINS
value: NIKE237765
parentId:
op: IN
value:
- 6482e47771609dfca2beb29f
categoryId:
op: IN
value:
- 648014741adc8a9de14e1a68
categoryName:
op: CONTAINS
value: Shoes
collectionName:
op: CONTAINS
value: Flash Sale
bundleProductSku:
op: CONTAINS
value: BUNDLE237765
bundleProductName:
op: CONTAINS
value: nike
bundleProductId:
op: IN
value:
- 60ad7e9d858eb50007abbb19#123124
bundleProductCount:
op: GTE
value: 10
attributes:
- name: Color
op: IN
value:
- black
attributeIds:
op: IN
value:
- 60ad7e9d858eb50007abbb19
- 4aqz7e9d858eb5000cdeas12
attributeTypes:
op: IN
value:
- TEXT
- BOOLEAN
- LOV
- NUMBER
createdAt:
op: LTE
value: 2021-12-13T13:56:09.006Z
updatedAt:
op: LTE
value: 2021-12-13T13:56:09.006Z
productTypeSearchOperation:
type: object
description: The search criteria based on product type.
properties:
op:
type: string
description: The type of search operation.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/productType'
stringSearchOperation:
type: object
description: >-
The search operation based on a string value, such as ID, name, SKU,
image URL, attribute type, and more.
properties:
op:
type: string
description: The type of search operation.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/stringSchema'
attributeSearchOperation:
type: object
description: The search criteria based on attributes.
properties:
name:
$ref: '#/components/schemas/attributeName'
op:
type: string
description: The type of search operation.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/attributeValue'
containsLessThanGreaterThanAttributeSearchOperation:
type: object
description: The search criteria based on the attributes.
properties:
name:
$ref: '#/components/schemas/attributeName'
op:
type: string
description: The type of search operation.
example: CONTAINS
enum:
- CONTAINS
- LTE
- GTE
- LT
- GT
value:
$ref: '#/components/schemas/attributeValue'
containsSearchOperation:
type: object
description: >-
The search criteria based on single-string search.
For example, by using the `CONTAINS` operation, you can search for
`parentSku`, `categoryName`, `collectionName`, `bundleProductSku`,
`bundleProductName`, and more.
properties:
op:
type: string
description: The type of search operation.
example: CONTAINS
enum:
- CONTAINS
value:
$ref: '#/components/schemas/stringSchema'
integerSearchOperation:
type: object
description: The search criteria based on integer values.
properties:
op:
type: string
description: The type of search operation.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/integerSchema'
booleanSchema:
type: boolean
nullable: true
description: Represents a boolean schema.
example: true
stringSchema:
type: string
nullable: true
description: Represents a string schema.
example: blue
integerSchema:
type: integer
nullable: true
format: int32
description: Represents an integer schema.
example: 1
doubleSchema:
type: number
nullable: true
format: double
description: Represents a double schema.
example: 1
arrayOfStringsSchema:
type: array
description: Represents an array of string schema.
items:
type: string
nullable: true
description: Represents a string schema.
attributeName:
type: string
description: The name of the attribute.
example: isOnSale
attributeValue:
anyOf:
- $ref: '#/components/schemas/booleanSchema'
- $ref: '#/components/schemas/stringSchema'
- $ref: '#/components/schemas/integerSchema'
- $ref: '#/components/schemas/doubleSchema'
- $ref: '#/components/schemas/arrayOfStringsSchema'
example: false
description: The attribute value.
attributeId:
type: string
description: A 24-character system-generated attribute ID.
example: 6480216349256438cb7d53b5
attribute:
type: object
additionalProperties: false
description: The details of the attribute.
properties:
name:
$ref: '#/components/schemas/attributeName'
value:
$ref: '#/components/schemas/attributeValue'
id:
$ref: '#/components/schemas/attributeId'
type:
$ref: '#/components/schemas/attributeType'
commonProductSchema:
type: object
description: A common schema for product, variants, and bundles.
properties:
productName:
type: string
description: The name of the product.
example: Nike Men's Training Shoe
images:
type: array
description: The list of product images.
items:
type: string
example:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
type: array
description: The name of the attribute and its value.
items:
$ref: '#/components/schemas/attribute'
createdAt:
type: string
description: The time of product creation, in UTC format.
format: date-time
example: 2021-12-13T13:56:09.006Z
updatedAt:
type: string
description: The time of last update to product, in UTC format.
format: date-time
example: 2021-12-13T13:56:09.006Z
commonProductSchemaWithIdentifiers:
allOf:
- $ref: '#/components/schemas/commonProductSchema'
type: object
description: >-
A common schema for product, variants, and bundles along with their
identifiers.
properties:
sku:
$ref: '#/components/schemas/sku'
id:
$ref: '#/components/schemas/id'
itemId:
type: integer
format: int32
example: 1682313863
description: A unique identifier of an item, a variant or a bundle.
category:
type: object
additionalProperties: false
description: The details of a category.
properties:
id:
type: string
description: A 24-character system-generated category ID.
example: 648055dff4aa98d6c43e02da
name:
type: string
description: The name of the category.
example: Shoes
isRoot:
type: boolean
description: >-
A flag indicating whether the given category is a root category. Set
it to `true` if it's a root category and `false` if it isn't a root
category.
example: true
attributes:
type: array
description: The details of an attribute.
items:
$ref: '#/components/schemas/attribute'
bundleProductSchema:
description: The details of the bundle.
type: object
properties:
quantity:
type: integer
format: int32
description: The quantity of the bundle.
example: 2
type:
$ref: '#/components/schemas/productType'
allOf:
- $ref: '#/components/schemas/commonProductSchemaWithIdentifiers'
extendedCommonProductSchema:
description: Additional details of a product.
allOf:
- $ref: '#/components/schemas/commonProductSchemaWithIdentifiers'
type: object
properties:
categoryName:
type: string
description: The name of the category.
example: Shoes
categoryId:
type: string
description: A 24-character system-generated category ID.
example: 648055dff4aa98d6c43e02da
categories:
type: array
description: >-
The list of categories, including their paths from the leaf category
to the root category.
items:
$ref: '#/components/schemas/category'
collections:
type: array
description: >-
The details of the collection used to display products on the
storefront.
items:
type: object
additionalProperties: false
description: The collection details.
properties:
id:
type: string
description: A 24-character system-generated collection ID.
example: 648014741adc8a9de14e1a68
name:
type: string
description: The name of the collection.
example: Flash Sale
hierarchy:
type: array
description: >-
The list of collections, including their paths from the leaf
collection to the root collection.
items:
$ref: '#/components/schemas/category'
itemCatalog:
description: The details of an item.
allOf:
- $ref: '#/components/schemas/extendedCommonProductSchema'
type: object
properties:
type:
$ref: '#/components/schemas/itemProductType'
variants:
type: array
description: The details of item variants.
items:
$ref: '#/components/schemas/commonProductSchemaWithIdentifiers'
variantCatalog:
description: The details of an item variant.
allOf:
- $ref: '#/components/schemas/extendedCommonProductSchema'
type: object
properties:
type:
$ref: '#/components/schemas/variantProductType'
parentSku:
$ref: '#/components/schemas/sku'
parentId:
type: string
description: A 24-character system-generated ID of the parent item.
example: 648014741adc8a9de14e1a68
bundleCatalog:
description: The details of a bundle.
allOf:
- $ref: '#/components/schemas/extendedCommonProductSchema'
type: object
properties:
type:
$ref: '#/components/schemas/bundleProductType'
bundleProducts:
type: array
description: The details of a bundle.
items:
$ref: '#/components/schemas/bundleProductSchema'
product:
description: The details of a product based on the product type.
anyOf:
- $ref: '#/components/schemas/itemCatalog'
- $ref: '#/components/schemas/variantCatalog'
- $ref: '#/components/schemas/bundleCatalog'
productType:
type: string
description: The type of product.
enum:
- BUNDLE
- VARIANT
- ITEM
example: ITEM
bundleProductType:
type: string
description: Represents the `bundle` product type.
enum:
- BUNDLE
example: BUNDLE
variantProductType:
type: string
description: Represents the `variant` product type.
enum:
- VARIANT
example: VARIANT
itemProductType:
type: string
description: Represents the `item` product type.
enum:
- ITEM
example: ITEM
attributeType:
type: string
description: The type of attribute.
enum:
- NUMBER
- BOOLEAN
- TEXT
- LOV
example: TEXT
sku:
type: string
description: Product SKU
example: 24ggs67-e89b-12e3-a456-026614174119
id:
type: string
example: 5f7329dfd5288b0011332366
description: A 24-character system-generated ID.
getProductsBySearchResponse:
description: Product Search Result list by IDs
allOf:
- $ref: '#/components/schemas/paginatedResultMeta'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/product'
paginatedResultMeta:
description: The pagination data.
type: object
properties:
offset:
type: integer
format: int32
default: 0
example: 5
description: >-
The number of records to skip before returning records.
For example, with offset of 20 and limit of 10, the system returns
the records from 21-30.
limit:
type: integer
format: int32
default: 10
example: 10
description: The maximum number of records per page.
count:
type: integer
format: int32
example: 100
description: The total number of records.
datetimeInOperation:
type: object
description: The search criteria based on date-time using the IN condition.
properties:
op:
type: string
description: The type of search operation.
example: IN
enum:
- IN
value:
type: array
items:
type: string
example:
- 2023-01-14T22:10:30.618Z
- 2023-05-14T22:10:30.618Z
description: The timestamp to search.
datetimeOperation:
type: object
description: The search criteria based on date-time.
properties:
op:
type: string
description: The type of search operation.
example: GTE
enum:
- EQUALS
- LTE
- GTE
- LT
- GT
value:
type: string
description: The timestamp to be searched, in UTC format.
example: '2021-09-14T22:10:30.618Z'
datetimeRangeOperation:
type: object
description: The search criteria based on date range.
properties:
op:
type: string
description: The type of search operation.
example: RANGE
enum:
- RANGE
fromValue:
type: string
description: The start date for searching, in UTC format.
example: '2022-09-14T22:10:30.618Z'
toValue:
type: string
description: The end date for searching, in UTC format.
example: '2023-04-14T22:10:30.618Z'
insertItemCatalogRequestSchema:
allOf:
- $ref: '#/components/schemas/putItemCatalogRequestSchema'
type: object
required:
- sku
description: A sample request to create a product of the type item.
properties:
sku:
$ref: '#/components/schemas/sku'
insertVariantCatalogRequestSchema:
allOf:
- $ref: '#/components/schemas/putVariantCatalogRequestSchema'
type: object
required:
- sku
description: A sample request to create a product of the type variant.
properties:
sku:
$ref: '#/components/schemas/sku'
insertBundleCatalogRequestSchema:
allOf:
- $ref: '#/components/schemas/putBundleCatalogRequestSchema'
type: object
required:
- sku
description: A sample request to create a product of the type bundle.
properties:
sku:
$ref: '#/components/schemas/sku'
insertCatalogRequestSchema:
description: A sample request to create a new product.
anyOf:
- $ref: '#/components/schemas/insertItemCatalogRequestSchema'
- $ref: '#/components/schemas/insertVariantCatalogRequestSchema'
- $ref: '#/components/schemas/insertBundleCatalogRequestSchema'
putCommonCatalogRequestSchema:
allOf:
- $ref: '#/components/schemas/commonProductSchema'
type: object
additionalProperties: false
description: A sample request to update a product with common properties.
properties:
categoryName:
type: string
description: >-
The name of the category. This value is overridden if the categories
are populated.
example: Sport Shoes
categoryId:
type: string
description: A 24-character system-generated ID of the category.
example: 648014741adc8a9de14e1a68
categories:
type: array
description: >-
The category details, including their paths from the leaf category
to the root category.
items:
$ref: '#/components/schemas/category'
example:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
type: array
description: The details of the collection.
items:
type: object
additionalProperties: false
required:
- name
properties:
name:
type: string
description: The name of the collection.
example: Flash Sale
id:
type: string
description: A 24-character system-generated collection ID.
example: 648055dff4aa98d6c43e02da
hierarchy:
type: array
description: >-
The collections path from the leaf collection to the root
collection.
items:
$ref: '#/components/schemas/category'
example:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
putItemCatalogRequestSchema:
allOf:
- $ref: '#/components/schemas/putCommonCatalogRequestSchema'
type: object
additionalProperties: false
description: A sample request to update an item.
properties:
type:
$ref: '#/components/schemas/itemProductType'
variants:
type: array
description: The details of the item variants.
items:
$ref: '#/components/schemas/commonProductSchemaWithIdentifiers'
putVariantCatalogRequestSchema:
allOf:
- $ref: '#/components/schemas/putCommonCatalogRequestSchema'
type: object
additionalProperties: false
description: A sample request to update a variant.
properties:
type:
$ref: '#/components/schemas/variantProductType'
parentSku:
$ref: '#/components/schemas/sku'
putBundleCatalogRequestSchema:
allOf:
- $ref: '#/components/schemas/putCommonCatalogRequestSchema'
type: object
additionalProperties: false
description: A sample request to update a bundle.
properties:
type:
$ref: '#/components/schemas/bundleProductType'
bundleProducts:
type: array
description: The details of a bundle.
items:
$ref: '#/components/schemas/bundleProductSchema'
putCatalogRequestSchema:
description: A sample request to update a product.
anyOf:
- $ref: '#/components/schemas/putItemCatalogRequestSchema'
- $ref: '#/components/schemas/putVariantCatalogRequestSchema'
- $ref: '#/components/schemas/putBundleCatalogRequestSchema'
bulkGetProductsResponse:
description: Product list
allOf:
- $ref: '#/components/schemas/paginatedResultMeta'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/product'
bulkDeleteProductsResponse:
description: A sample response of the `Delete products` request.
allOf:
- $ref: '#/components/schemas/bulkOperationsResponse'
example:
success:
sku: NIKE237765
errors:
- sku: NIKE237766
message:
- SKU is assigned to BUNDLE237765
bulkUpsertProductsResponse:
description: A sample response of the `Add products` request.
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/bulkOperationsResponse'
example:
success:
sku: NIKE237765
errors:
- sku: PUMA237765
message:
- Duplicate SKU
bulkOperationsResponse:
description: A sample response of the bulk operation request.
type: object
properties:
success:
type: array
items:
type: object
properties:
sku:
$ref: '#/components/schemas/sku'
errors:
type: array
items:
type: object
properties:
sku:
$ref: '#/components/schemas/sku'
message:
type: array
items:
description: The details of the error.
type: string
example: Duplicate SKU.
genericError:
type: object
description: The details of the error.
properties:
message:
type: string
description: A placeholder error message for all the 4xx, 5xx errors
example: Request is invalid
type:
type: string
description: A placeholder error type for all the 4xx, 5xx errors
example: Bad request
errors:
type: array
items:
type: object
properties:
type:
type: string
description: The error type.
example: CLIENT_ERROR
message:
type: string
description: The error message corresponding to the `type`.
example: Invalid request. Unable to find/create product
simpleMultiIdSearchOperation:
type: object
description: A simple multi-string search operation.
required:
- op
- value
properties:
op:
type: string
description: Operations that can be performed on a `string` type.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/id'
singleStringSearchOperation:
type: object
description: Single string search.
required:
- op
- value
properties:
op:
type: string
description: Search operations that can be performed on a `string` type.
example: EQUALS
enum:
- EQUALS
- CONTAINS
value:
$ref: '#/components/schemas/stringSchema'
containsStringSearchOperation:
type: object
description: An operation used to define string search.
required:
- op
- value
properties:
op:
type: string
description: Search operation that can be performed on a `string` type.
example: CONTAINS
enum:
- CONTAINS
value:
$ref: '#/components/schemas/stringSchema'
stringSearchWithNullableOperation:
type: object
description: String search
anyOf:
- $ref: '#/components/schemas/simpleMultiStringWithNullableSearchOperation'
- $ref: '#/components/schemas/containsStringSearchOperation'
simpleMultiStringWithNullableSearchOperation:
type: object
description: Simple multi-string search.
required:
- op
- value
properties:
op:
type: string
description: Operations that can be performed on a `string` type.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/stringSchema'
simpleMultiStringSearchOperation:
type: object
description: Simple multi-string search.
required:
- op
- value
properties:
op:
type: string
description: Operations that can be performed on a `string` type.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/stringSchema'
multiJobType:
type: object
description: |-
Search jobs using multiple job types.
For example, `ITEM_VARIANT_IMPORT, BUNDLE_EXPORT`.
required:
- op
- value
properties:
op:
type: string
description: Operations that can be performed on a `string` type.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/productFileJobTypes'
multiJobStatuses:
type: object
required:
- op
- value
description: |-
Search jobs using multiple job types.
For example, `COMPLETED' or 'SCHEDULED`.
properties:
op:
type: string
description: Operations that can be performed on a `string` type.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/jobStatuses'
datetimeSearchOperation:
type: object
description: Date-time search
anyOf:
- $ref: '#/components/schemas/datetimeRangeOperation'
- $ref: '#/components/schemas/datetimeInOperation'
- $ref: '#/components/schemas/datetimeOperation'
jobSearchRequestMatch:
minProperties: 1
additionalProperties: false
description: Search criteria to match jobs.
type: object
properties:
id:
description: job id search
$ref: '#/components/schemas/simpleMultiIdSearchOperation'
inputFileId:
description: Search based on input file ID
$ref: '#/components/schemas/simpleMultiIdSearchOperation'
name:
description: Search based on job name
$ref: '#/components/schemas/stringSearchWithNullableOperation'
keyword:
description: Search based on either job name or job ID
anyOf:
- $ref: '#/components/schemas/containsStringSearchOperation'
- $ref: '#/components/schemas/simpleMultiStringSearchOperation'
type:
description: Search based on job type
$ref: '#/components/schemas/multiJobType'
status:
description: Search based on job status
$ref: '#/components/schemas/multiJobStatuses'
createdAt:
description: Search based on job creation time
$ref: '#/components/schemas/datetimeSearchOperation'
completedAt:
description: Search based on job completion Time
$ref: '#/components/schemas/datetimeSearchOperation'
security:
- authorization: []