You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Magento 1.9.2.3+LiteSpeed Cache+SM-Maxshop主题添加商品至购物车失败求助

解决Magento 1.9.2.3中LiteSpeed Cache导致添加购物车失效的问题

我之前处理过不少Magento 1.x搭配LiteSpeed Cache的类似案例,你的情况确实是缓存干扰了购物车提交的动态交互——完全可以把添加购物车的相关请求/区域排除在缓存范围之外,结合你用的版本(Magento 1.9.2.3、LiteSpeed Cache 1.3.6、SM-Maxshop 1.1.0),给你几个具体的解决方向:

1. 通过LSCache后台配置排除购物车提交路由

这是最直接的方法,把添加购物车的请求路由排除在缓存规则外:

  • 登录Magento后台,进入System > Configuration > LiteSpeed Cache
  • 切换到Exclude标签页,找到Exclude Routes选项
  • 添加Magento默认的添加购物车路由:checkout/cart/add,一行一个
  • 注意:SM-Maxshop主题大概率用了自定义Ajax购物车,你需要打开浏览器开发者工具(F12),切换到Network标签,点击添加购物车按钮,查看实际发起的请求URL,把对应的自定义路由(比如常见的ajaxcart/add)也添加到排除列表里

2. 局部排除:仅让添加购物车按钮区域不缓存

如果不想让整个商品详情页失去缓存优势,只想排除按钮所在的动态区域,可以用LiteSpeed的ESI功能:

  • 找到SM-Maxshop主题的商品详情页模板文件(一般是app/design/frontend/SM/Maxshop/template/catalog/product/view/addtocart.phtml)
  • 用LSCache的ESI标签包裹添加购物车按钮的代码块:
    <?php echo $this->helper('litespeedcache')->esiStart('cart_add_btn', ['cacheable' => false]); ?>
    <!-- 这里保留原来的添加购物车按钮的HTML/PHP代码 -->
    <?php echo $this->helper('litespeedcache')->esiEnd(); ?>
    
    这样这个区域会被标记为非缓存区域,每次请求都会动态生成,不影响页面其他部分的缓存效果

3. 检查Cookie排除规则(可选)

有时候会话Cookie会导致缓存逻辑异常,你可以在LSCache配置的Cookie Exclude里,确保frontend(Magento 1.x的前端会话Cookie)已经被添加。不过这个操作会降低缓存命中率,所以优先用前两种方法,只有前两种无效时再尝试。

4. 测试与验证

  • 配置完成后,一定要点击LSCache后台的Purge All清空现有缓存
  • 刷新商品详情页,测试添加购物车功能是否恢复正常
  • 如果仍有问题,检查浏览器控制台的JS报错——如果是主题Ajax购物车的JS被缓存干扰,可以在LSCache的Exclude JS里添加主题购物车相关的JS文件路径(比如js/sm/ajaxcart.js,根据实际文件调整)

内容的提问来源于stack exchange,提问作者Morf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:34:15