关于Php折扣模块产品匹配问题

问题描述

有一个我可以在我的网站上推广的模块,我想对该模块进行一些修改。我做了一些,但是有一个问题。

该模块的正常使用:将x产品添加到我的购物车时,它将对产品y给予%的折扣。我想将x产品添加到我的购物车。并且,如果将第二个x商品添加到购物车中,则仅第二个商品应获得高达%的折扣。第三产品不应该打折,而第四产品。

在模块中,当我为多个商品应用折扣时,它不会检查商品是否为同一商品。购物篮中有任何两种打折产品就足够了。

例如; 我打折的产品是x,y,z。 如果购物篮中至少有2件物品,我需要50%的折扣。

模块: 篮子里有x,y。它适用50%。

我想要: 篮子里有x,y。没有折扣。 篮子有2x,1y。折扣仅适用于x。 有2x和2y。它将对第二个x和第二个y施加折扣。

我希望我能解释。 以下是模块中所需的代码块。

$promo1 = $promo['condition_min_quantity'];
$promo2 = $promo['condition_product_ids'];
$promo3 = $promo['discount_quantity'];
$promo4 = array_intersect_assoc($promo['condition_product_ids'],$promo['discount_product_ids']);
$promo5 = $promo['discount_value'];

// Block early
if (!$promo1 || !$promo2 || !$promo3 || !$promo4 || !$promo5) {
    return $promo;
}

$products     = $this->_cart['products'];
$p_conditions = array(  // Product conditions in cart
    'products'       => array(),'total_quantity' => 0,'condition_qty'  => '2','base_multiply'  => 0,'qty_off'        => 0,);
$p_discounts  = array(); // Product discounts in cart
$p_discounts_total = 0; // total quantity of free product in cart

foreach ($products as $product) {

    if (in_array($product['product_id'],$promo['condition_product_ids'])) {
        $p_conditions['products'][] = '<a href="' . $this->url->link('product/product','product_id=' . (int)$product['product_id'],true) . '">' . $product['name'] . '</a>';
        $p_conditions['total_quantity'] += $product['quantity'];
        $p_conditions['base_multiply']  = floor($p_conditions['total_quantity'] / $p_conditions['condition_qty']);
        if ($p_conditions['base_multiply']) {
            // Note: qty_off indicate the quantity of products that get discounts off
            $p_conditions['qty_off'] = ($promo['apply_once'] ? 1 : $p_conditions['base_multiply']) * 1;
        }
    }

    if (in_array($product['product_id'],$promo['discount_product_ids'])) {
        $p_discounts[$product['product_id']] = array(
            'product_id' => $product['product_id'],'name'       => $product['name'],'quantity'   => isset($p_discounts[$product['product_id']]['quantity']) ? $p_discounts[$product['product_id']]['quantity'] + $product['quantity'] : $product['quantity'],'prices'     => isset($p_discounts[$product['product_id']]['prices']) ? $p_discounts[$product['product_id']]['prices'] + array($product['islpr_cart_id'] => $product['price']) : array($product['islpr_cart_id'] => $product['price']),'tax_class_id' => $product['tax_class_id'],);
        $p_discounts[$product['product_id']]['least_price'] = min($p_discounts[$product['product_id']]['prices']);
        $p_discounts[$product['product_id']]['most_price']  = max($p_discounts[$product['product_id']]['prices']);

        $p_discounts_total = $p_discounts_total + $product['quantity'];
    }
}   

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...