Skip to content

Organization

There are two ways to organize products - Categories and Collections.

Category

Category is way to organize products in a hierarchical tree structure. Here is an example categorical organization for a fashion store. Note that a product can only belong to single category.

stateDiagram-v2
    A: Product
    B: Product
    C: Product
    D: Product
    E: Product
    F: Product
    G: Product
    H: Product
    I: Product
    Men --> Topwear
    Men --> Bottomwear
    Topwear --> TShirts
    Topwear --> Casuals
    Topwear --> Formals
    TShirts --> A      
    TShirts --> B
    Casuals --> C      
    Casuals --> D
    Formals --> E     
    Formals --> F
    Bottomwear --> G
    Bottomwear --> H
    Bottomwear --> I
stateDiagram-v2
    A: Product
    B: Product
    C: Product
    D: Product
    E: Product
    F: Product
    Women --> Western
    Women --> Fusion
    Women --> Beauty
    Western --> A
    Fusion --> B
    Beauty --> C
    Western --> D
    Fusion --> E
    Beauty --> F    

Category Object

Below is the json representation of the category object, followed by a data table

{
  "created_at": "2023-04-05T03:58:13.793Z",
  "id": "98604997-6031-4822-956e-d2591c4dae6d",
  "name": "trending category",
  "products_count": 2,
  "sub_categories_count": 1,
  "updated_at": "2023-04-05T03:58:13.846Z",
  "visible_on_store_front": true,
  "used_for_components: false
}

Fields

Field Data Type Description
id string UUID of the category.
name string Name of the category.
products_count integer Number of products in this category.
sub_categories_count integer Number of sub categories in this category.
visible_on_store_front boolean Whether this category should be shown in storefront.
used_for_components boolean Whether this category should be used as components for a custom products.

API

List Categories

GET /api/platform/v1/categories

The result set is paginated and can be controlled by various query parameters

Query Params
Field Data Type Description
page integer Page number of the result set. Values start from 1.
per_page integer How many items should be present in a given page.
curl command
curl 'http://localhost:3000/api/platform/v1/categories' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer in9euodknhaOS7dHHHohvFGGbgfK7_LjD_o9PLKl5AI'  
Response Body

This api responds with array of category objects.

  {
    "status": "success",
    "data": [
      {
        "id": "acdab54b-6dd3-4200-993d-5399267a3ec9",
        "name": "Men",
        "sub_categories_count": 2,
        "products_count": 1,
        "visible_on_store_front": true,
        "used_for_components": false,
        "metadata": null,
        "extradata": null,
        "created_at": "2023-04-17T09:30:53.057Z",
        "updated_at": "2023-04-17T09:33:00.179Z",
        "account_id": "a9f7ef20-dc03-494a-9db2-cbc43ff2f564"
      },
      {
        "id": "725cad6c-0bf9-44ee-89d9-5594e6e69fc5",
        "name": "Topwear",
        "sub_categories_count": 3,
        "products_count": 1,
        "visible_on_store_front": true,
        "used_for_components": false,
        "metadata": null,
        "extradata": null,
        "created_at": "2023-04-17T09:31:13.448Z",
        "updated_at": "2023-04-17T09:33:00.184Z",
        "account_id": "a9f7ef20-dc03-494a-9db2-cbc43ff2f564"
      }
    ],
    "pagination": {
      "total_count": 6,
      "current_page": 1,
      "total_pages": 1,
      "window": 4,
      "breakdown": [
        { "kind": "inner", "url": "/api/platform/v1/categories", "page": 1 }
      ]
    }
  }

Search Categories

POST /api/platform/v1/categories/search

Perform search on categories object across entire trees. Search is primarily based on name of the category.

Request Body
{
    "query": "wear"
}
curl command
curl 'http://localhost:3000/api/platform/v1/categories/search' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer in9euodknhaOS7dHHHohvFGGbgfK7_LjD_o9PLKl5AI' \
    -H 'Content-Type: application/json' \
    --data-raw '{"query":"als"}'
