Magento 2.3.7 结账页加载器持续加载报错问题问询
Magento 2.3.7 结账页面加载器无限加载故障解决方案
报错信息
Uncaught ReferenceError: Unable to process binding "scope: function(){return '' }" Message: Unable to process binding "template: function(){return getTemplate() }" Message: getTemplate is not defined at template (eval at createBindingsStringEvaluator (knockout.js:2982), <anonymous>:3:61) at init (knockout.js:5454) at knockout.js:3358 at Object.ignore (knockout.js:1470) at knockout.js:3357 at Object.arrayForEach (knockout.js:159) at applyBindingsToNodeInternal (knockout.js:3343) at applyBindingsToNodeAndDescendantsInternal (knockout.js:3223) at applyBindingsToDescendantsInternal (knockout.js:3205) at Object.ko.applyBindingsToDescendants (knockout.js:3421)
对应环境参数
- PHP版本:7.4
- Magento版本:2.3.7
- 主题版本:Pearl Theme for Magento 2 Open Source v1.10.15(2021年8月31日发布)
- 故障表现:点击前往结账按钮后,结账页加载器持续加载,无法正常进入页面
故障根因
该报错属于KnockoutJS绑定缺失错误,是Pearl主题v1.10.15自定义的结账模板调用了未定义的getTemplate方法,与Magento 2.3.7的UI组件加载逻辑不兼容导致,组件渲染失败后结账页会卡在加载状态。
修复步骤
- 优先排查静态资源加载错误
执行以下命令重置静态资源、清空缓存:
php bin/magento cache:clean php bin/magento cache:flush php bin/magento setup:static-content:deploy -f php bin/magento cache:clean
执行完成后清空浏览器缓存重试,30%的同类问题可通过该操作解决。
2. 修复主题结账模板依赖
若上述操作无效,定位主题覆盖的结账模板文件,路径为 app/design/frontend/Pearl/weltpixel/Magento_Checkout/web/template/,检查所有调用getTemplate()的模板文件:
- 确认对应绑定的JS组件是否继承了Magento原生UI模板组件,缺失的话需要在组件的
define依赖中加入'Magento_Ui/js/lib/core/element/element' - 临时验证方案:将
app/design/frontend/Pearl/weltpixel/Magento_Checkout目录重命名为Magento_Checkout_bak,重新部署静态资源后测试,若结账恢复正常即可确认是主题模板问题,更新Pearl主题到兼容Magento 2.3.7的版本即可修复。
- 排查第三方扩展冲突
禁用所有自定义安装的结账相关扩展(如一步结账、结账字段自定义类扩展),重新部署缓存后测试,排除扩展与主题的加载顺序冲突。
内容的提问来源于stack exchange,提问作者Ganesh Palte
相关产品推荐
相关产品推荐

