Prestashop 添加名为“产品数量”的自定义列,显示从“ps_order”表订购的数量

问题描述 投票:0回答:1

我正在尝试找到一种方法,在 Prestashop v.1.6.1.9 安装后端的 Orders 页面中显示产品订购数量。

我已经成功通过覆盖 AdminOrdersController.php 添加了 2 个自定义列。我以这种方式添加了phone_mobile和自定义注释:

$this->fields_list['phone_mobile'] = array(
        'title' => $this->l('Phone Number')
    );

$this->fields_list['note'] = array(
        'title' => $this->l('Notes')
    );

有什么方法可以覆盖此文件以显示订购的数量?

php prestashop admin product-quantity
1个回答
2
投票

首先让我澄清一件事;订购的数量未存储在

{DB_PREFIX}order
表中;它存储在
{DB_PREFIX}order_detail
表中。

要添加

total_qty
订购的总数量,您需要从
{DB_PREFIX}order_detail
表中获取数量,要实现此目的,您可以在覆盖中执行以下操作。

<?php
/**
 * @override AdminOrdersController
 */

class AdminOrdersController extends AdminOrdersControllerCore
{
    public function __construct()
    {
        parent::__construct();        
        $this->_select .= ', (SELECT SUM(od.product_quantity) FROM `'._DB_PREFIX_.'order_detail` od WHERE od.id_order = a.id_order GROUP BY od.id_order) as total_qty';

        $this->fields_list = array_merge($this->fields_list, array(
            'total_qty' => array(
                'title' => $this->l('Number of products'),
                'havingFilter' => true,
            ),
        ));
    }
}

您可以相应地添加

phone_mobile
custom_notes
等字段。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.