CMS系统 活跃维护

s-cart

gp247net/s-cart

[项目] 免费 Laravel 电商平台:购物车、CMS 内容等等...

737
Stars 标星
0
Forks 分支
2
Watchers 关注
0
Open Issues
Blade
主要语言
MIT
开源协议
559 KB
仓库大小
2 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:gp247net/s-cart
git clone https://github.com/gp247net/s-cart.git
git clone git@github.com:gp247net/s-cart.git
README.md master

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

🛒 S-Cart

使用 composer 创建项目 gp247/s-cart my-shop "^3.0"

免费开源的电子商务平台 — 构建在 GP247 生态系统上 & Laravel

🏠 主页 · 🚀 演示 · 📚 文档 · 🤖 AI 代理技能 · 💬 Facebook 群组

介绍

S-Cart 是一款 免费、开源 的在线商店软件,适用于企业、个人卖家、开发者和学生。您将获得一个完整的在线商店(产品、购物车、订单、客户、新闻)以及一个管理面板,并且可以通过插件和模板扩展功能。在阅读此页面后,您将能够在自己的计算机或服务器上安装 S-Cart,并了解如何更新和自定义它。

S-Cart 3.x 技术栈: PHP ≥ 8.3 · Laravel 13 · GP247 · Tailwind CSS 4 · MySQL / MariaDB

✨ S-Cart 中的内容

区域 功能
🛍️ 电商 产品、购物车、订单、客户
🌏 国际化 多语言、多货币
📰 内容(CMS) 分类、新闻、内容页面
💳 支付与配送 支付插件、配送方式、折扣码、税费计算
🔐 管理与安全 基于角色的权限(管理员、经理、营销等)、活动日志、验证码
📊 业务工具 订单处理、客户管理、分析报表
🤖 AI 就绪(MCP 服务器) 免费 MCP Server 插件:通过 模型上下文协议 将 AI 代理(Claude、Cursor、VS Code…)连接到您的商店,并直接询问 — “本周我们销售了多少?”、“哪些产品库存低?”、“订单 OR-1024 是否已支付?”。该代理作为一个管理员账号操作,具有相同权限,令牌保护,客户数据蒙版,每次调用均有记录
🧩 可扩展性 HMVC 插件、在线插件/模板市场、移动应用的安全 API
⭐ 专业插件 多供应商(多卖家市场)· 多商店(多个商店)· 进出库(采购、退货、现金流与债务)

🧰 需求

组件 要求
PHP 8.3 或更新版本
作曲家 版本 2.x
数据库 MySQL 或 MariaDB — 先创建一个空数据库
可写文件夹 storage · bootstrap/cache · app/GP247 · public/GP247 · public/vendor · resources/views/vendor · vendor

💡 使用 Docker 时,你 不需要 在你的机器上安装 PHP、Composer 或 MySQL — 参见 选项 3。

🚀 安装

选择三种选项中的一个:

选项 最适合情况
1. Composer ⭐ 安装在托管、VPS 或带有 Laragon/XAMPP 的机器上 — 推荐
2. Git clone 你想从 GitHub 获取最新源码以进行开发或贡献
3. Docker 你不想在机器上安装 PHP/MySQL

选项 1 — Composer(推荐)

  1. 打开终端(在 Windows 上:“命令提示符”或 Laragon 终端)并检查哪个 PHP Composer 在运行:

    composer diagnose

    PHP version 系列必须是 8.3 或更新版本。

    ⚠️ 在旧版本的 PHP 上,Composer 不会失败——它会静默安装一个非常旧的 S-Cart 1.x 版本。始终在步骤 2 的命令中保留 "^3.0",以便 Composer 能够明确失败,而不是安装错误的版本。

  2. 创建项目(将 my-shop 替换为你想要的文件夹名称):

    composer create-project gp247/s-cart my-shop "^3.0"
    cd my-shop
  3. 在项目文件夹中打开 .env 文件,并将数据库部分设置为与您创建的数据库匹配:

    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=your_database
    DB_USERNAME=your_username
    DB_PASSWORD=your_password

    默认的 DB_HOST=mysql-local 仅用于 Docker —— 如果直接安装,请将其更改为 127.0.0.1。

  4. 安装 S-Cart:

    php artisan gp247:install

    该命令要求确认 — 输入 yes 。完成后,屏幕会显示管理员路径和登录信息。

  5. (可选) 添加示例数据进行试用:

    php artisan gp247:shop-sample
  6. 打开你的浏览器:

