Prestashop 添加名为 "number of products" 的自定义列,显示从 "ps_order" table 订购的数量

Prestashop Add custom column called "number of products", displaying quantity ordered from "ps_order" table

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

我已经通过覆盖 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')
    );

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

首先让我澄清一件事;订购数量未存储在 {DB_PREFIX}order table 中;它存储在 {DB_PREFIX}order_detail table 中。

要添加 total_qty 总订购数量,您需要从 {DB_PREFIX}order_detail table 获取数量,为此您可以在覆盖中执行以下操作。

<?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_mobilecustom_notes 等字段。

希望对您有所帮助!