【问题标题】:Kentico - Adding multiple discountsKentico - 添加多个折扣
【发布时间】:2016-02-11 11:28:23
【问题描述】:

我使用的是 Kentico 8.2 版,并试图允许用户输入多张优惠券。在 ECommerceContext.CurrentShoppingCart 对象中,您有一个可以设置的 ShoppingCartCouponCode。然后将此优惠券添加到该对象的 Discounts 集合中。

如果我将 ShoppingCartCouponCode 更改为其他内容,则 Discount 集合将再次使用新折扣的单个项目重新创建,并失去旧折扣。 p>

如果我存储折扣集合的副本,然后应用输入的新优惠券,然后将复制的集合附加到新生成的 Discount 集合中,那么这仅适用于几个折扣。我担心这样做会在其他地方引起问题。

那么之前有没有人实现过这个功能,你是怎么做的/打算怎么做的?

【问题讨论】:

    标签: kentico discounts


    【解决方案1】:

    编辑:虽然看起来产品优惠券应该允许您这样做,但它们的工作方式并不像您想象的那样。当 Product Coupon 应用于购物车时,COM_ShoppingCart 中该购物车记录的 ShoppingCartDiscountCouponID 字段会更新,以包含对 COM_DiscountCoupon 中折扣券 ID 的外键引用。因此,任何时候都绝对只能有一张产品优惠券应用于购物车。

    因此,它们似乎更像是标志,如果特定产品在购物车中并且输入了正确的优惠券代码,则可以将折扣应用于整个购物车,而不是特定产品的折扣。

    但是,这并不意味着我们不能进行一些自定义来实现这种影响。我们的第一步是更改 CMSModules > Ecommerce > Controls > ShoppingCart 中的 ShoppingCartContent 控件,以允许输入多个优惠券代码。这是最简单的部分。

    第二部分是更改折扣和购物车的关联方式。这可能需要修改 Kentico 的系统表,因此您需要自担风险。您基本上希望将外键引用与 COM_ShoppignCart 表分离,并在购物车和折扣之间创建多对多关系。就我个人而言,我将不理会系统表和 API,只创建另一个将 CartIDs 映射到 DiscountIDs 的自定义表(您可能也必须对 Orders 执行相同的操作,因为在创建订单时将购物车数据应用于订单数据)。

    最后一部分是更改折扣的实际计算方式。 之前我建议创建一个自定义 DiscountCouponInfoProvider。事实证明,您真正想要做的是创建一个自定义 ShoppingCartInfoProvider 并覆盖以下方法之一:

    • CalculateOrderDiscount()
    • CalculateItemsDiscount()

    如果描述性不够,我深表歉意,但这将对 Kentico 处理产品优惠券的方式进行重大修改,因此我没有太多时间来详细说明。不过,我估计至少需要几周时间才能完成。


    旧答案

    嗯,您可以创建代表两个或多个折扣组合的折扣,并在用户选择正确组合时应用这些折扣。

    或者,如果我有时间构建它,我更希望创建一个 custom DiscountCouponInfoProvider 来更改折扣的应用方式。M

    【讨论】:

    • 结合其他折扣的折扣对我们来说并不是一个真正可行的选择。我希望 Kentico 已经支持多个折扣,因为他们将单个折扣存储到一个集合中。如果您只能申请一个,为什么要这样做?目前唯一的选择是在此之上创建我们自己的自定义功能吗?
    • 查看 v7 中的 API,ShoppingCartInfo 属性 ShoppingCartDiscountCouponID 存储了折扣优惠券的单个 ID,这似乎表明只能将单个优惠券应用于购物车。 COM_SKUDiscountCoupon 表似乎也反映了这种模式。但这并不意味着它在 v8 中是相同的。我正在安装 8.2,以便我们可以解决这个问题:)
    • 谢谢杰瑞克。如果我确实需要构建一些自定义功能,我会尽量保持模块化并与其他人共享。
    • 您所调查的内容确实有道理。遗憾的是,正如我之前认为的那样,这不是一项微不足道的任务。谢谢
    猜你喜欢
    • 2012-03-31
    • 2020-04-04
    • 1970-01-01
    • 2022-01-14
    • 2014-03-04
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 2015-11-03
    相关资源
    最近更新 更多