Project tutorial

Build a Symfony Ecommerce Store

Build Stonequay Market with Symfony, Twig forms, Tailwind, MySQL, session auth, catalog, cart, checkout, seller product CRUD, search, password recovery, and deploy notes.

  • Difficulty Intermediate
  • Parts 12
  • Stack PHP 8, Symfony, Twig, Tailwind CSS, Doctrine, MySQL, session authentication

How this project works

Stonequay Market is an original teaching storefront in twelve complete snapshots. Clone once and run any numbered folder without rebuilding earlier stages.

The path starts with Symfony and Twig forms, then adds routing, layouts, isolated MySQL catalogs, product pages, accounts, session carts, addresses, seller-owned product CRUD, search, password reset, and production deploy notes.

Authentication uses custom session forms—no scaffold starter kits.

Snapshots 4–12 seed [email protected] and [email protected] with password123. Local MySQL runs on host port 3311 with databases stone_01stone_12.

Start with part 1 Open GitHub repo

Parts in order

Work through the parts in sequence. Each lesson explains the ideas in plain language, then points you to a complete runnable snapshot on GitHub for that stage.

  1. Part 1: Getting StartedBoot Symfony with Twig forms on port 8005.
  2. Part 2: RoutingRegister shop routes for catalog, cart, and health.
  3. Part 3: Layout and UIBuild a shared Tailwind layout and product card shell.
  4. Part 4: Data LayerModel categories and products with migrations and seeds.
  5. Part 5: Catalog and DetailRender a catalog and product detail page by slug.
  6. Part 6: RegistrationValidate customer accounts and store password hashes.
  7. Part 7: Login and Session CartAuthenticate users and keep a session shopping cart.
  8. Part 8: Profiles and MediaEdit profiles, shipping addresses, and product images.
  9. Part 9: Cart, Checkout, and OwnershipCheck out orders and protect seller product mutations.
  10. Part 10: Pagination and SearchPaginate the catalog and filter by name or category.
  11. Part 11: Password ResetIssue expiring one-use password reset tokens.
  12. Part 12: DeployPrepare Stonequay Market for production hosting.