blog images
How to build eCommerce website using Laravel?

Below the blog post, we are going to discover how we can create and manage CMS and eCommerce website using Laravel

The three e-commerce options with Laravel are pretty much:

  • Pick a Laravel-powered CMS and add custom e-commerce there too.
  • Use e-commerce packages built to increase your app.
  • Build your own e-commerce application from the bottom up with Laravel's framework.


I’ve made a curated list of the foremost popular ones to see out:

  •  Bagisto — Code-driven & multi-featured Laravel package for e-commerce. Free & open-source.
  •  Aimeos — A Laravel e-commerce package and online shop solution. Free & open-source.
  •  AvoRed — A modular and customizable PHP handcart. Free & open-source.
  •  Vanilo — This one’s actually an e-commerce framework (like Magento or Prestashop) for Laravel.


1.Creating the Laravel project

Like many other stacks, Laravel offers an easy command to init a project.

First, make it available by running: composer global require laravel/installer
Then to make the project: laravel new laravel-project
And cd laravel-project to travel into the project’s folder
From now on, all command will run with artisan which allows scaffolding anything during a Laravel project
 

2. Generating a basic product listing

For context, my base products during this demo are ingredients for custom oatmeal recipes.

You’ll need a controller and a knowledge model that we will scaffold with the make: model Artisan command like this:

artisan make: model -a Ingredient

This generates a couple of files:

a migration, in database/migrations/{date}_create_ingredients_table.php
a controller, in app/Http/Controllers/IngredientController.php
a model, in app/Ingredient.php


3. Using advanced models for custom recipes

You could stop there, and you’d have the idea for a headless product API.

But I’ll continue and add a “Recipe” controller with its model. A recipe is going to be composed of many ingredients, each with a quantity. I can represent this with the subsequent schema (I promise, it’s the sole times I’ll use UML):