User Collections
The User Collections feature enables storefront users to create, manage, and share collections of products. Users can set collections as either public or private, with the default setting being private. Public collections are accessible to all users, including anonymous ones, via a specific URL, whereas private collections are only accessible to the collection owner.
Features:
- Create Collections: Users can create new collections and define their visibility status.
- Manage Collections: Users can update, rename, or change the visibility status of their collections.
- Product Management: Users can add or remove products from their collections.
POST
Create a Collection
This endpoint allows users to create a new user collection.
Path: https://{commerce_url}/wishlists/user-collections/
Body Parameters
Parameter | Data Type | Required | Explanation |
---|---|---|---|
name | string | mandatory | The name of the collection. |
status | string | optional | Visibility status of the collection (public or private ). Defaults to private . |
Example Request
{
"name": "Test Collection",
"status": "public"
}
Example Response (201 Created)
{
"count": 2,
"previous": null,
"next": null,
"results": [
{
"pk": 3,
"status": "public",
"name": "Test Collection",
"slug": "test-collection-22958e2e492d428caXXXbbc346793860",
"items": [
{
"pk": 3,
"note": "Product note 1",
"product": {
"pk": 10,
"sku": "190XX919",
"attributes_kwargs": {},
"data_source": null,
"product_type": "0",
"name": "Test Product",
"parent": 2,
"is_seller_product": false,
"listing_code": null,
"absolute_url": "/product/10/",
"is_form_required": false,
"is_active": true,
"extra_attributes": {},
"is_listable": false,
"custom_attribute_set": null,
"attribute_set": null,
"group_products": [],
"attributes": {},
"base_code": null,
"productimage_set": []
},
"created_date": "2024-10-21T06:57:28.647606Z"
},
],
"public_url": "/wishlists/user-collection/test-collection-22958e2e492d428caXXXbbc346793860/"
}
]
}
GET
List Collections
Retrieve a list of collections created by the user. Collections can be filtered by name or product ID.
Path: https://{commerce_url}/wishlists/user-collections/
Request Parameters
Parameter | Data Type | Explanation |
---|---|---|
search | string | Filter collections by name. |
product_id | integer | Filter collections that contain a specific product ID. |
Example Response (200 OK)
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"pk": 1,
"status": "private",
"name": "Test Collection",
"slug": "test-collection",
"items": [],
"public_url": null
}
]
}
PATCH
Update a Collection
This endpoint allows users to rename or change the visibility status of a collection.
Path: https://{commerce_url}/wishlists/user-collections/
Body Parameters
Parameter | Type | Required | Description |
---|---|---|---|
name | string | No | The new name for the collection. |
status | string | No | New visibility status (public or private). |
Example Request
{
"name": "Public Collection",
"status": "public"
}
Example Response (200 OK)
{
"pk": 1,
"status": "public",
"name": "Public Collection",
"slug": "test-collection-2",
"items": [],
"public_url": "/wishlists/user-collection/test-collection-2/"
}
GET
Retrieve a Collection
Retrieve the details of a specific user collection by its primary key (pk).
Path: https://{commerce_url}/wishlists/user-collections/<pk>/
Example Response (200 OK)
{
"pk": 1,
"status": "public",
"name": "Public Collection",
"slug": "test-collection-2",
"items": [],
"public_url": "/wishlists/user-collection/test-collection-2/"
}
DELETE
Delete a Collection
This endpoint allows users to delete a specific user collection by its primary key (pk).
Path: https://{commerce_url}/wishlists/user-collections/<pk>/
Example Response (204 No Content)
204 No Content successful response status code indicates that a user collection has been deleted.
POST
Add a Product to a Collection
Allows users to add a product to a specific collection, along with an optional note.
Path: https://{commerce_url}/wishlists/user-collection-items/
Body Parameters
Parameter | Type | Required | Description |
---|---|---|---|
product_id | integer | Yes | The ID of the product to add. |
usercollection_id | integer | Yes | The ID of the collection. |
note | string | No | An optional note associated with the product in the collection. |
Example Request
{
"product_id": 3239,
"usercollection_id": 1,
"note": "Test Note"
}
Example Response (201 Created)
{
"pk": 1,
"product": {
"pk": 3239,
"name": "2-Li Aile Çerçevesi 13x18cm",
"base_code": "1KCERX07XX",
"sku": "26728XX0785XX",
"product_type": "0",
"is_active": true,
"parent": null,
"attributes": {
"boyut": "13x18 CM",
"uretim_yeri": "ÇİN",
"renk": "STD",
"integration_ProductCode": "1KCERV0784139",
"integration_ProductHierarchyLevel01": "TEKSTİL DIŞI",
"integration_ProductHierarchyLevel02": "Dekoratif",
"integration_ProductAtt13Desc": "Dekoratif - %50+%50",
"integration_ProductAtt12Desc": "%50 + %20 PROMOSYON",
},
"attributes_kwargs": {
"integration_ProductHierarchyLevel01": {
"value": "TEKSTİL DIŞI",
"label": "TEKSTİL DIŞI"
},
"integration_ProductHierarchyLevel02": {
"value": "Dekoratif",
"label": "Dekoratif"
}
"renk": {
"value": "STD",
"label": "STD"
},
},
"extra_attributes": {},
"group_products": [],
"productimage_set": [
{
"pk": 978,
"status": "active",
"image": "https://cdn-xxxx.akinon.net/products/2017/01/23/2022/ce59ad7a-15f8-44d6-9c0d-XXf0fe5405ba.jpg",
"order": 0,
"created_date": "2017-01-24T10:38:10.663088Z",
"specialimage_set": []
},
],
"attribute_set": 62,
"custom_attribute_set": null,
"is_listable": true,
"listing_code": null,
"data_source": null
},
"created_date": "2021-09-21T08:15:50.875425Z",
"note": "Test Note"
}
DELETE
Remove a Product from a Collection
This endpoint allows users to remove a product from a specific collection using the collection item’s primary key (pk).
Path: https://{commerce_url}/wishlists/user-collection-items/<pk>/
Example Response (204 No Content)
204 No Content successful response status code indicates that a product has been removed from a collection.
GET
Retrieve a Public User Collection
Allows anyone to retrieve the details of a public user collection using the collection's slug.
Path: https://{commerce_url}/wishlists/user-collection/<slug>/
Example Response (200 OK)
{
"status": "public",
"name": "Test Coll",
"items": [
{
"note": "test note",
"pk": 6,
"product": {
"sku": "19051919",
"attributes_kwargs": {},
"data_source": null,
"product_type": "1",
"name": "test-prodc",
"parent": null,
"is_seller_product": false,
"listing_code": null,
"absolute_url": "/product/30/",
"is_form_required": false,
"is_active": true,
"extra_attributes": {},
"is_listable": false,
"custom_attribute_set": null,
"attribute_set": null,
"group_products": [],
"attributes": {},
"base_code": null,
"pk": 30,
"productimage_set": []
},
"created_date": "2024-10-11T14:49:42.254439Z"
}
],
"public_url": "/wishlists/user-collection/test-coll/",
"pk": 4,
"slug": "test-coll"
}