aimeos / aimeos-laravel
专业、功能全面且性能卓越的Laravel电子商务包,适用于在线商店和复杂的B2B项目
Requires
- composer-runtime-api: ^2.1
- aimeos/ai-admin-graphql: 2024.07.*
- aimeos/ai-admin-jqadm: 2024.07.*
- aimeos/ai-admin-jsonadm: 2024.07.*
- aimeos/ai-client-html: 2024.07.*
- aimeos/ai-client-jsonapi: 2024.07.*
- aimeos/ai-cms-grapesjs: 2024.07.*
- aimeos/ai-controller-frontend: 2024.07.*
- aimeos/ai-controller-jobs: 2024.07.*
- aimeos/ai-laravel: 2024.07.*
- aimeos/aimeos-core: 2024.07.*
- laminas/laminas-diactoros: ~2.5||~3.0
- laravel/framework: ^10.0||^11.0
- nyholm/psr7: ~1.2
- symfony/psr-http-message-bridge: ~2.0||~6.0||~7.0
Requires (Dev)
- orchestra/testbench: ~7.0||~8.0||~9.0
- orchestra/testbench-browser-kit: ~7.0||~8.0||~9.0
- php-coveralls/php-coveralls: ~2.0
- phpunit/phpunit: ^9.0||^10.0
- dev-master
- 2024.07.x-dev
- 2024.07.1
- 2024.04.x-dev
- 2024.04.1
- 2023.10.x-dev
- 2023.10.8
- 2023.10.7
- 2023.10.6
- 2023.10.5
- 2023.10.4
- 2023.10.3
- 2023.10.2
- 2023.10.1
- 2023.07.x-dev
- 2023.07.1
- 2023.04.x-dev
- 2023.04.3
- 2023.04.2
- 2023.04.1
- 2023.01.x-dev
- 2022.10.x-dev
- 2022.10.8
- 2022.10.7
- 2022.10.6
- 2022.10.5
- 2022.10.4
- 2022.10.3
- 2022.10.2
- 2022.10.1
- 2022.07.x-dev
- 2022.07.4
- 2022.07.3
- 2022.07.2
- 2022.07.1
- 2022.04.x-dev
- 2022.04.5
- 2022.04.4
- 2022.04.3
- 2022.04.2
- 2022.04.1
- 2022.01.x-dev
- 2021.10.x-dev
- 2021.10.7
- 2021.10.6
- 2021.10.5
- 2021.10.4
- 2021.10.3
- 2021.10.2
- 2021.10.1
- 2021.07.x-dev
- 2021.07.6
- 2021.07.5
- 2021.07.4
- 2021.07.3
- 2021.07.2
- 2021.07.1
- 2021.04.x-dev
- 2021.04.5
- 2021.04.4
- 2021.04.3
- 2021.04.2
- 2021.04.1
- 2021.01.x-dev
- 2020.10.x-dev
- 2020.10.9
- 2020.10.8
- 2020.10.7
- 2020.10.6
- 2020.10.5
- 2020.10.4
- 2020.10.3
- 2020.10.2
- 2020.10.1
- 2020.07.x-dev
- 2020.07.2
- 2020.07.1
- 2020.04.x-dev
- 2020.04.3
- 2020.04.2
- 2020.04.1
- 2020.01.x-dev
- 2020.01.1
- 2019.10.x-dev
- 2019.10.7
- 2019.10.6
- 2019.10.5
- 2019.10.4
- 2019.10.3
- 2019.10.2
- 2019.10.1
- 2019.07.x-dev
- 2019.07.4
- 2019.07.3
- 2019.07.2
- 2019.07.1
- 2019.04.x-dev
- 2019.04.4
- 2019.04.3
- 2019.04.2
- 2019.04.1
- 2019.01.x-dev
- 2019.01.2
- 2019.01.1
- 2018.10.x-dev
- 2018.10.4
- 2018.10.3
- 2018.10.2
- 2018.10.1
- 2018.07.x-dev
- 2018.07.3
- 2018.07.2
- 2018.07.1
- 2018.04.x-dev
- 2018.04.3
- 2018.04.2
- 2018.04.1
- 2018.01.x-dev
- 2018.01.2
- 2018.01.1
- 2017.10.x-dev
- 2017.10.4
- 2017.10.3
- 2017.10.2
- 2017.10.1
- 2017.07.x-dev
- 2017.07.4
- 2017.07.3
- 2017.07.2
- 2017.07.1
- 2017.04.x-dev
- 2017.04.5
- 2017.04.4
- 2017.04.3
- 2017.04.2
- 2017.04.1
- 2017.03.x-dev
- 2017.03.2
- 2017.03.1
- 2017.02.x-dev
- 2017.01.x-dev
- 2017.01.2
- 2017.01.1
- 2016.10.x-dev
- 2016.10.4
- 2016.10.3
- 2016.10.2
- 2016.10.1
- 2016.07.x-dev
- 2016.07.3
- 2016.07.2
- 2016.07.1
- 2016.04.x-dev
- 2016.04.3
- 2016.04.2
- 2016.04.1
- 2016.03.x-dev
- 2016.03.3
- 2016.03.2
- 2016.03.1
- 2016.01.x-dev
- 2016.01.5
- 2016.01.4
- 2016.01.3
- 2016.01.2
- 2016.01.1
- 1.2.x-dev
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.x-dev
- 1.1.1
- 1.1.0
- 1.0.x-dev
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2024-09-16 14:25:17 UTC
README
Aimeos Laravel电子商务包
⭐ 在GitHub上为我们点赞 —— 这对我们意义重大!😀
Aimeos 是最专业、功能全面且速度极快的Laravel电子商务包!您可以在5分钟内将其安装到现有的Laravel应用程序中,并且可以根据您的需求进行适配、扩展、覆盖和定制。
特性
Aimeos是一个功能全面的电子商务包
- 多供应商、多渠道和多仓库
- 从1到10亿+个物品
- 极快,低至20毫秒
- 适用于多租户电子商务SaaS解决方案,具有无限供应商
- 捆绑、优惠券、虚拟、可配置、自定义和事件产品
- 具有周期性支付的订阅
- 100+种支付网关
- 全面支持RTL(前端和后端)
- 开箱即用的块/层级定价
- 基于客户/组定价的扩展
- 折扣和优惠券支持
- 灵活的购物车规则系统
- 功能全面的行政后端
- 美丽的行政仪表板
- 可配置的产品数据集
- 基于jsonapi.org的JSON REST API
- 用于管理的GraphQL API
- 完全模块化结构
- 可配置和可扩展
- 适用于拥有数百万供应商的市场场所的扩展
- 完全SEO优化,包括丰富片段
- 翻译成30多种语言
- 基于AI的文本翻译
- 针对智能手机和平板电脑优化
- 安全且经过审查的实施
- 高质量的源代码
... 以及更多Aimeos特性更多
支持的语言
查看演示
替代方案
完整的商店应用程序
如果您想设置新应用程序或测试Aimeos,我们建议使用Aimeos商店发行版。它包含快速启动所需的一切,您将在不到5分钟内获得一个完全工作的在线商店
无头发行版
如果您想自己构建单页应用(SPA)或渐进式网络应用(PWA),并且不需要Aimeos HTML前端,那么Aimeos无头发行版是正确的选择
目录
支持版本
目前,Aimeos Laravel包从 2023.10版本开始 完全支持
- 稳定版本:2024.07+(Laravel 10.x和11.x)
- LTS版本:2023.10(Laravel 9.x、10.x和11.x)
如果您想在主要版本之间进行升级,请参阅 升级指南!
要求
Aimeos商店分布需要
- Linux/Unix、WAMP/XAMP或MacOS环境
- PHP >= 8.1
- MySQL >= 5.7.8、MariaDB >= 10.2.2、PostgreSQL 9.6+、SQL Server 2019+
- Web服务器(Apache、Nginx或集成的PHP Web服务器用于测试)
如果缺少必要的PHP扩展,composer
将告知您缺失的依赖项。
如果您想在主要版本之间进行升级,请参阅 升级指南!
数据库
请确保您已事先创建数据库,并将配置添加到应用程序目录中的.env
文件中。有时,使用.env文件会导致问题,您将收到数据库连接失败的异常。在这种情况下,请将数据库凭据添加到./config/shop.php
文件的resource/db
部分中!
如果您未安装至少MySQL 5.7.8或MariaDB 10.2.2,您可能会收到类似错误
Specified key was too long; max key length is 767 bytes
要绕过此问题,如果已创建了新表,请删除它们,并在重新安装Aimeos之前将./config/database.php
中的字符集/校对设置更改为这些值
'connections' => [ 'mysql' => [ // ... 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', // ... ] ]
注意:还请确保您的MySQL服务器默认创建InnoDB表,因为MyISAM表将无法工作,并导致外键约束错误!
如果您想使用MySQL以外的数据库服务器,请参阅有关支持的数据库服务器及其特定配置的文章。支持的包括
- MySQL、MariaDB(完全支持)
- PostgreSQL(完全支持)
- SQL Server(完全支持)
请确保您在.env
文件中使用支持的数据库服务器之一,例如
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=aimeos
DB_USERNAME=root
DB_PASSWORD=
注意:默认配置的SQLite数据库不支持!
安装
Aimeos Laravel在线商店包是基于composer的库。您可以通过在现有Laravel应用程序的根目录中使用Composer 2.1+来最简单地安装它
wget https://getcomposer.org.cn/download/latest-stable/composer.phar -O composer
然后,将这些行添加到Laravel skeleton应用程序
的composer.json中
"prefer-stable": true, "minimum-stability": "dev", "require": { "aimeos/aimeos-laravel": "~2024.07", ... }, "scripts": { "post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force", "@php artisan vendor:publish --tag=public --ansi", "\\Aimeos\\Shop\\Composer::join" ], ... }
之后,使用以下命令安装Aimeos商店包
php composer update -W
在最后一步,您现在必须执行这些Artisan命令以获取一个工作或更新的Aimeos安装
php artisan vendor:publish --tag=config --tag=public php artisan migrate php artisan aimeos:setup --option=setup/default/demo:1
在生产环境或您不希望安装演示数据的情况下,请省略--option=setup/default/demo:1
选项。
认证
您必须设置Laravel的一个认证入门套件。Laravel Breeze是最简单的一个,但您也可以使用Jetstream。
composer require laravel/breeze php artisan breeze:install npm install && npm run build # if not executed automatically by the previous command
Laravel Breeze将询问您几个问题,其中最重要的是您要使用的堆栈类型。选择“Blade”(这是最简单的方法)并为其他设置使用默认值。
它还将为/profile
添加一个路由到./routes/web.php
,这可能会覆盖aimeos_shop_account
路由。为了避免关于缺少aimeos_shop_account
路由的异常,将./routes/web.php
文件中这些行的URL从/profile
更改为/profile/me
Route::middleware('auth')->group(function () { Route::get('/profile/me', [ProfileController::class, 'edit'])->name('profile.edit'); Route::patch('/profile/me', [ProfileController::class, 'update'])->name('profile.update'); Route::delete('/profile/me', [ProfileController::class, 'destroy'])->name('profile.destroy'); });
有关更多信息,请参阅Laravel文档
配置认证
作为最后一步,您需要扩展您的App\Providers\AppServiceProvider
类中的boot()
方法,并在app/Providers/AppServiceProvider.php
中添加定义“admin”授权如何检查的行。
public function boot() { // Keep the lines before \Illuminate\Support\Facades\Gate::define('admin', function($user, $class, $roles) { if( isset( $user->superuser ) && $user->superuser ) { return true; } return app( '\Aimeos\Shop\Base\Support' )->checkUserGroup( $user, $roles ); }); }
创建账户
在继续之前,请测试您的认证设置是否正常工作。为您的Laravel应用程序创建一个管理员账户,以便您能够登录到Aimeos管理员界面。
php artisan aimeos:account --super <email>
电子邮件地址是登录的用户名,该账户也将适用于前端。为了保护新账户,命令将要求您输入密码。使用--admin
、--editor
或--api
代替--super
(访问一切)可以创建受限账户。
设置
为了正确引用图片,您需要修改您的 .env
文件,并将 APP_URL
设置为您的真实 URL,例如:
APP_URL=http://127.0.0.1:8000
注意:请确保在您的 .env
文件中使用 file
会话驱动!否则,购物篮内容将无法正确存储!
SESSION_DRIVER=file
如果您的 ./public
目录无法被您的 web 服务器写入,您必须创建这些目录
mkdir public/aimeos public/vendor
chmod 777 public/aimeos public/vendor
在生产环境中,您应该对授予的权限更加具体!
测试
然后,您应该能够在浏览器中调用目录列表页面。为了快速开始,您可以使用集成的 web 服务器。只需在您的应用程序基本目录中执行此命令即可
php artisan serve
前端
使用以下方法将浏览器指向商店的列表页面
- 2024.x+:http://127.0.0.1:8000/shop/search
- 2023.x:http://127.0.0.1:8000/shop
注意:集成 Aimeos 包将为您的 Laravel 安装添加一些路由,如 /shop
或 /admin
,但 首页保持不变! 如果您想将 Aimeos 也添加到首页,请将 ./routes/web.php
中的 "/" 路由替换为以下行
Route::group(['middleware' => ['web']], function () { Route::get('/', '\Aimeos\Shop\Controller\CatalogController@homeAction')->name('aimeos_home'); });
对于多供应商设置,请阅读有关 多店铺 的文章。
这将在您的首页显示 Aimeos 目录主页组件,并使您获得一个看起来像这样的漂亮商店首页
后端
如果您已经启动了内部 PHP web 服务器(php artisan serve
),现在应该在该浏览器中打开此 URL
输入新创建用户的电子邮件地址和密码,然后按“登录”。如果您没有重定向到管理员界面(这取决于您根据 Laravel 文档创建的认证代码),请再次将浏览器指向 /admin
URL。
注意:请确保您没有以非管理员用户的身份登录!在这种情况下,登录将不会工作,因为 Laravel 需要先登出。
提示
为了简化开发,您应该配置为不使用内容缓存。您可以在 Laravel 应用程序的 config/shop.php
文件中添加以下行来实现这一点
'madmin' => [ 'cache' => [ 'manager' => [ 'name' => 'None', ], ], ],
许可
Aimeos Laravel 包根据 MIT 许可证条款授权,并且是免费提供的。