Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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 如何根据opencart中购物车页面上的产品类别计算折扣?_Php_Mysql_Opencart - Fatal编程技术网

Php 如何根据opencart中购物车页面上的产品类别计算折扣?

Php 如何根据opencart中购物车页面上的产品类别计算折扣?,php,mysql,opencart,Php,Mysql,Opencart,我想在购物车页面上按类别分组和显示产品。我的意思是,如果我们有四种产品,那么应该如下所示: 第一类 产品一 产品二 第2类 产品一 产品二 我还想将每个类别值的总数存储在一个数组中。我正在尝试实现分类折扣。 谢谢 编辑:- 这是我的购物车页面,我试图根据产品类别显示折扣 假设购物车中有两种产品,它们属于两个不同的类别。现在我想根据每个类别的数量计算折扣。 我已经在管理部分创建了一个模块,在其中设置所有必需的值,并将其存储到数据库中的表中 现在,基于管理员中设置的值,我尝试在购物车页面

我想在购物车页面上按类别分组和显示产品。我的意思是,如果我们有四种产品,那么应该如下所示:

第一类
  • 产品一
  • 产品二
第2类
  • 产品一
  • 产品二
我还想将每个类别值的总数存储在一个数组中。我正在尝试实现分类折扣。 谢谢

编辑:- 这是我的购物车页面,我试图根据产品类别显示折扣

假设购物车中有两种产品,它们属于两个不同的类别。现在我想根据每个类别的数量计算折扣。 我已经在管理部分创建了一个模块,在其中设置所有必需的值,并将其存储到数据库中的表中

现在,基于管理员中设置的值,我尝试在购物车页面上实现折扣。但我不知道,我怎么能这么做

这就是为什么我没有代码放在这里

请给我一些想法,这样我可以试着创造一些东西。 谢谢

以下是我的要求--

  • 销售和交付条款:

    • 对于超过600法郎的订单,交货是免费的
    • 对于少于上述金额的订单,将收取20法郎的送货费
  • 折扣和数量

    • 红葡萄酒、白葡萄酒:

      • 36瓶,每瓶750ml,6%折扣
      • 60瓶,每瓶750ml,10%折扣
      • 84瓶,每瓶750ml,13%折扣
    • 强化葡萄酒(甜):

      • 12瓶,每瓶750ml,5%折扣
    • 提货折扣:

      • 24瓶,每瓶750ml,3%折扣
    • 现金支付:

      • 24瓶,每瓶750ml,3%折扣
    • 货到付款:

      • 3%的折扣

  • 它可以通过以下方式实现。 我们可以根据产品类别对所有产品进行分类,然后可以很容易地申请任何折扣

    首先你应该把所有的假牙分类---

    然后就可以申请了---


    你的php和mysql代码???@crook\u Sense10--这是opencart的通用页面,我正试图在上面做这件事。但我不知道怎么做?这就是为什么我没有在这里发布任何代码!!
    ////////////// Grouping Same category products into one array //////////////
    
    $category_id = $this->model_discount_cdiscount->getcategory($product['product_id']);
    
    $array_key = $category_id[0]['category_id']; 
    
    if (array_key_exists($array_key, $this->data['discount']))
    {
    
        $this->data['discount'][$array_key]['total'] = $this->data['discount'][$array_key]['total']+(preg_replace("/[^0-9.]/","",$total));
        $this->data['discount'][$array_key]['quantity'] = $this->data['discount'][$array_key]['quantity']+$product['quantity'];
    }
    else
    {
        $this->data['discount'][$array_key] = array(
                'category_name' => $category_id[0]['name'],
                'category_id' => $array_key,
                'total' => (preg_replace("/[^0-9.]/","",$total)),
                'quantity' => $product['quantity'],
                'length' => $product['length']
            );
    }
    
    ////////////////////// Get Discount values from Discount table //////////////////////
    
    foreach($this->data['discount'] as $key2 => $value2)
    {
        $this->data['product_match'][] = $this->model_discount_cdiscount->matchDiscount($key2);
    }
    
    
    //////////////////////  Calculate Discount //////////////////////
    $total_d =0;
    foreach($this->data['discount'] as $discounts)
    {
        foreach($this->data['product_match'] as $match)
        {
            if(count($match)!=0)
            {
                if ($discounts['category_id']==$match['category'] AND $discounts['quantity']>=$match['quantity'] AND $discounts['length']==$match['class_value'])
                {
    
                    $dt = ($match['discount']/100)*$discounts['total'];
                    $total_d += $dt;
                }
            }
        }
    
    }