bjerke / laravel-headless-ecommerce
Laravel的免头电商包
dev-master
2021-03-07 14:22 UTC
Requires
- php: >=7.4
- ext-intl: *
- bjerke/api-query-builder: ^1.1
- bjerke/laravel-bread: ^1.8
- bjerke/laravel-enums: ^1.0
- illuminate/bus: ^8.0
- illuminate/console: ^8.0
- illuminate/database: ^8.0
- illuminate/http: ^8.0
- illuminate/support: ^8.0
- kalnoy/nestedset: ^5.0
- laravel/scout: ^8.5.1
- league/omnipay: ^3.0
- moneyphp/money: ^3.3.1
- spatie/laravel-medialibrary: ^9.0
- spatie/laravel-sluggable: ^2.6
- spatie/laravel-translatable: ^4.6
This package is auto-updated.
Last update: 2024-09-07 22:38:58 UTC
README
Laravel的免头电商包。
安装
composer require bjerke/laravel-headless-ecommerce
发布并运行迁移
php artisan vendor:publish --tag="ecommerce.migrations"
php artisan migrate
如果您想更改默认配置
php artisan vendor:publish --tag="ecommerce.config"
如果您想更改包含的语言文件
php artisan vendor:publish --tag="ecommerce.lang"
扩展模型的功能
此包使用的所有模型都可以用您自己的版本替换。只需扩展原始版本,并在配置文件中配置您的模型类。
产品
- Product types
- Laravel Scout
- Searching, default driver, disabling (driver = null)
- Laravel Media Library
- Images
- Files
- Laravel Translatable
- Laravel Sluggable
变体
- Variation syncing
价格
- MoneyPHP
- VAT
- Optinally sync prices against exchange rate by running the SynPrices job on schedule (otherwise it will only update if the base price changes)
促销
库存
- Multiple stock types / stores (web, shops etc)
- Current stock / Incoming stock / Outgoing stock
- Low stock event
- Optional schedule to remove old stock logs
类别
- Laravel Nested Set
属性
商店
品牌
购物车
- Optional schedule to keep track of expired carts
- Optional schedule to remove expired carts
订单
订单日志
- Optional schedule to remove old order logs
- Optional schedule to remove old payment logs
配送
支付
- Omnipay
翻译
- Laravel Translatable
命令
这些是您可以添加到计划中以便自动运行某些操作的命令。
ecommerce:clean-abandoned-carts
- 检查过期购物车并删除它们(建议每天运行一次)ecommerce:check-expiring-carts
- 触发即将过期的购物车事件(建议每天运行一次)ecommerce:clean-order-logs
- 删除比配置ecommerce.orders.log_ttl
旧的订单日志(建议每天运行一次)ecommerce:clean-stock-logs
- 删除比配置ecommerce.stock.log_ttl
旧的库存日志(建议每天运行一次)ecommerce:clean-payment-logs
- 删除比配置ecommerce.payment.log_ttl
旧的支付日志(建议每天运行一次)
事件
- CartExpiring
- 当购物车即将过期时(如果设置了
ecommerce:check-expiring-carts
的计划),将触发此事件。这可以用于向客户发送通知,让他们回来完成购买。 - 请注意,这些可以针对同一购物车触发多次。如果您正在发送通知,您可能需要检查是否已经发送了此通知,以避免向客户发送垃圾邮件。
- 当购物车即将过期时(如果设置了
- LowStock
- 在更新库存后达到低库存阈值时将触发此事件。
- 请注意,这些可以针对同一购物车触发多次。您可能需要跟踪是否已经对此事件采取过行动。
路由
要查看所有已注册的路由,请运行
php artisan route:list
您可以通过两种不同的方式覆盖路由。第一种方式是编写自己的控制器,扩展原始控制器,然后在配置文件中配置该控制器(类似于模型的配置)。第二种方式是发布路由文件。
php artisan vendor:publish --tag="ecommerce.routes"
这将完全解耦包内的路由文件。现在您可以自由地更改任何内容。但请注意,未来对路由文件的任何更新都必须手动迁移到您的自定义文件。
还有一些关于路由的配置选项,例如要使用的前缀、默认全局中间件以及要使用的身份验证中间件。您可以通过查看此包的配置文件来更详细地了解可以更改的内容。
身份验证和授权
默认的身份验证中间件,要求登录用户是 auth:api
。您可以在配置文件中配置此设置。
我们还使用 can
中间件,以禁止未经授权访问非公开端点。您可以使用类似 Bouncer 或 Spatie Laravel Permission 的包来处理权限,或者定义自己的 Gates & Policies。
使用的权限
- manage-products
- manage-brands
- manage-categories
- manage-deals
- manage-prices
- manage-orders
- manage-prices
- manage-properties
- manage-shipping-methods
- manage-stocks
- manage-stores
客户/用户
此包不提供处理客户或登录用户的逻辑。这由实现应用程序添加。例如,您可能想向订单表添加一个 user_id 列,以便将其链接到用户账户。只需发布迁移后更改迁移,然后扩展适当的模型/观察者/控制器来处理此新列。
禁用 Scout
您可以通过在 .env 文件中定义以下内容来禁用自动 Scout 集成
ECOMMERCE_USE_SCOUT=false SCOUT_DRIVER=null
要求
- PHP 7.4+
- 可标记的缓存存储(如 redis、memchached 等)
- 支持 JSON 列类型的 SQL 数据库
- Intl 扩展
- 运行中的队列工作者
使用的包
- Laravel BREAD
- Laravel API 查询构建器
- Laravel Scout
- MoneyPHP
- Spatie Laravel 媒体库
- Spatie Laravel 可链接
- Spatie Laravel 可翻译
- Laravel NestedSet
- Omnipay
改进想法
带问号的点可能与此包范围不相关
- 促销
- 折扣码
- 礼品卡
- 捆绑(?)
- 更多产品类型
- 数字内容
- 订阅
- 预购
- 可配置产品
- 更多媒体类型
- 视频(?)
- 即时库存
- 在购物车中添加时可选地预留库存
- 愿望单(?)
- 收藏夹(?)
- 评论/评分(?)
- 购物车
- 在购物车中添加时可选地预留库存
- 更多配送定价替代方案
- 动态(根据订购的产品计算)
- 层?
- 订单价值超过 X 时的免费配送?
- 产品促销,交叉销售
- 供应商
- 采购
- POS 功能(?)
- Prisjakt/Pricerunner 集成 - 隔离包
- Facebook / Instagram 购物(?)- 隔离包
- Google 购物(?)- 隔离包
- Webhooks(?)
- 统计信息(?)
- 导入/导出产品(?)