Yii2 E-commerce system
- Bootstrap 4
- Custom Admin template in backend
- Product Management
- Implement cart page
- Checkout for guests
- Checkout for authorized users
- Sending email when order is made
- Payments with PayPal - PayPal buttons
- Order validation
- Display order in backend
- Dashboard with basic statistics
- Total earnings
- Total products sold
- Total number of orders made
- Total users
- Earnings by day
- Revenue by country
I am working on demo. It will be available soon.
- Clone the repository
- Go to the project root directory and run
composer install
- Run
php init
from the project root directory and choose your desired environment - Create the database
- Open
common/config/main-local.php
- Configure database credentials by changing the following lines
'dsn' => 'mysql:host=localhost;dbname=your_website_db', 'username' => 'root', 'password' => '', 'charset' => 'utf8mb4',
- If you want to use real SMTP credentials to send emails, configure the mail provider by replacing
mailer
component with the following code'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'SMTP_HOST', 'username' => 'SMTP_USERNAME', 'password' => 'SMTP_PASSWORD', 'port' => 'SMTP_PORT', 'encryption' => 'tls', ], ],
- Configure database credentials by changing the following lines
- Run
php yii migrate
to apply all system migrations. - Create virtual hosts for
frontend/web
andbackend/web
directories. Virtual Host templates<VirtualHost *:80> ServerName yii2-ecommerce.localhost DocumentRoot "/path/to/ecommerce-website/frontend/web/" <Directory "/path/to/ecommerce-website/frontend/web/"> # use mod_rewrite for pretty URL support RewriteEngine on # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php # use index.php as index file DirectoryIndex index.php # ...other settings... # Apache 2.4 Require all granted ## Apache 2.2 # Order allow,deny # Allow from all </Directory> </VirtualHost> <VirtualHost *:80> ServerName backend.yii2-ecommerce.localhost DocumentRoot "/path/to/ecommerce-website/backend/web/" <Directory "/path/to/ecommerce-website/backend/web/"> # use mod_rewrite for pretty URL support RewriteEngine on # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php # use index.php as index file DirectoryIndex index.php # ...other settings... # Apache 2.4 Require all granted ## Apache 2.2 # Order allow,deny # Allow from all </Directory> </VirtualHost>
- Open
common/config/params-local.php
and replace the content with the following code Make sure you create PayPal application and take ClientId and Secret.<?php return [ 'frontendUrl' => 'YOUR_FRONTEND_HOST', // Ex: http://yii2-ecommerce.localhost 'paypalClientId' => '', 'paypalSecret' => '', 'vendorEmail' => 'admin@yourwebsite.com' ];
Run the following console command to create admin user. PASSWORD is optional, you can skip it and system will generate a random password
php yii app/create-admin-user USERNAME [PASSWORD]