gpt4 book ai didi

Kentico - 添加多个折扣

转载 作者:行者123 更新时间:2023-12-02 01:28:44 24 4
gpt4 key购买 nike

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

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

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

那么之前有没有人实现过这个功能,你是如何/将如何实现的?

最佳答案

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

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

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

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

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

  • 计算订单折扣()
  • 计算商品折扣()

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


旧答案

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

或者,如果我有时间构建它,我更愿意创建一个 custom DiscountCouponInfoProvider这改变了折扣的应用方式。M

关于Kentico - 添加多个折扣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35338098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com