This article provides a fix for when updating product categories via the Commerce Admin, the changes are not displayed on the Admin and storefront. The problem is caused by the corrupted data in the catalog_category_entity
table. To solve the issue, fix or remove the problematic category update records in the table. After that, you should be able to update product categories using the Admin.
After making changes to a product category in the Admin and saving, the new updates are neither saved nor displayed in the Admin and storefront.
catalog_category_entity
tableThe issue is caused by the same values in the created_in
column of the affected category records in the database (DB).
Details:
catalog_category_entity
DB table has two or more records for the affected category (these records have the same entity_id
value).created_in
column.The second DB record (and, possibly, the next ones) for the affected category means there have been category updates scheduled using the Magento_Staging module. The module makes an additional record for a category in the catalog_category_entity
and that is the expected application behavior; the problem is that the records have the same values for the created_in
column.
We cannot state the reasons for data corruption with certainty. The possible reasons may include:
To the best of our knowledge, such data corruption is not typical for the “clean” (out-of-the-box) Adobe Commerce instance and cannot be reproduced on an Adobe Commerce installation with no customizations.
The catalog_category_entity
table should have multiple records for the affected category (records should have the same entity_id
value) and at least two of those records should have the same created_in
values. With this, the Staging-scheduled updates would not be displayed in the Commerce Admin; you would only see the empty Scheduled Changes block.
created_in
values are different for every record.You may choose one of the following solutions:
In this solution, you will need to set the correct updated_in
value for the initial category record and delete all other records for this category. This removes all scheduled category updates.
Follow these steps:
entity_id
of the affected category.updated_in
column.updated_in
value from the selected record.row_id
= entity_id
(initial category record) and paste the copied value to the updated_in
column of this record.row_id
not equal to entity_id
.entity_id
and the same created_in
value.row_id
= entity_id
and copy the updated_in
value.row_id
is not equal to entity_id
and paste the copied updated_in
value as the created_in
value. See the screenshot below as an illustration. created_in
value of which you have updated (in step 3), exists in the staging_update
table. For example: IF the copied created_in
value is 1509281953, THEN the entity with row_id
= 1509281953 must exist in the staging_update
table