Врогде сгделал запрос в sql
В файл /catalog/model/catalog/product.php
в функцию getProducts
$sql = "SELECT p.product_id,(SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special,
(SELECT text FROM " . DB_PREFIX . "product_attribute attr WHERE attr.product_id=p.product_id AND attr.attribute_id=3 ) AS attr3"; // new string
дное
в
$sort_data = array(
'pd.name',
'p.model',
'p.quantity',
'p.price',
'rating',
'p.sort_order',
'p.date_added',
'attr3' // new string
);
в файл /catalog/controller/product/category.php
Добавил новые строки для сортировки
$data['sorts'][] = array(
'text' => $this->language->get('text_attr3_desc'),
'value' => 'attr3-DESC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=attr3&order=DESC' . $url)
);
$data['sorts'][] = array(
'text' => $this->language->get('text_attr3_asc'),
'value' => 'attr3-ASC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=attr3&order=ASC' . $url)
);
в языковом файле
$_['text_attr3_asc'] = 'По мощности';
$_['text_attr3_desc'] = 'По мощности';
сортировка врогде как проходит, но значение не сортируются как должны
вот сортировка от меньшего к потому чтольшему
тут врогде все норм, но вот когда игдет обратная сортировка то
хотя есть генераторы у которых мощность и 2000+
в БД я сгделал запрос
SELECT product_id,text FROM `oc_product_attribute` WHERE attribute_id=3 ORDER BY text DESC
он выдает как и на изображении выше
но если я дописываю к text в конэто +0
SELECT product_id,text FROM `oc_product_attribute` WHERE attribute_id=3 ORDER BY text+0 DESC
то сортировка игдет как и задумано:
ВОПРОС, куда мне дописать text+0, чтобы сортировка зарилиила нормально?
Подскажите пожалуйси, не могу никак сообразить
Благодарю