Objetivos do blog
Depois de ler este blog, você poderá exibir todos os produtos quando a pesquisa estiver em branco.
Problema Declaração
Atualmente no Opencart, quando o usuário pesquisa por qualquer string usando a funcionalidade de pesquisa, nenhum produto será retornado se nenhum produto de pesquisa for encontrado no banco de dados. Queremos que retorne todos os produtos quando a pesquisa estiver vazia.
Implementação de Código
Para conseguir isso, teremos que fazer algumas alterações na função de modelo que estamos usando para buscar produtos do banco de dados com base na palavra-chave de pesquisa inserida. Aqui estamos fazendo mudanças getProducts () ?function of model catálogo / modelo / catálogo / product.php como estamos usando esta função para exibir resultados com base na palavra-chave de pesquisa.
Nota: você pode fazer as mesmas alterações na função de modelo que está usando para buscar produtos. Aqui está o código que nós adicionamos no modelo:
/ * Verificado se o resultado vazio (linhas afetadas 0) da consulta está sendo executado para buscar dados com base na palavra-chave de pesquisa. * Se sim, adicione nova consulta para buscar novos produtos adicionados e execute os mesmos. * Ao fazer isso, exibiremos nossos novos produtos na página de pesquisa, em vez de mostrar a página em branco. * / if ($ query-> num_rows == 0) {$ sql = "SELECIONAR DISTINCT p.product_id FROM". DB_PREFIX. "product p LEFT JOIN". DB_PREFIX. "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN". DB_PREFIX. "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' E p.date_available <= NOW () E p2s.store_id = '". (int) $ this-> config-> get ('config_store_id'). "'GROUP BY p.product_id PEDIDO POR p.product_id DESC LIMIT 20"; $ query = $ this-> db-> consulta ($ sql); }
Adicione este código logo após a execução da consulta principal ou logo após a linha ($ query = $ this-> db-> consulta ($ sql)). Nesse código, primeiro verificamos o número de linhas afetadas pela consulta principal (usada para buscar dados com base na palavra-chave de pesquisa). Se a linha afetada for 0 ($ query-> num_rows == 0) Em seguida, adicionamos nossa consulta para buscar novos produtos adicionados. Ao fazer isso, exibiremos nossos novos produtos na página de pesquisa, em vez de mostrar a página em branco.
Nota: aqui escrevemos a consulta para buscar novos produtos adicionados a partir do banco de dados, se a pesquisa estiver vazia. Você também pode adicionar consultas para buscar produtos especiais ou de melhor vendedor de acordo com sua necessidade.
Resumo
Depois de fazer as seguintes alterações no arquivo de modelo, novos produtos adicionados serão exibidos quando a pesquisa estiver vazia.