aimeos/aimeos-laravel

专业、功能全面且性能卓越的Laravel电子商务包,适用于在线商店和复杂的B2B项目

安装量: 180,274

依赖: 9

建议者: 0

安全: 0

星标: 7,093

关注者: 191

分支: 1,037

类型:laravel-bundle

2024.07.1 2024-07-04 09:27 UTC

This package is auto-updated.

Last update: 2024-09-16 14:25:17 UTC


README

Aimeos logo

Aimeos Laravel电子商务包

Total Downloads Build Status Coverage Status Scrutinizer Code Quality License

⭐ 在GitHub上为我们点赞 —— 这对我们意义重大!😀

Aimeos 是最专业、功能全面且速度极快的Laravel电子商务包!您可以在5分钟内将其安装到现有的Laravel应用程序中,并且可以根据您的需求进行适配、扩展、覆盖和定制。

Aimeos Laravel demo

特性

Aimeos是一个功能全面的电子商务包

  • 多供应商、多渠道和多仓库
  • 从1到10亿+个物品
  • 极快,低至20毫秒
  • 适用于多租户电子商务SaaS解决方案,具有无限供应商
  • 捆绑、优惠券、虚拟、可配置、自定义和事件产品
  • 具有周期性支付的订阅
  • 100+种支付网关
  • 全面支持RTL(前端和后端)
  • 开箱即用的块/层级定价
  • 基于客户/组定价的扩展
  • 折扣和优惠券支持
  • 灵活的购物车规则系统
  • 功能全面的行政后端
  • 美丽的行政仪表板
  • 可配置的产品数据集
  • 基于jsonapi.org的JSON REST API
  • 用于管理的GraphQL API
  • 完全模块化结构
  • 可配置和可扩展
  • 适用于拥有数百万供应商的市场场所的扩展
  • 完全SEO优化,包括丰富片段
  • 翻译成30多种语言
  • 基于AI的文本翻译
  • 针对智能手机和平板电脑优化
  • 安全且经过审查的实施
  • 高质量的源代码

... 以及更多Aimeos特性更多

支持的语言

           

查看演示

替代方案

完整的商店应用程序

如果您想设置新应用程序或测试Aimeos,我们建议使用Aimeos商店发行版。它包含快速启动所需的一切,您将在不到5分钟内获得一个完全工作的在线商店

Aimeos商店发行版

无头发行版

如果您想自己构建单页应用(SPA)或渐进式网络应用(PWA),并且不需要Aimeos HTML前端,那么Aimeos无头发行版是正确的选择

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

前端

使用以下方法将浏览器指向商店的列表页面

注意:集成 Aimeos 包将为您的 Laravel 安装添加一些路由,如 /shop/admin,但 首页保持不变! 如果您想将 Aimeos 也添加到首页,请将 ./routes/web.php 中的 "/" 路由替换为以下行

Route::group(['middleware' => ['web']], function () {
    Route::get('/', '\Aimeos\Shop\Controller\CatalogController@homeAction')->name('aimeos_home');
});

对于多供应商设置,请阅读有关 多店铺 的文章。

这将在您的首页显示 Aimeos 目录主页组件,并使您获得一个看起来像这样的漂亮商店首页

Aimeos frontend

后端

如果您已经启动了内部 PHP web 服务器(php artisan serve),现在应该在该浏览器中打开此 URL

http://127.0.0.1:8000/admin

输入新创建用户的电子邮件地址和密码,然后按“登录”。如果您没有重定向到管理员界面(这取决于您根据 Laravel 文档创建的认证代码),请再次将浏览器指向 /admin URL。

注意:请确保您没有以非管理员用户的身份登录!在这种情况下,登录将不会工作,因为 Laravel 需要先登出。

Aimeos backend

提示

为了简化开发,您应该配置为不使用内容缓存。您可以在 Laravel 应用程序的 config/shop.php 文件中添加以下行来实现这一点

    'madmin' => [
        'cache' => [
            'manager' => [
                'name' => 'None',
            ],
        ],
    ],

许可

Aimeos Laravel 包根据 MIT 许可证条款授权,并且是免费提供的。

链接