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' ];
The project uses webpack to build the assets.
The project styles and bootstrap styles are built together.
Source files are located in frontend/scss
and backend/js
.
If you want to customize bootstrap variables, open frontend/scss/bootstrap-variables.scss
and override any bootstrap variable.
Check the following link for more information about bootstrap customization
Runnpm run dev
to build the files and start watching them. This will generate unminified versions of the files
and will generate source maps as well
Run npm run prod
to build the files for production. This will generate minified files.
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]