Перейти к содержанию
evgeny8778

Вывести категории в отчёте по купленным товарам

Рекомендуемые сообщения

Здравтвуйте.

 

Необходимо в отчёт по купленным товарам вывести категорию к которой этот товар относится.

Так же как здесь, но только без фильтра по категориям.

 

post-674537-0-87003100-1396525839_thumb.png

 

Вопрос: как подобное реализовать и нужно ли редактировать базу.

 

P. S. Версия OpenCart 1.5.1.3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В файле шаблона: /admin/view/template/report/product_purchased.tpl

 

я добавил строки,

<td class="left"><?php echo $column_category; ?></td>

и

<td class="left"><?php echo $product['category']; ?></td>

получилось

<table class="list">
        <thead>
          <tr>
	   <td class="left"><?php echo $column_category; ?></td>
            <td class="left"><?php echo $column_name; ?></td>
            <td class="left"><?php echo $column_model; ?></td>
            <td class="right"><?php echo $column_quantity; ?></td>
            <td class="right"><?php echo $column_total; ?></td>
          </tr>
        </thead>
        <tbody>
          <?php if ($products) { ?>
          <?php foreach ($products as $product) { ?>
          <tr>
	   <td class="left"><?php echo $product['category']; ?></td>
            <td class="left"><?php echo $product['name']; ?></td>
            <td class="left"><?php echo $product['model']; ?></td>
            <td class="right"><?php echo $product['quantity']; ?></td>
            <td class="right"><?php echo $product['total']; ?></td>
          </tr>

в файле контроллера: admin/controller/report/product_purchased.php

 

я добавил строку, 

'category'   => $result['category'],*/
					

получилось.

if ($option =='filter'){
		
			foreach ($results as $result) {
				$this->data['products'][] = array(
					'category'   => $result['category'],
					'name'       => $result['name'],
					'model'      => $result['model'],
					'quantity'   => $result['quantity'],
					'total'      => $this->currency->format($result['total'], $this->config->get('config_currency'))
				);

Так же внёс соответствующие изменения в файл: admin/language/russian/report/product_purchased.php

 

После чего появился столбец категорий с пустыми строками. В шапке админки на странице отчёта появились множественные, одинаковые  ошибки вида:

Notice: Undefined index: category in /public_html/admin/controller/report/product_purchased.php on line 121

Нужно ли вносить изменения в файл модели: admin/model/report/product.php и ели да, то какие именно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в модели

public function getPurchased($data = array()) {
        $sql = "SELECT op.name, op.model, SUM(op.quantity) AS quantity, SUM(op.total + op.total * op.tax / 100) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX . "order` o ON (op.order_id = o.order_id)";
      

добавьте ещё

op.category

 

также нужно добавить фильтрацию)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавил, вместо страницы отчёта выдаёт ошибку:



Notice: Error: Unknown column 'op.category' in 'field list'
Error No: 1054

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал так, то же самое





public function getPurchased($data = array()) {

        $sql = "SELECT p2c.category_id, op.name, op.model, SUM(op.quantity) AS quantity, SUM(op.total + op.total * op.tax / 100) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX . "product_to_category` p2c ON (p.product_id = p2c.product_id), `". DB_PREFIX . "order` o ON (op.order_id = o.order_id)";

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте, пришлось вернутся к данному вопросу.

На данный момент название категории товара выводится. Реализована следующим запросом:

"SELECT cd.name as cn, op.name, op.model, SUM(op.quantity) AS quantity, SUM(op.total + op.total * op.tax / 100) AS total 
			from `" . DB_PREFIX . "product` p
			LEFT JOIN `" . DB_PREFIX . "product_to_category` p2c ON (p.product_id = p2c.product_id) LEFT JOIN `" . DB_PREFIX . "category_description` cd ON (p2c.category_id = cd.category_id)  `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_product op ON (op.order_id = o.order_id) ";

Возникла проблема. Если в карточке товара, в разделе связи, в пункте "Показывать в категориях" выбрать больше одной категории, то в отчёт входят количество и стоимость проданного товара, перемноженное на количество выбранных для отображения категорий. Т.е. если товара продано 5 шт. и он должен отображаться в 2-х категориях, то отчёт показывает, что товара продано 10 шт.

 

Какое условие нужно использовать для ограничения количества учитываемых категорий? Или я изначально пошёл не тем путём?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.