Shopify reference参数失效,如何追踪订单的推荐来源?
订单推荐来源追踪解决方案
1. 主动传递URL中的ref参数到订单数据
你在URL中添加的/?ref=参数不会自动同步到订单数据里,需要在下单流程中主动捕获并存储:
- 前端通过代码提取URL中的
ref值:const refCode = new URLSearchParams(window.location.search).get('ref'); - 在提交订单的请求(表单提交或API调用)中,将这个
refCode作为自定义字段(比如referral_code)传入订单系统。如果使用第三方电商平台,需确认平台支持自定义元字段功能,将refCode存入订单的元数据中。 - 这样订单创建webhook返回的数据里就会包含这个自定义字段,直接用于追踪推荐来源。
2. Cookie追踪的落地方式
Cookie无法通过webhook直接获取,但可以通过「Cookie存值 + 下单时传递」的方式绑定到订单:
- 当用户访问带
ref参数的链接时,前端设置有效期较长的Cookie:const ref = new URLSearchParams(window.location.search).get('ref'); if (ref) { // 设置30天有效期的Cookie,覆盖全站路径 document.cookie = `referral_code=${ref}; expires=${new Date(Date.now() + 30*24*60*60*1000).toUTCString()}; path=/`; } - 用户下单时,前端读取Cookie中的推荐码,同样作为自定义字段传入订单创建请求:
function getReferralCookie() { const cookieStr = `; ${document.cookie}`; const cookieParts = cookieStr.split(`; referral_code=`); return cookieParts.length === 2 ? cookieParts.pop().split(';').shift() : null; } const savedRefCode = getReferralCookie(); // 将savedRefCode传入订单提交请求
3. 关于webhook字段为空的补充说明
- 多数平台的
referring_site字段仅记录外部域名跳转来源(比如从谷歌、第三方网站跳转),如果用户直接访问带ref的链接或站内跳转,该字段会为空,因此不能依赖这个字段追踪自定义推荐码。 - 务必确认订单系统/webhook配置中,已开启自定义元字段的返回权限,确保你存储的推荐码能在webhook数据中正常获取。
内容的提问来源于stack exchange,提问作者Avinash Sharma
相关产品推荐
相关产品推荐

