Giter VIP home page Giter VIP logo

s-cart's Introduction

Free open source e-commerce for business
composer create-project s-cart/s-cart

Home | Demo | Document | API document | Features in S-Cart | Group FB

Packagist Downloads Git Downloads Latest Stable Version License

About S-cart

S-Cart is the best free e-commerce website project for individuals and businesses, built on top of Laravel Framework and the latest technologies. Our goal is "Efficient and friendly for everyone":

  • Efficiency: Meet even the smallest requirements of customers.
  • Friendly: Easy to use, easy to maintain, easy to develop.
  • Everyone: Businesses, individuals, developers, students.

IMAGES:

S-Cart functions:

💥S-Cart - FREE Laravel ecommerce for business💥:
- Build plugin packages HMVC
- Support to upgrade and patch S-Cart via command line
- Full document for dev and client
👉Full support for the functions of a professional sales website:
- Multi-language, multi-currency
- Multi-vendor
- Make cart, manage orders, manage products, manage customers...
- CMS news management: categories, news, news pages
- Plugin: Payment, shipping, discounts, taxes ...
- Plugin pro: multi-vendor, multi-store
- Online library: plugin, template
- API suppport and security for app, mobile
👉Powerful admin page:
- Roles, permission: admin, manager, maketing, ..
- Security with log full, access, auth, captcha ...
- Manage products, orders, customers ...
- Charts, statistics
- Backup, restore
- Activity log
- And many other functions.
Demo API: https://s-cart.org/en/docs/master/about-api-scart.html
👉Plugin pro:
- Multi-vendor: https://s-cart.org/en/multi-vendor.html
- Multi-store: https://s-cart.org/en/multi-store.html

Technology

Laravel core:

S-Cart 6.x

Core laravel framework 8.x

S-Cart 7.x

Core laravel framework 9.x

S-Cart 8.x

Core laravel framework 10.x

Requirements:

- PHP ^7.3|^8.0 (S-Cart 6.x)
- PHP ^8.0.2 (S-Cart 7.x)
- PHP ^8.1 (S-Cart 8.x)
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- Ctype PHP Extension
- JSON PHP Extension
- BCMath PHP Extension

Installation & configuration:

How to map your domain to s-cart? CLICK HERE

Step1: Install last version S-cart

Option 1: From composer

composer create-project s-cart/s-cart

Option 2: From github

git clone https://github.com/s-cart/s-cart.git

Then, install vendor:

composer install

Step2: Set writable permissions for the following directories:

  • storage
  • vendor
  • public/data
  • bootstrap/cache
  • app/Plugins

Step3: Create database

- Create a new database. Example database name is "s-cart"

Step4: Install

------ Option 1: Install automatic ------------

1. Rename or delete the .env file if it exists.
(You may encounter installation errors via "php artisan serve" if the .env file exists)
2. Access your-domain.com/install.php to install S-cart.

Then, remove or rename file public/install.php

------ Option 2: Manual installation ------------

1. Create new database, then import file /vendor/s-cart/core/src/DB/s-cart-yyyy-mm-dd.sql to database.
2. Rename or delete file public/install.php
3. Copy file .env.example to .env if file .env not exist.
4: Generate API key if APP_KEY is null. 
- Use command "php artisan key:generate"
5: Config value of file .env:
- APP_DEBUG=false (Set "false" is security)
- DB_HOST=127.0.0.1 (Database host)
- DB_PORT=3306 (Database port)
- DB_DATABASE=s-cart (Database name)
- DB_USERNAME=root (User name use database)
- DB_PASSWORD= (Password connect to database)
- APP_URL=http://localhost (Your url)
- ADMIN_PREFIX=sc_admin (Path to admin)
- DB_PREFIX=sc_ (Must be "sc_" because it is fixed in the .sql file)

Step5: Install completed

  • Access to url admin: your-domain/sc_admin.
  • User/pass admin/admin

More detail for installation: HERE

Useful information:

To view S-Cart version information

php artisan sc:info

To update the core version of S-Cart:

composer update s-cart/core

Or you can use php composer.phar update s-cart/core if you don't have composer installed.

Then, run php artisan sc:update

To create a plugin:

php artisan sc:make plugin --name=Group\PluginName

To create a zip file plugin:

php artisan sc:make plugin --name=Group\PluginName --download=1

Detail: HERE

Library of free plugins for S-Cart: HERE

To create a template:

php artisan sc:make template --name=your-template-name

To create a zip file template:

php artisan sc:make template --name=your-template-name --download=1

To create data backup file (The sql file is stored in storage/backups):

php artisan sc:backup --path=abc.sql

To recover data:

php artisan sc:restore --path=abc.sql