Response Body

This api responds with array of category objects.

{
  "status": "success",
  "data": [
    {
      "used_for_components": false,
      "updated_at": "2023-04-17T09:33:00.158Z",
      "materialized_path": "Men/Topwear/Formals",
      "visible_on_store_front": true,
      "name": "Formals",
      "products_count": 1,
      "created_at": "2023-04-17T09:32:36.387Z",
      "id": "16f1301d-6852-4cfc-a2e5-9f17f466dd58",
      "sub_categories_count": 0
    },
    {
      "used_for_components": false,
      "updated_at": "2023-04-17T09:32:29.626Z",
      "materialized_path": "Men/Topwear/Casuals",
      "visible_on_store_front": false,
      "name": "Casuals",
      "products_count": 0,
      "created_at": "2023-04-17T09:32:15.038Z",
      "id": "62ea3099-e5a4-473b-98c4-5f010e43b5cc",
      "sub_categories_count": 0
    }
  ],
  "pagination": {
    "total_count": 2,
    "current_page": 1,
    "total_pages": 1,
    "window": 4,
    "breakdown": [
      {
        "kind": "inner",
        "url": "/api/platform/v1/categories/search?query=als",
        "page": 1
      }
    ]
  }
}

Create Category

POST /api/platform/v1/categories

Request Body
Field Data Type Description Required
name string Name of the category.
visible_on_store_front boolean Whether this category should be shown in storefront.
category_id string UUID of the category. If category needs to be created as subcategory, this is required. If none specified, category will be created at root level.
{
    "name": "Summer T Shirt"
}
curl command
  curl 'http://localhost:3000/api/platform/v1/categories' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer in9euodknhaOS7dHHHohvFGGbgfK7_LjD_o9PLKl5AI' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"Temp","visible_on_store_front":false,"used_for_components":false,"category_id":"16f1301d-6852-4cfc-a2e5-9f17f466dd58"}'
Response Body

response data object is category object

  {
    "status": "success",
    "data": {
      "id": "38a7999b-85f2-426b-b604-672c51885fe1",
      "name": "Temp",
      "sub_categories_count": 0,
      "products_count": 0,
      "visible_on_store_front": false,
      "used_for_components": false,
      "metadata": null,
      "extradata": null,
      "created_at": "2023-04-17T10:22:56.956Z",
      "updated_at": "2023-04-17T10:22:56.956Z",
      "account_id": "a9f7ef20-dc03-494a-9db2-cbc43ff2f564"
    }
  }

{
  "status": "failure",
  "data": [{ "attribute_name": "name", "messages": ["Name can't be blank"] }],
  "message": null,
  "errors": null
}

Get Category

GET /api/platform/v1/categories/{id}

curl command
  curl 'http://localhost:3000/api/platform/v1/categories/725cad6c-0bf9-44ee-89d9-5594e6e69fc5' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer 3JDmlQjC7h1tT1LXHCpHg8eTexl4IRvvcX-W0ULktl4' \
  -H 'Content-Type: application/json'
Response Body

This api responds with data as category object.

{
  "status": "success",
  "data": {
    "id": "725cad6c-0bf9-44ee-89d9-5594e6e69fc5",
    "name": "Topwear",
    "sub_categories_count": 3,
    "products_count": 1,
    "visible_on_store_front": true,
    "used_for_components": false,
    "created_at": "2023-04-17T09:31:13.448Z",
    "updated_at": "2023-04-17T09:33:00.184Z"
  }
}

Update Category

PATCH /api/platform/v1/categories/{id} name, visible_on_store_front and used_for_components fields can be updated.

Request Body
  {
    "name": "Men",
    "visible_on_store_front": true,
    "used_for_components": true
  }
curl command
curl 'http://localhost:3000/api/platform/v1/categories/acdab54b-6dd3-4200-993d-5399267a3ec9' \
  -X 'PATCH' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer _DB2IKB-TRiQrL8Fh9d-TxvkZF_xxvR4OeiOLv6hai4' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"Men","visible_on_store_front":true,"used_for_components":true}'
