nahati/contao-isotope-stock

Contao / Isotope 的限量版处理

安装: 132

依赖项: 0

建议者: 0

安全: 0

星星: 5

关注者: 3

分支: 2

开放性问题: 0

类型:contao-bundle

v2.1.1 2023-10-01 12:31 UTC

This package is auto-updated.

Last update: 2024-09-10 21:44:19 UTC


README

Contao Isotope Stock

此捆绑包为 Isotope 添加了库存管理、订单限制和画廊功能。

实时演示

演示

最新更改

  • 现在也处理了限量订单
  • 在产品列表和详情视图中显示限制

可能未来的功能

  • 在后台产品列表中显示每个产品的可用数量。
  • 当达到用户定义的配额时(例如,库存少于 100)发出通知。

我们很乐意收到您的愿望和想法!

功能

A) 处理限量版

处理限量版:考虑产品的 quantityinventory_status。您可以使用基本产品(父级)和/或变体(子级)设置库存。

用例

  • 将产品添加到购物车
  • 更新购物车中的项目
  • 从购物车中删除项目
  • 合并购物车(访客购物车和会员购物车)
  • 结账

尚未处理这些用例(查看此处

  • 删除旧购物车
  • 删除旧订单

购物车

  • 根据可用数量更新购物车中的数量。
  • 如果没有可用数量,则将库存状态设置为 reserved
  • 为每个保留产品添加系统消息(在后台仪表板中发出)。

结账

  • 结账后更新可用数量。
  • 如果没有剩余数量,则将库存状态设置为 soldout

产品列表

  • 显示库存状态和可用数量

产品视图

  • 显示库存状态和可用数量
  • 根据库存状态显示“添加到购物车”按钮

一些功能的详细说明

  • 在页面购物车:如果购物车已更改/用户被要求确认,则显示消息。
  • 在结账页面:如果购物车已更改/用户被要求确认,则显示消息。
  • 在结账页面:如果结账过程中产品数量已更改(通过并发更新)/用户被要求返回购物车,则显示消息。
  • 在订单完成页面:如果在结账过程的最后一步中产品数量已更改(通过同时进行的并发更新)/订单状态设置为 Overbought,则发送通知。

B) 处理订单限制

  • 考虑产品的 minQuantityPerOrdermaxQuantityPerOrder
  • 您可以使用基本产品(父级)和/或变体(子级)设置限制。

处理以下用例

  • 将产品添加到购物车
  • 更新购物车中的项目
  • 从购物车中删除项目
  • 合并购物车(访客购物车和会员购物车)

购物车

  • 根据 minQuantityPerOrdermaxQuantityPerOrder 更新购物车中的数量。

产品列表和产品视图

  • 显示 minQuantityPerOrdermaxQuantityPerOrder

一些功能的详细说明

  • 在页面购物车:如果购物车已更改,则显示消息。
  • 在结账页面:如果购物车已更改/用户被要求确认,则显示消息。

C) 画廊功能

此外,您还可以在单个产品列表中处理所有产品

  • 库存状态为 available 的产品(画廊、商店可用)
  • 库存状态为 reservedsoldout 的产品(画廊、商店不可用)
  • 库存状态为 not for sale 的产品(画廊、商店不可用)

配置

您的设置可以针对每个产品类型和每个产品单独设置。在后台商店配置中,您可以选择要为特定产品类型使用的属性

所有属性都可以由后台用户更改。

仅配置图库功能(不包含 HandleLimitedEditions)

您可能只能激活 inventory_status。然后只有 not for saleavailable 这两个选项会被使用,并且此产品类型将不会有任何库存管理。如果您只想将商店和图库结合起来使用,请使用此功能。

配置限量版

如果您有限量版,请激活 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 扩展,这为我提供了最初的想法。