BigCommerce商店确认页面无法获取订单ID问题求助
解决BigCommerce确认页获取订单ID的404错误
1. 修正API端点路径
你的请求路径存在拼写错误,BigCommerce Storefront API的单个订单接口是复数形式的orders,而非单数order。修正后的请求代码:
fetch('/api/storefront/orders/{{checkout.order.id}}', {credentials: 'include'}) .then(function(response) { return response.json(); }) .then(function(myJson) { console.log(myJson); });
2. 验证模板变量是否正确解析
订单确认页的模板上下文通常直接暴露order全局对象,{{checkout.order.id}}可能无法正确渲染。先在控制台输出变量确认值:
console.log('当前订单ID:', '{{order.id}}');
如果控制台输出的是{{order.id}}字符串而非数字,说明模板引擎未解析该变量,需使用{{order.id}}替代{{checkout.order.id}}。
3. 处理访客订单的权限限制
若为访客结账(未登录用户),Storefront API不允许仅通过订单ID查询订单,必须结合订单号和下单邮箱过滤查询:
fetch(`/api/storefront/orders?filter=orderNumber:eq:{{order.orderNumber}}&filter=email:eq:{{order.email}}`, {credentials: 'include'}) .then(response => response.json()) .then(data => { if (data.length > 0) { console.log('订单数据:', data[0]); } }) .catch(err => console.error('请求错误:', err));
4. 检查API权限配置
确保你的Storefront API令牌已开启orders_read权限,可在BigCommerce后台的「API管理」→「Storefront API」中查看并修改权限。
内容的提问来源于stack exchange,提问作者Moaz Ali
相关产品推荐
相关产品推荐