Response Body

response data object is category object

  {
    "status": "success",
    "data": {
      "id": "acdab54b-6dd3-4200-993d-5399267a3ec9",
      "name": "Men",
      "sub_categories_count": 0,
      "products_count": 0,
      "visible_on_store_front": false,
      "used_for_components": false,
      "metadata": null,
      "extradata": null,
      "created_at": "2023-04-17T10:22:56.956Z",
      "updated_at": "2023-04-17T10:22:56.956Z",
      "account_id": "a9f7ef20-dc03-494a-9db2-cbc43ff2f564"
    }
  }

{
  "status": "failure",
  "data": [{ "attribute_name": "name", "messages": ["Name can't be blank"] }],
  "message": null,
  "errors": null
}

Delete Category

DELETE /api/platform/v1/categories/{id} Only categories without any sub categories or products can be deleted.

curl command
curl 'http://localhost:3000/api/platform/v1/categories/725cad6c-0bf9-44ee-89d9-5594e6e69fc5' \
  -X 'DELETE' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer VmpqQlsHrnR2tnvMCtsY95BeImAcIwtZOpaDdrH8EGQ'
Response Body

data is Category object that is deleted.

{
  "status": "success",
  "data": {
    "id": "abb3793f-8dcf-41dd-9ce8-3e5f25bea867",
    "name": "Temp",
    "sub_categories_count": 0,
    "products_count": 0,
    "visible_on_store_front": false,
    "used_for_components": false,
    "metadata": null,
    "extradata": null,
    "created_at": "2023-04-17T11:15:59.287Z",
    "updated_at": "2023-04-17T11:15:59.287Z",
    "account_id": "a9f7ef20-dc03-494a-9db2-cbc43ff2f564"
  }
}

{
  "status": "failure",
  "data": [{ "attribute_name": "id", "messages": ["Not Found"] }],
  "message": null,
  "errors": null
}
{
  "status": "failure",
  "data": [
    {
      "attribute_name": "category",
      "messages": ["Category Can not delete category with data"]
    }
  ],
  "message": null,
  "errors": null
}

Category Roots

GET /api/platform/v1/categories/roots

Provides categories at the root level.

curl command
  curl 'http://localhost:3000/api/platform/v1/categories/roots' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer VmpqQlsHrnR2tnvMCtsY95BeImAcIwtZOpaDdrH8EGQ'
Response Body

Same as list api response

Category Products

GET /api/platform/v1/categories/{id}/products

Provides categories at the root level.

curl command
  curl 'http://localhost:3000/api/platform/v1/categories/16f1301d-6852-4cfc-a2e5-9f17f466dd58/products' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer VmpqQlsHrnR2tnvMCtsY95BeImAcIwtZOpaDdrH8EGQ' \
    -H 'Content-Type: application/json'
Response Body

Same as product list api response

Sub Categories

GET /api/platform/v1/categories/{id}/sub_categories Provides categories with in a category.

curl command
  curl 'http://localhost:3000/api/platform/v1/categories/16f1301d-6852-4cfc-a2e5-9f17f466dd58/sub_categories' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer VmpqQlsHrnR2tnvMCtsY95BeImAcIwtZOpaDdrH8EGQ' \
    -H 'Content-Type: application/json'
Response Body

Same as list api response

Move SubCategories

POST /api/platform/v1/categories/move_categories

Provides a way to move an array of categories from a source to a destination category.

Request Body
Field Data Type Description Required
categories string array UUID of the categories that should be moved.
target_category_id string UUID of the target category to which categories will be moved to.
{
  "categories": ["16f1301d-6852-4cfc-a2e5-9f17f466dd58"],
  "target_category_id": "d6e162e6-695b-4de8-b6e0-3bcc1e83cb9c"
}
curl command
curl 'http://localhost:3000/api/platform/v1/categories/move_categories' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer VmpqQlsHrnR2tnvMCtsY95BeImAcIwtZOpaDdrH8EGQ' \
  -H 'Content-Type: application/json' \
  --data-raw '{"categories":["16f1301d-6852-4cfc-a2e5-9f17f466dd58"],"target_category_id":"d6e162e6-695b-4de8-b6e0-3bcc1e83cb9c"}'
