Requires
write_collection
access scope. More access scope
The Create Collect API associates a product with a collection by creating a collect object. For every single product in a collection there's a collect that tracks the ID of both the product and collection. This enables users to organize products into collections for easier management and display.This API is especially useful for:
- Add a product to a specific collection.
- Organize products for marketing, inventory, or categorization purposes.
Note: The operation is scoped to a specific shop, identified by its unique domain prefix (shopdomain), ensuring all updates are applied to the correct store.
Public Request Parameters
Parameter Name | Type | Required | Parameter Location | Parameter Value | Description |
---|---|---|---|---|---|
Access-Token | String | Yes | Header | Bx-_5aV eXNwl-4AB98s5xLV yg0fNzGf MuTpqtlBA | Used to authenticate API requests. Obtain an access token from the Access Token Guide. Pass it in the Authorization header for every request. |
Content-Type | String | Yes | Header | application /json | Indicates the media type of the request body. It tells the server how to parse the request and the client how to interpret the response. For more details, visit Content-Type. |
Public Response Parameters
Parameter Name | Type | Mandatory | Parameter Location | Example Value | Description |
---|---|---|---|---|---|
error | String | No | Response Body | { "error": "store is not active" } | Indicates an error encountered during the process. This field typically appears when the Access Token is missing or invalid. Example: { "error": "store is not active" } . |
errors | Array | No | Response Body | { "errors"["ProductId is required"] } | A list of errors that occurred during the request processing. Example: { "errors": [ "No Context" ] } . |
Request-Id | String | Yes | Header | Bx-_5aV eXNwl-4AB98s5xLV yg0fNzGf MuTpqtlBA | A unique identifier for each request. It helps in identifying and debugging specific requests. |
Error and Errors Clarification:
Added explanation that the error and errors fields are currently dependent on the API implementation, with plans for future unification.
Request Parameters
Body Parameters
Field | Type | Required | Example | Description |
---|---|---|---|---|
collect.collection_id | string | Yes | a60fe556-43ad-4e07-9125-507ac1bf71f7 | Unique identifier of the collection. |
collect.product_id | string | Yes | c34da7b1-26af-4c2b-8a7b-3474d73cdab1 | Unique identifier of the product. |
Response Explanation
Successful Response
Field | Type | Example | Description |
---|---|---|---|
collect.id | string | f12ab34c-98af-4e76-9b11-05a1dc14bf33 | Unique identifier of the collect. |
collect.collection_id | string | a60fe556-43ad-4e07-9125-507ac1bf71f7 | Identifier of the associated collection. |
collect.product_id | string | c34da7b1-26af-4c2b-8a7b-3474d73cdab1 | Identifier of the associated product. |
collect.position | integer | 1 | Position of the product in the collection. |
collect.created_at | string | 2024-04-16T10:31:12Z | Timestamp when the collect was created. |
collect.updated_at | string | 2024-04-16T10:31:12Z | Timestamp when the collect was last updated. |
Error Response
Error responses in the API can be represented using two different fields: errors
and error
. Both fields provide details about issues encountered during request processing. Below is an explanation of the fields with their respective examples and descriptions.
Field | Type | Example | Description |
---|---|---|---|
errors | Array | [ "ProductId is required"] | A list of errors encountered during the request processing. |
Field | Type | Example | Description |
---|---|---|---|
error | Array | "store is not active" | Indicates an error encountered during the process. |
Request Examples
curl --request POST \
--url https://{shopdomain}.myshoplazza.com/openapi/2022-01/collects \
--header 'accept: application/json' \
--header 'access-token: {your-access-token}' \
--header 'content-type: application/json' \
--data '{
"collect": {
"collection_id": "a60fe556-43ad-4e07-9125-507ac1bf71f7",
"product_id": "c34da7b1-26af-4c2b-8a7b-3474d73cdab1"
}
}'
Success Response Example
{
"collect": {
"id": "c0bcd1a9-8a42-4b8d-b2eb-b8a11b742da6",
"collection_id": "a60fe556-43ad-4e07-9125-507ac1bf71f7",
"product_id": "ea8f38ba-a152-4c64-a12c-50ea77ac4245",
"position": 2,
"created_at": "2024-04-16T11:34:32Z",
"updated_at": "2024-04-16T11:34:32Z"
}
}
Error Response Example
{
"errors": [
"ProductId is required"
]
}
{
"error": "store is not active"
}
Error Details
Status Code | Message | Possible Reason | Example Response |
---|---|---|---|
400 | Bad Request | Invalid input format or request structure (e.g., missing required fields or incorrect data types). | Bad Request |
Unauthorized | The request is missing valid authentication credentials or the credentials provided are invalid. | Unauthorized | |
422 | Invalid or empty product_id | missing required product_id or product_id with incorrect UUID types | { "errors": [ "productId has an invalid UUID"]} |
product_id is already linked to the collection. | Product is already included in current collection. | { "errors": ["Product is already included in current collection."] } | |
Product not found | The product ID provided in the request does not exist. | { "errors": ["Product not found."] } | |
404 | Record Not Found | The database query for retrieving the collect returned no result. | { "errors": ["Record not found"] } |