Le modifiche alle categorie non vengono salvate
Questo articolo corregge alcuni problemi che si verificavano durante l’aggiornamento delle categorie di prodotti tramite l’amministratore di Commerce: le modifiche non venivano visualizzate nell’amministratore e nella vetrina. Il problema è causato dai dati danneggiati nella tabella catalog_category_entity
. Per risolvere il problema, correggere o rimuovere i record di aggiornamento delle categorie problematici nella tabella. Dopodiché, dovresti essere in grado di aggiornare le categorie di prodotto utilizzando l’Amministratore.
Problema
Dopo aver apportato modifiche a una categoria di prodotto nell’amministratore e aver salvato, i nuovi aggiornamenti non vengono salvati né visualizzati nell’amministratore e nella vetrina.
Passaggi da riprodurre
- Vai a Catalogo > Categorie.
- Seleziona una categoria.
- Apporta le modifiche, quindi fai clic su Salva.
- Viene visualizzato il messaggio: Hai salvato la categoria.
- Nota che la modifica apportata non è stata salvata.
Possibile causa: dati danneggiati nella tabella catalog_category_entity
Il problema è causato dagli stessi valori nella colonna created_in
dei record di categoria interessati nel database (DB).
Dettagli:
- La tabella del database
catalog_category_entity
contiene due o più record per la categoria interessata (questi record hanno lo stesso valoreentity_id
). - Questi record di categoria hanno gli stessi valori nella colonna
created_in
.
Come viene visualizzata la seconda voce del database (e tutte le successive) nel database per una sola e stessa categoria?
Il secondo record DB (ed eventualmente i successivi) per la categoria interessata indica che sono stati pianificati aggiornamenti di categoria utilizzando il modulo Magento_Staging. Il modulo crea un record aggiuntivo per una categoria in catalog_category_entity
e questo è il comportamento previsto dell'applicazione. Il problema è che i record hanno gli stessi valori per la colonna created_in
.
Come vengono visualizzati gli stessi valori?
Non possiamo spiegare con certezza le ragioni della corruzione dei dati. I possibili motivi possono includere:
- personalizzazioni (codice, temi, ecc.)
- migrazione dei dati non corretta
- ripristino dati errato dal backup
A nostra conoscenza, tale danneggiamento dei dati non è tipico dell’istanza Adobe Commerce "pulita" (preconfigurata) e non può essere riprodotto su un’installazione Adobe Commerce senza personalizzazioni.
Come verificare che questo sia il tuo problema
La tabella catalog_category_entity
deve avere più record per la categoria interessata (i record devono avere lo stesso valore entity_id
) e almeno due di questi record devono avere gli stessi valori created_in
. In questo modo, gli aggiornamenti pianificati per la gestione temporanea non verranno visualizzati nell’amministratore di Commerce; verrà visualizzato solo il blocco Modifiche pianificate vuoto.
Passaggi da verificare
- Accedere alla tabella catalog_category_entity nel database.
- Filtra le entità per entity_id, con entity_id che identifica la categoria interessata.
- Se i valori nella colonna_in creata sono gli stessi per voci diverse con la stessa entità_id, questo è il nostro caso. In genere, i valori
created_in
sono diversi per ogni record.
Soluzione
Puoi scegliere una delle seguenti soluzioni:
- Elimina i record di aggiornamento categoria problematici
- Ripristina i record di aggiornamento categoria problematici
Eliminare i record di aggiornamento delle categorie problematici
In questa soluzione, sarà necessario impostare il valore updated_in
corretto per il record categoria iniziale ed eliminare tutti gli altri record per questa categoria. Verranno rimossi tutti gli aggiornamenti delle categorie pianificati.
Segui questi passaggi:
- Trovare i record DB con
entity_id
della categoria interessata. - Selezionare il record con il numero intero più grande nella colonna
updated_in
. - Copia il valore
updated_in
dal record selezionato. - Selezionare il record con
row_id
=entity_id
(record categoria iniziale) e incollare il valore copiato nella colonnaupdated_in
di questo record. - Elimina righe con
row_id
non uguale aentity_id
.
Ripristinare i record di aggiornamento delle categorie problematici
- Trovare i record di categoria con lo stesso valore
entity_id
e lo stesso valorecreated_in
. - Selezionare il record in cui
row_id
=entity_id
e copiare il valoreupdated_in
. - Selezionare il record in cui
row_id
non è uguale aentity_id
e incollare il valoreupdated_in
copiato come valorecreated_in
. Vedi la schermata seguente come illustrazione. - Verificare che il record di aggiornamento categoria, il cui valore
created_in
è stato aggiornato (nel passaggio 3), esista nella tabellastaging_update
. Ad esempio: SE il valorecreated_in
copiato è 1509281953, ALLORA l'entità conrow_id
= 1509281953 deve esistere nella tabellastaging_update
.
Lettura correlata
Best practice per la modifica delle tabelle del database nel playbook di implementazione di Commerce