Response Body

If operation is successful data object will be returned as null.

{"status":"success","data":null}
{
  "status": "failure",
  "data": [
    { "attribute_name": "categories", "messages": ["Categories Not Found"] }
  ],
  "message": null,
  "errors": null
}

Move Products

POST /api/platform/v1/categories/move_products

Provides a way to move an array of products from a source to a destination category.

Request Body
Field Data Type Description Required
product_ids string array UUID of the products that should be moved.
target_category_id string UUID of the target category to which categories will be moved to.
{
  "categories": ["16f1301d-6852-4cfc-a2e5-9f17f466dd58"],
  "target_category_id": "d6e162e6-695b-4de8-b6e0-3bcc1e83cb9c"
}
curl command
curl 'http://localhost:3000/api/platform/v1/categories/move_products' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer VmpqQlsHrnR2tnvMCtsY95BeImAcIwtZOpaDdrH8EGQ' \
  -H 'Content-Type: application/json' \
  --data-raw '{"product_ids":["95457d12-a175-407e-9522-e7004f71b6df"],"target_category_id":"725cad6c-0bf9-44ee-89d9-5594e6e69fc5"}'
Response Body

If operation is successful data object will be returned as null.

{"status":"success","data":null}
{
  "status": "failure",
  "data": [
    {
      "attribute_name": "target_category_id",
      "messages": ["Target category Not Found"]
    }
  ],
  "message": null,
  "errors": null
}

Reorder Products

POST /api/platform/v1/categories/reorder_products

Provides a way to arrange positioning of products within a category.

Request Body
Field Data Type Description Required
category_id string UUID of the cateogory within which product positions need to be arranged.
items object array array of item objects, each with product id and position value.
  {
    "category_id": "725cad6c-0bf9-44ee-89d9-5594e6e69fc5",
    "items": [
      { "id": "6f50c995-930e-46a3-8e6e-f8617a239eba", "position": 0 },
      { "id": "95457d12-a175-407e-9522-e7004f71b6df", "position": 1 }
    ]
  }
curl command
curl 'http://localhost:3000/api/platform/v1/categories/reorder_products' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer VmpqQlsHrnR2tnvMCtsY95BeImAcIwtZOpaDdrH8EGQ' \
  -H 'Content-Type: application/json' \
  --data-raw '{"category_id":"725cad6c-0bf9-44ee-89d9-5594e6e69fc","items":[{"id":"6f50c995-930e-46a3-8e6e-f8617a239eba","position":0},{"id":"95457d12-a175-407e-9522-e7004f71b6df","position":1}]}'
Response Body

If operation is successful data object will be returned as null.

{"status":"success","data":null}
{"status":"failure","data":[{"attribute_name":"id","messages":["Not Found"]}],"message":null,"errors":null}

Reorder Categories

POST /api/platform/v1/categories/reorder_categories

Provides a way to arrange positioning of sub categories within a category. The behaviour of this api is same as reorder products except that item.id should be category id.

Request Body
Field Data Type Description Required
category_id string UUID of the cateogory within which product positions need to be arranged.
items object array array of item objects, each with category id and position value.
  {
    "category_id": "725cad6c-0bf9-44ee-89d9-5594e6e69fc5",
    "items": [
      { "id": "6f50c995-930e-46a3-8e6e-f8617a239eba", "position": 0 },
      { "id": "95457d12-a175-407e-9522-e7004f71b6df", "position": 1 }
    ]
  }
