https://github.com/thecodeholic/yii2-ecommerce-website
E-commerce website with admin panel build on Yii2 framework
https://github.com/thecodeholic/yii2-ecommerce-website
Last synced: 5 days ago
JSON representation
E-commerce website with admin panel build on Yii2 framework
- Host: GitHub
- URL: https://github.com/thecodeholic/yii2-ecommerce-website
- Owner: thecodeholic
- License: bsd-3-clause
- Created: 2020-11-12T18:45:51.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-06-29T02:20:45.000Z (about 4 years ago)
- Last Synced: 2024-12-05T17:10:43.287Z (7 months ago)
- Language: PHP
- Size: 2.06 MB
- Stars: 186
- Watchers: 12
- Forks: 59
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
Yii2 E-commerce application
Yii2 E-commerce system
## Features
- Bootstrap 4
- Custom [Admin template](https://startbootstrap.com/theme/sb-admin-2) 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](https://developer.paypal.com/demo/checkout/#/pattern/client)
- 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## Demo
I am working on demo. It will be available soon.
## Installation
1. Clone the repository
1. Go to the project root directory and run `composer install`
1. Run `php init` from the project root directory and choose your desired environment
1. Create the database
1. Open `common/config/main-local.php`
- Configure database credentials by changing the following lines
```php
'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
```php
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'SMTP_HOST',
'username' => 'SMTP_USERNAME',
'password' => 'SMTP_PASSWORD',
'port' => 'SMTP_PORT',
'encryption' => 'tls',
],
],
```
1. Run `php yii migrate` to apply all system migrations.
1. Create virtual hosts for `frontend/web` and `backend/web` directories.
Virtual Host templates
```
ServerName yii2-ecommerce.localhost
DocumentRoot "/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
ServerName backend.yii2-ecommerce.localhost
DocumentRoot "/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
```
1. Open `common/config/params-local.php` and replace the content with the following code
Make sure you [create PayPal application](https://developer.paypal.com/developer/applications/) and take ClientId and Secret.
```php
'YOUR_FRONTEND_HOST', // Ex: http://yii2-ecommerce.localhost
'paypalClientId' => '',
'paypalSecret' => '',
'vendorEmail' => '[email protected]'
];
```
## Building assets
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`.#### Bootstrap customization
If you want to customize bootstrap variables, open `frontend/scss/bootstrap-variables.scss`
and override any bootstrap variable.
Check [the following link](https://getbootstrap.com/docs/4.0/getting-started/theming/) for more information about bootstrap customization#### For Development
Run`npm 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#### For production
Run `npm run prod` to build the files for production. This will generate minified files.
## Create admin user
Run the following console command to create admin user. PASSWORD is optional, you can skip it and system will generate a random password
```bash
php yii app/create-admin-user USERNAME [PASSWORD]
```