页面 地址 登录
店面 http://your-domain —
管理员 http://your-domain/gp247_admin admin / admin

🔑 首次登录后立即更改 admin 密码。

选项 2 — Git 克隆

git clone https://github.com/gp247net/s-cart.git
cd s-cart
cp .env.example .env
composer install

然后继续执行 步骤 3 → 6,选项 1(编辑 .env,运行 gp247:install,打开浏览器)。

选项 3 — Docker

有两个独立的 compose 文件 — 永远为相应环境使用正确的文件:

文件 环境
docker-compose.yml 开发 — 你的本地机器
docker-compose.prod.yml 生产 — 真实服务器

本地机器(开发环境):

git clone https://github.com/gp247net/s-cart.git
cd s-cart
cp .env.example .env
docker compose up -d --build
docker compose exec app php artisan key:generate
docker compose exec app php artisan gp247:install
docker compose exec app php artisan gp247:shop-sample   # optional

在 http://localhost:8000 打开该网站。

真实服务器(生产环境):

git clone https://github.com/gp247net/s-cart.git
cd s-cart
cp .env.example .env
# Edit .env: APP_ENV=production, APP_DEBUG=false, DB_*, SC_DOCKER_WWWUSER/SC_DOCKER_WWWGROUP — see DOCKER.md
docker compose -f docker-compose.prod.yml up -d --build
docker compose -f docker-compose.prod.yml exec app php artisan key:generate
docker compose -f docker-compose.prod.yml exec app php artisan gp247:install
docker compose -f docker-compose.prod.yml run --rm node   # build CSS/JS

⚠️ 在生产环境中 始终 添加 -f docker-compose.prod.yml。忘记添加会错误地运行开发配置(调试开启,以 root 身份运行,安装了 Xdebug…)。

📘 分步指南和 Docker 疑难解答:DOCKER.md。

🔄 更新

  1. 在更新之前,请备份数据库以及 app/GP247、public/GP247 文件夹。

  2. 下载新代码:

    composer update gp247/core gp247/front gp247/shop
  3. 将更改应用到站点(安全:不会删除数据,也不会覆盖您编辑的翻译或模板):

    php artisan gp247:update
  4. 检查结果:

    php artisan gp247:info

⚠️ 单独运行 composer update 是不够的 — 一定要同时运行第 3 步。

高级选项(使用 --overwrite-lang 覆盖翻译,使用 --publish=… 刷新资源/视图)可能会覆盖您的自定义设置 — 在使用之前请仔细阅读 GP247 更新指南。

🎨 自定义与扩展