curl command
curl 'http://localhost:3000/api/platform/v1/categories/reorder_categories' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer VmpqQlsHrnR2tnvMCtsY95BeImAcIwtZOpaDdrH8EGQ' \
  -H 'Content-Type: application/json' \
  --data-raw '{"category_id":"725cad6c-0bf9-44ee-89d9-5594e6e69fc","items":[{"id":"6f50c995-930e-46a3-8e6e-f8617a239eba","position":0},{"id":"95457d12-a175-407e-9522-e7004f71b6df","position":1}]}'
Response Body

If operation is successful data object will be returned as null.

{"status":"success","data":null}
{"status":"failure","data":[{"attribute_name":"id","messages":["Not Found"]}],"message":null,"errors":null}

Collection

Collection is way to group related products, e.g. for a fashion store, collection could be named "Winter Clothing" and all relevant prducts for winter to be listed there

stateDiagram-v2
    A: Product
    B: Product
    C: Product
    D: Product
    E: Product
    F: Product
    G: Product    

    Winter --> A
    Winter --> B
    Winter --> C

    Beach --> D
    Beach --> E
    Beach --> F
    Beach --> G

Collection Object

Below is the json representation of the collection object, followed by a data table

{
  "id": "fa2c1344-e514-4692-87c6-141755cc0fc2",
  "name": "Winter",
  "products_count": 0,
  "created_at": "2023-04-18T11:16:16.709Z",
  "updated_at": "2023-04-18T11:16:16.709Z",
  "position": 0
}

Fields

Field Data Type Description
id string UUID of the collection.
name string Name of the collection.
products_count integer Number of products in the collection.
position integer Position of the product in the collection.

API

List Collections

GET /api/platform/v1/collections

The result set contains all collections and there wont be any pagination.

curl command
curl 'http://localhost:3000/api/platform/v1/collections' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer KfP1Dd4kj7mS31TNAPvUEmXdHvLJyfAs0zARCbhWV_M' \
    -H 'Content-Type: application/json'
Response Body

This api responds with array of collection objects.

  {
    "status": "success",
    "data": [
      {
        "id": "fa2c1344-e514-4692-87c6-141755cc0fc2",
        "name": "Winter",
        "products_count": 0,
        "created_at": "2023-04-18T11:16:16.709Z",
        "updated_at": "2023-04-18T11:16:16.709Z",
        "position": 0
      },
      {
        "id": "108df094-147c-49e6-b889-e75505733432",
        "name": "Beach",
        "products_count": 0,
        "created_at": "2023-04-18T11:16:21.662Z",
        "updated_at": "2023-04-18T11:16:21.662Z",
        "position": 1
      }
    ]
  }

Search Collections

POST /api/platform/v1/collections/search

Search is primarily based on name of the collection.

Request Body
{
    "query": "win"
}
curl command
curl 'http://localhost:3000/api/platform/v1/collections/search' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer KfP1Dd4kj7mS31TNAPvUEmXdHvLJyfAs0zARCbhWV_M' \
    -H 'Content-Type: application/json' \
    --data-raw '{"query":"win"}'
Response Body

This api responds with array of collection objects.

{
  "status": "success",
  "data": [
    {
      "updated_at": "2023-04-18T11:16:16.709Z",
      "name": "Winter",
      "products_count": 0,
      "created_at": "2023-04-18T11:16:16.709Z",
      "id": "fa2c1344-e514-4692-87c6-141755cc0fc2"
    }
  ],
  "pagination": {
    "total_count": 1,
    "current_page": 1,
    "total_pages": 1,
    "window": 4,
    "breakdown": [
      {
        "kind": "inner",
        "url": "/api/platform/v1/collections/search?query=win",
        "page": 1
      }
    ]
  }
}

Create Collection

POST /api/platform/v1/collections

Request Body

Only name is required for creating a collection.

{
  "name": "Summer"
}

curl command
curl 'http://localhost:3000/api/platform/v1/collections' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer KfP1Dd4kj7mS31TNAPvUEmXdHvLJyfAs0zARCbhWV_M' \
    -H 'Content-Type: application/json' \
    --data-raw '{"name":"Summer"}'
Response Body

