Jump to content
Sign in to follow this  
Mishanay

[Решено] Сортировка товаров по ID в админке

Recommended Posts

Доброго времени. Поскажите пожалуйста как сделать сортировку в админке по ID товара? ID в колонке возле товара я вывел и пытался сделать сортировку по принципу расширения «Сортировка по категориям» но что то вероятно не то делаю.И ещё вопрос. У меня перестали выводиться товары на главную страницу при том что копаться с сортировкой по ID я стал позже. Что может быть?Заранее спасибо за ответы!

Share this post


Link to post
Share on other sites

Перестали выводится последние добавленные товары или какие?

Share this post


Link to post
Share on other sites

Перестали выводится последние добавленные товары или какие?

Да, последние добавленные товары.

Share this post


Link to post
Share on other sites

Перестали выводится последние добавленные товары или какие?

Да, последние добавленные товары.
Не на первой странице последние добавленные товары выводятся?Ковыряли что-нибудь из этого?:

product.phplast_home.tpl

?

Share this post


Link to post
Share on other sites

product.php

ковырял. Но не сильно. Только бавлял выражения вроде:

if (isset($this->request->get['filter_category'])) {$url .= '&filter_category=' . $this->request->get['filter_category'];}

К тому же только в адмике.

last_home.tpl не трогал.

Share this post


Link to post
Share on other sites

может просто в админке модуль отключили?

Share this post


Link to post
Share on other sites

может просто в админке модуль отключили?

Да, спасибо! Банальная не внимательность.Как насчёт сортировки по ID? Очень надо!

Share this post


Link to post
Share on other sites

раз колонку ID уже добавили, то от нее и будем отталкиваться (подробно расписывать не буду, видно что с программированием знакомы, что где вставлять думаю знаете):в ..adminviewtemplatecatalogproduct_list.tpl:заголовок таблицы будет выглядеть примерно так

<td class="left"><?php if ($sort == 'p.product_id') { ?>              <a href="<?php echo $sort_id; ?>" class="<?php echo strtolower($order); ?>">ID товара</a>              <?php } else { ?>              <a href="<?php echo $sort_id; ?>">ID товара</a>              <?php } ?></td>
в ..admincontrollercatalogproduct.php примерно 414 строка добавим строку:
$this->data['sort_id'] = HTTPS_SERVER . 'index.php?route=catalog/product&token=' . $this->session->data['token'] . '&sort=p.product_id' . $url;
в ..adminmodelcatalogproduct.php:в функции getProducts найти массив
$sort_data = array(				'pd.name',				'p.model',				'p.quantity',				'p.status',				'p.sort_order'			);
и добавить в него строчку
'p.product_id',

Share this post


Link to post
Share on other sites

Fix305Спасибо! Всё работает.Только есть одно, НО:В версии 1.4.7 вместо:

$this->data['sort_id'] = HTTPS_SERVER . 'index.php?route=catalog/product&token=' . $this->session->data['token'] . '&sort=p.product_id' . $url;
надо вставить:
$this->data['sort_id'] = HTTPS_SERVER . 'index.php?route=catalog/product&sort=p.product_id' . $url;
и тогда всё отлично работает.Модет ещё дадите совет? Как добавить поле поиска по ID тут же?И как вывести ID в письме, отправляемом клиенту и администратору после приобретения товара?

Share this post


Link to post
Share on other sites

в файле ..adminviewtemplatecatalogproduct_list.tpl :поле для ввода

<td class="center"><?php echo $product['product_id']; ?></td>
ниже в JS в функцию filter() добавить:
var filter_id = $('input[name='filter_id']').attr('value');		if (filter_id) {		url += '&filter_id=' + encodeURIComponent(filter_id);	}
в файле ..admincontrollercatalogproduct.phpнаходим все "filter_quantity" и по образу и подобию делаем для "filter_id" 1 в 1.в файле ..adminmodelcatalogproduct.phpв функцию getProducts()вставить (там поймешь где)
if (isset($data['filter_id']) && !is_null($data['filter_id'])) {								$sql .= " AND p.product_id = '" . $this->db->escape($data['filter_id']) . "'";			}			
в функцию getTotalProducts()вставить
if (isset($data['filter_id']) && !is_null($data['filter_id'])) {			$sql .= " AND p.product_id = '" . $this->db->escape($data['filter_id']) . "'";		}
должно работать (тестировал на 1.4.8b). Про ид в письмах если сам не разберешься завтра выложу.

