Aggiornare gli indici di Magento

Quando l'indice URL Rewrite di Magento non si aggiorna più

Il reindex dei dati in magento è un’operazione fondamentale per avere un catalogo sempre aggiornato, soprattutto dopo procedure di importazione di nuovi prodotti e di aggiornamento di prezzi ma anche dopo le semplici procedure di salvataggio o modifica di prodotti nel backend di Magento.

Il processo di aggiornamenti indici di Magento può essere gestito in due modalità:

  1. Usando il pannello di amministrazione di Magento, dal menu: Admin > Sistema > Gestione Indicizzazione. Questa operazione però potrebbe portare, quando il numero di prodotti a catalogo è ampio (dai 5-10.000 prodotti in su) a timeout del server, con relativo blocco del sito eCommerce.
  2. Usando la shell di linux (SSH): fare in re-index via SSH richiede delle consocenze di SSH e del terminale di base.

In questo articolo vedremo come gestire il processo di aggiornamenti degli indici di Magento in modo semplice utilizzando le due modalità qui sopra descritte.

Aggiornamento indici Magento da pannello di amministrazione

  1. Prima di tutto fai il login nel tuo pannello di amministrazione.
  2. Clicca su System > Index Management.
  3. Sul lato sinistro c’è un elenco di categorie che possono essere reindicizzate. Seleziona le categorie da indicizzare. Se si desidera eseguire una reindex per tutti i prodotti, fare clic su Seleziona tutto.
  4. Dal menu a cascata Azioni, seleziona Reindicizza dati e quindi fai clic su Invia.
  5. A seconda di quante categorie, e della quantità di informazioni che devono essere reindicizzate, questo processo potrebbe richiedere alcuni minuti o ore. Se il reindex è eseguito correttamente visualizzerai il messaggio Reindex Effettuato con Successo.
  6. Se il reindex non termina, risolvi il problema seguendo il metodo tramite shell descritto di seguito.

Aggiornamento indici Magento tramite shell

Dopo aver effettuato l’accesso al server da SSH, dirigiti all’interno della cartella dove si trova l’installazione di Magento. Una volta posizionato, puoi lanciare la reindicizzazione.

Come avrai notato nel backend, gli indici di Magento sono molti ed è possibile ricrearli o tutti insieme, oppure uno alla volta. Possiamo fare la stessa cosa da SSH eseguendo i seguenti comandi singolarmente:

php shell/indexer.php -reindex catalog_product_attribute
php shell/indexer.php -reindex catalogsearch_fulltext
php shell/indexer.php -reindex cataloginventory_stock
php shell/indexer.php -reindex catalog_category_product
php shell/indexer.php -reindex catalog_product_price
php shell/indexer.php -reindex tag_summary
php shell/indexer.php -reindex catalog_category_flat
php shell/indexer.php -reindex catalog_url

Oppure lanciare un reindex completo del catalogo di Magento attraverso questo comando:

php shell/indexer.php -reindexall

Possiamo avere anche accedere alla lista dei comandi attraverso questo comando:

php shell/indexer.php -info

Una delle criticità più grandi nel processo di aggiornamento degli indici di Magento, in presenza di un catalogo di prodotti molto grande è senza dubbio l’aggiornamento dell’indice degli URL Rewrite. Infatti questa tabella spesso si popola di elementi ad ogni salvataggio o modifica di un prodotto o categoria, andando a creare tantissimi URL Rewrite non sempre utili che vanno ad appesantire la tabella e di conseguenza il processo di aggiornamento dell’indice. Ci si può ritrovare in situazione in cui dai reali 20.000 URL Rewrite necessari si arrivi ad averne anche sino a 800.000!

Consiglio per tanto di ragionare al meglio sull’utilizzo degli URL Rewrite e di utilizzare quando si raggiunge una via senza ritorno di una delle tante estensioni che consentono la pulizia della tabella URL Rewrite, come ad esempio esempio: URL Rewrite Optimization.

E se non riesci più a aggiornare l’indice URL Rewrite… Contattaci per una consulenza!