Response data object is collection object

  {
    "status": "success",
    "data": {
      "id": "dfa8f16b-d27a-4c4e-96f9-d22d00e6515f",
      "name": "Summer",
      "products_count": 0,
      "created_at": "2023-04-18T12:54:35.386Z",
      "updated_at": "2023-04-18T12:54:35.386Z",
      "position": 2
    }
  }

{
  "status": "failure",
  "data": [{ "attribute_name": "name", "messages": ["Name can't be blank"] }],
  "message": null,
  "errors": null
}

Get Collection

GET /api/platform/v1/collections/{id}

curl command
curl 'http://localhost:3000/api/platform/v1/collections/fa2c1344-e514-4692-87c6-141755cc0fc2' \
-H 'Accept: application/json, text/plain, */*' \
-H 'Authorization: Bearer KfP1Dd4kj7mS31TNAPvUEmXdHvLJyfAs0zARCbhWV_M' \
-H 'Content-Type: application/json'
Response Body

Response data object is collection object

  {
    "status": "success",
    "data": {
      "id": "fa2c1344-e514-4692-87c6-141755cc0fc2",
      "name": "Winter",
      "products_count": 0,
      "created_at": "2023-04-18T11:16:16.709Z",
      "updated_at": "2023-04-18T11:16:16.709Z",
      "position": 0
    }
  }

{
  "status": "failure",
  "data": [{ "attribute_name": "id", "messages": ["Not Found"] }],
  "message": null,
  "errors": null
}

Update Collection

PATCH /api/platform/v1/collections/{id}

Request Body

Only name of the collection can be updated

{
  "name": "Summer"
}

curl command
curl 'http://localhost:3000/api/platform/v1/collections/dfa8f16b-d27a-4c4e-96f9-d22d00e6515f' \
  -X 'PATCH' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer KfP1Dd4kj7mS31TNAPvUEmXdHvLJyfAs0zARCbhWV_M' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"Summer"}'
Response Body

Response data object is collection object

  {
    "status": "success",
    "data": {
      "id": "dfa8f16b-d27a-4c4e-96f9-d22d00e6515f",
      "name": "Summer",
      "products_count": 0,
      "created_at": "2023-04-18T12:54:35.386Z",
      "updated_at": "2023-04-18T12:54:35.386Z",
      "position": 2
    }
  }

{
  "status": "failure",
  "data": [{ "attribute_name": "name", "messages": ["Name can't be blank"] }],
  "message": null,
  "errors": null
}

Delete Collection

DELETE /api/platform/v1/collections/{id}

curl command
curl -i 'http://localhost:3000/api/platform/v1/collections/dfa8f16b-d27a-4c4e-96f9-d22d00e6515f' \
  -X 'DELETE' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer KfP1Dd4kj7mS31TNAPvUEmXdHvLJyfAs0zARCbhWV_M' \
  -H 'Content-Type: application/json' \
  --data-raw '{}'
Response Body

Response data object is collection object

  {
    "status": "success",
    "data": {
      "id": "dfa8f16b-d27a-4c4e-96f9-d22d00e6515f",
      "name": "Summer",
      "products_count": 0,
      "created_at": "2023-04-18T12:54:35.386Z",
      "updated_at": "2023-04-18T12:54:35.386Z",
      "position": 2
    }
  }

{
  "status": "failure",
  "data": [{ "attribute_name": "id", "messages": ["Not Found"] }],
  "message": null,
  "errors": null
}

Collection Products

GET /api/platform/v1/collections/{id}/products

Provides categories at the root level.

curl command
  curl 'http://localhost:3000/api/platform/v1/collections/fa2c1344-e514-4692-87c6-141755cc0fc2/products' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer CnHehzdH0YC3YZJiAqPQJ4wLU5AiWAfnWq4KWPY-49o' \
    -H 'Content-Type: application/json'
Response Body

Same as product list api response

Reorder Collections

POST /api/platform/v1/collections/reorder

Provides a way to arrange positioning of collections.

