“销售 → 订单”能打开,但表头、筛选器或数据区域完全空白,不等于 sales_order_grid 没有数据。Magento 后台列表由 UI Component 在浏览器端渲染,任何一个 JSON 配置、XHR 或用户书签异常都可能让网格消失。

先用 Network 判断前端还是后端

打开开发者工具后重新进入订单页,重点看返回 JSON 的 XHR 请求。如果请求是 500,保存响应中的异常编号并到日志搜索;如果请求 200 但控制台出现 Cannot read properties of undefined,优先排查 UI 组件配置与第三方模块。

grep -R "report.CRITICAL" var/log/exception.log var/log/system.log | tail -n 30
tail -n 100 var/log/debug.log
bin/magento module:status | grep -i sales

订单是否真的进入网格表

SELECT COUNT(*) FROM sales_order;
SELECT COUNT(*) FROM sales_order_grid;
SELECT entity_id, increment_id, created_at
FROM sales_order ORDER BY entity_id DESC LIMIT 5;
SELECT entity_id, increment_id, created_at
FROM sales_order_grid ORDER BY entity_id DESC LIMIT 5;

两张表数量略有差异不一定是故障,但最新订单长期缺失才需要检查异步网格配置和消费者。只有确认网格数据缺失时,才考虑针对销售网格的同步机制;前端 JS 已报错时,重建表不会让页面恢复。

只清当前管理员的异常书签

列被拖拽、保存过自定义视图或升级后字段已删除,ui_bookmark 里可能仍保留旧配置。先找到当前管理员 ID,再备份并限定 namespace 删除,不能清整张表。

SELECT user_id, username FROM admin_user WHERE username='alwayly';
SELECT bookmark_id, user_id, namespace, identifier
FROM ui_bookmark
WHERE user_id=7 AND namespace LIKE 'sales_order_grid%';

CREATE TABLE ui_bookmark_backup_20250127 AS
SELECT * FROM ui_bookmark WHERE user_id=7 AND namespace LIKE 'sales_order_grid%';

DELETE FROM ui_bookmark
WHERE user_id=7 AND namespace LIKE 'sales_order_grid%';

退出后台再登录,系统会为该用户重建默认视图。若无效,可临时禁用最近修改订单列表的自定义模块,并比较其 view/adminhtml/ui_component/sales_order_grid.xml。重复 column name、错误 dataType 或引用不存在的 JS component 都会中断渲染。

用另一管理员账号做快速分流

另一账号正常,通常是 bookmark 或 ACL;所有账号都空白,则更像模块配置、静态文件或接口异常。这个对照测试比直接清缓存更快,也能避免把用户级问题扩大成全站维护。