Design Product Page for Shopping Cart React Application – Part 9
In this part of the series, we’ll focus on designing the product page for our Shopping Cart React application. The product page is a crucial component where users browse through available items, filter and sort them, and eventually make their purchases. We’ll explore how to display product information effectively and provide filtering and sorting options for better user experience.
Demo Application
Designing the Product Page
1. Filter By Category
- Users often prefer to browse products by category.
- We’ll provide checkboxes for each category and allow users to filter products accordingly.
- Here’s how we implement the category filtering feature:
1 2 3 4 5 6 7 8 | {categories.map((cat, index) => { return ( <label className="block cursor-pointer mb-2 text-sm text-gray-500 hover:text-indigo-500"> <input type="checkbox" className="mr-1" /> {cat.name} </label> ); })} |
2. Sort Options
- Users may want to sort products based on various criteria such as recommendation, rating, or price.
- We’ll offer sorting options to enhance user convenience.
- Here’s how we implement the sorting feature:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <div className="font-semibold mt-8 mb-4 uppercase">Sort By</div> <div className="cursor-pointer mb-2 text-sm text-indigo-500 hover:text-indigo-500"> Recommend </div> <div className="cursor-pointer mb-2 text-sm text-gray-500 hover:text-indigo-500"> Rating </div> <div className="cursor-pointer mb-2 text-sm text-gray-500 hover:text-indigo-500"> Price: Low to High </div> <div className="cursor-pointer mb-2 text-sm text-gray-500 hover:text-indigo-500"> Price: High to Low </div> |
3. Product Display
- Each product will be displayed with its title, price, description, and image.
- We’ll also include a rating system to indicate product popularity.
- Here’s how we render product information:
1 2 3 | {productList.map((product, index) => { return <ProductBox key={index} {...product} imgHeight="h-60" />; })} |
4. Product Page Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 | import ProductBox from "../components/ProductBox"; function Products() { const productList = [ { id: 1, title: "Fjallraven - Foldsack No. 1 Backpack, Fits 15 Laptops", price: 109.95, description: "Your perfect pack for everyday use and walks in the forest. Stash your laptop (up to 15 inches) in the padded sleeve, your everyday", category: "men's clothing", image: "https://fakestoreapi.com/img/81fPKd-2AYL._AC_SL1500_.jpg", rating: { rate: 3.9, count: 120 }, }, { id: 2, title: "Mens Casual Premium Slim Fit T-Shirts ", price: 22.3, description: "Slim-fitting style, contrast raglan long sleeve, three-button henley placket, light weight & soft fabric for breathable and comfortable wearing. And Solid stitched shirts with round neck made for durability and a great fit for casual fashion wear and diehard baseball fans. The Henley style round neckline includes a three-button placket.", category: "men's clothing", image: "https://fakestoreapi.com/img/71-3HjGNDUL._AC_SY879._SX._UX._SY._UY_.jpg", rating: { rate: 4.1, count: 259 }, }, { id: 3, title: "Mens Cotton Jacket", price: 55.99, description: "great outerwear jackets for Spring/Autumn/Winter, suitable for many occasions, such as working, hiking, camping, mountain/rock climbing, cycling, traveling or other outdoors. Good gift choice for you or your family member. A warm hearted love to Father, husband or son in this thanksgiving or Christmas Day.", category: "men's clothing", image: "https://fakestoreapi.com/img/71li-ujtlUL._AC_UX679_.jpg", rating: { rate: 4.7, count: 500 }, }, { id: 4, title: "Mens Casual Slim Fit", price: 15.99, description: "The color could be slightly different between on the screen and in practice. / Please note that body builds vary by person, therefore, detailed size information should be reviewed below on the product description.", category: "men's clothing", image: "https://fakestoreapi.com/img/71YXzeOuslL._AC_UY879_.jpg", rating: { rate: 2.1, count: 430 }, }, { id: 5, title: "John Hardy Women's Legends Naga Gold & Silver Dragon Station Chain Bracelet", price: 695, description: "From our Legends Collection, the Naga was inspired by the mythical water dragon that protects the ocean's pearl. Wear facing inward to be bestowed with love and abundance, or outward for protection.", category: "jewelery", image: "https://fakestoreapi.com/img/71pWzhdJNwL._AC_UL640_QL65_ML3_.jpg", rating: { rate: 4.6, count: 400 }, }, { id: 6, title: "Solid Gold Petite Micropave ", price: 168, description: "Satisfaction Guaranteed. Return or exchange any order within 30 days.Designed and sold by Hafeez Center in the United States. Satisfaction Guaranteed. Return or exchange any order within 30 days.", category: "jewelery", image: "https://fakestoreapi.com/img/61sbMiUnoGL._AC_UL640_QL65_ML3_.jpg", rating: { rate: 3.9, count: 70 }, }, { id: 7, title: "White Gold Plated Princess", price: 9.99, description: "Classic Created Wedding Engagement Solitaire Diamond Promise Ring for Her. Gifts to spoil your love more for Engagement, Wedding, Anniversary, Valentine's Day...", category: "jewelery", image: "https://fakestoreapi.com/img/71YAIFU48IL._AC_UL640_QL65_ML3_.jpg", rating: { rate: 3, count: 400 }, }, { id: 8, title: "Pierced Owl Rose Gold Plated Stainless Steel Double", price: 10.99, description: "Rose Gold Plated Double Flared Tunnel Plug Earrings. Made of 316L Stainless Steel", category: "jewelery", image: "https://fakestoreapi.com/img/51UDEzMJVpL._AC_UL640_QL65_ML3_.jpg", rating: { rate: 1.9, count: 100 }, }, { id: 9, title: "WD 2TB Elements Portable External Hard Drive - USB 3.0 ", price: 64, description: "USB 3.0 and USB 2.0 Compatibility Fast data transfers Improve PC Performance High Capacity; Compatibility Formatted NTFS for Windows 10, Windows 8.1, Windows 7; Reformatting may be required for other operating systems; Compatibility may vary depending on user’s hardware configuration and operating system", category: "electronics", image: "https://fakestoreapi.com/img/61IBBVJvSDL._AC_SY879_.jpg", rating: { rate: 3.3, count: 203 }, }, { id: 10, title: "SanDisk SSD PLUS 1TB Internal SSD - SATA III 6 Gb/s", price: 109, description: "Easy upgrade for faster boot up, shutdown, application load and response (As compared to 5400 RPM SATA 2.5†hard drive; Based on published specifications and internal benchmarking tests using PCMark vantage scores) Boosts burst write performance, making it ideal for typical PC workloads The perfect balance of performance and reliability Read/write speeds of up to 535MB/s/450MB/s (Based on internal testing; Performance may vary depending upon drive capacity, host device, OS and application.)", category: "electronics", image: "https://fakestoreapi.com/img/61U7T1koQqL._AC_SX679_.jpg", rating: { rate: 2.9, count: 470 }, }, { id: 11, title: "Silicon Power 256GB SSD 3D NAND A55 SLC Cache Performance Boost SATA III 2.5", price: 109, description: "3D NAND flash are applied to deliver high transfer speeds Remarkable transfer speeds that enable faster bootup and improved overall system performance. The advanced SLC Cache Technology allows performance boost and longer lifespan 7mm slim design suitable for Ultrabooks and Ultra-slim notebooks. Supports TRIM command, Garbage Collection technology, RAID, and ECC (Error Checking & Correction) to provide the optimized performance and enhanced reliability.", category: "electronics", image: "https://fakestoreapi.com/img/71kWymZ+c+L._AC_SX679_.jpg", rating: { rate: 4.8, count: 319 }, }, { id: 12, title: "WD 4TB Gaming Drive Works with Playstation 4 Portable External Hard Drive", price: 114, description: "Expand your PS4 gaming experience, Play anywhere Fast and easy, setup Sleek design with high capacity, 3-year manufacturer's limited warranty", category: "electronics", image: "https://fakestoreapi.com/img/61mtL65D4cL._AC_SX679_.jpg", rating: { rate: 4.8, count: 400 }, }, { id: 13, title: "Acer SB220Q bi 21.5 inches Full HD (1920 x 1080) IPS Ultra-Thin", price: 599, description: "21. 5 inches Full HD (1920 x 1080) widescreen IPS display And Radeon free Sync technology. No compatibility for VESA Mount Refresh Rate: 75Hz - Using HDMI port Zero-frame design | ultra-thin | 4ms response time | IPS panel Aspect ratio - 16: 9. Color Supported - 16. 7 million colors. Brightness - 250 nit Tilt angle -5 degree to 15 degree. Horizontal viewing angle-178 degree. Vertical viewing angle-178 degree 75 hertz", category: "electronics", image: "https://fakestoreapi.com/img/81QpkIctqPL._AC_SX679_.jpg", rating: { rate: 2.9, count: 250 }, }, { id: 14, title: "Samsung 49-Inch CHG90 144Hz Curved Gaming Monitor (LC49HG90DMNXZA) – Super Ultrawide Screen QLED ", price: 999.99, description: "49 INCH SUPER ULTRAWIDE 32:9 CURVED GAMING MONITOR with dual 27 inch screen side by side QUANTUM DOT (QLED) TECHNOLOGY, HDR support and factory calibration provides stunningly realistic and accurate color and contrast 144HZ HIGH REFRESH RATE and 1ms ultra fast response time work to eliminate motion blur, ghosting, and reduce input lag", category: "electronics", image: "https://fakestoreapi.com/img/81Zt42ioCgL._AC_SX679_.jpg", rating: { rate: 2.2, count: 140 }, }, { id: 15, title: "BIYLACLESEN Women's 3-in-1 Snowboard Jacket Winter Coats", price: 56.99, description: "Note:The Jackets is US standard size, Please choose size as your usual wear Material: 100% Polyester; Detachable Liner Fabric: Warm Fleece. Detachable Functional Liner: Skin Friendly, Lightweigt and Warm.Stand Collar Liner jacket, keep you warm in cold weather. Zippered Pockets: 2 Zippered Hand Pockets, 2 Zippered Pockets on Chest (enough to keep cards or keys)and 1 Hidden Pocket Inside.Zippered Hand Pockets and Hidden Pocket keep your things secure. Humanized Design: Adjustable and Detachable Hood and Adjustable cuff to prevent the wind and water,for a comfortable fit. 3 in 1 Detachable Design provide more convenience, you can separate the coat and inner as needed, or wear it together. It is suitable for different season and help you adapt to different climates", category: "women's clothing", image: "https://fakestoreapi.com/img/51Y5NI-I5jL._AC_UX679_.jpg", rating: { rate: 2.6, count: 235 }, }, { id: 16, title: "Lock and Love Women's Removable Hooded Faux Leather Moto Biker Jacket", price: 29.95, description: "100% POLYURETHANE(shell) 100% POLYESTER(lining) 75% POLYESTER 25% COTTON (SWEATER), Faux leather material for style and comfort / 2 pockets of front, 2-For-One Hooded denim style faux leather jacket, Button detail on waist / Detail stitching at sides, HAND WASH ONLY / DO NOT BLEACH / LINE DRY / DO NOT IRON", category: "women's clothing", image: "https://fakestoreapi.com/img/81XH0e8fefL._AC_UY879_.jpg", rating: { rate: 2.9, count: 340 }, }, { id: 17, title: "Rain Jacket Women Windbreaker Striped Climbing Raincoats", price: 39.99, description: "Lightweight perfet for trip or casual wear---Long sleeve with hooded, adjustable drawstring waist design. Button and zipper front closure raincoat, fully stripes Lined and The Raincoat has 2 side pockets are a good size to hold all kinds of things, it covers the hips, and the hood is generous but doesn't overdo it.Attached Cotton Lined Hood with Adjustable Drawstrings give it a real styled look.", category: "women's clothing", image: "https://fakestoreapi.com/img/71HblAHs5xL._AC_UY879_-2.jpg", rating: { rate: 3.8, count: 679 }, }, { id: 18, title: "MBJ Women's Solid Short Sleeve Boat Neck V ", price: 9.85, description: "95% RAYON 5% SPANDEX, Made in USA or Imported, Do Not Bleach, Lightweight fabric with great stretch for comfort, Ribbed on sleeves and neckline / Double stitching on bottom hem", category: "women's clothing", image: "https://fakestoreapi.com/img/71z3kpMAYsL._AC_UY879_.jpg", rating: { rate: 4.7, count: 130 }, }, { id: 19, title: "Opna Women's Short Sleeve Moisture", price: 7.95, description: "100% Polyester, Machine wash, 100% cationic polyester interlock, Machine Wash & Pre Shrunk for a Great Fit, Lightweight, roomy and highly breathable with moisture wicking fabric which helps to keep moisture away, Soft Lightweight Fabric with comfortable V-neck collar and a slimmer fit, delivers a sleek, more feminine silhouette and Added Comfort", category: "women's clothing", image: "https://fakestoreapi.com/img/51eg55uWmdL._AC_UX679_.jpg", rating: { rate: 4.5, count: 146 }, }, { id: 20, title: "DANVOUY Womens T Shirt Casual Cotton Short", price: 12.99, description: "95%Cotton,5%Spandex, Features: Casual, Short Sleeve, Letter Print,V-Neck,Fashion Tees, The fabric is soft and has some stretch., Occasion: Casual/Office/Beach/School/Home/Street. Season: Spring,Summer,Autumn,Winter.", category: "women's clothing", image: "https://fakestoreapi.com/img/61pHAEJ4NML._AC_UX679_.jpg", rating: { rate: 3.6, count: 145 }, }, ]; const categories = [ { id: "electronics", name: "Electronics", href: "/", img: "electronics.jpg", }, { id: "jewelery", name: "Jewelery", href: "/", img: "jewelery.jpg" }, { id: "men's clothing", name: "Men's Clothing", href: "/", img: "men's clothing.jpg", }, { id: "women's clothing", name: "Women's Clothing", href: "/", img: "women's clothing.jpg", }, ]; return ( <div> <div className="my-8 grid grid-cols-5 gap-4"> <div className="bg-white shadow rounded p-4"> <div className="mb-8"> <div className="font-semibold mb-4 uppercase">Filter By<span className="float-right capitalize text-xs text-indigo-500 cursor-pointer hover:underline hover:underline-offset-2">Clear</span></div> {categories.map((cat, index) => { return ( <label className="block cursor-pointer mb-2 text-sm text-gray-500 hover:text-indigo-500"> <input type="checkbox" className="mr-1" /> {cat.name} </label> ); })} </div> <div className="border-t"> <div className="font-semibold mt-8 mb-4 uppercase">Sort By</div> <div className="cursor-pointer mb-2 text-sm text-indigo-500 hover:text-indigo-500"> Recommend </div> <div className="cursor-pointer mb-2 text-sm text-gray-500 hover:text-indigo-500"> Rating </div> <div className="cursor-pointer mb-2 text-sm text-gray-500 hover:text-indigo-500"> Price: Low to High </div> <div className="cursor-pointer mb-2 text-sm text-gray-500 hover:text-indigo-500"> Price: High to Low </div> </div> </div> <div className="col-span-4 grid grid-cols-4 gap-4"> {productList.map((product, index) => { return <ProductBox key={index} {...product} imgHeight="h-60" />; })} </div> </div> </div> ); } export default Products; |