Поиск по артикулу и комбинации товаров

По умолчанию в CS-Cart быстрый поиск осуществляется по наименованию продуктов и их описании. Для того чтобы, поиск осуществлялся и по артикулу товара (коду), необходимо:

  1. В корневой директории вашего интернет-магазина, необходимо перейти в каталог «core», где следует открыть на редактирование файл под названием:  «fn.catalog.php»
  2. В файле «fn.catalog.php» необходимо найти и заменить код: 
  3. $tmp = db_quote("(descr1.search_words LIKE ?l)", "%$piece%"); // check search words

    if ($params['pname'] == 'Y')

        $tmp .= db_quote(" OR descr1.product LIKE ?l", "%$piece%");

    }

    if ($params['pshort'] == 'Y') {

        $tmp .= db_quote(" OR descr1.short_description LIKE ?l", "%$piece%");

    }

    Заменить необходимо на этот:

    $tmp = db_quote("(descr1.search_words LIKE ?l)", "%$piece%"); // check search words

    if ($params['pname'] == 'Y') {

        $tmp .= db_quote(" OR descr1.product LIKE ?l", "%$piece%");

    }

    if ($params['pname'] == 'Y') {

        $tmp .= db_quote(" OR products.product_code LIKE ?l", "%$piece%");

    }

    if ($params['pshort'] == 'Y') {

        $tmp .= db_quote(" OR descr1.short_description LIKE ?l", "%$piece%");

    }

  4. Сохраните все изменения
  5. Чтобы поиск осуществлялся также и по комбинации товаров, необходимо в этом же файле, добавить следующий код:
  6. $oc_codes = db_get_fields(" SELECT product_code FROM ?:product_options_inventory");

    if (in_array($piece, $oc_codes)) {

    $pid = db_get_field(" SELECT product_id FROM ?:product_options_inventory WHERE product_code = '$piece'");

            $tmp .= db_quote(" OR products.product_id LIKE ?l", "%$pid%");

    }

    Ниже этого: 

    if ($params['pname'] == 'Y') {

           $tmp .= db_quote(" OR products.product_code LIKE ?l", "%$piece%");

    }