To manually customize the admin page (resources/views/admin + config/admin.php):

php artisan sc:customize admin

This command will create new directories resources/views/admin and file config/admin.php After set the value customize=true in config/admin.php you can modify template admin.

To manually customize file config validation (config/validation.php):

php artisan sc:customize validation

More detail: https://s-cart.org/en/docs/master

Funding and supporting the project

Please visit the S-Cart

Security Vulnerabilities:

If you discover a security vulnerability within S-Cart ecommerce, please send an e-mail to Lanh Le via [email protected]. All security vulnerabilities will be promptly addressed.

License:

S-Cart is licensed under The MIT License (MIT).

Demo:

Plugins pro:

s-cart's People

Contributors

dependabot[bot] avatar lanhktc avatar s-cart avatar vncore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

s-cart's Issues

Product variant's logic

Product variant's logic

From the below image we have variants RED,GREEN,100g, 200g. Then we can buy RED -100g , RED - 200 g , GREEN-100g , GREEN - 200g .

  1. But there is a situation i dont have product RED - 200g but i have GREEN - 200 g . then how i can remove it from page ?
  2. There is no option to set stock to each variant.
  3. I dont see option to show price including tax in product page.

Application is super and thanks a lot.

prod

TIMESTAMP error

Having this error. How can I solve this?

Illuminate\Database\QueryException
SQLSTATE[HY000]: General error: 1525 Incorrect TIMESTAMP value: '2019-09' (SQL: select DATE_FORMAT(created_at, "%Y-%m") AS ym, SUM(total/exchange_rate) AS total_amount from sc_shop_order where created_at >= DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH), "%Y-%m") group by ym)

image

SQLSTATE[HY000] [2002] Connection refused (SQL: drop table if exists `migrations`)

on install output this error. SQLSTATE[HY000] [2002] Connection refused (SQL: drop table if exists migrations)

via. pa migrate. give this error
Illuminate\Database\QueryException

SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = store and table_name = migrations and table_type = 'BASE TABLE')

Setting for address 3 doesn't appear

It seemed one line is missing:

in resources\lang\en\customer.php (line 68)

    'address3'       => 'Use ADDRESS 3',

In addition, (after adding the line above), the order of item is a little bit weird. Could you fix that?

image

One more suggestion for address 3, default value for this variable could be as follows:

'address1'                => 'Address',
'address2'                => 'City',
'address3'                => 'State',

I am pretty sure these values could reduce future efforts of prospect uses, who want to build shopping malls for english users.

Thanks a lot.
Daniel

change Currency style

is there any way to remove the zeros after Thousands separator
Example:

show $15 instead of $15,000

Production Server Problems

Hello sir,
We develop a project using s-cart, in the localhost system runs normally. But in the production server, it does not work well, such as when click switch language, it refreshes the page but not change language but when I click a link inside the page, new page displays, and change language. The same thing in add to cart button too, it says product added but in cart no any product, refresh page product display in the cart,

Weird thing is that, when a user add a product in his cart, another user can see their product in his cart.

I guess it's about caching or session problem but could not find the solution.

stored XSS

Stored XSS
there is a stored XSS , which is critical because an unauth user can send js code to admin panel , which cloud lead to admin Account takeover.

To Reproduce
Steps to reproduce the behavior:

  1. got to s-cart store while adding product to the cart , intercept it and usei the payload in form_attr parm
ee.mp4
  1. after proceeding the purchase , the code will execute while trying to edit it in the admin panel
    here is the POC video : https://drive.google.com/file/d/1E7AE7EFPTiiEEj8jAKvVAumWKu4PRs0L/view?usp=sharing
    payload used = "><script>alert("test")</script>

Wishlist is not working

Describe the bug

Wishlist is not working with message below

Screenshots
image

To Reproduce

  1. Go to 'Shop home'
  2. Mouse over the product and click heart icon

Desktop (please complete the following information):

  • OS: Windows, xampp dev. env.
  • Browser : chrome
  • Version : latest version 88.0.4324.150 (Official Build) (64-bit)

Additional context

  • When running a server using 'php artisan', it is working - PHP 7.4.6 (cli) (built: May 12 2020 11:38:54) ( ZTS Visual C++ 2017 x64 )
  • However, when it is running on apache server, above error occurs. - PHP 8.0.0
  • There is no error message in a log file in storage/logs

Plugin System

Thank you for a wonderful e-commerce system.

I was wondering, is the plugin API just a call to your main store and it grabs a list to install?
Are you going to put the on GitHub too?

I do have a problem with installing plugins and themes through the API system on my local machine. When I get a chance, I will see what I can debug.

Cant Create new Currency

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Localisation'
  2. Click on 'Currency'
  3. Click on 'Add new Currency'
  4. See error - It will redirect you to the same place

