Приветствую! Есть необходимость вывести количество проданных товаров в модуле "Рекомендуемые". Что сделано: 1. В файл /catalog/controller/extension/module/featured.php добавлен код: Код: $data['total_sales'] = $this->model_catalog_product->getProductSalesTotal($this->request->get['product_id']); 2. В файл /catalog/model/catalog/product.php добавлен код: Код: public function getProductSalesTotal($product_id) { $query = $this->db->query("SELECT COUNT(DISTINCT order_id) AS total FROM " . DB_PREFIX . "order_product WHERE product_id = '" . (int)$product_id . "'"); if (isset($query->row['total'])) { return $query->row['total']; } else { return 0; } } 3. В файл /catalog/view/theme/default/template/extension/module/featured.tpl добавлено: Код: {{ total_sales }} В результате получаю количество - 0 Подскажите где и что нужно поправить. Спасибо!!! P.S. Opencart 3.0.3.8
мда уж, наворотили вы ))) COUNT вы подсчитываете количество строк, а если вы хотите подсчитать количество проданных товаров, вам надо обращаться к таблице order_product и подсчитывать по количеству товаров quantity Код: SELECT SUM(quantity) FROM oc_order_product where `product_id`= $product_id ;
Спасибо, что откликнулись. Не могли бы вы поделиться полным куском кода для product.php Прописываю то, что вы скинули выше, но получаю ошибку, видаться что-то делаю не так.
0 видимо потому что в $this->request->get['product_id'] пусто. Там находится ид товара только если вы зашли в карточку какого-то товара. маловероятно, что вы выводите этот модуль на странице карточки товара. если же вы хотите посчитать кол-во продаж каждого рекомендуемого товара, то внимательно посмотрите как ид товаров там получается в цикле. и куда записываются данные каждого товара.
В магазине всего один товар. Он выводится на главной модулем "Рекомендуемые". Вот нужно отобразить количество его продаж. Можно в модуле, а можно и просто на странице вне модуля.
1. В файле catalog/model/catalog/product.php: Найдите строку public function getProduct($product_id) { Перед этой строкой добавьте : Код: public function getQuantityProduct($product_id){ $query = $this->db->query("SELECT `product_id`, SUM(`quantity`) AS `total` FROM `" . DB_PREFIX . "order_product` WHERE `product_id` = " . (int)$product_id); $res = $query->row; return $res['total']; } 2. В файле catalog/language/ru-ru/extension/module/featured.php: Добавьте : $_['text_qty'] = 'Всего продано:'; 3. В файле catalog/controller/extension/module/featured.php: Найдите строку $data['products'][] = array( Перед этой строкой добавьте : Код: $summ = $this->model_catalog_product->getQuantityProduct($product_info['product_id']); После этой же строки $data['products'][] = array( Код: 'sale' => $summ, В файле catalog/view/theme/*/template/extension/module/featured.twig: В нужном вам месте добавьте так например: Код: <div class="block_qty"><div class="text_qty">{{ text_qty }}</div><div class="order_qty"> {{ product.sale }}</div></div> Ну и немного css стилей : Код: .block_qty {display: flex;align-items: center;margin: 0 0 20px;font-size: .85em;color: #777;white-space: nowrap;line-height: 1.3em;} .block_qty .text_qty {display: flex;align-items: center;min-height: 20px;font-size: 1.1em;font-weight:bold;} .block_qty .order_qty {display: flex;align-items: center;min-height: 20px;margin-left: 5px;font-size: 1.3em;font-weight:100;}
Да не за что. Взял из собственного модификатора который был написан под мой же шаблон лет 5 назад. Хорошего дня.