diff --git a/data.json b/data.json new file mode 100644 index 0000000..5f4e9bf --- /dev/null +++ b/data.json @@ -0,0 +1,3818 @@ +{ + "products": [ + { + "id": "1", + "title": "Essence Mascara Lash 2", + "description": "The Essence Mascara Lash Princess is a popular mascara known for its volumizing and lengthening effects. Achieve dramatic lashes with this long-lasting and cruelty-free formula.", + "category": "beauty", + "price": 9.99, + "discountPercentage": 7.17, + "rating": 0, + "stock": 5, + "tags": [ + "beauty", + "mascara" + ], + "brand": "Essence", + "sku": "RCH45Q1A", + "weight": 2, + "dimensions": { + "width": 23.17, + "height": 14.43, + "depth": 28.01 + }, + "warrantyInformation": "1 month warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "Low Stock", + "reviews": [ + { + "rating": 2, + "comment": "Very unhappy with my purchase!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "John Doe", + "reviewerEmail": "john.doe@x.dummyjson.com" + }, + { + "rating": 2, + "comment": "Not as described!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Nolan Gonzalez", + "reviewerEmail": "nolan.gonzalez@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Scarlett Wright", + "reviewerEmail": "scarlett.wright@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 24, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "9164035109868", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png", + "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png", + "discount": null, + "deleted": true + }, + { + "id": "2", + "title": "Eyeshadow Palette with Mirror", + "description": "The Eyeshadow Palette with Mirror offers a versatile range of eyeshadow shades for creating stunning eye looks. With a built-in mirror, it's convenient for on-the-go makeup application.", + "category": "beauty", + "price": 19.99, + "discountPercentage": 5.5, + "rating": 3.28, + "stock": 44, + "tags": [ + "beauty", + "eyeshadow" + ], + "brand": "Glamour Beauty", + "sku": "MVCFH27F", + "weight": 3, + "dimensions": { + "width": 12.42, + "height": 8.63, + "depth": 29.13 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Liam Garcia", + "reviewerEmail": "liam.garcia@x.dummyjson.com" + }, + { + "rating": 1, + "comment": "Very disappointed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Nora Russell", + "reviewerEmail": "nora.russell@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Elena Baker", + "reviewerEmail": "elena.baker@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 32, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "2817839095220", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Eyeshadow%20Palette%20with%20Mirror/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Eyeshadow%20Palette%20with%20Mirror/thumbnail.png" + }, + { + "id": "3", + "title": "Powder Canister", + "description": "The Powder Canister is a finely milled setting powder designed to set makeup and control shine. With a lightweight and translucent formula, it provides a smooth and matte finish.", + "category": "beauty", + "price": 500, + "discountPercentage": 18.14, + "rating": 0, + "stock": 59, + "tags": [ + "beauty", + "face powder" + ], + "brand": "Velvet Touch", + "sku": "9EN8WLT2", + "weight": 8, + "dimensions": { + "width": 24.16, + "height": 10.7, + "depth": 11.07 + }, + "warrantyInformation": "2 year warranty", + "shippingInformation": "Ships in 1-2 business days", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Ethan Thompson", + "reviewerEmail": "ethan.thompson@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Great value for money!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Levi Hicks", + "reviewerEmail": "levi.hicks@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Hazel Gardner", + "reviewerEmail": "hazel.gardner@x.dummyjson.com" + } + ], + "returnPolicy": "60 days return policy", + "minimumOrderQuantity": 25, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "0516267971277", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Powder%20Canister/1.png", + "https://cdn.dummyjson.com/products/images/beauty/Powder%20Canister/thumbnail.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Powder%20Canister/thumbnail.png", + "discount": null + }, + { + "id": "4", + "title": "Red Lipstick", + "description": "The Red Lipstick is a classic and bold choice for adding a pop of color to your lips. With a creamy and pigmented formula, it provides a vibrant and long-lasting finish.", + "category": "beauty", + "price": 12.99, + "discountPercentage": 19.03, + "rating": 2.51, + "stock": 68, + "tags": [ + "beauty", + "lipstick" + ], + "brand": "Chic Cosmetics", + "sku": "O5IF1NTA", + "weight": 5, + "dimensions": { + "width": 14.37, + "height": 13.94, + "depth": 14.6 + }, + "warrantyInformation": "Lifetime warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Leo Rivera", + "reviewerEmail": "leo.rivera@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Oscar Powers", + "reviewerEmail": "oscar.powers@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Carter Rivera", + "reviewerEmail": "carter.rivera@x.dummyjson.com" + } + ], + "returnPolicy": "90 days return policy", + "minimumOrderQuantity": 6, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "9444582199406", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Red%20Lipstick/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Red%20Lipstick/thumbnail.png" + }, + { + "id": "5", + "title": "Red Nail Polish Premium", + "description": "The Red Nail Polish offers a rich and glossy red hue for vibrant and polished nails. With a quick-drying formula, it provides a salon-quality finish at home.", + "category": "beauty", + "price": 8.99, + "discountPercentage": 2.46, + "rating": 3.91, + "stock": 71, + "tags": [ + "beauty", + "nail polish" + ], + "brand": "Nail Couture", + "sku": "YUIIIP4W", + "weight": 9, + "dimensions": { + "width": 8.11, + "height": 10.89, + "depth": 29.06 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 1 week", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Leo Rivera", + "reviewerEmail": "leo.rivera@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Evan Reed", + "reviewerEmail": "evan.reed@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Highly recommended!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Evelyn Sanchez", + "reviewerEmail": "evelyn.sanchez@x.dummyjson.com" + } + ], + "returnPolicy": "No return policy", + "minimumOrderQuantity": 46, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "3212847902461", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Red%20Nail%20Polish/1.png", + "https://cdn.dummyjson.com/products/images/beauty/Red%20Nail%20Polish/thumbnail.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Red%20Nail%20Polish/thumbnail.png", + "discount": null + }, + { + "id": "6", + "title": "Calvin Klein CK One", + "description": "CK One by Calvin Klein is a classic unisex fragrance, known for its fresh and clean scent. It's a versatile fragrance suitable for everyday wear.", + "category": "fragrances", + "price": 49.99, + "discountPercentage": 0.32, + "rating": 4.85, + "stock": 17, + "tags": [ + "fragrances", + "perfumes" + ], + "brand": "Calvin Klein", + "sku": "DZM2JQZE", + "weight": 5, + "dimensions": { + "width": 11.53, + "height": 14.44, + "depth": 6.81 + }, + "warrantyInformation": "5 year warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Great value for money!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Sophia Brown", + "reviewerEmail": "sophia.brown@x.dummyjson.com" + }, + { + "rating": 3, + "comment": "Very disappointed!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Madison Collins", + "reviewerEmail": "madison.collins@x.dummyjson.com" + }, + { + "rating": 1, + "comment": "Poor quality!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Maya Reed", + "reviewerEmail": "maya.reed@x.dummyjson.com" + } + ], + "returnPolicy": "No return policy", + "minimumOrderQuantity": 20, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "2210136215089", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/fragrances/Calvin%20Klein%20CK%20One/1.png", + "https://cdn.dummyjson.com/products/images/fragrances/Calvin%20Klein%20CK%20One/2.png", + "https://cdn.dummyjson.com/products/images/fragrances/Calvin%20Klein%20CK%20One/3.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/fragrances/Calvin%20Klein%20CK%20One/thumbnail.png" + }, + { + "id": "7", + "title": "Chanel Coco Noir Eau De", + "description": "Coco Noir by Chanel is an elegant and mysterious fragrance, featuring notes of grapefruit, rose, and sandalwood. Perfect for evening occasions.", + "category": "fragrances", + "price": 129.99, + "discountPercentage": 18.64, + "rating": 2.76, + "stock": 41, + "tags": [ + "fragrances", + "perfumes" + ], + "brand": "Chanel", + "sku": "K71HBCGS", + "weight": 4, + "dimensions": { + "width": 21.27, + "height": 28, + "depth": 11.89 + }, + "warrantyInformation": "1 week warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 1, + "comment": "Disappointing product!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Lincoln Kelly", + "reviewerEmail": "lincoln.kelly@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Lincoln Kelly", + "reviewerEmail": "lincoln.kelly@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Excellent quality!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Lucas Allen", + "reviewerEmail": "lucas.allen@x.dummyjson.com" + } + ], + "returnPolicy": "60 days return policy", + "minimumOrderQuantity": 5, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "1435582999795", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/fragrances/Chanel%20Coco%20Noir%20Eau%20De/1.png", + "https://cdn.dummyjson.com/products/images/fragrances/Chanel%20Coco%20Noir%20Eau%20De/2.png", + "https://cdn.dummyjson.com/products/images/fragrances/Chanel%20Coco%20Noir%20Eau%20De/3.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/fragrances/Chanel%20Coco%20Noir%20Eau%20De/thumbnail.png" + }, + { + "id": "8", + "title": "Dior J'adore", + "description": "J'adore by Dior is a luxurious and floral fragrance, known for its blend of ylang-ylang, rose, and jasmine. It embodies femininity and sophistication.", + "category": "fragrances", + "price": 89.99, + "discountPercentage": 17.44, + "rating": 3.31, + "stock": 91, + "tags": [ + "fragrances", + "perfumes" + ], + "brand": "Dior", + "sku": "E70NB03B", + "weight": 10, + "dimensions": { + "width": 21.51, + "height": 7, + "depth": 26.51 + }, + "warrantyInformation": "Lifetime warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Fast shipping!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Zoe Nicholson", + "reviewerEmail": "zoe.nicholson@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Excellent quality!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Addison Wright", + "reviewerEmail": "addison.wright@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Clara Berry", + "reviewerEmail": "clara.berry@x.dummyjson.com" + } + ], + "returnPolicy": "7 days return policy", + "minimumOrderQuantity": 8, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "0887083199279", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/fragrances/Dior%20J'adore/1.png", + "https://cdn.dummyjson.com/products/images/fragrances/Dior%20J'adore/2.png", + "https://cdn.dummyjson.com/products/images/fragrances/Dior%20J'adore/3.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/fragrances/Dior%20J'adore/thumbnail.png" + }, + { + "id": "9", + "title": "Dolce Shine Eau de", + "description": "Dolce Shine by Dolce & Gabbana is a vibrant and fruity fragrance, featuring notes of mango, jasmine, and blonde woods. It's a joyful and youthful scent.", + "category": "fragrances", + "price": 69.99, + "discountPercentage": 11.47, + "rating": 2.68, + "stock": 3, + "tags": [ + "fragrances", + "perfumes" + ], + "brand": "Dolce & Gabbana", + "sku": "1NBFK980", + "weight": 5, + "dimensions": { + "width": 17, + "height": 24.57, + "depth": 13.3 + }, + "warrantyInformation": "5 year warranty", + "shippingInformation": "Ships in 1-2 business days", + "availabilityStatus": "Low Stock", + "reviews": [ + { + "rating": 4, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Xavier Wright", + "reviewerEmail": "xavier.wright@x.dummyjson.com" + }, + { + "rating": 1, + "comment": "Poor quality!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Mila Hernandez", + "reviewerEmail": "mila.hernandez@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Sophia Brown", + "reviewerEmail": "sophia.brown@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 9, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "1939383392674", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/fragrances/Dolce%20Shine%20Eau%20de/1.png", + "https://cdn.dummyjson.com/products/images/fragrances/Dolce%20Shine%20Eau%20de/2.png", + "https://cdn.dummyjson.com/products/images/fragrances/Dolce%20Shine%20Eau%20de/3.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/fragrances/Dolce%20Shine%20Eau%20de/thumbnail.png" + }, + { + "id": "10", + "title": "Gucci Bloom Eau de", + "description": "Gucci Bloom by Gucci is a floral and captivating fragrance, with notes of tuberose, jasmine, and Rangoon creeper. It's a modern and romantic scent.", + "category": "fragrances", + "price": 79.99, + "discountPercentage": 8.9, + "rating": 2.69, + "stock": 93, + "tags": [ + "fragrances", + "perfumes" + ], + "brand": "Gucci", + "sku": "FFKZ6HOF", + "weight": 10, + "dimensions": { + "width": 22.28, + "height": 17.81, + "depth": 27.18 + }, + "warrantyInformation": "No warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Great value for money!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Aria Parker", + "reviewerEmail": "aria.parker@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Excellent quality!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Natalie Harris", + "reviewerEmail": "natalie.harris@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Fast shipping!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Ava Harris", + "reviewerEmail": "ava.harris@x.dummyjson.com" + } + ], + "returnPolicy": "No return policy", + "minimumOrderQuantity": 10, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "8232190382069", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/fragrances/Gucci%20Bloom%20Eau%20de/1.png", + "https://cdn.dummyjson.com/products/images/fragrances/Gucci%20Bloom%20Eau%20de/2.png", + "https://cdn.dummyjson.com/products/images/fragrances/Gucci%20Bloom%20Eau%20de/3.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/fragrances/Gucci%20Bloom%20Eau%20de/thumbnail.png" + }, + { + "id": "11", + "title": "Annibale Colombo Bed", + "description": "The Annibale Colombo Bed is a luxurious and elegant bed frame, crafted with high-quality materials for a comfortable and stylish bedroom.", + "category": "furniture", + "price": 1899.99, + "discountPercentage": 0.29, + "rating": 4.14, + "stock": 47, + "tags": [ + "furniture", + "beds" + ], + "brand": "Annibale Colombo", + "sku": "4KMDTZWF", + "weight": 3, + "dimensions": { + "width": 28.75, + "height": 26.88, + "depth": 24.47 + }, + "warrantyInformation": "2 year warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Great value for money!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Julian Newton", + "reviewerEmail": "julian.newton@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Madison Collins", + "reviewerEmail": "madison.collins@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Clara Berry", + "reviewerEmail": "clara.berry@x.dummyjson.com" + } + ], + "returnPolicy": "7 days return policy", + "minimumOrderQuantity": 1, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "7113807059215", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/furniture/Annibale%20Colombo%20Bed/1.png", + "https://cdn.dummyjson.com/products/images/furniture/Annibale%20Colombo%20Bed/2.png", + "https://cdn.dummyjson.com/products/images/furniture/Annibale%20Colombo%20Bed/3.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/furniture/Annibale%20Colombo%20Bed/thumbnail.png" + }, + { + "id": "12", + "title": "Annibale Colombo Sofa", + "description": "The Annibale Colombo Sofa is a sophisticated and comfortable seating option, featuring exquisite design and premium upholstery for your living room.", + "category": "furniture", + "price": 2499.99, + "discountPercentage": 18.54, + "rating": 3.08, + "stock": 16, + "tags": [ + "furniture", + "sofas" + ], + "brand": "Annibale Colombo", + "sku": "LUU95CQP", + "weight": 3, + "dimensions": { + "width": 20.97, + "height": 19.11, + "depth": 25.81 + }, + "warrantyInformation": "1 month warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Tyler Davis", + "reviewerEmail": "tyler.davis@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Excellent quality!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Hannah Robinson", + "reviewerEmail": "hannah.robinson@x.dummyjson.com" + }, + { + "rating": 3, + "comment": "Waste of money!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Madison Collins", + "reviewerEmail": "madison.collins@x.dummyjson.com" + } + ], + "returnPolicy": "7 days return policy", + "minimumOrderQuantity": 1, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "0426785817074", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/furniture/Annibale%20Colombo%20Sofa/1.png", + "https://cdn.dummyjson.com/products/images/furniture/Annibale%20Colombo%20Sofa/2.png", + "https://cdn.dummyjson.com/products/images/furniture/Annibale%20Colombo%20Sofa/3.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/furniture/Annibale%20Colombo%20Sofa/thumbnail.png" + }, + { + "id": "13", + "title": "Bedside Table African Cherry", + "description": "The Bedside Table in African Cherry is a stylish and functional addition to your bedroom, providing convenient storage space and a touch of elegance.", + "category": "furniture", + "price": 299.99, + "discountPercentage": 9.58, + "rating": 4.48, + "stock": 16, + "tags": [ + "furniture", + "bedside tables" + ], + "brand": "Furniture Co.", + "sku": "OWPLTZYX", + "weight": 10, + "dimensions": { + "width": 25.43, + "height": 20.2, + "depth": 24.95 + }, + "warrantyInformation": "6 months warranty", + "shippingInformation": "Ships in 1-2 business days", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "John Doe", + "reviewerEmail": "john.doe@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Highly recommended!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Avery Carter", + "reviewerEmail": "avery.carter@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Evelyn Sanchez", + "reviewerEmail": "evelyn.sanchez@x.dummyjson.com" + } + ], + "returnPolicy": "No return policy", + "minimumOrderQuantity": 5, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "2913244159666", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/furniture/Bedside%20Table%20African%20Cherry/1.png", + "https://cdn.dummyjson.com/products/images/furniture/Bedside%20Table%20African%20Cherry/2.png", + "https://cdn.dummyjson.com/products/images/furniture/Bedside%20Table%20African%20Cherry/3.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/furniture/Bedside%20Table%20African%20Cherry/thumbnail.png" + }, + { + "id": "14", + "title": "Knoll Saarinen Executive Conference Chair", + "description": "The Knoll Saarinen Executive Conference Chair is a modern and ergonomic chair, perfect for your office or conference room with its timeless design.", + "category": "furniture", + "price": 499.99, + "discountPercentage": 15.23, + "rating": 4.11, + "stock": 47, + "tags": [ + "furniture", + "office chairs" + ], + "brand": "Knoll", + "sku": "RKHVJ4FE", + "weight": 3, + "dimensions": { + "width": 16.59, + "height": 21.46, + "depth": 29.07 + }, + "warrantyInformation": "Lifetime warranty", + "shippingInformation": "Ships in 3-5 business days", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Leah Gutierrez", + "reviewerEmail": "leah.gutierrez@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Nolan Gonzalez", + "reviewerEmail": "nolan.gonzalez@x.dummyjson.com" + }, + { + "rating": 2, + "comment": "Waste of money!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Stella Morris", + "reviewerEmail": "stella.morris@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 5, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "0726316339746", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/furniture/Knoll%20Saarinen%20Executive%20Conference%20Chair/1.png", + "https://cdn.dummyjson.com/products/images/furniture/Knoll%20Saarinen%20Executive%20Conference%20Chair/2.png", + "https://cdn.dummyjson.com/products/images/furniture/Knoll%20Saarinen%20Executive%20Conference%20Chair/3.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/furniture/Knoll%20Saarinen%20Executive%20Conference%20Chair/thumbnail.png" + }, + { + "id": "15", + "title": "Wooden Bathroom Sink With Mirror", + "description": "The Wooden Bathroom Sink with Mirror is a unique and stylish addition to your bathroom, featuring a wooden sink countertop and a matching mirror.", + "category": "furniture", + "price": 799.99, + "discountPercentage": 11.22, + "rating": 3.26, + "stock": 95, + "tags": [ + "furniture", + "bathroom" + ], + "brand": "Bath Trends", + "sku": "7OLTIEVO", + "weight": 6, + "dimensions": { + "width": 7.32, + "height": 22.64, + "depth": 12.37 + }, + "warrantyInformation": "6 months warranty", + "shippingInformation": "Ships in 3-5 business days", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Highly recommended!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Charlotte Lopez", + "reviewerEmail": "charlotte.lopez@x.dummyjson.com" + }, + { + "rating": 1, + "comment": "Would not recommend!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "William Gonzalez", + "reviewerEmail": "william.gonzalez@x.dummyjson.com" + }, + { + "rating": 2, + "comment": "Not worth the price!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Ava Harrison", + "reviewerEmail": "ava.harrison@x.dummyjson.com" + } + ], + "returnPolicy": "7 days return policy", + "minimumOrderQuantity": 1, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "7839797529453", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/furniture/Wooden%20Bathroom%20Sink%20With%20Mirror/1.png", + "https://cdn.dummyjson.com/products/images/furniture/Wooden%20Bathroom%20Sink%20With%20Mirror/2.png", + "https://cdn.dummyjson.com/products/images/furniture/Wooden%20Bathroom%20Sink%20With%20Mirror/3.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/furniture/Wooden%20Bathroom%20Sink%20With%20Mirror/thumbnail.png" + }, + { + "id": "16", + "title": "Apple", + "description": "Fresh and crisp apples, perfect for snacking or incorporating into various recipes.", + "category": "groceries", + "price": 1.99, + "discountPercentage": 1.97, + "rating": 2.96, + "stock": 9, + "tags": [ + "fruits" + ], + "sku": "QTROUV79", + "weight": 8, + "dimensions": { + "width": 8.29, + "height": 5.58, + "depth": 12.41 + }, + "warrantyInformation": "2 year warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Logan Lee", + "reviewerEmail": "logan.lee@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Elena Long", + "reviewerEmail": "elena.long@x.dummyjson.com" + }, + { + "rating": 1, + "comment": "Not as described!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Grayson Coleman", + "reviewerEmail": "grayson.coleman@x.dummyjson.com" + } + ], + "returnPolicy": "60 days return policy", + "minimumOrderQuantity": 44, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "2517819903837", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Apple/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Apple/thumbnail.png" + }, + { + "id": "17", + "title": "Beef Steak", + "description": "High-quality beef steak, great for grilling or cooking to your preferred level of doneness.", + "category": "groceries", + "price": 12.99, + "discountPercentage": 17.99, + "rating": 2.83, + "stock": 96, + "tags": [ + "meat" + ], + "sku": "BWWA2MSO", + "weight": 9, + "dimensions": { + "width": 23.35, + "height": 13.48, + "depth": 26.4 + }, + "warrantyInformation": "1 month warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Ethan Martinez", + "reviewerEmail": "ethan.martinez@x.dummyjson.com" + }, + { + "rating": 3, + "comment": "Disappointing product!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Owen Fisher", + "reviewerEmail": "owen.fisher@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Scarlett Wright", + "reviewerEmail": "scarlett.wright@x.dummyjson.com" + } + ], + "returnPolicy": "90 days return policy", + "minimumOrderQuantity": 21, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "8335515097879", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Beef%20Steak/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Beef%20Steak/thumbnail.png" + }, + { + "id": "18", + "title": "Cat Food", + "description": "Nutritious cat food formulated to meet the dietary needs of your feline friend.", + "category": "groceries", + "price": 8.99, + "discountPercentage": 9.57, + "rating": 2.88, + "stock": 13, + "tags": [ + "pet supplies", + "cat food" + ], + "sku": "C3F8QN6O", + "weight": 9, + "dimensions": { + "width": 15.4, + "height": 13.97, + "depth": 25.13 + }, + "warrantyInformation": "3 months warranty", + "shippingInformation": "Ships in 1-2 business days", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Mateo Bennett", + "reviewerEmail": "mateo.bennett@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Aurora Barnes", + "reviewerEmail": "aurora.barnes@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Great value for money!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Ellie Stewart", + "reviewerEmail": "ellie.stewart@x.dummyjson.com" + } + ], + "returnPolicy": "7 days return policy", + "minimumOrderQuantity": 48, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "5503491330693", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Cat%20Food/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Cat%20Food/thumbnail.png" + }, + { + "id": "19", + "title": "Chicken Meat", + "description": "Fresh and tender chicken meat, suitable for various culinary preparations.", + "category": "groceries", + "price": 9.99, + "discountPercentage": 10.46, + "rating": 4.61, + "stock": 69, + "tags": [ + "meat" + ], + "sku": "G5YEHW7B", + "weight": 7, + "dimensions": { + "width": 15.96, + "height": 29.24, + "depth": 26.25 + }, + "warrantyInformation": "Lifetime warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Sophia Jones", + "reviewerEmail": "sophia.jones@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Great value for money!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Maya Reed", + "reviewerEmail": "maya.reed@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Highly recommended!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Harper Turner", + "reviewerEmail": "harper.turner@x.dummyjson.com" + } + ], + "returnPolicy": "7 days return policy", + "minimumOrderQuantity": 46, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "0966223559510", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Chicken%20Meat/1.png", + "https://cdn.dummyjson.com/products/images/groceries/Chicken%20Meat/2.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Chicken%20Meat/thumbnail.png" + }, + { + "id": "20", + "title": "Cooking Oil", + "description": "Versatile cooking oil suitable for frying, sautéing, and various culinary applications.", + "category": "groceries", + "price": 4.99, + "discountPercentage": 18.89, + "rating": 4.01, + "stock": 22, + "tags": [ + "cooking essentials" + ], + "sku": "Q6ZP1UY8", + "weight": 8, + "dimensions": { + "width": 8.18, + "height": 27.45, + "depth": 27.88 + }, + "warrantyInformation": "Lifetime warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Mason Parker", + "reviewerEmail": "mason.parker@x.dummyjson.com" + }, + { + "rating": 3, + "comment": "Poor quality!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Jonathan Pierce", + "reviewerEmail": "jonathan.pierce@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Alexander Hernandez", + "reviewerEmail": "alexander.hernandez@x.dummyjson.com" + } + ], + "returnPolicy": "60 days return policy", + "minimumOrderQuantity": 2, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "6707669443381", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Cooking%20Oil/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Cooking%20Oil/thumbnail.png" + }, + { + "id": "21", + "title": "Cucumber", + "description": "Crisp and hydrating cucumbers, ideal for salads, snacks, or as a refreshing side.", + "category": "groceries", + "price": 1.49, + "discountPercentage": 11.44, + "rating": 4.71, + "stock": 22, + "tags": [ + "vegetables" + ], + "sku": "6KGF2K6Z", + "weight": 9, + "dimensions": { + "width": 11.04, + "height": 20.5, + "depth": 8.18 + }, + "warrantyInformation": "5 year warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Elijah Hill", + "reviewerEmail": "elijah.hill@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Fast shipping!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Liam Garcia", + "reviewerEmail": "liam.garcia@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Excellent quality!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Ella Cook", + "reviewerEmail": "ella.cook@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 7, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "2597004869708", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Cucumber/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Cucumber/thumbnail.png" + }, + { + "id": "22", + "title": "Dog Food", + "description": "Specially formulated dog food designed to provide essential nutrients for your canine companion.", + "category": "groceries", + "price": 10.99, + "discountPercentage": 18.15, + "rating": 2.74, + "stock": 40, + "tags": [ + "pet supplies", + "dog food" + ], + "sku": "A6QRCH37", + "weight": 2, + "dimensions": { + "width": 29.39, + "height": 29.77, + "depth": 20.54 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Leo Rivera", + "reviewerEmail": "leo.rivera@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Highly recommended!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Alexander Jones", + "reviewerEmail": "alexander.jones@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Addison Wright", + "reviewerEmail": "addison.wright@x.dummyjson.com" + } + ], + "returnPolicy": "90 days return policy", + "minimumOrderQuantity": 29, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "7957222289508", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Dog%20Food/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Dog%20Food/thumbnail.png" + }, + { + "id": "23", + "title": "Eggs", + "description": "Fresh eggs, a versatile ingredient for baking, cooking, or breakfast.", + "category": "groceries", + "price": 2.99, + "discountPercentage": 5.8, + "rating": 4.46, + "stock": 10, + "tags": [ + "dairy" + ], + "sku": "YA617RI7", + "weight": 4, + "dimensions": { + "width": 12.3, + "height": 10.99, + "depth": 15.53 + }, + "warrantyInformation": "3 year warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 2, + "comment": "Very unhappy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Mateo Perez", + "reviewerEmail": "mateo.perez@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Cameron Perez", + "reviewerEmail": "cameron.perez@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Aurora Barnes", + "reviewerEmail": "aurora.barnes@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 43, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "7095702028776", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Eggs/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Eggs/thumbnail.png" + }, + { + "id": "24", + "title": "Fish Steak", + "description": "Quality fish steak, suitable for grilling, baking, or pan-searing.", + "category": "groceries", + "price": 14.99, + "discountPercentage": 7, + "rating": 4.83, + "stock": 99, + "tags": [ + "seafood" + ], + "sku": "XNIH1MTA", + "weight": 8, + "dimensions": { + "width": 20.14, + "height": 8.4, + "depth": 10.01 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Great value for money!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Michael Johnson", + "reviewerEmail": "michael.johnson@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Julian Newton", + "reviewerEmail": "julian.newton@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Excellent quality!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Lila Hudson", + "reviewerEmail": "lila.hudson@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 49, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "4250692197342", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Fish%20Steak/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Fish%20Steak/thumbnail.png" + }, + { + "id": "25", + "title": "Green Bell Pepper", + "description": "Fresh and vibrant green bell pepper, perfect for adding color and flavor to your dishes.", + "category": "groceries", + "price": 1.29, + "discountPercentage": 15.5, + "rating": 4.28, + "stock": 89, + "tags": [ + "vegetables" + ], + "sku": "HU7S7VQ0", + "weight": 7, + "dimensions": { + "width": 7.32, + "height": 14.31, + "depth": 21.38 + }, + "warrantyInformation": "5 year warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Excellent quality!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Maya Reed", + "reviewerEmail": "maya.reed@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Madison Collins", + "reviewerEmail": "madison.collins@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Ethan Thompson", + "reviewerEmail": "ethan.thompson@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 1, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "7583442707568", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Green%20Bell%20Pepper/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Green%20Bell%20Pepper/thumbnail.png" + }, + { + "id": "26", + "title": "Green Chili Pepper", + "description": "Spicy green chili pepper, ideal for adding heat to your favorite recipes.", + "category": "groceries", + "price": 0.99, + "discountPercentage": 18.51, + "rating": 4.43, + "stock": 8, + "tags": [ + "vegetables" + ], + "sku": "Y4RM3JCB", + "weight": 2, + "dimensions": { + "width": 18.67, + "height": 21.17, + "depth": 25.26 + }, + "warrantyInformation": "No warranty", + "shippingInformation": "Ships in 1-2 business days", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 2, + "comment": "Disappointing product!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Mateo Bennett", + "reviewerEmail": "mateo.bennett@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Natalie Price", + "reviewerEmail": "natalie.price@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Avery Barnes", + "reviewerEmail": "avery.barnes@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 43, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "8400326844874", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Green%20Chili%20Pepper/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Green%20Chili%20Pepper/thumbnail.png" + }, + { + "id": "27", + "title": "Honey Jar", + "description": "Pure and natural honey in a convenient jar, perfect for sweetening beverages or drizzling over food.", + "category": "groceries", + "price": 6.99, + "discountPercentage": 1.91, + "rating": 3.5, + "stock": 25, + "tags": [ + "condiments" + ], + "sku": "BTBNIIOU", + "weight": 9, + "dimensions": { + "width": 26.53, + "height": 27.11, + "depth": 6.63 + }, + "warrantyInformation": "2 year warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Fast shipping!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Nicholas Bailey", + "reviewerEmail": "nicholas.bailey@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Awesome product!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Gabriel Hayes", + "reviewerEmail": "gabriel.hayes@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "James Garcia", + "reviewerEmail": "james.garcia@x.dummyjson.com" + } + ], + "returnPolicy": "90 days return policy", + "minimumOrderQuantity": 1, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "0668665656044", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Honey%20Jar/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Honey%20Jar/thumbnail.png" + }, + { + "id": "28", + "title": "Ice Cream", + "description": "Creamy and delicious ice cream, available in various flavors for a delightful treat.", + "category": "groceries", + "price": 5.49, + "discountPercentage": 7.58, + "rating": 3.77, + "stock": 76, + "tags": [ + "desserts" + ], + "sku": "VEZMU1EQ", + "weight": 5, + "dimensions": { + "width": 17.66, + "height": 24.49, + "depth": 25.98 + }, + "warrantyInformation": "2 year warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Elena Baker", + "reviewerEmail": "elena.baker@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Madeline Simpson", + "reviewerEmail": "madeline.simpson@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Caleb Nelson", + "reviewerEmail": "caleb.nelson@x.dummyjson.com" + } + ], + "returnPolicy": "No return policy", + "minimumOrderQuantity": 19, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "9603960319256", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Ice%20Cream/1.png", + "https://cdn.dummyjson.com/products/images/groceries/Ice%20Cream/2.png", + "https://cdn.dummyjson.com/products/images/groceries/Ice%20Cream/3.png", + "https://cdn.dummyjson.com/products/images/groceries/Ice%20Cream/4.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Ice%20Cream/thumbnail.png" + }, + { + "id": "29", + "title": "Juice", + "description": "Refreshing fruit juice, packed with vitamins and great for staying hydrated.", + "category": "groceries", + "price": 3.99, + "discountPercentage": 5.45, + "rating": 3.41, + "stock": 99, + "tags": [ + "beverages" + ], + "sku": "M2K19S06", + "weight": 2, + "dimensions": { + "width": 8.97, + "height": 12.26, + "depth": 15.05 + }, + "warrantyInformation": "1 week warranty", + "shippingInformation": "Ships in 1-2 business days", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Leo Rivera", + "reviewerEmail": "leo.rivera@x.dummyjson.com" + }, + { + "rating": 2, + "comment": "Not worth the price!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Ethan Martinez", + "reviewerEmail": "ethan.martinez@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Excellent quality!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Max Parker", + "reviewerEmail": "max.parker@x.dummyjson.com" + } + ], + "returnPolicy": "90 days return policy", + "minimumOrderQuantity": 26, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "8546824122355", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Juice/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Juice/thumbnail.png" + }, + { + "id": "30", + "title": "Kiwi", + "description": "Nutrient-rich kiwi, perfect for snacking or adding a tropical twist to your dishes.", + "category": "groceries", + "price": 2.49, + "discountPercentage": 10.32, + "rating": 4.37, + "stock": 1, + "tags": [ + "fruits" + ], + "sku": "0X3NORB9", + "weight": 8, + "dimensions": { + "width": 27.3, + "height": 7.48, + "depth": 15.08 + }, + "warrantyInformation": "6 months warranty", + "shippingInformation": "Ships in 3-5 business days", + "availabilityStatus": "Low Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Nora Russell", + "reviewerEmail": "nora.russell@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Dylan Wells", + "reviewerEmail": "dylan.wells@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Noah Hernandez", + "reviewerEmail": "noah.hernandez@x.dummyjson.com" + } + ], + "returnPolicy": "7 days return policy", + "minimumOrderQuantity": 8, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "3325493172934", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Kiwi/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Kiwi/thumbnail.png" + }, + { + "id": "caeb", + "title": "Gucci Belt", + "description": "Gucci Belt", + "brand": "Gucci", + "category": "beauty", + "price": 45, + "discountPercentage": 35, + "stock": 9, + "thumbnail": "https://images-cdn.ubuy.co.in/6340119aa00848332523d5b9-gucci-belt-u-07-gu-24186.jpg", + "images": [ + "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ3GFf5cstnkS6xmvA5ySarmKkhtYsHquDC_A&s", + "https://images-cdn.ubuy.co.in/6340119aa00848332523d5b9-gucci-belt-u-07-gu-24186.jpg" + ], + "discount": null + } + ], + "brands": [ + { + "value": "Essence", + "label": "Essence", + "checked": false, + "id": "e23f" + }, + { + "value": "Glamour Beauty", + "label": "Glamour Beauty", + "checked": false, + "id": "6c60" + }, + { + "value": "Velvet Touch", + "label": "Velvet Touch", + "checked": false, + "id": "3062" + }, + { + "value": "Chic Cosmetics", + "label": "Chic Cosmetics", + "checked": false, + "id": "77ce" + }, + { + "value": "Nail Couture", + "label": "Nail Couture", + "checked": false, + "id": "b6ef" + }, + { + "value": "Calvin Klein", + "label": "Calvin Klein", + "checked": false, + "id": "b33c" + }, + { + "value": "Chanel", + "label": "Chanel", + "checked": false, + "id": "8d3f" + }, + { + "value": "Dior", + "label": "Dior", + "checked": false, + "id": "839a" + }, + { + "value": "Dolce & Gabbana", + "label": "Dolce & Gabbana", + "checked": false, + "id": "ded7" + }, + { + "value": "Gucci", + "label": "Gucci", + "checked": false, + "id": "8fb0" + }, + { + "value": "Annibale Colombo", + "label": "Annibale Colombo", + "checked": false, + "id": "c798" + }, + { + "value": "Furniture Co.", + "label": "Furniture Co.", + "checked": false, + "id": "6b10" + }, + { + "value": "Knoll", + "label": "Knoll", + "checked": false, + "id": "9c28" + }, + { + "value": "Bath Trends", + "label": "Bath Trends", + "checked": false, + "id": "84e2" + } + ], + "categories": [ + { + "value": "beauty", + "label": "Beauty", + "checked": false, + "id": "3040" + }, + { + "value": "fragrances", + "label": "Fragrances", + "checked": false, + "id": "3dc4" + }, + { + "value": "furniture", + "label": "Furniture", + "checked": false, + "id": "1cc4" + }, + { + "value": "groceries", + "label": "Groceries", + "checked": false, + "id": "0d7a" + } + ], + "users": [ + { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza Tankiwala 3", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir ", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + } + ] + }, + { + "id": "0afe", + "email": "test2@gmail.com", + "password": "Tankiwala123", + "role": "user", + "addresses": [ + { + "name": "Ammar ", + "email": "ammar@example.com", + "phone": "14520566", + "street": "1102,Dhar Road", + "city": "Kolkata", + "state": "West Bengal", + "pinCode": "4520012" + } + ] + }, + { + "id": "86e2", + "email": "admin@gmail.com", + "password": "Admin123", + "addresses": [ + { + "name": "Murtaza Tankiwala", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + } + ], + "role": "admin" + } + ], + "cart": [], + "orders": [ + { + "id": "d496", + "items": [ + { + "id": "6a4c", + "title": "Red Lipstick", + "description": "The Red Lipstick is a classic and bold choice for adding a pop of color to your lips. With a creamy and pigmented formula, it provides a vibrant and long-lasting finish.", + "category": "beauty", + "price": 12.99, + "discountPercentage": 19.03, + "rating": 2.51, + "stock": 68, + "tags": [ + "beauty", + "lipstick" + ], + "brand": "Chic Cosmetics", + "sku": "O5IF1NTA", + "weight": 5, + "dimensions": { + "width": 14.37, + "height": 13.94, + "depth": 14.6 + }, + "warrantyInformation": "Lifetime warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Leo Rivera", + "reviewerEmail": "leo.rivera@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Oscar Powers", + "reviewerEmail": "oscar.powers@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Carter Rivera", + "reviewerEmail": "carter.rivera@x.dummyjson.com" + } + ], + "returnPolicy": "90 days return policy", + "minimumOrderQuantity": 6, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "9444582199406", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Red%20Lipstick/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Red%20Lipstick/thumbnail.png", + "quantity": 1, + "user": "cb1b" + }, + { + "id": "f1fc", + "title": "Powder Canister", + "description": "The Powder Canister is a finely milled setting powder designed to set makeup and control shine. With a lightweight and translucent formula, it provides a smooth and matte finish.", + "category": "beauty", + "price": 14.99, + "discountPercentage": 18.14, + "rating": 3.82, + "stock": 59, + "tags": [ + "beauty", + "face powder" + ], + "brand": "Velvet Touch", + "sku": "9EN8WLT2", + "weight": 8, + "dimensions": { + "width": 24.16, + "height": 10.7, + "depth": 11.07 + }, + "warrantyInformation": "2 year warranty", + "shippingInformation": "Ships in 1-2 business days", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Ethan Thompson", + "reviewerEmail": "ethan.thompson@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Great value for money!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Levi Hicks", + "reviewerEmail": "levi.hicks@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Hazel Gardner", + "reviewerEmail": "hazel.gardner@x.dummyjson.com" + } + ], + "returnPolicy": "60 days return policy", + "minimumOrderQuantity": 25, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "0516267971277", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Powder%20Canister/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Powder%20Canister/thumbnail.png", + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 27.98, + "totalItems": 2, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "addresses": [ + { + "name": "Murtaza Tankiwala", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + }, + { + "name": "Murtaza Tankiwala", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + } + ] + }, + "selectedAddress": { + "name": "Murtaza Tankiwala", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + }, + "paymentMethod": "cash", + "status": "dispatched" + }, + { + "id": "f1e8", + "items": [ + { + "id": "05fe", + "title": "Eyeshadow Palette with Mirror", + "description": "The Eyeshadow Palette with Mirror offers a versatile range of eyeshadow shades for creating stunning eye looks. With a built-in mirror, it's convenient for on-the-go makeup application.", + "category": "beauty", + "price": 19.99, + "discountPercentage": 5.5, + "rating": 3.28, + "stock": 44, + "tags": [ + "beauty", + "eyeshadow" + ], + "brand": "Glamour Beauty", + "sku": "MVCFH27F", + "weight": 3, + "dimensions": { + "width": 12.42, + "height": 8.63, + "depth": 29.13 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Liam Garcia", + "reviewerEmail": "liam.garcia@x.dummyjson.com" + }, + { + "rating": 1, + "comment": "Very disappointed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Nora Russell", + "reviewerEmail": "nora.russell@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Elena Baker", + "reviewerEmail": "elena.baker@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 32, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "2817839095220", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Eyeshadow%20Palette%20with%20Mirror/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Eyeshadow%20Palette%20with%20Mirror/thumbnail.png", + "quantity": 1, + "user": "0afe" + }, + { + "id": "6ddf", + "title": "Red Lipstick", + "description": "The Red Lipstick is a classic and bold choice for adding a pop of color to your lips. With a creamy and pigmented formula, it provides a vibrant and long-lasting finish.", + "category": "beauty", + "price": 12.99, + "discountPercentage": 19.03, + "rating": 2.51, + "stock": 68, + "tags": [ + "beauty", + "lipstick" + ], + "brand": "Chic Cosmetics", + "sku": "O5IF1NTA", + "weight": 5, + "dimensions": { + "width": 14.37, + "height": 13.94, + "depth": 14.6 + }, + "warrantyInformation": "Lifetime warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Leo Rivera", + "reviewerEmail": "leo.rivera@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Oscar Powers", + "reviewerEmail": "oscar.powers@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Carter Rivera", + "reviewerEmail": "carter.rivera@x.dummyjson.com" + } + ], + "returnPolicy": "90 days return policy", + "minimumOrderQuantity": 6, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "9444582199406", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Red%20Lipstick/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Red%20Lipstick/thumbnail.png", + "quantity": 1, + "user": "0afe" + } + ], + "totalAmount": 32.98, + "totalItems": 2, + "user": { + "id": "0afe", + "email": "test2@gmail.com", + "password": "Tankiwala123", + "addresses": [ + { + "name": "Ammar ", + "email": "ammar@example.com", + "phone": "14520566", + "street": "1102,Dhar Road", + "city": "Kolkata", + "state": "West Bengal", + "pinCode": "4520012" + } + ] + }, + "selectedAddress": { + "name": "Ammar ", + "email": "ammar@example.com", + "phone": "14520566", + "street": "1102,Dhar Road", + "city": "Kolkata", + "state": "West Bengal", + "pinCode": "4520012" + }, + "paymentMethod": "card", + "status": "delivered" + }, + { + "id": "6cf3", + "items": [ + { + "id": "efca", + "title": "Eyeshadow Palette with Mirror", + "description": "The Eyeshadow Palette with Mirror offers a versatile range of eyeshadow shades for creating stunning eye looks. With a built-in mirror, it's convenient for on-the-go makeup application.", + "category": "beauty", + "price": 19.99, + "discountPercentage": 5.5, + "rating": 3.28, + "stock": 44, + "tags": [ + "beauty", + "eyeshadow" + ], + "brand": "Glamour Beauty", + "sku": "MVCFH27F", + "weight": 3, + "dimensions": { + "width": 12.42, + "height": 8.63, + "depth": 29.13 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Liam Garcia", + "reviewerEmail": "liam.garcia@x.dummyjson.com" + }, + { + "rating": 1, + "comment": "Very disappointed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Nora Russell", + "reviewerEmail": "nora.russell@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Elena Baker", + "reviewerEmail": "elena.baker@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 32, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "2817839095220", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Eyeshadow%20Palette%20with%20Mirror/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Eyeshadow%20Palette%20with%20Mirror/thumbnail.png", + "quantity": 2, + "user": "cb1b" + }, + { + "id": "f678", + "title": "Eggs", + "description": "Fresh eggs, a versatile ingredient for baking, cooking, or breakfast.", + "category": "groceries", + "price": 2.99, + "discountPercentage": 5.8, + "rating": 4.46, + "stock": 10, + "tags": [ + "dairy" + ], + "sku": "YA617RI7", + "weight": 4, + "dimensions": { + "width": 12.3, + "height": 10.99, + "depth": 15.53 + }, + "warrantyInformation": "3 year warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 2, + "comment": "Very unhappy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Mateo Perez", + "reviewerEmail": "mateo.perez@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Cameron Perez", + "reviewerEmail": "cameron.perez@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Aurora Barnes", + "reviewerEmail": "aurora.barnes@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 43, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "7095702028776", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Eggs/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Eggs/thumbnail.png", + "quantity": 4, + "user": "cb1b" + } + ], + "totalAmount": 51.94, + "totalItems": 6, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "addresses": [ + { + "name": "Murtaza Tankiwala", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + }, + { + "name": "Murtaza Tankiwala", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + } + ] + }, + "selectedAddress": { + "name": "Murtaza Tankiwala", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + }, + "paymentMethod": "card", + "status": "dispatched" + }, + { + "id": "3802", + "items": [ + { + "id": "92dd", + "title": "Fish Steak", + "description": "Quality fish steak, suitable for grilling, baking, or pan-searing.", + "category": "groceries", + "price": 14.99, + "discountPercentage": 7, + "rating": 4.83, + "stock": 99, + "tags": [ + "seafood" + ], + "sku": "XNIH1MTA", + "weight": 8, + "dimensions": { + "width": 20.14, + "height": 8.4, + "depth": 10.01 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Great value for money!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Michael Johnson", + "reviewerEmail": "michael.johnson@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Julian Newton", + "reviewerEmail": "julian.newton@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Excellent quality!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Lila Hudson", + "reviewerEmail": "lila.hudson@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 49, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "4250692197342", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Fish%20Steak/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Fish%20Steak/thumbnail.png", + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 14.99, + "totalItems": 1, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "addresses": [ + { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + { + "name": "Jack Hill", + "email": "jack@gmail.com", + "phone": "12345", + "street": "11th road", + "address": "Mumbai", + "state": "Maharastra", + "pinCode": "452003", + "city": "Mumbai" + } + ] + }, + "selectedAddress": { + "name": "Jack Hill", + "email": "jack@gmail.com", + "phone": "12345", + "street": "11th road", + "address": "Mumbai", + "state": "Maharastra", + "pinCode": "452003", + "city": "Mumbai" + }, + "paymentMethod": "card", + "status": "delivered" + }, + { + "id": "5c73", + "items": [ + { + "id": "7d4d", + "title": "Cooking Oil", + "description": "Versatile cooking oil suitable for frying, sautéing, and various culinary applications.", + "category": "groceries", + "price": 4.99, + "discountPercentage": 18.89, + "rating": 4.01, + "stock": 22, + "tags": [ + "cooking essentials" + ], + "sku": "Q6ZP1UY8", + "weight": 8, + "dimensions": { + "width": 8.18, + "height": 27.45, + "depth": 27.88 + }, + "warrantyInformation": "Lifetime warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Mason Parker", + "reviewerEmail": "mason.parker@x.dummyjson.com" + }, + { + "rating": 3, + "comment": "Poor quality!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Jonathan Pierce", + "reviewerEmail": "jonathan.pierce@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Would buy again!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Alexander Hernandez", + "reviewerEmail": "alexander.hernandez@x.dummyjson.com" + } + ], + "returnPolicy": "60 days return policy", + "minimumOrderQuantity": 2, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "6707669443381", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Cooking%20Oil/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Cooking%20Oil/thumbnail.png", + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 4.99, + "totalItems": 1, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "addresses": [ + { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + { + "name": "Jack Hill", + "email": "jack@gmail.com", + "phone": "12345", + "street": "11th road", + "address": "Mumbai", + "state": "Maharastra", + "pinCode": "452003", + "city": "Mumbai" + } + ] + }, + "selectedAddress": { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + "paymentMethod": "card", + "status": "pending" + }, + { + "id": "0a5b", + "items": [ + { + "id": "6614", + "title": "Red Nail Polish", + "description": "The Red Nail Polish offers a rich and glossy red hue for vibrant and polished nails. With a quick-drying formula, it provides a salon-quality finish at home.", + "category": "beauty", + "price": 8.99, + "discountPercentage": 2.46, + "rating": 3.91, + "stock": 71, + "tags": [ + "beauty", + "nail polish" + ], + "brand": "Nail Couture", + "sku": "YUIIIP4W", + "weight": 9, + "dimensions": { + "width": 8.11, + "height": 10.89, + "depth": 29.06 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 1 week", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Leo Rivera", + "reviewerEmail": "leo.rivera@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Evan Reed", + "reviewerEmail": "evan.reed@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Highly recommended!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Evelyn Sanchez", + "reviewerEmail": "evelyn.sanchez@x.dummyjson.com" + } + ], + "returnPolicy": "No return policy", + "minimumOrderQuantity": 46, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "3212847902461", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Red%20Nail%20Polish/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Red%20Nail%20Polish/thumbnail.png", + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 8.99, + "totalItems": 1, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + { + "name": "Jack Hill", + "email": "jack@gmail.com", + "phone": "12345", + "street": "11th road", + "address": "Mumbai", + "state": "Maharastra", + "pinCode": "452003", + "city": "Mumbai" + }, + { + "name": "Brat", + "email": "brat@gmail.com", + "phone": "4568745623", + "street": "12th street", + "city": "Pune", + "state": "Maharashtra", + "pinCode": "4520014" + } + ] + }, + "selectedAddress": { + "name": "Brat", + "email": "brat@gmail.com", + "phone": "4568745623", + "street": "12th street", + "city": "Pune", + "state": "Maharashtra", + "pinCode": "4520014" + }, + "paymentMethod": "cash", + "status": "pending" + }, + { + "id": "a37d", + "items": [ + { + "id": "230f", + "title": "Red Nail Polish", + "description": "The Red Nail Polish offers a rich and glossy red hue for vibrant and polished nails. With a quick-drying formula, it provides a salon-quality finish at home.", + "category": "beauty", + "price": 8.99, + "discountPercentage": 2.46, + "rating": 3.91, + "stock": 71, + "tags": [ + "beauty", + "nail polish" + ], + "brand": "Nail Couture", + "sku": "YUIIIP4W", + "weight": 9, + "dimensions": { + "width": 8.11, + "height": 10.89, + "depth": 29.06 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 1 week", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Leo Rivera", + "reviewerEmail": "leo.rivera@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Evan Reed", + "reviewerEmail": "evan.reed@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Highly recommended!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Evelyn Sanchez", + "reviewerEmail": "evelyn.sanchez@x.dummyjson.com" + } + ], + "returnPolicy": "No return policy", + "minimumOrderQuantity": 46, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "3212847902461", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Red%20Nail%20Polish/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Red%20Nail%20Polish/thumbnail.png", + "quantity": 2, + "user": "cb1b" + } + ], + "totalAmount": 17.98, + "totalItems": 2, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + { + "name": "Jack Hill", + "email": "jack@gmail.com", + "phone": "12345", + "street": "11th road", + "address": "Mumbai", + "state": "Maharastra", + "pinCode": "452003", + "city": "Mumbai" + }, + { + "name": "Brat", + "email": "brat@gmail.com", + "phone": "4568745623", + "street": "12th street", + "city": "Pune", + "state": "Maharashtra", + "pinCode": "4520014" + } + ] + }, + "selectedAddress": { + "name": "Brat", + "email": "brat@gmail.com", + "phone": "4568745623", + "street": "12th street", + "city": "Pune", + "state": "Maharashtra", + "pinCode": "4520014" + }, + "paymentMethod": "cash", + "status": "pending" + }, + { + "id": "9337", + "items": [ + { + "id": "bccc", + "title": "Eyeshadow Palette with Mirror", + "description": "The Eyeshadow Palette with Mirror offers a versatile range of eyeshadow shades for creating stunning eye looks. With a built-in mirror, it's convenient for on-the-go makeup application.", + "category": "beauty", + "price": 19.99, + "discountPercentage": 5.5, + "rating": 3.28, + "stock": 44, + "tags": [ + "beauty", + "eyeshadow" + ], + "brand": "Glamour Beauty", + "sku": "MVCFH27F", + "weight": 3, + "dimensions": { + "width": 12.42, + "height": 8.63, + "depth": 29.13 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Liam Garcia", + "reviewerEmail": "liam.garcia@x.dummyjson.com" + }, + { + "rating": 1, + "comment": "Very disappointed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Nora Russell", + "reviewerEmail": "nora.russell@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Elena Baker", + "reviewerEmail": "elena.baker@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 32, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "2817839095220", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Eyeshadow%20Palette%20with%20Mirror/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Eyeshadow%20Palette%20with%20Mirror/thumbnail.png", + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 19, + "totalItems": 1, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + } + ] + }, + "selectedAddress": { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + "paymentMethod": "card", + "status": "cancelled" + }, + { + "id": "c7ba", + "items": [ + { + "id": "3e3b", + "title": "Essence Mascara Lash 2", + "description": "The Essence Mascara Lash Princess is a popular mascara known for its volumizing and lengthening effects. Achieve dramatic lashes with this long-lasting and cruelty-free formula.", + "category": "beauty", + "price": 9.99, + "discountPercentage": 7.17, + "rating": 0, + "stock": 5, + "tags": [ + "beauty", + "mascara" + ], + "brand": "Essence", + "sku": "RCH45Q1A", + "weight": 2, + "dimensions": { + "width": 23.17, + "height": 14.43, + "depth": 28.01 + }, + "warrantyInformation": "1 month warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "Low Stock", + "reviews": [ + { + "rating": 2, + "comment": "Very unhappy with my purchase!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "John Doe", + "reviewerEmail": "john.doe@x.dummyjson.com" + }, + { + "rating": 2, + "comment": "Not as described!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Nolan Gonzalez", + "reviewerEmail": "nolan.gonzalez@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Scarlett Wright", + "reviewerEmail": "scarlett.wright@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 24, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "9164035109868", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png", + "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png", + "discount": null, + "deleted": true, + "quantity": 1, + "user": "86e2" + } + ], + "totalAmount": 9, + "totalItems": 1, + "user": { + "id": "86e2", + "email": "admin@gmail.com", + "password": "Admin123", + "addresses": [ + { + "name": "Murtaza Tankiwala", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + } + ], + "role": "admin" + }, + "selectedAddress": { + "name": "Murtaza Tankiwala", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + }, + "paymentMethod": "card", + "status": "pending" + }, + { + "id": "e222", + "items": [ + { + "id": "5891", + "title": "Essence Mascara Lash 2", + "description": "The Essence Mascara Lash Princess is a popular mascara known for its volumizing and lengthening effects. Achieve dramatic lashes with this long-lasting and cruelty-free formula.", + "category": "beauty", + "price": 9.99, + "discountPercentage": 7.17, + "rating": 0, + "stock": 5, + "tags": [ + "beauty", + "mascara" + ], + "brand": "Essence", + "sku": "RCH45Q1A", + "weight": 2, + "dimensions": { + "width": 23.17, + "height": 14.43, + "depth": 28.01 + }, + "warrantyInformation": "1 month warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "Low Stock", + "reviews": [ + { + "rating": 2, + "comment": "Very unhappy with my purchase!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "John Doe", + "reviewerEmail": "john.doe@x.dummyjson.com" + }, + { + "rating": 2, + "comment": "Not as described!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Nolan Gonzalez", + "reviewerEmail": "nolan.gonzalez@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Scarlett Wright", + "reviewerEmail": "scarlett.wright@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 24, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "9164035109868", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png", + "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png", + "discount": null, + "deleted": true, + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 9, + "totalItems": 1, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + } + ] + }, + "selectedAddress": { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + "paymentMethod": "cash", + "status": "pending" + }, + { + "id": "dcc5", + "items": [ + { + "id": "f1e2", + "title": "Essence Mascara Lash 2", + "description": "The Essence Mascara Lash Princess is a popular mascara known for its volumizing and lengthening effects. Achieve dramatic lashes with this long-lasting and cruelty-free formula.", + "category": "beauty", + "price": 9.99, + "discountPercentage": 7.17, + "rating": 0, + "stock": 5, + "tags": [ + "beauty", + "mascara" + ], + "brand": "Essence", + "sku": "RCH45Q1A", + "weight": 2, + "dimensions": { + "width": 23.17, + "height": 14.43, + "depth": 28.01 + }, + "warrantyInformation": "1 month warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "Low Stock", + "reviews": [ + { + "rating": 2, + "comment": "Very unhappy with my purchase!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "John Doe", + "reviewerEmail": "john.doe@x.dummyjson.com" + }, + { + "rating": 2, + "comment": "Not as described!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Nolan Gonzalez", + "reviewerEmail": "nolan.gonzalez@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Scarlett Wright", + "reviewerEmail": "scarlett.wright@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 24, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "9164035109868", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png", + "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Essence%20Mascara%20Lash%20Princess/1.png", + "discount": null, + "deleted": true, + "quantity": 2, + "user": "cb1b" + } + ], + "totalAmount": 18, + "totalItems": 2, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + } + ] + }, + "selectedAddress": { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + "paymentMethod": "cash", + "status": "pending" + }, + { + "id": "7a16", + "items": [ + { + "id": "eaa1", + "title": "Eggs", + "description": "Fresh eggs, a versatile ingredient for baking, cooking, or breakfast.", + "category": "groceries", + "price": 2.99, + "discountPercentage": 5.8, + "rating": 4.46, + "stock": 10, + "tags": [ + "dairy" + ], + "sku": "YA617RI7", + "weight": 4, + "dimensions": { + "width": 12.3, + "height": 10.99, + "depth": 15.53 + }, + "warrantyInformation": "3 year warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 2, + "comment": "Very unhappy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Mateo Perez", + "reviewerEmail": "mateo.perez@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Cameron Perez", + "reviewerEmail": "cameron.perez@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Very happy with my purchase!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Aurora Barnes", + "reviewerEmail": "aurora.barnes@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 43, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "7095702028776", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Eggs/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Eggs/thumbnail.png", + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 3, + "totalItems": 1, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + } + ] + }, + "selectedAddress": { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + "paymentMethod": "card", + "status": "pending" + }, + { + "id": "17a9", + "items": [ + { + "id": "baa3", + "title": "Honey Jar", + "description": "Pure and natural honey in a convenient jar, perfect for sweetening beverages or drizzling over food.", + "category": "groceries", + "price": 6.99, + "discountPercentage": 1.91, + "rating": 3.5, + "stock": 25, + "tags": [ + "condiments" + ], + "sku": "BTBNIIOU", + "weight": 9, + "dimensions": { + "width": 26.53, + "height": 27.11, + "depth": 6.63 + }, + "warrantyInformation": "2 year warranty", + "shippingInformation": "Ships overnight", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Fast shipping!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Nicholas Bailey", + "reviewerEmail": "nicholas.bailey@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Awesome product!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Gabriel Hayes", + "reviewerEmail": "gabriel.hayes@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "James Garcia", + "reviewerEmail": "james.garcia@x.dummyjson.com" + } + ], + "returnPolicy": "90 days return policy", + "minimumOrderQuantity": 1, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "0668665656044", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Honey%20Jar/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Honey%20Jar/thumbnail.png", + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 7, + "totalItems": 1, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + } + ] + }, + "selectedAddress": { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + "paymentMethod": "cash", + "status": "cancelled" + }, + { + "id": "a963", + "items": [ + { + "id": "fffe", + "title": "Chicken Meat", + "description": "Fresh and tender chicken meat, suitable for various culinary preparations.", + "category": "groceries", + "price": 9.99, + "discountPercentage": 10.46, + "rating": 4.61, + "stock": 69, + "tags": [ + "meat" + ], + "sku": "G5YEHW7B", + "weight": 7, + "dimensions": { + "width": 15.96, + "height": 29.24, + "depth": 26.25 + }, + "warrantyInformation": "Lifetime warranty", + "shippingInformation": "Ships in 1 month", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Sophia Jones", + "reviewerEmail": "sophia.jones@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Great value for money!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Maya Reed", + "reviewerEmail": "maya.reed@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Highly recommended!", + "date": "2024-05-23T08:56:21.620Z", + "reviewerName": "Harper Turner", + "reviewerEmail": "harper.turner@x.dummyjson.com" + } + ], + "returnPolicy": "7 days return policy", + "minimumOrderQuantity": 46, + "meta": { + "createdAt": "2024-05-23T08:56:21.620Z", + "updatedAt": "2024-05-23T08:56:21.620Z", + "barcode": "0966223559510", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/groceries/Chicken%20Meat/1.png", + "https://cdn.dummyjson.com/products/images/groceries/Chicken%20Meat/2.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/groceries/Chicken%20Meat/thumbnail.png", + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 9, + "totalItems": 1, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + } + ] + }, + "selectedAddress": { + "name": "Murtaza ", + "email": "murtazashabbir14@gmail.com", + "phone": "7869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir bhai Khergonewala", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002", + "address": "Indore" + }, + "paymentMethod": "cash", + "status": "pending" + }, + { + "id": "f9fb", + "items": [ + { + "id": "d68e", + "title": "Eyeshadow Palette with Mirror", + "description": "The Eyeshadow Palette with Mirror offers a versatile range of eyeshadow shades for creating stunning eye looks. With a built-in mirror, it's convenient for on-the-go makeup application.", + "category": "beauty", + "price": 19.99, + "discountPercentage": 5.5, + "rating": 3.28, + "stock": 44, + "tags": [ + "beauty", + "eyeshadow" + ], + "brand": "Glamour Beauty", + "sku": "MVCFH27F", + "weight": 3, + "dimensions": { + "width": 12.42, + "height": 8.63, + "depth": 29.13 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 2 weeks", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 4, + "comment": "Very satisfied!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Liam Garcia", + "reviewerEmail": "liam.garcia@x.dummyjson.com" + }, + { + "rating": 1, + "comment": "Very disappointed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Nora Russell", + "reviewerEmail": "nora.russell@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Highly impressed!", + "date": "2024-05-23T08:56:21.618Z", + "reviewerName": "Elena Baker", + "reviewerEmail": "elena.baker@x.dummyjson.com" + } + ], + "returnPolicy": "30 days return policy", + "minimumOrderQuantity": 32, + "meta": { + "createdAt": "2024-05-23T08:56:21.618Z", + "updatedAt": "2024-05-23T08:56:21.618Z", + "barcode": "2817839095220", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Eyeshadow%20Palette%20with%20Mirror/1.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Eyeshadow%20Palette%20with%20Mirror/thumbnail.png", + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 19, + "totalItems": 1, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza Tankiwala 2", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir ", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + } + ] + }, + "selectedAddress": { + "name": "Murtaza Tankiwala 2", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir ", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + }, + "paymentMethod": "cash", + "status": "pending" + }, + { + "id": "627f", + "items": [ + { + "id": "970f", + "title": "Red Nail Polish Premium", + "description": "The Red Nail Polish offers a rich and glossy red hue for vibrant and polished nails. With a quick-drying formula, it provides a salon-quality finish at home.", + "category": "beauty", + "price": 8.99, + "discountPercentage": 2.46, + "rating": 3.91, + "stock": 71, + "tags": [ + "beauty", + "nail polish" + ], + "brand": "Nail Couture", + "sku": "YUIIIP4W", + "weight": 9, + "dimensions": { + "width": 8.11, + "height": 10.89, + "depth": 29.06 + }, + "warrantyInformation": "1 year warranty", + "shippingInformation": "Ships in 1 week", + "availabilityStatus": "In Stock", + "reviews": [ + { + "rating": 5, + "comment": "Very pleased!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Leo Rivera", + "reviewerEmail": "leo.rivera@x.dummyjson.com" + }, + { + "rating": 5, + "comment": "Great product!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Evan Reed", + "reviewerEmail": "evan.reed@x.dummyjson.com" + }, + { + "rating": 4, + "comment": "Highly recommended!", + "date": "2024-05-23T08:56:21.619Z", + "reviewerName": "Evelyn Sanchez", + "reviewerEmail": "evelyn.sanchez@x.dummyjson.com" + } + ], + "returnPolicy": "No return policy", + "minimumOrderQuantity": 46, + "meta": { + "createdAt": "2024-05-23T08:56:21.619Z", + "updatedAt": "2024-05-23T08:56:21.619Z", + "barcode": "3212847902461", + "qrCode": "https://dummyjson.com/public/qr-code.png" + }, + "images": [ + "https://cdn.dummyjson.com/products/images/beauty/Red%20Nail%20Polish/1.png", + "https://cdn.dummyjson.com/products/images/beauty/Red%20Nail%20Polish/thumbnail.png" + ], + "thumbnail": "https://cdn.dummyjson.com/products/images/beauty/Red%20Nail%20Polish/thumbnail.png", + "discount": null, + "quantity": 1, + "user": "cb1b" + } + ], + "totalAmount": 9, + "totalItems": 1, + "user": { + "id": "cb1b", + "email": "test@123.com", + "password": "Murtaza123", + "role": "user", + "addresses": [ + { + "name": "Murtaza Tankiwala 2", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir ", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + } + ] + }, + "selectedAddress": { + "name": "Murtaza Tankiwala 2", + "email": "murtazashabbir14@gmail.com", + "phone": "07869558609", + "street": "1109 - Noorani Nagar - Near M.Shabbir ", + "city": "Indore", + "state": "Madhya Pradesh", + "pinCode": "452002" + }, + "paymentMethod": "cash", + "status": "pending" + } + ] +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ec3724a..e85912b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "@testing-library/user-event": "^14.4.3", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-hook-form": "^7.52.0", "react-redux": "^8.0.5", "react-router-dom": "^6.10.0", "react-scripts": "5.0.1", @@ -14455,6 +14456,21 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "node_modules/react-hook-form": { + "version": "7.52.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.52.0.tgz", + "integrity": "sha512-mJX506Xc6mirzLsmXUJyqlAI3Kj9Ph2RhplYhUVffeOQSnubK2uVqBFOBJmvKikvbFV91pxVXmDiR+QMF19x6A==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", diff --git a/package.json b/package.json index 377571d..e236cb8 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@testing-library/user-event": "^14.4.3", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-hook-form": "^7.52.0", "react-redux": "^8.0.5", "react-router-dom": "^6.10.0", "react-scripts": "5.0.1", diff --git a/src/App.js b/src/App.js index 23895b6..9c2ad7b 100644 --- a/src/App.js +++ b/src/App.js @@ -1,47 +1,155 @@ -import { Counter } from './features/counter/Counter'; -import './App.css'; -import Home from './pages/Home'; -import LoginPage from './pages/LoginPage'; -import SignupPage from './pages/SignupPage'; +import { Counter } from "./features/counter/Counter"; +import "./App.css"; +import Home from "./pages/Home"; +import LoginPage from "./pages/LoginPage"; +import SignupPage from "./pages/SignupPage"; import { createBrowserRouter, RouterProvider, Route, Link, -} from 'react-router-dom'; -import Cart from './features/cart/Cart'; -import CartPage from './pages/CartPage'; -import Checkout from './pages/Checkout'; -import ProductDetailPage from './pages/ProductDetailPage'; +} from "react-router-dom"; + +import CartPage from "./pages/CartPage"; +import Checkout from "./pages/Checkout"; +import ProductDetailPage from "./pages/ProductDetailPage"; +import Protected from "./features/auth/components/Protected"; +import { useEffect } from "react"; +import { useDispatch, useSelector } from "react-redux"; +import { selectLoggedInUser } from "./features/auth/authSlice"; +import { fetchItemsByUserIdAsync } from "./features/cart/cartSlice"; +import PageNotFound from "./pages/404"; +import OrderSuccessPage from "./pages/OrderSuccessPage"; +import UserOrderPage from "./pages/UserOrderPage"; +import UserProfilePage from "./pages/UserProfilePage"; +import { fetchLoggedInUserAsync } from "./features/user/userSlice"; +import LogOut from "./features/auth/components/LogOut"; +import ForgotPasswordPage from "./pages/ForgotPasswordPage"; +import ProtectedAdmin from "./features/auth/components/ProtectedAdmin"; +import AdminHome from "./pages/AdminHome"; +import AdminProductDetail from "./features/admin/components/AdminProductDetail"; +import ProductFormPage from "./pages/ProductFormPage"; +import AdminOrderPage from "./pages/AdminOrderPage"; const router = createBrowserRouter([ { - path: '/', - element: , + path: "/", + + element: ( + + + + ), + }, + { + path: "/admin", + + element: ( + + + + ), }, { - path: '/login', + path: "/login", element: , }, { - path: '/signup', + path: "/signup", element: , }, - { - path: '/cart', - element: , + { + path: "/cart", + element: ( + + + + ), }, - { - path: '/checkout', - element: , + { + path: "/checkout", + element: ( + + + + ), }, - { - path: '/product-detail', - element: , + { + path: "/product-detail/:id", // :id provided by react-router + element: ( + + + + ), + }, + { + path: "/admin/product-detail/:id", // :id provided by react-router + element: ( + + + + ), + }, + { + path: "/admin/product-form", + element: ( + + + + ), + }, + { + path: "/admin/orders", + element: ( + + + + ), + }, + { + path: "/admin/product-form/edit/:id", + element: ( + + + + ), + }, + { + path: "/order-success/:id", + element: , + }, + { + path: "/orders", + element: , + }, + { + path: "/profile", + element: , + }, + { + path: "/logout", + element: , + }, + { + path: "/forgot-paasword", + element: , + }, + { + path: "*", + element: , }, ]); function App() { + const dispatch = useDispatch(); + const user = useSelector(selectLoggedInUser); + + useEffect(() => { + if (user) { + dispatch(fetchItemsByUserIdAsync(user.id)); + dispatch(fetchLoggedInUserAsync(user.id)); + } + }, [dispatch, user]); return (
diff --git a/src/app/constants.js b/src/app/constants.js new file mode 100644 index 0000000..5c2c0b7 --- /dev/null +++ b/src/app/constants.js @@ -0,0 +1,5 @@ +export const ITEMS_PER_PAGE = 6; +export function discountedPrice(item) { + const discountPercentage = item.discountPercentage || 0; // Ensure discountPercentage is defined or default to 0 + return Math.round(item.price * (1 - item.discountPercentage / 100)); +} diff --git a/src/app/store.js b/src/app/store.js index 9eca6d2..47af029 100644 --- a/src/app/store.js +++ b/src/app/store.js @@ -1,8 +1,16 @@ -import { configureStore } from '@reduxjs/toolkit'; -import counterReducer from '../features/counter/counterSlice'; +import { configureStore } from "@reduxjs/toolkit"; +import productReducer from "../features/product/productSlice"; +import authReducer from "../features/auth/authSlice"; +import cartReducer from "../features/cart/cartSlice"; +import orderReducer from "../features/order/orderSlice"; +import userReducer from "../features/user/userSlice"; export const store = configureStore({ reducer: { - counter: counterReducer, + product: productReducer, + auth: authReducer, + cart: cartReducer, + order: orderReducer, + user: userReducer, }, }); diff --git a/src/features/admin/components/AdminOrder.js b/src/features/admin/components/AdminOrder.js new file mode 100644 index 0000000..0989a24 --- /dev/null +++ b/src/features/admin/components/AdminOrder.js @@ -0,0 +1,177 @@ +import { useDispatch, useSelector } from "react-redux"; +import { ITEMS_PER_PAGE, discountedPrice } from "../../../app/constants"; +import { useEffect, useState } from "react"; +import { EyeIcon, PencilIcon } from "@heroicons/react/24/outline"; +import { + fetchAllOrdersAsync, + selectOrders, + selectTotalOrders, + updateOrderAsync, +} from "../../order/orderSlice"; +import Pagination from "../../common/Pagination"; + +function AdminOrder() { + const [page, setPage] = useState(1); + const dispatch = useDispatch(); + const orders = useSelector(selectOrders); + const totalOrders = useSelector(selectTotalOrders); + const [editableOrderId, setEditableOrderId] = useState(-1); + + const handleEdit = (order) => { + console.log("Editing order ID:", order.id); + setEditableOrderId(order.id); + }; + + const handleShow = () => { + console.log("show"); + }; + + const handleUpdate = (e, order) => { + const updatedOrder = { ...order, status: e.target.value }; + dispatch(updateOrderAsync(updatedOrder)); + setEditableOrderId(-1); // Optionally reset the editable order ID after update + }; + const chooseColor = (status) => { + switch (status) { + case "pending": + return "bg-purple-200 ms-4 text-purple-600 "; + case "dispatched": + return "bg-yellow-200 ms-4 text-yellow-600 "; + case "delivered": + return "bg-green-200 ms-4 text-green-600 "; + case "pending": + return "bg-red-200 ms-4 text-red-600 "; + case "cancelled": + return "bg-red-200 ms-4 text-red-600 "; + default: + return "bg-purple-200 ms-4 text-purple-600 "; + } + }; + const handlePage = (page) => { + setPage(page); + const pagination = { _page: page, _per_page: ITEMS_PER_PAGE }; + dispatch(fetchAllOrdersAsync(pagination)); + }; + + useEffect(() => { + const pagination = { _page: page, _per_page: ITEMS_PER_PAGE }; + dispatch(fetchAllOrdersAsync(pagination)); + }, [dispatch, page]); + + return ( +
+
+
+
+ + + + + + + + + + + + + {orders.map((order) => ( + + + + + + + + + ))} + +
Order#ItemsTotal AmountShipping AddressStatusActions
+
+ {order.id} +
+
+ {order.items.map((item) => ( +
+
+ {item.title} +
+ + {item.title} - #{item.quantity} - $ + {discountedPrice(item)} + +
+ ))} +
+
+ ${order.totalAmount} +
+
+
+
+ {order.selectedAddress.name} +
+
{order.selectedAddress.street}
+
{order.selectedAddress.city}
+
{order.selectedAddress.pinCode}
+
{order.selectedAddress.phone}
+
+
+ {order.id === editableOrderId ? ( +
+ +
+ ) : ( + + {order.status} + + )} +
+
+
+ handleShow(order)} + /> +
+
+ handleEdit(order)} + /> +
+
+
+
+
+
+ +
+ ); +} + +export default AdminOrder; diff --git a/src/features/admin/components/AdminProductDetail.js b/src/features/admin/components/AdminProductDetail.js new file mode 100644 index 0000000..44cad89 --- /dev/null +++ b/src/features/admin/components/AdminProductDetail.js @@ -0,0 +1,355 @@ +import { useEffect, useState } from "react"; +import { StarIcon } from "@heroicons/react/20/solid"; +import { RadioGroup } from "@headlessui/react"; +import { useSelector, useDispatch } from "react-redux"; +import { + fetchProductByIdAsync, + selectProductById, +} from "../../product/productSlice"; +import { useParams } from "react-router-dom"; +import { addToCartAsync } from "../../cart/cartSlice"; +import { selectLoggedInUser } from "../../auth/authSlice"; +import { discountedPrice } from "../../../app/constants"; + +// TODO: In server data we will add sizes,colors, highlights to each product + +const colors = [ + { name: "White", class: "bg-white", selectedClass: "ring-gray-400" }, + { name: "Gray", class: "bg-gray-200", selectedClass: "ring-gray-400" }, + { name: "Black", class: "bg-gray-900", selectedClass: "ring-gray-900" }, +]; +const sizes = [ + { name: "XXS", inStock: false }, + { name: "XS", inStock: true }, + { name: "S", inStock: true }, + { name: "M", inStock: true }, + { name: "L", inStock: true }, + { name: "XL", inStock: true }, + { name: "2XL", inStock: true }, + { name: "3XL", inStock: true }, +]; +const highlights = [ + "Hand cut and sewn locally", + "Dyed with our proprietary colors", + "Pre-washed & pre-shrunk", + "Ultra-soft 100% cotton", +]; + +function classNames(...classes) { + return classes.filter(Boolean).join(" "); +} + +export default function AdminProductDetail() { + const [selectedColor, setSelectedColor] = useState(colors[0]); + const [selectedSize, setSelectedSize] = useState(sizes[2]); + const user = useSelector(selectLoggedInUser); + const product = useSelector(selectProductById); + const dispatch = useDispatch(); + const params = useParams(); // hook provided by react-router to fetch parameters + + const handleCart = (e) => { + e.preventDefault(); + const newItem = { ...product, quantity: 1, user: user.id }; + delete newItem["id"]; // to avoid creating same id on adding same product to cart.... + dispatch(addToCartAsync(newItem)); + }; + + useEffect(() => { + dispatch(fetchProductByIdAsync(params.id)); // :id from path in app.js + }, [dispatch, params.id]); + return ( +
+ {product && ( +
+ + + {/* Image gallery */} +
+
+ {product.title} +
+
+
+ {product.title} +
+
+ {product.title} +
+
+
+ {product.title} +
+
+ + {/* Product info */} +
+
+

+ {product.title} +

+
+ + {/* Options */} +
+

Product information

+

+ ${product.price} +

+

+ ${discountedPrice(product)} +

+ + {/* Reviews */} +
+

Reviews

+
+
+ {[0, 1, 2, 3, 4].map((rating) => ( + rating + ? "text-gray-900" + : "text-gray-200", + "h-5 w-5 flex-shrink-0" + )} + aria-hidden="true" + /> + ))} +
+

