Afficher tous les produits lorsque la recherche est vide (Opencart 2.3.x)

Objectifs du blog

Après avoir lu ce blog, vous pourrez afficher tous les produits lorsque la recherche est vide.

Énoncé du problème

Actuellement, dans Opencart, lorsqu'un utilisateur recherche une chaîne à l'aide de la fonctionnalité de recherche, aucun produit n'est renvoyé si aucun produit de recherche n'a été trouvé dans la base de données. Nous voulons que tous les produits soient renvoyés lorsque la recherche est vide.

Implémentation du code

Pour ce faire, nous devrons apporter quelques modifications à la fonction de modèle que nous utilisons pour extraire des produits de la base de données à l'aide du mot clé de recherche saisi. Ici, nous apportons des changements dans getProducts () ?function of model catalogue / modèle / catalogue / produit.php car nous utilisons cette fonction pour afficher les résultats sur la base du mot clé de recherche.

Remarque: vous pouvez apporter les mêmes modifications à la fonction de modèle que vous utilisez pour récupérer des produits. Voici le code que nous avons ajouté dans le modèle:

/ * Vérifié si le résultat est vide (lignes affectées 0) de la requête en cours d'exécution pour extraire des données sur la base du mot clé de recherche. * Si oui, nouvelle requête pour extraire les nouveaux produits ajoutés et exécution identique. * En faisant cela, nous afficherons nos nouveaux produits sur la page de recherche au lieu d'afficher une page vierge. * / if ($ query-> num_rows == 0) {$ sql = "SELECT DISTINCT p.product_id FROM". DB_PREFIX. "produit p LEFT JOIN". DB_PREFIX. "description_produit 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' ET p.date_available <= NOW () AND p2s.store_id = '". (int) $ this-> config-> get ('config_store_id'). "'GROUP BY p.product_id ORDER BY p.product_id DESC LIMIT 20"; $ query = $ this-> db-> query ($ sql); }

Ajoutez ce code juste après l'exécution de la requête principale ou juste après la ligne ($ query = $ this-> db-> query ($ sql)). Dans ce code, nous avons d’abord vérifié le nombre de lignes affectées par la requête principale (utilisé pour extraire des données sur la base du mot clé de recherche). Si la ligne affectée est 0 ($ query-> num_rows == 0) puis ajouté notre requête pour récupérer de nouveaux produits ajoutés. En faisant cela, nous afficherons nos nouveaux produits sur la page de recherche au lieu d'afficher une page vierge.

Remarque: Ici, nous avons écrit une requête pour extraire de la base de données les nouveaux produits ajoutés si la recherche est vide. Vous pouvez également ajouter une requête pour aller chercher des produits spéciaux ou les meilleurs vendeurs en fonction de vos besoins.

Résumé

Après avoir apporté les modifications suivantes au fichier de modèle, les nouveaux produits ajoutés seront affichés lorsque la recherche sera vide.


Shivika Tomar

Shivika Tomar

Shivika Tomar is a passionate PHP developer. Her area of interest is website development. She loves to bring healing to stressful and sad peoples.

Leave a Reply

Your email address will not be published. Required fields are marked *