Sgarbo Posted February 15, 2019 Share Posted February 15, 2019 Ho questo problema, cercherò di essere riassuntivo: Ho scritto un script in php per analizzare un file csv prodotto da un gestionale. Questo script se, trova corrispondenza tra il csv e un prodotto su prestashop ne aggiorna prezzo e giacenza. Se non trova il prodotto lo crea e mi invia un report via email. Il problema è questo: funziona tutto bene, i prodotti vengono aggiornati/creati e in backend tutto viene visualizzato correttamente. Però in frontend i prodotti non si vedono. Se dal backend li apro, seleziono la categoria (che in realtà è già correttamente impostata dallo script, ma ci clicco comunque sopra) allora si vede anche nella vetrina. Le tabelle sono praticamente sicuro di usare tutte quelle che vanno toccate con lo script, ovvero: ps_product ps_product_lang ps_product_shop ps_stock_available ps_category_product ps_image (solo se voglio inserire la foto da script) ps_product_download (solo se il prodotto offre il download) Prestashop 1.7.4.3 Cache pulita, sia da pannello "Prestazioni" che cancellando il contenuto della cartella .../var/cache/ direttamente da ftp. Qualcuno sa a cosa può essere dovuto? Sto dimenticando qualcosa? Grazie Link to comment Share on other sites More sharing options...
Haumea Posted February 15, 2019 Share Posted February 15, 2019 I prodotti sono attivi? Link to comment Share on other sites More sharing options...
Sgarbo Posted February 15, 2019 Author Share Posted February 15, 2019 Ciao Haumea! Si... tutti attivi. Infatti se apro un prodotto dal backend, e semplicemente clicco sulla categoria a cui l'ho già assegnato tramite script (e risulta assegnato perché è già selezionato con tanto di spunta categoria principale) e salvo, miracolosamente diventa visibile nel frontend.... Link to comment Share on other sites More sharing options...
Haumea Posted February 15, 2019 Share Posted February 15, 2019 Strano, sembra sia tutto corretto. Ho cercato un po' su Internet, guarda questi link. https://stackoverflow.com/questions/46287416/prestashop-product-added-programatically-is-not-showing-on-front-page I prodotti come li aggiungi nello script? Cioè, scrivi tante query SQL o li aggiungi tramite la classe Product.php. Link to comment Share on other sites More sharing options...
Sgarbo Posted February 15, 2019 Author Share Posted February 15, 2019 Grazie per i link, me li vado a leggere subito. Per la tua domanda, fa dei cicli foreach/if/else in base alle circostanze. Però si, per ogni prodotto lui esegue una query in base alla situazione. Della classe Product.php molto sinceramente non saprei, non so a cosa ti riferisci. Se hai qualche link anche per questo mi informo volentieri. Grazie. Link to comment Share on other sites More sharing options...
Sgarbo Posted February 18, 2019 Author Share Posted February 18, 2019 Ciao hardware-store! Ti ringrazio per la risposta. On 2/16/2019 at 12:55 AM, hardware-store said: Se e attive la cache aggiuntiva tramite librerie aggiuntive tipo php-apc potrebbe essere una delle cause, disattivala e prova. Se sei su server dedicato e puoi fare altre prove fai le query e riavvia semplicemente apache e vedi se compaiono Grazie anche per il suggerimento. Questa mattina farò delle prove in merito e ti farò sapere. On 2/16/2019 at 12:55 AM, hardware-store said: Le tabelle sul quale stai operando sono corrette ma sicuramente stati attivando i prodotti su una tabella e sull'altrea no e questo potrebbe essere il primo problema Per quanto riguarda le tabelle, ho ricontrollato anche ieri, e li attivo su tutte quelle in cui la key "active" è presente. Tant'è che nel backend risultano presenti e attivi. Ho anche ricontrollato tramite la mappa delle tabelle ufficiale di prestashop ed è tutto ok... Vediamo se può essere questa cache... Grazie Link to comment Share on other sites More sharing options...
Sgarbo Posted February 18, 2019 Author Share Posted February 18, 2019 21 minutes ago, hardware-store said: figurati....facci sapere Niente... ho verificato anche con il gestore del server ma nulla. Non c'è alcuna cache aggiuntiva. Aggiungo anche un'altra cosa strana: Ho provato ad eliminare la categoria che dava questo problema. Nel farlo ho selezionato la scelta "sposta tutti i prodotti nella categoria superiore e disattivali". Fatto questo ho notato che alcuni (mi sembra 2) prodotti di quelli con cui avevo seguito questo procedimento 👇 On 2/15/2019 at 5:45 PM, Sgarbo said: apro un prodotto dal backend, e semplicemente clicco sulla categoria a cui l'ho già assegnato tramite script (e risulta assegnato perché è già selezionato con tanto di spunta categoria principale) e salvo sono rimasti assegnati a questa categoria... che però secondo il backend non esisteva più. Sono andato a verificare nel server: la categoria non era stata eliminata.... Allora ho fatto questo: Ho eliminato manualmente dalla tabella ps_category del database la categoria; Ne ho creata una nuova tramite il backend; Sempre dal backend ho riattivato i prodotti che avevo disattivato; Con una query sul database spostato tutti i prodotti che avevo assegnato alla categoria "Shop" (ovvero quella "superiore" in cui spostare i prodotti dopo eliminazione precedente categoria) in quella nuova. Ora i prodotti si vedono.... Ma non capisco perché tutti questi problemi. Ok, sono contento che ora si vedano i prodotti, ma non sono tanto felice di questi due particolari alquanto strani... Link to comment Share on other sites More sharing options...
Sgarbo Posted February 21, 2019 Author Share Posted February 21, 2019 On 2/18/2019 at 9:59 AM, hardware-store said: e chiaro che qualcosa non va nella applicazione....fai un piccolo applicativo con query dirette senza usare le classi di ps. Giusto un prodotto base e vedi se lo attiva.... Ho provato e da lo stesso problema... In poche parole accade la stessa cosa: il prodotto viene correttamente creato, aggiunto in ogni tabella da chiamare in causa e attivato. La voce "active" è solo in due tabelle: ps_product e ps_product_shop ed in entrambi il prodotto è attivo. Nel backend il prodotto viene visualizzato correttamente e risulta attivo. Eppure solo se io apro la scheda prodotto e clicco sulla sua categoria (che risulta già correttamente assegnata) allora il prodotto appare anche nel frontend... E ho notato anche un'altra cosa strana: alcune volte, quando vado a modificare dal pannello amministratore i prodotti o le categorie, non sempre il prestashop e il database attuano la modifica. Per esempio, cancello una categoria... ma questa non viene davvero cancellata dal database anche se nel backend non risulta più. Nella tabella ps_category invece c'è ancora. Oppure prendo un prodotto, che magari ha più di una categoria assegnata. Se tolgo la spunta ad una delle due, "scompare" anche l'altra pur restando selezionata (vedi foto).... Link to comment Share on other sites More sharing options...
Sgarbo Posted February 21, 2019 Author Share Posted February 21, 2019 (edited) Aggiungo anche un'altro dettaglio: prestashop è impostato come multistore (i prodotti vengono correttamente aggiunti su entrambi cosi come le giacenze). Però... c'è un però. Sul primo negozio (il primo creato) ora, da prima dell'utilizzo di questo script, la ricerca del prodotto non trova alcun risultato (già rigenerato l'indice e controllato nel database, ha oltre 12 mila parole). Mentre sul secondo, che credo utilizzi un modulo di ricerca Ajax fornito con il template, la ricerca funziona correttamente.. Misteri... Edited February 21, 2019 by Sgarbo (see edit history) Link to comment Share on other sites More sharing options...
Sgarbo Posted February 22, 2019 Author Share Posted February 22, 2019 21 hours ago, hardware-store said: ai decisamente un problema di cache. perché ho realizzato spesso applicazioni esterne per ps e per manipolare direttamente i db e se non svuoti la cache prima non risolvi. Riprovo a chiedere al gestore del servizio hosting... Vediamo. Vi aggiornerò... Nel frattempo continuo anche a verificare la mia applicazione. Non si sa mai... Grazie ancora per il tempo dedicatomi Link to comment Share on other sites More sharing options...
Sgarbo Posted February 25, 2019 Author Share Posted February 25, 2019 On 2/22/2019 at 10:50 AM, hardware-store said: scusa fai dei test con una vm non online...poi ti adegui all'hosting. Si oggi proverò così. Ieri comunque lo script ha aggiunto nuovi prodotti e questa volta il problema non si è presentato... 🤗 P.s. Avete invece suggerimenti sul perché (ripeto che è un multistore) la ricerca non funzioni solo su uno dei due siti? Tenete conto che il secondo sito ha un template con un proprio modulo di ricerca Ajax. Però è quello ufficiale di ricerca a non funzionare... Link to comment Share on other sites More sharing options...
Sgarbo Posted February 25, 2019 Author Share Posted February 25, 2019 38 minutes ago, hardware-store said: guarda io sviluppo app da una vita bisogna vedere come hai sviluppato l'applicazione. io ne ho fatto diverse mai avuto questo problema. diversamente potresti adeguarti e usare il web service ma e macchinoso io non lo sopporto faccio prima a costruirci sopra applicazioni esterne salvo funzioni particolari allora sono costretto a lavorare con mvc e framework e mi piace poco. Pero in questo caso non c'entra l'app. Mi sta dando questo problema da ben prima che usassi l'app. Anche i prodotti aggiunti manualmente dal backend non li mostra in ricerca.. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now