主站报表显示本月 1200 单,各子站后台合计 800 单,财务对账差 400 单,两边都坚持自己没算错。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
SELECT COUNT(*) FROM wp_posts WHERE post_type='shop_order' AND post_status='wc-completed' AND post_date >= '2026-11-01 00:00:00';
主站统计把子站同步过来的订单一并计入,子站报表又排除了退款单。两边时区一个用 UTC 一个用本地时间,跨月订单被分到不同月份。这一点先确认清楚,后面就不用反复试。
「跨站统计口径」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
具体做法是,先把统计时区统一成站点本地时间;明确退款和测试单是否计入;用同一条 SQL 重算两边数字。
改完照着核一遍,两边按同一口径统计都是 800 单,差额为 0,退款单单独列出。
