Всем привет, предыстория - раньше магазин работал без регистраций, а сейчас решил его перевести на обязательную, но ласковую, регистрацию (с автоотправкой пароля, минимумом полей, короче чтобы покупатели не жаловались и вообще не замечали, что их автоматом регистрируют в магазине).
На почве этого столкнулся с очень загадочным разделом ОС - Личный кабинет, куда раньше не смотрел даже. В частности, есть там такая штука, как История заказов, которая выводит список всех заказов, сделанных одним юзером. Есть в этом списке интересное поле с именем Товаров:
Интересно оно тем, что вместо, казалось бы, логичного вывода суммарного количества всех товаров в заказе, в этом поле выводится количество уникальных товаров (заказ был на 5 телефонов одной марки, соответственно количество уникальных позиций = 1, но всего телефонов-то 5!):
Считается вся эта радость ф-цией getTotalOrderProductsByOrderId из файла \catalog\model\account\order.php
Я ее изменил с такого вида
$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");
на такой
$query = $this->db->query("SELECT SUM(quantity) AS total FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");
и считаться стало гораздо логичнее.
Вроде бы обращений к этой функции нет в других местах, кроме основного контроллера \catalog\controller\account\order.php
А значит изменения должны быть безболезненными (гуру, поправьте меня, если я сделал глупость).