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):