Carts - Docs
The carts endpoint offers a dataset of sample shopping cart data, including details like cart items, quantities, prices, and user IDs, useful for testing and prototyping e-commerce functionalities such as cart management and checkout processes.
fetch('https://dummyjson.com/carts') .then(res => res.json()) .then(console.log); { "carts": [ { "id": 1, "products": [ { "id": 144, "title": "Cricket Helmet", "price": 44.99, "quantity": 4, "total": 179.96, "discountPercentage": 11.47, "discountedTotal": 159.32, "thumbnail": "https://cdn.dummyjson.com/products/images/sports-accessories/Cricket%20Helmet/thumbnail.png" }, {...} // more products ], "total": 4794.8, "discountedTotal": 4288.95, "userId": 142, "totalProducts": 5, "totalQuantity": 20 }, {...}, {...}, {...} // 30 items ], "total": 50, "skip": 0, "limit": 30 } fetch('https://dummyjson.com/carts/1') .then(res => res.json()) .then(console.log); { "id": 1, "products": [ { "id": 144, "title": "Cricket Helmet", "price": 44.99, "quantity": 4, "total": 179.96, "discountPercentage": 11.47, "discountedTotal": 159.32, "thumbnail": "https://cdn.dummyjson.com/products/images/sports-accessories/Cricket%20Helmet/thumbnail.png" }, {...} // more products ], "total": 4794.8, "discountedTotal": 4288.95, "userId": 142, "totalProducts": 5, "totalQuantity": 20 } // getting carts by user with id 5 fetch('https://dummyjson.com/carts/user/5') .then(res => res.json()) .then(console.log); { "carts": [ { "id": 19, "products": [ { "id": 144, "title": "Cricket Helmet", "price": 44.99, "quantity": 4, "total": 179.96, "discountPercentage": 11.47, "discountedTotal": 159.32, "thumbnail": "https://cdn.dummyjson.com/products/images/sports-accessories/Cricket%20Helmet/thumbnail.png" }, {...} // more products ], "total": 2492, "discountedTotal": 2140, "userId": 5, // user id is 5 "totalProducts": 5, "totalQuantity": 14 } ], "total": 1, "skip": 0, "limit": 1 } Adding a new cart will not add it into the server.
It will simulate a POST request and will return the new created cart with a new id
You can provide a `userId` and array of products as objects, containing `productId` & `quantity`
fetch('https://dummyjson.com/carts/add', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ userId: 1, products: [ { id: 144, quantity: 4, }, { id: 98, quantity: 1, }, ] }) }) .then(res => res.json()) .then(console.log); { "id": 51, "products": [ // products were added by id { "id": 98, "title": "Rolex Submariner Watch", "price": 13999.99, "quantity": 4, "total": 55999.96, "discountPercentage": 0.82, "discountedPrice": 55541, "thumbnail": "https://cdn.dummyjson.com/products/images/mens-watches/Rolex%20Submariner%20Watch/thumbnail.png" }, { "id": 144, "title": "Cricket Helmet", "price": 44.99, "quantity": 1, "total": 44.99, "discountPercentage": 10.75, "discountedPrice": 40, "thumbnail": "https://cdn.dummyjson.com/products/images/sports-accessories/Cricket%20Helmet/thumbnail.png" } ], "total": 56044.95, // total was calculated with quantity "discountedTotal": 55581, "userId": 1, // user id is 1 "totalProducts": 2, "totalQuantity": 5 // total quantity of items } Updating a cart will not update it into the server.
It will simulate a PUT/PATCH request and will return updated cart with modified data
Pass `"merge: true"` to include old products when updating
You can provide a `userId` and array of products as objects, containing `productId` & `quantity`
/* adding products in cart with id 1 */ fetch('https://dummyjson.com/carts/1', { method: 'PUT', /* or PATCH */ headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ merge: true, // this will include existing products in the cart products: [ { id: 1, quantity: 1, }, ] }) }) .then(res => res.json()) .then(console.log); { "id": 1, "products": [ { "id": 1, "title": "Essence Mascara Lash Princess", "price": 9.99, "quantity": 1, "total": 9.99, "discountPercentage": 7.17, "discountedPrice": 9, "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/thumbnail.png" } {...} // other old products ], "total": 103784.84, // total was updated "discountedTotal": 89695, // discounted total was updated "userId": 33, "totalProducts": 5, // total products were updated "totalQuantity": 16 // total quantity was updated } Deleting a cart will not delete it into the server.
It will simulate a DELETE request and will return deleted cart with `isDeleted` & `deletedOn` keys
fetch('https://dummyjson.com/carts/1', { method: 'DELETE', }) .then(res => res.json()) .then(console.log); { "id": 1, "products": [ { "id": 168, "title": "Charger SXT RWD", "price": 32999.99, "quantity": 3, "total": 98999.97, "discountPercentage": 13.39, "discountedTotal": 85743.87, "thumbnail": "https://cdn.dummyjson.com/products/images/vehicle/Charger%20SXT%20RWD/thumbnail.png" }, {...}, // more products ], "total": 103774.85, "discountedTotal": 89686.65, "userId": 33, "totalProducts": 4, "totalQuantity": 15, "isDeleted": true, "deletedOn": /* ISOTime */ }