Поиск товара по производителю на Opencart 2.3.0.2 - PullRequest
0 голосов
/ 25 марта 2019

Я бы хотел поискать товары производителя на Opencart 2.3.0.2.

Вкл. catalog/model/catalog/product.php

До

$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)

Я поставил этот код:

 $sql .= " LEFT JOIN " . DB_PREFIX . "manufacturer m ON (m.manufacturer_id = p.manufacturer_id) ";

и перед строкой:

$sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";

Я поставил этот код

 $sql .= " ORDER BY p.quantity<1, LCASE(" . $data['sort'] . ")";

Но это показывает мне:

Неизвестно: объект класса DB не может быть преобразован в строку Каталог \ модель \ каталог \ product.php

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

1 Ответ

0 голосов
/ 27 марта 2019

Попробуйте этот код, он поможет вам

Ваш последний заказ по коду неверен - удалите это

 $sql .= " ORDER BY p.quantity<1, LCASE(" . $data['sort'] . ")";

Сделайте это ниже

до

$sql .= " GROUP BY p.product_id";

поставить этот код

  $sql .= " AND p.quantity > 0";

Вы должны прокомментировать этот код для Количество больше нуля

     /* comment this code 
       if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
            if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
                $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
            } elseif ($data['sort'] == 'p.price') {
                $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
            } else {
                $sql .= " ORDER BY " . $data['sort'];
            }
        } else {
            $sql .= " ORDER BY p.sort_order";
        }
    */

и добавить это

   if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
        if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
            $sql .= " ORDER BY p.quantity, LCASE(" . $data['sort'] . ")";
        } elseif ($data['sort'] == 'p.price') {
            $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
        } else {
            $sql .= " ORDER BY p.quantity, " . $data['sort'];
        }
    } else {
        $sql .= " ORDER BY p.quantity, p.sort_order";
    }

Search product by manufacturer

...