You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Opencart 3.0.3.6(Journal3主题)首页显示数量折扣求助

Opencart 3.0.3.6 + Journal3 首页商品网格显示阶梯数量折扣方案

一、定位控制器文件

首页商品网格的数据源取决于你使用的商品展示方式,核心控制器有三个:

  • 若用Journal3自带的商品模块:catalog/controller/journal3/module/products.php(最常用)
  • 若用首页默认商品列表:catalog/controller/common/home.php
  • 若调用分类商品列表:catalog/controller/product/category.php

优先检查catalog/controller/journal3/module/products.php,因为Journal3主题通常用自身模块渲染首页商品。

二、添加获取阶梯折扣的代码

找到控制器中遍历商品的循环段(通常在foreach ($results as $result)代码块内),插入以下代码获取并传递折扣数据:

// 加载商品模型并获取阶梯折扣
$this->load->model('catalog/product');
$discounts = $this->model_catalog_product->getProductDiscounts($result['product_id']);

$product_discount_list = [];
foreach ($discounts as $discount) {
    // 匹配当前用户组的折扣
    if ($discount['customer_group_id'] == $this->config->get('config_customer_group_id')) {
        $product_discount_list[] = [
            'quantity' => $discount['quantity'],
            'price'    => $this->currency->format($this->tax->calculate($discount['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency'])
        ];
    }
}

// 将折扣数据传入模板变量
$data['products'][$index]['discounts'] = $product_discount_list;

三、修改模板渲染折扣

打开你找到的catalog/view/theme/journal3/template/journal3/product_card.twig,在商品价格区域附近添加以下代码(可根据示例图调整位置和样式):

{% if product.discounts %}
    <div class="product-volume-discounts">
        {% for discount in product.discounts %}
            <p class="discount-line">买{{ discount.quantity }}件及以上:{{ discount.price }}</p>
        {% endfor %}
    </div>
{% endif %}

你可以自行添加CSS样式优化显示效果,比如调整字体大小、颜色等,匹配店铺风格。

四、清理缓存

修改完成后必须清理缓存才能生效:

  • 后台进入「系统→设置→存储」,点击清除缓存
  • 打开Journal3后台右上角的缓存清理按钮,清理主题缓存

内容的提问来源于stack exchange,提问作者MorningStar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 07:01:15