1. Поиск - в api/Products.php
после
Код:
$keywords = explode(' ', $filter['keyword']);
пишем:
$keywords_table = ', s_variants v ';
$keywords_field = ', v.sku ';
2. вместо
Код:
$keyword_filter .= $this->db->placehold('AND (p.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR p.meta_keywords LIKE "%'.mysql_real_escape_string(trim($keyword)).'%") ');
пишем:
$keyword_filter .= $this->db->placehold(' AND p.id=v.product_id AND (v.sku LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR p.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR p.meta_keywords LIKE "%'.mysql_real_escape_string(trim($keyword)).'%") ');
3. дальше в запросе после
Код:
LEFT JOIN __brands b ON p.brand_id = b.id
пишем:
$keywords_table
4. теперь live поиск - открываем ajax/search_products.php
и меняем запрос на
$simpla->db->query('SELECT p.id, p.name, i.filename as image FROM __products p
LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1), __variants
WHERE p.id=__variants.product_id AND (p.name LIKE "%'.mysql_real_escape_string($keyword).'%" OR __variants.sku LIKE "%'.mysql_real_escape_string($keyword).'%") AND visible=1 ORDER BY p.name LIMIT ?', $limit);