Shopify基础版弃用Additional Scripts后,如何实现结账后跳转自定义感谢页?
Shopify基础版弃用Additional Scripts后,如何实现结账后跳转自定义感谢页?
我太懂你这种“刚用顺手的功能突然被砍,新方案又卡壳”的郁闷了!之前靠Additional Scripts里的一行window.location就能搞定的跳转,现在因为Web Pixel的沙箱iframe限制直接失效,确实挺头疼的。结合Shopify基础版的权限限制,给你几个可行的方案:
1. 利用订单状态页面(Order Status Page)实现跳转(最推荐,基础版完全支持)
Shopify虽然弃用了Additional Scripts,但订单状态页面(也就是默认的感谢页)依然允许添加自定义代码,这是目前基础版实现跳转最直接的方式:
- 进入你的Shopify后台,依次点击「在线商店」→「主题」→ 找到当前使用的主题,点击「自定义」
- 在页面顶部的下拉菜单里,选择「订单状态页面」
- 添加一个「自定义HTML」模块,把跳转代码放进去:
<script> // 直接跳转到你的自定义感谢页 window.location.href = "https://myshop.com/thank-you"; </script>
- 保存设置即可。这样用户完成结账后,先进入Shopify默认的订单状态页,立刻就会被跳转到你的自定义感谢页。
如果需要根据订单情况(比如不同产品、订单金额)实现条件跳转,你还可以在这个脚本里读取订单的内置数据:
<script> // 获取订单状态页的内置订单数据 const orderData = Shopify.order; // 比如判断订单总金额大于100才跳转(注意:Shopify里金额以分为单位) if (orderData.total_price > 10000) { window.location.href = "https://myshop.com/thank-you-premium"; } else { window.location.href = "https://myshop.com/thank-you"; } </script>
2. 结合Web Pixel传递标记,实现精准跳转
如果你的跳转逻辑需要依赖结账时的特定事件(比如用户使用了特定优惠券),可以用Web Pixel给订单打标记,再在订单状态页里判断这个标记:
- 首先在Web Pixel的
checkout_completed事件里,给订单添加一个元字段(metafield):
analytics.subscribe('checkout_completed', async (event) => { const orderId = event.data.checkout.order.id; // 调用Shopify Admin API给订单添加元字段,标记需要跳转 await fetch(`/admin/api/2024-07/orders/${orderId}/metafields.json`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Shopify-Access-Token': '你的私有应用访问令牌' }, body: JSON.stringify({ metafield: { namespace: 'custom', key: 'redirect_to_custom_thankyou', value: 'true', type: 'boolean' } }) }); });
- 然后在订单状态页的自定义脚本里,读取这个元字段并判断跳转:
<script> fetch(`/admin/api/2024-07/orders/${Shopify.order.id}/metafields.json?namespace=custom&key=redirect_to_custom_thankyou`) .then(res => res.json()) .then(data => { if (data.metafields.length > 0 && data.metafields[0].value === 'true') { window.location.href = "https://myshop.com/thank-you"; } }); </script>
注意:这个方法需要你创建一个Shopify私有应用来获取访问令牌,基础版也支持创建私有应用。
3. 备选方案:邮件引导跳转(非即时)
如果以上方法都不符合你的需求,还可以在用户完成结账后,自动发送一封包含自定义感谢页链接的邮件。你可以在Shopify后台的「设置」→「通知」→「订单确认」邮件模板里,添加自定义感谢页的链接,引导用户点击访问。
内容来源于stack exchange
相关产品推荐
相关产品推荐

