Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php x-cart中的折扣券发行_Php_X Cart - Fatal编程技术网

Php x-cart中的折扣券发行

Php x-cart中的折扣券发行,php,x-cart,Php,X Cart,作为x-cart的结构,orderid是在提供者的基础上创建的。有三种情况: 如果客户从一个供应商处购买两个不同的项目,则orderid为1,itemid为2。 如果客户从一个供应商处购买2个相同的项目,orderid和itemid都将为1,itemid的amount字段将计为2。 当客户从2个不同的供应商处购买2个项目时,orderid和itemid都将不同。 我坚持第三种情况。有两种折扣券,你可以给它的百分比或作为单位折扣 当我试图给予固定折扣时,这两种产品都算在内,比如说我对价格为500+

作为x-cart的结构,orderid是在提供者的基础上创建的。有三种情况:

如果客户从一个供应商处购买两个不同的项目,则orderid为1,itemid为2。 如果客户从一个供应商处购买2个相同的项目,orderid和itemid都将为1,itemid的amount字段将计为2。 当客户从2个不同的供应商处购买2个项目时,orderid和itemid都将不同。 我坚持第三种情况。有两种折扣券,你可以给它的百分比或作为单位折扣

当我试图给予固定折扣时,这两种产品都算在内,比如说我对价格为500+卢比的产品给予200卢比的折扣。 现在的问题是有一个循环,即计算产品的折扣。因此,当有2个供应商时,这两种产品都将考虑折扣,因为将有2个OrderID

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

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


谢谢。

此问题的一个自定义解决方案 我需要的是折扣应该算在购物车小计上,而不是产品上。可能是辅助隐藏优惠券

新的“主优惠券”标志应添加到xcart\u折扣优惠券表中 客户将使用一张“主”优惠券总折扣=$10 X-Cart将在计算中使用2张或更多“儿童”优惠券。例如couponA=$5和couponB=$5 这是func_calculate_折扣函数的一段示例代码

    //$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);
其中multicon::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;
    }
}    

也就是说,您应该将基于一个优惠券代码的优惠券数据替换为基于提供商的多个优惠券。

您使用哪个X-Cart版本?@IldarAmankulov it's 4.7优惠券是基于提供商的X-Cart白金版优惠券。它们必须仅适用于提供商的产品,不是吗?是的,这才是真正的问题。当有2个不同的供应商提供2个产品时。所以不满将被计算在内。你能详细解释一下吗?我不明白你想说什么。抱歉。那么我必须创建新表作为折扣券链接吗?是的,如果您选择此解决方案。可能还有其他的方法。不过,我不知道它怎么工作?不过,这两种产品的折扣都会计算在内。在内部,将有2张优惠券,每件商品一张