Share this post


Link to post
Share on other sites

Отлично работает! Ты мужик!!! Спасибо!Только вместо:

<td class="center"><?php echo $product['product_id']; ?></td>
надо:
<td><input type="text" name="filter_id" value="<?php echo $filter_id; ?>" /></td>
Я письма копал, НО! Опять это НО. Постоянно ошибка. Я примерно прикидываю как можно вывести, но всё как то мысль не доходит до своего конечного итога, и в следствии положительного результата.Жду решения от тебя.

Share this post


Link to post
Share on other sites

да чет поторопился не ту строку скопировал =)насчет почты:в ..catalogmodelcheckoutorder.php найди массив

$template->data['products'][] = array(					'name'     => $product['name'],					'model'    => $product['model'],					'option'   => $option_data,					'quantity' => $product['quantity'],					'price'    => $this->currency->format($product['price'], $order_query->row['currency'], $order_query->row['value']),					'total'    => $this->currency->format($product['total'], $order_query->row['currency'], $order_query->row['value'])				);
добавить строчку
'product_id'     => $product['product_id'],
теперь в шаблоне (../template/mail/order_confirm.tpl) который уходит на почту клиентам будет доступна переменная $products[..]['product_id']а что бы еще и админу приходило идем чуть нижек строчке
$text .= $result['title'] . ' ' . html_entity_decode($result['text'], ENT_NOQUOTES, 'UTF-8') . "n";
добавляем
$result['product_id']
делал теоретически, но работать должно))

Share this post


Link to post
Share on other sites

Приветствую!В письме клиенту всё супер.А вот с админом не совсем понятно. Я так понимаю что генерация письма админу в блоке

// Text Mail$text  = sprintf($language->get('text_greeting'), html_entity_decode($order_query->row['store_name'], ENT_QUOTES, 'UTF-8')) . "nn";$text .= $language->get('text_order_id') . ' ' . $order_id . "n";........
впихиваю туда переменную и ничего.Мне бы его отформатировать (придать человеческий вид :) ) что-то вроде:

Вы получили заказ.№ заказа: 28Дата заказа: 27.08.2010Состояние заказа: ОжиданиеТовары:Кол. Наименование Упаковка Цена Артикул4 Супер-пупер товар (100 мл.) 335.00 р. 3482 Супер-пупер товар (110 мл.) 732.00 р. 275Итого:Сумма: 1067.00 р.Единая ставка: 200.00 р.Итого: 1267.00 р.

Как то так :D . Думаю понятно мысль донёс.

Share this post


Link to post
Share on other sites

Доброго времени. Поскажите пожалуйста как сделать сортировку в админке по ID товара? ID в колонке возле товара я вывел и пытался сделать сортировку по принципу расширения «Сортировка по категориям» но что то вероятно не то делаю.

А можете подробнее описать как добавить сортировку по категориям в админке?

Share this post


Link to post
Share on other sites

В моем случае Opencart 2 - работает такой вариант:

admin/controller/catalog/produkt.php

строка 261 - меняю $sort = 'pd.name'; на $sort = 'p.product_id';

после строки 465 добавляю -

$data['sort_product_id'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.product_id' . $url, 'SSL');  

 

admin/model/catalog/produkt.php

после строки 373 ($sort_data = array()

добавляю -

'p.product_id',

 

Считаю, что самая удобная сортировка товаров в админке Opencart - по умолчанию по ID товара,

а в tpl даже незачем столбец делать с ИД.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.