Expected behavior
Expected to open the page to register a new currency

Desktop (please complete the following information):

  • Browser Chrome
  • Version 86.0.4240.193

How to change required field to not required

Hello!!!

When I try to add a new product, I don't wanna add Price Promotion. But I can't add any product without Price Promotion beacuse of Required input. How Can I change the input from required to not required!?

Can't add Supplier

When I add Supplier I am getting 500 error. What might cause to this?

Question about taxes

Hello sir,
First of all, thank you for your great work. I would like to ask a question about taxes.
I could not find anything about taxes such as VAT. I guess the system has not tax capability or is there any other way to add tax?

Thank you,

can't change nor see orders in other language

hi, I am having an issue with changing orders from admin dashboard or can't see them in other language that I have added. In the lang folder, I copy and paster english version and changed it to other language. I have translated all to that language. Everything working fine except that I can't see nor change orders from dashboard. and having "500 error".

Screenshot (71)
Screenshot (72)

phone number validation is not working for a global usage

The cart is designed for global usage, but phone validation is not for that purpose.

The validation requres the string starts with 0, but some other countries it is not required,
e.g. in Candada, it can begin 604, 778, and so on.

Therefore, it should be modified for global usage.
Thanks for your effort.

Upgrade system / Docs

Hello,

May I know how to upgrade to latest version? Im try via composer update but not work.

Thanks

price in product group

there is an issue in the product group page ...
when I choose a product the price doesn't appear

Use of undefined constant SC_PRODUCT_NEW

I get an error after I create a new template and run it

Message: Facade\Ignition\Exceptions\ViewException
Use of undefined constant SC_PRODUCT_NEW - assumed 'SC_PRODUCT_NEW' (this will throw an Error in a future version of PHP) (View: ********\resources\views\templates\newtemplate\screen\shop_home.blade.php)

Where are these Global Variables set, I cannot find it in source code?

PHP version: 7.2.31

error after install paypal plugin

After I install the paypal plugin, suddenly, I get an "error 500" when I try to
access sc_admin/plugin/payment, and when I try to complete the order.

Call to undefined method App\Models\ShopOrderStatus::mapValue() (View: /home/razvanrun/Documents/web/s-cart/resources/views/admin/screen/plugin.blade.php)

Include Telescop for debugging

composer require laravel/telescope --dev

php artisan telescope:install

php artisan migrate

Instead, manually register the service provider in the register method past the code down below in AppServiceProvider

/**

  • Register any application services.
  • @return void
    */
    public function register()
    {
    if ($this->app->isLocal()) {
    $this->app->register(\Laravel\Telescope\TelescopeServiceProvider::class);
    $this->app->register(TelescopeServiceProvider::class);
    }
    }

Suggest for additional address fields

Could you add city filed & state field for memeber info?
Currently, address 2 is designed for the rest adress fields, but, most of countries have city name and province(or state) name, so it would be useful for the future. It also helps increase users of this solution over the world.

image

Thanks for your consideration.

Phone format is invalid

Hello!

Having trouble when click to CHECKOUT button on a view cart page. phone format is invalid. I have tried all types of format, but could not solve it. it is only accepting default:
0667123234 phone number

Screenshot (50)

View cart is not working

Describe the bug
See capture

To Reproduce

  1. In main page
  2. click cart icon

Screenshots

image

** possible reason **
New php version seems not allow return bool value

Desktop (please complete the following information):

  • OS: Windows, xampp dev. env.
  • Browser : chrome
  • Version : latest version 88.0.4324.150 (Official Build) (64-bit)

Additional context

  • When running a server using 'php artisan', it is working - PHP 7.4.6 (cli) (built: May 12 2020 11:38:54) ( ZTS Visual C++ 2017 x64 )
  • However, when it is running on apache server, above error occurs. - PHP 8.0.0

Integrate Stripe Payment Gateway

In this situation, Stripe Payment Gateway is required to integrate with this platform as a plugin.

please help me to do this.

During Install.php i found DB error

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table jobs add index jobs_queue_index(queue))

Any documentation on Plugin manager?

Do you have any specifics documentation on plugin manager like using as separate package that can be applied to laravel and update via composer ? Mapping (Controllers, Models, Middlewares, Jobs, Migrations, Views, etc... ) ?

Kind Thank you

can't add title, keyword, and description

Hello, thank you very much for such an amazing job!!!

I have four languages overall. I have added two more languages. but I can't add title, keyword, and description for other languages from the admin panel as in the screenshot below:

Screenshot (106)

could you please help with that? How can I add them?

Single Store Multi-Vendor