你想要… 如何
创建一个新的插件 php artisan gp247:make-plugin --name=PluginName
创建一个新的模板 php artisan gp247:make-template --name=TemplateName
打包一个用于分发的 zip 文件 将 --download=1 添加到上面的任一命令
编辑默认模板的一个页面 先使用 php artisan gp247:template-publish GP247Front --file=screen/home.blade.php ,然后编辑 app/GP247/Templates/GP247Front/ 文件
自定义管理界面 php artisan vendor:publish --tag=gp247:core-view(核心)· --tag=gp247:front-admin(前端)· --tag=gp247:shop-view-admin(商店)
更改文件上传配置(lfm) php artisan vendor:publish --tag=config-lfm
覆盖一个 gp247_* 辅助函数 在 config/gp247_functions_except.php 列出函数名,然后在 app/GP247/Helpers/*.php 中编写新函数
覆盖一个控制器 见下方
向管理区域添加路由 使用 GP247_ADMIN_PREFIX 和 GP247_ADMIN_MIDDLEWARE 常量 — 见 core routes.php

💡 默认的 GP247Front 模板是直接从包加载的,因此你未发布的文件在更新时会自动获取新版本。只发布你需要编辑的文件。

覆盖控制器

适用于 GP247/Core、GP247/Front、GP247/Shop 中的每个控制器(包括 API):

  1. 在 app/GP247/{Core|Front|Shop}/... 下创建一个相同子路径和名称的文件。
  2. 将新的类 extends 设为 vendor/gp247/... 中的原始控制器。
  3. 在原始命名空间前添加 App\,其他保持不变:
原始命名空间 新命名空间
GP247\Core\Controllers App\GP247\Core\Controllers
GP247\Core\Api\Controllers App\GP247\Core\Api\Controllers
GP247\Front\... / GP247\Shop\... App\GP247\Front\... / App\GP247\Shop\...

📘 详细文档: 创建插件 · 创建模板 · 完整 CLI 参考

📂 文件夹结构

(+) = 由 GP247 创建和管理的文件夹。

my-shop/
├── app/GP247/
│   ├── Core(+)        ← Core controller overrides
│   ├── Front(+)       ← Front controller overrides
│   ├── Shop(+)        ← Shop controller overrides
│   ├── Helpers(+)     ← *.php files here are auto-loaded
│   ├── Plugins(+)     ← plugins (gp247:make-plugin)
│   └── Templates(+)   ← templates (gp247:make-template) + template files published for editing
├── public/GP247/
│   ├── Core(+)        ← admin CSS/JS
│   ├── Plugins(+)
│   └── Templates(+)
├── resources/views/vendor/
│   ├── gp247-admin(+)        ← published Core admin views
│   ├── gp247-front-admin(+)  ← published Front admin views
│   └── gp247-shop-admin(+)   ← published Shop admin views
└── vendor/gp247/
    ├── core           ← core: admin, permissions, configuration
    ├── front          ← storefront, CMS
    └── shop           ← products, cart, orders

🔧 常用环境变量

将这些设置放入 .env 文件中:

变量 默认值 含义
GP247_ADMIN_PREFIX gp247_admin 管理员路径,例如 your-domain.com/gp247_admin
GP247_API_MODE 1 启用 (1) / 禁用 (0) API
GP247_DB_PREFIX gp247_ 表名前缀 — ⚠️ 安装后不能更改
GP247_ADMIN_LOG 1 记录管理员访问日志
GP247_SEO_LANG 0 将语言代码添加到店面 URL (/en/..., /vi/...)
GP247_ENCRYPTION_KEY (空) 专用密钥用于加密 SMTP 密码、许可证… — 参见 .env.example 中的说明

❓ 问答

Q1: Composer 完成后却报告 Access denied for user 'root' — 发生了什么?

→ Composer 在低于 8.3 的 PHP 上运行并错误地安装了 S-Cart 1.x。删除新文件夹,将 Composer 切换到 PHP 8.3 (用 composer diagnose 检查),然后使用 "^3.0" 重新安装。

Q2: 管理面板在哪里,如何登录?

→ http://your-domain/gp247_admin, 用户 admin / 密码 admin。立即更改密码。

Q3: 如何查看我正在运行的版本?

→ 运行 php artisan gp247:info。

Q4: 网站损坏或无法安装 — 我首先应该检查什么?

→ 运行 php artisan gp247:doctor — 它会检查环境(PHP、文件夹写入权限、配置…)并指出需要修复的地方。也检查 要求 中列出的可写文件夹。

Q5: 更新会丢失我的数据或更改吗?

→ php artisan gp247:update 不会删除数据,并保留你编辑过的翻译和模板。只有 --overwrite-lang 和 --publish=… 选项可能会覆盖它们 — 使用前请备份。

Q6: 我编辑了默认模板 — 更新会清除我的更改吗?

→ 不会,只要你只发布用 gp247:template-publish GP247Front --file=... 编辑的文件。你的已编辑文件会被保留;其他文件将从包中获取新版本。

Q7: 我如何更改管理员路径?

→ 在 .env 中设置 GP247_ADMIN_PREFIX (例如 backoffice )。不要使用 public/ 中现有文件夹的名称(例如 vendor 或 GP247 ),否则页面会返回 403 错误。

Q8: 安装后我可以更改表前缀(GP247_DB_PREFIX)吗?

→ 不可以。请在运行 gp247:install 之前选择它。

Q9: 我不使用移动应用——我应该禁用 API 吗?

→ 可以。请在 .env 中设置 GP247_API_MODE=0。

Q10: 我可以在哪里寻求更多帮助?

→ 阅读 GP247 文档,向 DeepWiki 提问,或在 S-Cart Facebook 群组 发布帖子。


📅 最后更新: 2026-10-22 · ✍️ 作者: GP247

本站来源与版权声明
  • 本文标题:s-cart - [项目] 免费 Laravel 电商平台:购物车
  • 本文链接:https://www.cn121.com/cms/gp247net-s-cart.html
  • 原项目:gp247net/s-cart 版权归原作者 gp247net 及贡献者所有
  • 收录信息:本站于 2026-10-25 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 gp247net/s-cart。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。