curl -s https://example.com/shop/ | grep -o '会员价[^<]*' curl -sI https://example.com/shop/ | grep -i cache
未登录访客在列表页看到「会员价 89 元」,加购后购物车显示 119 元,客诉说页面在骗人。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:价格模板只判断了是否登录,没判断等级,游客也被当成会员渲染。页面又开了整页缓存,登录用户的价格片段被缓存给了游客。
「会员价可见性」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。同一份配置存在多处的,先确认改的是被加载的那一份。
新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
处理上按这个顺序:价格渲染前先取当前用户等级,非会员只输出原价;价格片段单独做缓存,键里带等级,别混进整页缓存;会员价旁边标明适用等级,避免误解;用无痕窗口和会员账号各看一遍列表页和购物车。
确认没问题再收工,游客页面上不出现会员价,会员账号看到的价格与购物车结算价一致。
