Oggi vediamo come fare i reindex su Magento 1.
I reindex sono sempre una scocciatura. Quante volte vi sarà capitato di aver fatto una modifica ad un prodotto, ad una categoria o ad un attributo per poi andare a controllare in front-end e vedere che tutto era come prima?
Delle volte la colpa è della cache, altre volte la colpa va attribuita ai reindex. Sopratutto nel caso in cui si fanno delle modifiche, appunto, a dei valori degli attributi e magari non si ha impostato il reindex al momento del salvaggio.
Questo problema è ancora più ricorrente se si utilizzano le tabelle flat che devono essere ogni volta ricreate, soprattutto quando si crea un nuovo attributo nel catalogo prodotto o categorie (vedi articolo come attivare le tabelle flat),
La griglia degli indici la raggiungiamo dal menù del pannello di amministrazione di Magento, in Sistema => Gestione Indice:

Questo screen che vi riporto, con la griglia degli indici, è la migliore delle situazioni. Cioè, tutti gli indici sono allineati alle nostre modifiche, quindi in front-end tutte le modifiche fatte sull’admin saranno visibili in modo aggiornato.
Se avessimo, invece, degli indici da aggiornare, potrebbe bastare selezionare l’indice da aggiornare (oppure “Seleziona tutto” nell’header della nostra griglia), spuntando la casella nella prima colonna della riga che ci interessa. Dopo di che, come in molte delle griglie di magento, nella parte di destra troviamo le azioni e il pulsante invia.

In questo caso le azioni sono 2:
- Reindicizzazione Informazioni
- Cambio modalità Indicizzazione
Reindicizzazione Informazioni
La prima è quella che fa al caso nostro: una volta terminato il processo potrebbe essere che qualche altro indice (essendo che lavorano a cascata) sia da aggiornare.
Questa è la modalità da amministrazione, ma può essere lanciato anche via script dalla cartella shell, sotto la root del progetto con il comando:
- php indexer.php –reindex all (questo comando serve per lanciare uno dietro l’altro in automatico il reindicizzamento di tutte le tabelle) la durata dell’esecuzione dello script può variare in base alla grandezza del catalogo, numero e valore di attributi ecc.
- php indiexer.php –info (ci fa vedere i nomi degli indici da impostare nel caso in cui basta aggiornare solo un indice specifico)
- php indiexer.php –status (ci permette di conoscere lo stato degli indici)
Cambio modalità Indicizzazione
La seconda scelta serve per modificare la tipologia di reindicizzazione. Infatti, avremo un secondo menù a tendina che compare in seguito alla scelta:

“Aggiornamento al momento del salvataggio” ci terrà sempre aggiornati gli indici; ci rallenterà magari in fase di salvataggio, ma verrà aggiunto agli indici solo il record che stiamo modificando.
Nella modalità manuale dovremmo lanciare, come spiegato prima, il reindex, ma in questo caso la durata dell’esecuzione sarà maggiore perché verrà rifatto, appunto, tutto l’indice da zero.