Knowband Blog | Ecommerce Modules

Mostra tutti i prodotti quando la ricerca è vuota (Opencart 2.3.x)

Obiettivi del blog

Dopo aver letto questo blog, potrai visualizzare tutti i prodotti quando la ricerca è vuota.

Dichiarazione problema

Attualmente in Opencart, quando l'utente cerca qualsiasi stringa utilizzando la funzionalità di ricerca, non viene restituito alcun prodotto se non viene trovato alcun prodotto di ricerca nel database. Vogliamo farlo restituire tutti i prodotti quando la ricerca è vuota.

Implementazione del codice

Per raggiungere questo obiettivo, dovremo apportare alcune modifiche alla funzione del modello che stiamo utilizzando per recuperare i prodotti dal database sulla base della parola chiave di ricerca inserita. Qui stiamo apportando dei cambiamenti getProducts () ?function of model Catalogo / modello / Catalogo / Product.php poiché stiamo utilizzando questa funzione per visualizzare i risultati sulla base della parola chiave di ricerca.

Nota: è possibile apportare le stesse modifiche alla funzione del modello che si sta utilizzando per recuperare i prodotti. Ecco il codice che abbiamo aggiunto nel modello:

/ * Controllato se il risultato è vuoto (righe interessate 0) della query che è in esecuzione per recuperare i dati sulla base della parola chiave di ricerca. * Se sì, aggiunge una nuova query per recuperare nuovi prodotti aggiunti ed eseguire lo stesso. * In questo modo mostreremo i nostri nuovi prodotti nella pagina di ricerca invece di mostrare la pagina vuota. * / if ($ query-> num_rows == 0) {$ sql = "SELECT DISTINCT p.product_id FROM". DB_PREFIX. "Prodotto p SINISTRA". 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' AND 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); }

Aggiungi questo codice subito dopo aver eseguito la query principale o subito dopo la riga ($ query = $ this-> db-> query ($ sql)). In questo codice abbiamo prima controllato il numero della riga interessata dalla query principale (utilizzata per recuperare i dati sulla base della parola chiave di ricerca). Se la riga interessata è 0 ($ query-> num_rows == 0) quindi ha aggiunto la nostra query per recuperare nuovi prodotti aggiunti. In questo modo mostreremo i nostri nuovi prodotti nella pagina di ricerca invece di mostrare la pagina vuota.

Nota: qui abbiamo scritto una query per recuperare nuovi prodotti aggiunti dal database se la ricerca è vuota. Puoi anche aggiungere una query per recuperare prodotti speciali o best seller in base alle tue esigenze.

sommario

Dopo aver apportato le seguenti modifiche nel file del modello, i nuovi prodotti aggiunti verranno mostrati quando la ricerca è vuota.