尝试在 php 中为在线商店实现促销代码框


Trying to implement a promotion code box in php for an online store

我正在尝试在 php 中制作一个促销代码框,以便我可以为人们提供我在线商店中商品的特定折扣的不同代码。基本思想是让他们在购买时将代码输入盒子以获得类似优惠券的效果。

我一直在四处寻找,但找不到任何关于这个或类似性质的东西。 任何帮助将不胜感激,谢谢!

以下是我自己的一些想法/想法,我用来创建一个类似优惠券的系统。这应该有助于您开始设计后端。

  1. 你想要(我们称之为"优惠券")具有成为是否绑定到特定项目,如以及具有被捆绑的能力到项目类别(多个项)。
  2. 优惠券应该能够定义固定金额或设定百分比关闭一部分小计或全部小计。
  3. 税款应根据折扣前小计。您可以选择另一种方式,但是这是一个需要考虑的决策点。
  4. 您应该能够指定优惠券的开始日期和结束日期。
  5. 您应该能够按项目和用户跟踪优惠券使用情况。 如果您有抽象的用户组,那么您应该也能够按用户组进行跟踪。
  6. 您应该能够要求优惠券中其他未打折的商品,以获得其他商品的折扣。(购买This获得That半减类型的交易)
  7. 在优惠券生效之前,您应该能够定义最小数量的物品(购买 3 条轮胎送第 4 条!),以及可以应用的最大次数(您可能不希望:买 30 条轮胎送 10 条轮胎!
  8. 您可以决定将某些优惠券限制为特定用户或用户组。 如果这样做,则需要找到一种方法来强制实施此限制。

光是读到这里,我就看到了至少3张表:

CouponsItem_CouponsUser_Coupons

Item_CouponsUser_Coupons将项目和用户表映射到优惠券的位置。 您还可以包括其他表格,这些表格可能会使事情变得更容易,例如Coupons_RequiredItems这是从优惠券到定义优惠券所需项目的项目的另一种映射。 这些表的结构在很大程度上取决于您打算如何实现这一点。

当然,如果您的唯一意图是提供单个项目的 X% 折扣,那么遵循这将太复杂,但要灵活得多。

坏方法:

switch($_GET['code']) {
  case "foo":
    $price -= $price * 0.1;
    break;
  case "bar":
    $price -= $price * 0.25;
    break;
  case "baz":
    $price -= $price * .33;
    break;
  default:
    break;
}

最好是将映射代码 -> 折扣存储在数据库中的某个位置并从那里读取它。