{product.rating} out of 5 stars

+
+
+ +
+ {/* Colors */} +
+

Color

+ + + + Choose a color + +
+ {colors.map((color) => ( + + classNames( + color.selectedClass, + active && checked ? "ring ring-offset-1" : "", + !active && checked ? "ring-2" : "", + "relative -m-0.5 flex cursor-pointer items-center justify-center rounded-full p-0.5 focus:outline-none" + ) + } + > + + {color.name} + + + ))} +
+
+
+ + {/* Sizes */} +
+
+

Size

+ + Size guide + +
+ + + + Choose a size + +
+ {sizes.map((size) => ( + + classNames( + size.inStock + ? "cursor-pointer bg-white text-gray-900 shadow-sm" + : "cursor-not-allowed bg-gray-50 text-gray-200", + active ? "ring-2 ring-gray-500" : "", + "group relative flex items-center justify-center rounded-md border py-3 px-4 text-sm font-medium uppercase hover:bg-gray-50 focus:outline-none sm:flex-1 sm:py-6" + ) + } + > + {({ active, checked }) => ( + <> + + {size.name} + + {size.inStock ? ( + + ))} +
+
+
+ + +
+
+ +
+ {/* Description and details */} +
+

Description

+ +
+

+ {product.description} +

+
+
+ +
+

+ Highlights +

+ +
+
    + {highlights.map((highlight) => ( +
  • + {highlight} +
  • + ))} +
+
+
+ +
+

Details

+ +
+

{product.description}

+
+
+
+
+
+ )} +
+ ); +} diff --git a/src/features/admin/components/AdminProductList.js b/src/features/admin/components/AdminProductList.js new file mode 100644 index 0000000..4064d0a --- /dev/null +++ b/src/features/admin/components/AdminProductList.js @@ -0,0 +1,548 @@ +import React, { useState, Fragment, useEffect } from "react"; +import { useSelector, useDispatch } from "react-redux"; +import { + fetchAllProductsAsync, + fetchBrandsAsync, + fetchCategoriesAsync, + fetchProductsByFiltersAsync, + selectAllProducts, + selectBrands, + selectCategories, + selectTotalItems, +} from "../../product/productSlice"; +import { Dialog, Disclosure, Menu, Transition } from "@headlessui/react"; +import { StarIcon, XMarkIcon } from "@heroicons/react/24/outline"; +import { ChevronLeftIcon, ChevronRightIcon } from "@heroicons/react/20/solid"; +import { Link } from "react-router-dom"; +import { + ChevronDownIcon, + FunnelIcon, + MinusIcon, + PlusIcon, + Squares2X2Icon, +} from "@heroicons/react/20/solid"; +import { ITEMS_PER_PAGE, discountedPrice } from "../../../app/constants"; + +const sortOptions = [ + { name: "Best Rating", sort: "rating", current: false }, + { name: "Price: Low to High", sort: "price", order: "asc", current: false }, + { name: "Price: High to Low", sort: "price", order: "desc", current: false }, +]; + +function classNames(...classes) { + return classes.filter(Boolean).join(" "); +} + +export default function AdminProductList() { + const [mobileFiltersOpen, setMobileFiltersOpen] = useState(false); + const products = useSelector(selectAllProducts); + const categories = useSelector(selectCategories); + const brands = useSelector(selectBrands); + const totalItems = useSelector(selectTotalItems); + const filters = [ + { + id: "category", + name: "Category", + options: categories, + }, + { + id: "brand", + name: "Brands", + options: brands, + }, + ]; + + const dispatch = useDispatch(); + const [filter, setFilter] = useState({}); + const [sort, setSort] = useState({}); + const [page, setPage] = useState(1); + + const handleFilter = (e, section, option) => { + console.log(e.target.checked); + // TODO: we will on server support mutilple value + // remove obj when input box is unchecked + const newFilter = { ...filter }; + if (e.target.checked) { + if (newFilter[section.id]) { + newFilter[section.id].push(option.value); //{"category":["frangrances","furniture"]} + } else { + newFilter[section.id] = [option.value]; //[] + } + } else { + // delete array item after unchecked... + const index = newFilter[section.id].findIndex( + (el) => el === option.value + ); + newFilter[section.id].splice(index, 1); + } + console.log({ newFilter }); + setFilter(newFilter); + }; + const handleSort = (e, option) => { + const sort = { + _sort: option.order === "desc" ? `-${option.sort}` : option.sort, //{_sort:"price", order="desc"} + }; + console.log(sort); + setSort(sort); + }; + const handlePage = (page) => { + console.log({ page }); + setPage(page); + }; + // making API call when dispatch or when filter is applied in a one go.... + useEffect(() => { + const pagination = { _page: page, _per_page: ITEMS_PER_PAGE }; + dispatch(fetchProductsByFiltersAsync({ filter, sort, pagination })); + }, [dispatch, filter, sort, page]); + + useEffect(() => { + //page always come to first if there is change in totalItems and sorting + setPage(1); + }, [totalItems, sort]); + + useEffect(() => { + dispatch(fetchBrandsAsync()); + dispatch(fetchCategoriesAsync()); + }, []); + + return ( +
+
+ {/* Mobile filter dialog */} + + +
+
+

+ All Products +

+ +
+ +
+ + Sort + +
+ + + +
+ {sortOptions.map((option) => ( + + {({ active }) => ( +

{ + handleSort(e, option); + }} + className={classNames( + option.current + ? "font-medium text-gray-900" + : "text-gray-500", + active ? "bg-gray-100" : "", + "block px-4 py-2 text-sm" + )} + > + {option.name} +

+ )} +
+ ))} +
+
+
+
+ + + +
+
+ +
+

+ Products +

+ +
+ + + {/* Product grid */} +
+ {/* This is our products list */} + + Add Product + + +
+ {/* Product grid end */} +
+
+ + {/* section of product and filters ends */} + + +
+
+
+ ); +} +function MobileFilter({ + mobileFiltersOpen, + setMobileFiltersOpen, + handleFilter, + filters, +}) { + return ( + + + +
+ + +
+ + +
+

Filters

+ +
+ + {/* Filters */} +
+ {filters.map((section) => ( + + {({ open }) => ( + <> +

+ + + {section.name} + + + {open ? ( + + +

+ +
+ {section.options.map((option, optionIdx) => ( +
+ { + handleFilter(e, section, option); + }} + className="h-4 w-4 rounded border-gray-300 text-gray-600 focus:ring-gray-500" + /> + +
+ ))} +
+
+ + )} +
+ ))} +
+
+
+
+
+
+ ); +} +function DesktopFilter({ handleFilter, filters }) { + return ( +
+ {filters.map((section) => ( + + {({ open }) => ( + <> +

+ + + {section.name} + + + {open ? ( + + +

+ +
+ {section.options.map((option, optionIdx) => ( +
+ { + handleFilter(e, section, option); + }} + className="h-4 w-4 rounded border-gray-300 text-gray-600 focus:ring-gray-500" + /> + +
+ ))} +
+
+ + )} +
+ ))} +
+ ); +} +function ProductGrid({ products }) { + return ( +
+
+
+ {products.map((product) => ( +
+ +
+
+
+ {product.title} +
+
+
+

+
+
+

+

+ + {product.rating} +

+
+
+

+ ${discountedPrice(product)} +

+ ${product.price} +

+

+
+
+ {product.deleted && ( +
+

Product Deleted

+
+ )} +
+
+ +
+ + Edit Product + +
+
+ ))} +
+
+
+ ); +} + +function Pagination({ page, setPage, handlePage, totalItems }) { + const totalPages = Math.ceil(totalItems / ITEMS_PER_PAGE); + return ( +
+
+ handlePage(page > 1 ? page - 1 : page)} + className="relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50" + > + Previous + +
handlePage(page < totalPages ? page + 1 : page)} + className="relative ml-3 inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50" + > + Next +
+
+
+
+

+ Showing {/* (3-1) * 6 + 1 =13 */} + + {(page - 1) * ITEMS_PER_PAGE + 1} + {" "} + {/* 3 * 6 = 18 */} + to{" "} + + {page * ITEMS_PER_PAGE > totalItems + ? totalItems + : page * ITEMS_PER_PAGE}{" "} + {" "} + of {totalItems} results +

+
+
+ +
+
+
+ ); +} diff --git a/src/features/admin/components/ProductForm.js b/src/features/admin/components/ProductForm.js new file mode 100644 index 0000000..824f660 --- /dev/null +++ b/src/features/admin/components/ProductForm.js @@ -0,0 +1,389 @@ +import { useDispatch, useSelector } from "react-redux"; +import { + clearSelectedProduct, + createProductAsync, + fetchProductByIdAsync, + selectBrands, + selectCategories, + selectProductById, + updateProductAsync, +} from "../../product/productSlice"; +import { PhotoIcon, UserCircleIcon } from "@heroicons/react/24/solid"; +import { useForm } from "react-hook-form"; +import { useEffect } from "react"; +import { Link, useParams } from "react-router-dom"; +function ProductForm() { + const categories = useSelector(selectCategories); + const brands = useSelector(selectBrands); + const dispatch = useDispatch(); + const params = useParams(); + const selectedProduct = useSelector(selectProductById); + const { + register, + handleSubmit, + setValue, + reset, + formState: { errors }, + } = useForm(); + + useEffect(() => { + if (params.id) { + dispatch(fetchProductByIdAsync(params.id)); + } else { + dispatch(clearSelectedProduct()); + } + }, [params.id, dispatch]); + + useEffect(() => { + if (selectedProduct && params.id) { + setValue("title", selectedProduct.title); + setValue("description", selectedProduct.description); + setValue("brand", selectedProduct.brand); + setValue("category", selectedProduct.category); + setValue("price", selectedProduct.price); + setValue("discountPercentage", selectedProduct.discountPercentage); + setValue("stock", selectedProduct.stock); + setValue("thumbnail", selectedProduct.thumbnail); + setValue("image", selectedProduct.images[0]); + } + }, [setValue, params.id, selectedProduct]); + + const handleDelete = () => { + const product = { ...selectedProduct }; + product.deleted = true; + dispatch(updateProductAsync(product)); + }; + return ( +
{ + console.log(data); + const product = { ...data }; + product.images = [product.image, product.thumbnail]; + delete product["image"]; + product.rating = 0; + + product.price = +product.price; + + product.discountPercentage = +product.discountPercentage; + product.stock = +product.stock; + product.discount = +product.discount; + console.log(product); + + if (params.id) { + product.id = params.id; + product.rating = selectedProduct.rating || 0; + dispatch(updateProductAsync(product)); + reset(); + } else { + dispatch(createProductAsync(product)); + reset(); + } + })} + > +
+
+

+ Add Product +

+ +
+
+ +
+
+ +
+
+
+ +
+ +
+