Hi, I see that you can do multi-store with separate database. Are you planning to do 1 store multi-vendor?
If not, what should I change to do this? (not code but idea on how to)

Front page not working after fresh install -

Hi,

After fresh install following git clone, the front page shows the following errors, but admin page is working.
cf. https://flareapp.io/share/VP63DVw7#F95

[ test version ]
commit ad851f9 (HEAD -> master, tag: v5.0-beta, origin/master, origin/HEAD)
Merge: a34bc88 02d077b
Author: Lanh Le [email protected]
Date: Sun Jan 31 08:18:17 2021 +0700

[test env. : appache virtualhost]
<VirtualHost *:80>
DocumentRoot "C:/Project/php/cheers_scart/public"
ServerName cheers_scart.test
<Directory "C:/Project/php/cheers_scart/public">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted

image

Add to cart is not working

Describe the bug
Add to cart is not working

To Reproduce

  1. Go to 'Shop home'
  2. Mouse over the product and click "ADD TO CART" button

or

Open product page and click "ADD TO CART" button

Desktop (please complete the following information):

  • OS: Windows, xampp dev. env.
  • Browser : chrome
  • Version : latest version 88.0.4324.150 (Official Build) (64-bit)

Additional context

  • When running a server using 'php artisan', it is working - PHP 7.4.6 (cli) (built: May 12 2020 11:38:54) ( ZTS Visual C++ 2017 x64 )
  • However, when it is running on apache server, above error occurs. - PHP 8.0.0
  • There is no error message in a log file in storage/logs

ErrorException get_cfg_var() has been disabled for security reasons

Hi Sir,

Thanks for this an amazing job you have done!
I have an issue when adding a new product in the admin panel saying that supplier id must be a number. and I turned on debugging and it showed me the following error:

ErrorException
get_cfg_var() has been disabled for security reasons.
Screenshot (44)

vendor/symfony/var-dumper/Dumper/CliDumper.php:86

500 internal server error

Describe the bug
After i have installed the s-cart using the install.php, i can't login to the admin, it shows 500 error

To Reproduce
Steps to reproduce the behavior:

  1. download s-cart
  2. install it through the install.php
  3. go to /admin
  4. See error

Screenshots
Screenshot from 2020-09-01 12-43-23

Desktop (please complete the following information):

  • OS: Ubuntu 20.04.1 LTS
  • Browser: chrome
  • Version: Version 84.0.4147.105 (Official Build) (64-bit)

Manual Installation error on localhost

Hi,

I saw your product in one of facebook laravel group and decided to try it. I am trying to install it on our Wiindows server 2012 server doing manual installation but getting error at generating app_key step as below:

`PS W:\scart> php artisan key:generate

Illuminate\Database\QueryException

SQLSTATE[HY000] [1045] Access denied for user 'scart'@'localhost' (using password: YES) (SQL: select value, key from sc_admin_config where store_id is null)

at W:\scart\vendor\laravel\framework\src\Illuminate\Database\Connection.php:671
667| // If an exception occurs when attempting to run a query, we'll format the error
668| // message to include the bindings with SQL, which will make this exception a
669| // lot more helpful to the developer instead of just the database's errors.
670| catch (Exception $e) {

671| throw new QueryException(
672| $query, $this->prepareBindings($bindings), $e
673| );
674| }
675|

1 [internal]:0
Illuminate\Foundation\Application::Illuminate\Foundation{closure}(Object(App\Providers\RouteServiceProvider))

2 W:\scart\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'scart'@'localhost' (using password: YES)")`

I created database, imported .sql file in database folder and set all database connetion info in .env file but still getting that error.

How can i solve this please?

add product repeater issue

Describe the bug
repeaters ( Select products in group,Select products build ) return HTML as string instead of rendered HTML , i try to browse the demo store and repeaters working without any issues

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'add product'
  2. Select 'build or group'
  3. Scroll down to 'repeaters [ Select products in group,Select products build ]'
  4. Click add

Expected behavior
expected to show rendered HTML

Screenshots
image
image

Desktop (please complete the following information):

  • Browser [Firefox]

Additional context
any idea what's the problem

Errors on composer update

Illuminate\Database\QueryException

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'store.admin_store' doesn't exist (SQL: select domain, id from adm in_store where status = 1)

Tax configuration is not working

I create a new tax which is 0% tax.
Tax configuration set to this tax but if reload this page of Config product still 10% tax is there.

it's not updating ....
in fact, no Field config & product setting is updating.

thanks in advance.

payment and create order api

hello,
I think there are important features missing in your system
features like "create order API" & "payment methods API" is one of the most important features today.
I think this an issue for one reason ... how can I get order details if I can't create one? this is just in API of course

so, it would be amazing if you added these features to the system.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.