類別變更未儲存
本文修正透過「Commerce管理員」更新產品類別時,管理員和店面不會顯示變更的問題。 問題是由於 catalog_category_entity
表格。 若要解決此問題,請修正或移除表格中有問題的類別更新記錄。 之後,您應該能夠使用管理員更新產品類別。
問題
在管理員中變更產品類別並儲存後,新的更新既不會儲存也不會顯示在管理員和店面中。
要再現的步驟
- 前往 目錄 > 類別.
- 選取類別。
- 進行變更,然後按一下 儲存.
- 隨即顯示訊息: 您已儲存類別.
- 請注意,您所做的變更尚未儲存。
可能的原因: catalog_category_entity
表格
此問題是由於 created_in
資料庫(DB)中受影響類別記錄的欄。
詳細資料:
- 此
catalog_category_entity
DB表格有兩個或多個受影響類別的記錄(這些記錄具有相同的entity_id
值)。 - 這些類別記錄具有 中的相同值
created_in
欄.
第二個資料庫專案(以及所有後續專案)如何出現在相同類別的DB中?
受影響類別的第二個DB記錄(可能還有下一個記錄)表示已使用Magento_Staging模組排程類別更新。 模組會為中的類別進行額外記錄 catalog_category_entity
這是預期的應用程式行為;問題是這些記錄的 created_in
欄。
相同的值如何顯示?
我們無法確切說明資料損毀的原因。 可能的原因包括:
- 自訂(程式碼、主題等)
- 不正確的資料移轉
- 從備份還原的資料不正確
就我們所知,這類資料損毀不適用於「乾淨」(現成)Adobe Commerce執行個體,而且無法在沒有自訂功能的Adobe Commerce安裝上重現。
如何確認這是您的問題
此 catalog_category_entity
表格應有多個受影響類別的記錄(記錄應具有相同的 entity_id
值),且這些記錄中至少應有兩個相同 created_in
值。 如此一來,Commerce管理員中就不會顯示測試排程更新;您只會看到空白的「已排程變更」區塊。
驗證步驟
- 存取資料庫中的catalog_category_entity表格。
- 依entity_id篩選實體,使用entity_id識別受影響的類別。
- 如果created_in欄中的值對於具有相同entity_id的不同專案是相同的,即是這種情況。 通常情況下,
created_in
每個記錄的值都不同。
解決方案
您可以選擇下列其中一種解決方案:
- 刪除 有問題的類別更新記錄
- 修復 有問題的類別更新記錄
刪除有問題的類別更新記錄
在此解決方案中,您需要將 updated_in
初始類別記錄的值,並刪除此類別的所有其他記錄。 這會移除所有已排程的類別更新。
請依照下列步驟執行:
- 使用尋找資料庫記錄
entity_id
受影響的類別。 - 選取中整數最大的記錄
updated_in
欄。 - 複製
updated_in
所選記錄的值。 - 選取記錄
row_id
=entity_id
(初始類別記錄)並將複製的值貼到updated_in
此記錄的欄。 - 刪除列,使用
row_id
不等於entity_id
.
修復有問題的類別更新記錄
- 尋找具有相同的類別記錄
entity_id
和相同created_in
值。 - 選取記錄,其中
row_id
=entity_id
並複製updated_in
值。 - 選取記錄,其中
row_id
不等於entity_id
並貼上複製的updated_in
值作為created_in
值。 請參閱下方的熒幕擷圖以作圖例。 - 確認類別更新記錄、
created_in
(在步驟3中)中您更新過的值,已存在於staging_update
表格。 例如: 若已複製created_in
值為1509281953,然後為實體row_id
=1509281953必須存在於staging_update
表格
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a