【问题标题】:Discount Coupon issue In x-cart优惠券问题在 x-cart
【发布时间】:2017-10-11 12:26:19
【问题描述】:

作为x-cart的结构,orderid是在provider的基础上创建的。有 3 种情况。

  1. 如果客户从一个供应商处购买 2 件不同的商品,则 orderid 为 1,itemid 为 2。
  2. 如果客户从一个供应商处购买了 2 件相同的商品,则 orderid 和 itemid 都将为 1,并且 itemid 的金额字段将被计为 2。
  3. 当客户从 2 个不同的供应商处购买 2 件商品时,orderid 和 itemid 都会不同。

我坚持第三种情况。优惠券有两种范围,可以percentageflat discount

  • 当我尝试给予固定折扣时,这两种产品都算在内,假设 我对价格为 500+ RS 的产品给予 200RS 折扣。

现在的问题是存在一个计算产品折扣的循环。因此,当有 2 个供应商折扣时,两种产品都会计算在内,因为会有 2 个 orderid。

当我在打折时试图打破循环时。该网站正在崩溃。没有办法停止循环。因为如果我们停止一个循环,那么订购数组所需的数据将不存在,脚本将崩溃。有人面临同样的问题吗?或者有人对此有任何解决方案吗?

我需要的是折扣应该计入购物车小计,而不是产品。尝试了太多东西,但还没有找到任何解决方案。如果你们有任何想法,请告诉我。

谢谢。

【问题讨论】:

  • 您使用哪个 X-Cart 版本?
  • @IldarAmankulov 现在是 4.7
  • 优惠券是基于 X-Cart 白金版的提供商。它们只能应用于提供商的产品,不是吗? demo.x-cart.com/demo_platinum/provider/coupons.php
  • 是的,这是实际问题。何时会有来自 2 个不同供应商的 2 个产品。所以两者都会被计算在内。

标签: php x-cart


【解决方案1】:

针对问题的一种自定义解决方案 “我需要的是折扣应该计入购物车小计,而不是产品。”可能是辅助隐藏优惠券。

  • 应将新的“main_coupon”标志添加到 xcart_discount_coupons 表中
  • 客户将使用一张“主要”优惠券 total_discount=$10
  • X-Cart 将在计算中使用 2 个或更多“儿童”优惠券。例如 couponA=$5 和 couponB=$5

这是 func_calculate_discounts 函数的一段示例代码

    //$discount_coupon_data = func_query_first("SELECT * FROM $sql_tbl[discount_coupons] WHERE coupon='" . addslashes($discount_coupon) . "' $provider_condition");
    //find related child coupons instead of main coupon             
    $discount_coupon_data = MultiCoupon::getChildCouponByMainCouponCode($discount_coupon, $provider_condition);

MultiCoupon::getChildCouponByMainCouponCode 类似于

class MultiCoupon {
    public static function getChildCouponByMainCouponCode($main_coupon_code, $provider_condition) {
        global $sql_tbl;

        $child_discount_coupon_data = func_query_first("SELECT child_coupons.* FROM $sql_tbl[discount_coupons] as child_coupons INNER JOIN $sql_tbl[discount_coupons_links] as main_coupons ON child_coupons.main_code = main_coupons.code AND main_coupons.code='" . addslashes($main_coupon_code) . "' $provider_condition");
        return $child_discount_coupon_data;
    }
}    

I.E.您应该将基于一个优惠券代码的优惠券数据替换为基于提供商的多个优惠券。

【讨论】:

  • 你能详细解释一下吗?我没听懂你想说什么。对不起。
  • 所以我必须以discount_coupons_links创建新表吗?
  • 是的,如果您选择此解决方案。可能还有其他方法。
  • 仍然,我不知道它是如何工作的?不过,这两种产品的折扣都会计算在内。
  • 内部将有2张优惠券,每件1张
猜你喜欢
  • 2011-10-09
  • 2018-04-29
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-14
相关资源
最近更新 更多