What you will use in this project
- Filtering and sorting in pure JS
- Cart drawer UX patterns
- Event delegation across nested grids
- State persistence
Complete each step in the editor and watch the result as your page takes shape.
Build a modern e-commerce product browser.
Includes a shopping cart interface.
Medium · +230 XP · HTML CSS JavaScript
Check code when you’re ready. We grade your work against the step’s rubric and tell you exactly what passed and what still needs work.
This project is broken into 13 steps. Each one has its own pass criterion. Click Check code on every step to verify your progress and earn the full +230 XP.
| # | Step & pass criterion | Weight |
|---|---|---|
| 1 | Build the header Header with cart toggle | 5 pts |
| 2 | Filter and sort Filter and sort controls | 10 pts |
| 3 | Product grid #product-grid container present | 5 pts |
| 4 |
Cart drawer
|
15 pts |
| 5 | Style grid and cards Product grid styled with grid or flex | 5 pts |
| 6 | Style the drawer Cart drawer styled | 5 pts |
| 7 | Fetch products JS fetches products.json | 10 pts |
| 8 | Render grid JS renders product cards | 10 pts |
| 9 | Wire the filters Filter change handler | 10 pts |
| 10 | Cart state Add-to-cart click handler | 5 pts |
| 11 | Render the drawer Cart line items rendered | 5 pts |
| 12 |
Totals and persistence
|
10 pts |
| 13 | Toggle and checkout Cart toggle and checkout wired | 5 pts |
Sign in to your W3Schools account to unlock this project, earn XP, and track your progress.
Sign in Create accountIf you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com
If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com