繁体   English   中英

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

[英]how to calculate discount based on category of products on shopping cart page in opencart?

我想按类别对购物车页面上的产品进行分组和显示。 我的意思是说,如果我们有四个产品,则应如下所示:

第1类

  • 产品我
  • 产品二

2类

  • 产品我
  • 产品二

我还想将每个类别值的总数存储在一个数组中。 我正在尝试实施类别明智的折扣。 谢谢。

编辑:-这是我的购物车页面,我试图在此页面根据商品类别显示折扣 在此处输入图片说明

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

在此处输入图片说明

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

这就是为什么我没有代码可放在这里的原因。

请给出一些想法,以便我可以尝试创建一些东西。 谢谢!!

以下是我的要求-

  1. 销售和交货条款:

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

    • 红葡萄酒,白葡萄酒:

      • 36瓶装,每瓶750毫升,折扣6%;
      • 60瓶装,每瓶750毫升,折扣10%;
      • 来自84瓶,每瓶750ml,折扣13%。
    • 强化葡萄酒(甜):

      • 从12瓶中,每瓶750ml,打折5%。
    • 提货折扣:

      • 24瓶装,每瓶750毫升,折扣3%。
    • 现金支付:

      • 24瓶装,每瓶750毫升,折扣3%。
    • 货到付款现金:

      • 3%的折扣。

可以通过以下方式实现。 我们可以根据该类别对所有产品进行排序,然后可以轻松应用任何折扣。

首先,您应该对所有产品进行分类-

////////////// 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;
            }
        }
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM