nahati / contao-isotope-stock
Contao / Isotope 的限量版处理
Requires
- php: ^8.1
- contao/core-bundle: ^4.13
- contao/easy-coding-standard: ^6.3
- isotope/isotope-core: ^2.8
- symfony/browser-kit: ^6.3
- symfony/config: ^5.4
- symfony/dependency-injection: ^5.4
- symfony/http-kernel: ^5.4
- vlucas/phpdotenv: ^5.5
Requires (Dev)
- bamarni/composer-bin-plugin: ^1.5
- contao/manager-plugin: ^2.0
- contao/phpstan: @dev
- contao/test-case: ^4.13
- phpunit/phpunit: ^9.5
- slevomat/coding-standard: ~8.0
- squizlabs/php_codesniffer: 3.*
- symfony/phpunit-bridge: ^6.1
Conflicts
- contao/manager-plugin: <2.0 || >=3.0
This package is auto-updated.
Last update: 2024-09-10 21:44:19 UTC
README
Contao Isotope Stock
此捆绑包为 Isotope 添加了库存管理、订单限制和画廊功能。
实时演示
最新更改
- 现在也处理了限量订单
- 在产品列表和详情视图中显示限制
可能未来的功能
- 在后台产品列表中显示每个产品的可用数量。
- 当达到用户定义的配额时(例如,库存少于 100)发出通知。
我们很乐意收到您的愿望和想法!
功能
A) 处理限量版
处理限量版:考虑产品的 quantity
和 inventory_status
。您可以使用基本产品(父级)和/或变体(子级)设置库存。
用例
- 将产品添加到购物车
- 更新购物车中的项目
- 从购物车中删除项目
- 合并购物车(访客购物车和会员购物车)
- 结账
尚未处理这些用例(查看此处)
- 删除旧购物车
- 删除旧订单
购物车
- 根据可用数量更新购物车中的数量。
- 如果没有可用数量,则将库存状态设置为
reserved
。 - 为每个保留产品添加系统消息(在后台仪表板中发出)。
结账
- 结账后更新可用数量。
- 如果没有剩余数量,则将库存状态设置为
soldout
。
产品列表
- 显示库存状态和可用数量
产品视图
- 显示库存状态和可用数量
- 根据库存状态显示“添加到购物车”按钮
一些功能的详细说明
- 在页面购物车:如果购物车已更改/用户被要求确认,则显示消息。
- 在结账页面:如果购物车已更改/用户被要求确认,则显示消息。
- 在结账页面:如果结账过程中产品数量已更改(通过并发更新)/用户被要求返回购物车,则显示消息。
- 在订单完成页面:如果在结账过程的最后一步中产品数量已更改(通过同时进行的并发更新)/订单状态设置为
Overbought
,则发送通知。
B) 处理订单限制
- 考虑产品的
minQuantityPerOrder
和maxQuantityPerOrder
。 - 您可以使用基本产品(父级)和/或变体(子级)设置限制。
处理以下用例
- 将产品添加到购物车
- 更新购物车中的项目
- 从购物车中删除项目
- 合并购物车(访客购物车和会员购物车)
购物车
- 根据
minQuantityPerOrder
和maxQuantityPerOrder
更新购物车中的数量。
产品列表和产品视图
- 显示
minQuantityPerOrder
和maxQuantityPerOrder
。
一些功能的详细说明
- 在页面购物车:如果购物车已更改,则显示消息。
- 在结账页面:如果购物车已更改/用户被要求确认,则显示消息。
C) 画廊功能
此外,您还可以在单个产品列表中处理所有产品
- 库存状态为
available
的产品(画廊、商店可用) - 库存状态为
reserved
或soldout
的产品(画廊、商店不可用) - 库存状态为
not for sale
的产品(画廊、商店不可用)
配置
您的设置可以针对每个产品类型和每个产品单独设置。在后台商店配置中,您可以选择要为特定产品类型使用的属性
所有属性都可以由后台用户更改。
仅配置图库功能(不包含 HandleLimitedEditions)
您可能只能激活 inventory_status
。然后只有 not for sale
和 available
这两个选项会被使用,并且此产品类型将不会有任何库存管理。如果您只想将商店和图库结合起来使用,请使用此功能。
配置限量版
如果您有限量版,请激活 quantity
以为此产品类型启用库存管理。然后您还必须激活 inventory_status
。(否则将抛出异常)。
对于无限制的产品,保持 quantity
字段为空。那么此产品将不会有库存管理。
限量版的推荐额外配置
您可能希望在产品被超购时收到通知(这可能会在同时进行并发更新时发生,例如另一个用户的另一个订单)。那么您也需要这样做。
添加一个类型为 change order status
的通知。在 商店配置 中添加一个订单状态 Overbought
(注意拼写准确!),并将其与该通知关联。
配置限量订单
如果您想要限制每个订单的量,请为此产品类型激活 minQuantityPerOrder
和/或 maxQuantityPerOrder
。确保将最大值设置为等于或大于最小值!(否则将抛出异常)。
对于没有此类限制的产品,请保持相应的字段为空。
最低要求
- PHP 8.1
- Contao 4.13.16
- Isotope 2.8.10
使用 Contao Manager 安装
在 Contao Manager 中搜索 nahati/contao-isotope-stock
并将其添加到您的安装中。应用更改以更新包。更新数据库。
命令行安装
composer require nahati/contao-isotope-stock
vendor/bin/contao-console contao:migrate
测试方法
请参阅文件夹 coverage
中使用的测试方法。
特别感谢
- 感谢 @andreas.schempp 提供有关如何安全处理产品更新的友好建议
- 感谢 @zoglo 在集成测试运行方面提供的友好帮助
- 感谢 Contao 社区提供的宝贵提示
- 感谢 Benny Born 和 Michael Bösherz,numero2,他们的 simple-stock-management 扩展,这为我提供了最初的想法。