Request Body
Field Data Type Description Required
items object array array of item objects, each with collection id and position value.
  {
    "items": [
      { "id": "108df094-147c-49e6-b889-e75505733432", "position": 0 },
      { "id": "fa2c1344-e514-4692-87c6-141755cc0fc2", "position": 1 }
    ]
  }
curl command
curl 'http://localhost:3000/api/platform/v1/collections/reorder' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer CnHehzdH0YC3YZJiAqPQJ4wLU5AiWAfnWq4KWPY-49o' \
    -H 'Content-Type: application/json' \
    --data-raw '{"items":[{"id":"108df094-147c-49e6-b889-e75505733432","position":0},{"id":"fa2c1344-e514-4692-87c6-141755cc0fc2","position":1}]}'
Response Body

If operation is successful data object will be returned as {}.

{"status":"success","data":{}}

Reorder Products

POST /api/platform/v1/collections/{id}/reorder_products

Provides a way to arrange positioning of products within a collection.

Request Body
Field Data Type Description Required
items object array array of item objects, each with product id and position value.
  {
    "items": [
      { "id": "6f50c995-930e-46a3-8e6e-f8617a239eba", "position": 0 },
      { "id": "95457d12-a175-407e-9522-e7004f71b6df", "position": 1 }
    ]
  }
curl command
  curl 'http://localhost:3000/api/platform/v1/collections/fa2c1344-e514-4692-87c6-141755cc0fc2/reorder_products' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer CnHehzdH0YC3YZJiAqPQJ4wLU5AiWAfnWq4KWPY-49o' \
  -H 'Content-Type: application/json' \
  --data-raw '{"items":[{"id":"6f50c995-930e-46a3-8e6e-f8617a239eba","position":0},{"id":"95457d12-a175-407e-9522-e7004f71b6df","position":1}]}'
Response Body

If operation is successful data object will be returned as {}.

``` {"status":"success","data":{}}

Add Products

POST /api/platform/v1/collections/{id}/add_products

Add array of products to a collection.

Request Body
Field Data Type Description Required
product_ids string array array of product ids.
  {
    "product_ids": [
      "95457d12-a175-407e-9522-e7004f71b6df",
      "6f50c995-930e-46a3-8e6e-f8617a239eba"
    ]
  }
curl command
  curl 'http://localhost:3000/api/platform/v1/collections/fa2c1344-e514-4692-87c6-141755cc0fc2/add_products' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer CnHehzdH0YC3YZJiAqPQJ4wLU5AiWAfnWq4KWPY-49o' \
    -H 'Content-Type: application/json' \
    --data-raw '{"product_ids":["95457d12-a175-407e-9522-e7004f71b6df","6f50c995-930e-46a3-8e6e-f8617a239eba"]}'
Response Body

If operation is successful data object will be returned as {}.

{"status":"success","data":{}}
{
   "status": "failure",
   "data": [{ "attribute_name": "product_ids", "messages": ["Not Found"] }],
   "message": null,
   "errors": null
 } 

Remove Products

POST /api/platform/v1/collections/{id}/remove_products

Remove array of products from a collection.

Request Body
Field Data Type Description Required
product_ids string array array of product ids.
  {
    "product_ids": [
      "95457d12-a175-407e-9522-e7004f71b6df",
      "6f50c995-930e-46a3-8e6e-f8617a239eba"
    ]
  }
curl command
  curl 'http://localhost:3000/api/platform/v1/collections/fa2c1344-e514-4692-87c6-141755cc0fc2/remove_products' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer CnHehzdH0YC3YZJiAqPQJ4wLU5AiWAfnWq4KWPY-49o' \
  -H 'Content-Type: application/json' \
  --data-raw '{"product_ids":["6f50c995-930e-46a3-8e6e-f8617a239eba","95457d12-a175-407e-9522-e7004f71b6df"]}'
Response Body

If operation is successful data object will be returned as {}.

{"status":"success","data":{}}
{
   "status": "failure",
   "data": [{ "attribute_name": "product_ids", "messages": ["Not Found"] }],
   "message": null,
   "errors": null
 }