Я пытаюсь найти способ отображать заказанное количество продукта на странице Заказы в серверной части установки Prestashop v.1.6.1.9.

Мне уже удалось добавить 2 настраиваемых столбца, переопределив AdminOrdersController.php . Я добавил phone_mobile и пользовательские заметки следующим образом:

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

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

В любом случае я могу переопределить этот файл, чтобы показать заказанное количество?

0
user3220828 5 Окт 2018 в 13:25

1 ответ

Лучший ответ

Прежде всего позвольте мне прояснить одну вещь; заказанное количество не сохраняется в таблице {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 соответственно.

Надеюсь, это поможет!

2
Divyesh Prajapati 5 Окт 2018 в 11:57