Поиск только по цифрам в модели делается так:
В файле catalog/model/catalog/product.php
найди
$sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')";и замени на
$sql .= " OR p.model LIKE '%" . $this->db->escape(preg_replace('/\D/', '', $keyword)) . "%')";Но в этом решении есть подводные камни... Например, если попытаться найти модель35 то реально будет поиск по вхождению числа 35 и результатов может быть неприлично много. Кроме этого кто-то из пользователей захочет поискать по фразе вообще не содержащей цифр и получит вообще все товары. Тут, по хорошему, напрашивается создание отдельной формы для поиска по артикулу.Что можно попытаться сделать на базе того что есть и при этом получить более менее вменяемые результаты...
Проверять что-бы для поиска по модели было не менее 3 цифр и искать не вхождение, а товары у которых модель начинается с этих цифр.
Если цифр меньше 3 - искать по введённой фразе.
$number = preg_replace('/\D/', '', $keyword);
if (strlen($number) > 2) {
$sql .= " OR p.model LIKE '" . $number . "%')";
} else {
$sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')";
}
Исправил ошибку в регулярке /D/ на /\D/