Add Item to Cart
Adds a new product to the cart or increases quantity if the product already exists.
HTTP Request
POST/api/shop/cart/items
Authorization
Authorization
- Required: Yes
- Permission: Authenticated User
- Authentication: Token-based (Authorization: Token <your_api_key>)
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| product | Integer | Yes | Product ID to add to cart |
| quantity | Integer | No | Quantity to add (default: 1, minimum: 1) |
| notes | String | No | Customer notes for this item (max 500 chars) |
Example Requests
- 🐍 Python
- 🌐 Curl
1import requests
2
3# Add product to cart
4response = requests.post('http://www.example.com/api/shop/cart/items',
5 json={
6 'product': 123,
7 'quantity': 2,
8 'notes': 'Please pack carefully'
9 },
10 headers={'Authorization': 'Token <your_api_key>'}
11)
12print(response.json())
13
14# Add single item
15response = requests.post('http://www.example.com/api/shop/cart/items',
16 json={
17 'product': 456
18 },
19 headers={'Authorization': 'Token <your_api_key>'}
20)
21print(response.json())1# Add product to cart
2curl -X POST "http://www.example.com/api/shop/cart/items" -H "Authorization: Token <your_api_key>" -H "Content-Type: application/json" -d '{
3 "product": 123,
4 "quantity": 2,
5 "notes": "Please pack carefully"
6}'
7
8# Add single item
9curl -X POST "http://www.example.com/api/shop/cart/items" -H "Authorization: Token <your_api_key>" -H "Content-Type: application/json" -d '{
10 "product": 456
11}'Response Fields
| Field | Type | Description |
|---|---|---|
| id | Integer | Unique ID of the product |
| address | Integer | Selected delivery address ID |
| shipping_method | Integer | Selected shipping method ID |
| payment_method | Integer | Selected payment method ID |
| created_at | String (ISO 8601) | Timestamp when cart was created |
| updated_at | String (ISO 8601) | Timestamp when cart was last updated |
| count | Integer | Number of unique items in cart |
| quantity | Integer | Total quantity of all items |
| is_empty | Boolean | Whether the cart is empty |
| items_subtotal | Integer | Subtotal of all items before discounts |
| items_discount | Integer | Total discount amount on items |
| subtotal | Integer | Cart subtotal after item discounts |
| discount | Integer | Additional cart-level discount |
| total | Integer | Final cart total |
| items | Array | Array of cart items (see Cart Item fields) |
Cart Item Fields
| Field | Type | Description |
|---|---|---|
| id | Integer | Unique ID of the cart item |
| ref | String | Item reference (read-only) |
| product | Object | Product information with `id`, `name`, `image` |
| quantity | Integer | Item quantity |
| notes | String | Customer notes for this item |
| created_at | String (ISO 8601) | Timestamp when item was added |
| updated_at | String (ISO 8601) | Timestamp when item was last updated |
| unit_price | Integer | Price per unit (read-only) |
| unit_discount | Integer | Discount per unit (read-only) |
| subtotal | Integer | Item subtotal before discount (read-only) |
| discount | Integer | Total item discount (read-only) |
| total | Integer | Final item total (read-only) |
Product Object Data Structure
| Field | Type | Description |
|---|---|---|
| id | Integer | Unique id of the product |
| title | String | Product title |
| image | Object | Product image details |
Image Data Structure
| Field | Type | Description |
|---|---|---|
| id | Integer | Unique ID of the image |
| type | String | File type (e.g., image/jpeg) |
| name | String | Original file name |
| size | Integer | File size in bytes |
| human_readable_size | String | Human readable file size (e.g., 2.5 MB) |
| f | String | URL to access the image file |
| width | Integer | Image width in pixels |
| height | Integer | Image height in pixels |
| mode | String | Color mode (e.g., RGB, CMYK) |
Example Respones
{
"id": 1,
"address": 1,
"shipping_method": 1,
"payment_method": 1,
"created_at": "2025-11-22T15:26:59.108182Z",
"updated_at": "2025-12-30T12:53:24.505447Z",
"count": 1,
"quantity": 2,
"is_empty": false,
"items_subtotal": 2000,
"items_discount": 200,
"subtotal": 2000,
"discount": 200,
"shipping_cost": 0,
"total": 1800,
"items": [
{
"id": 4,
"ref": "54",
"product": {
"id": 54,
"title": "درب سمت راست پراید",
"image": null
},
"quantity": 2,
"notes": "Ut facilis aspernatur odit molestiae. Voluptates eveniet nihil sed qui. Soluta ex quo eum. Magni asperiores aliquam et. Vel qui molestiae culpa autem.",
"created_at": "2025-12-30T13:17:46.941326Z",
"updated_at": "2025-12-30T13:17:46.941335Z",
"unit_price": 1000,
"unit_discount": 100,
"subtotal": 2000,
"discount": 200,
"total": 1800
}
]
}