使用Dawn主题,如何为私有Shopify店铺生成专属访问链接并追踪受邀访客?
一、专属访问权限控制(替代统一密码)
要实现单个受邀者的独立访问验证,核心是给每个用户生成带唯一识别参数的专属链接,再通过Dawn主题的代码拦截未授权访问:
准备受邀者专属链接
给500位受邀者每人分配唯一ID(可使用邮箱MD5哈希、自定义编号等),生成格式为https://your-shop.myshopify.com?invite=USER_UNIQUE_ID的链接。在Dawn主题中添加验证逻辑
进入Shopify后台→在线商店→主题→Dawn→操作→编辑代码,打开theme.liquid文件:
在<head>标签下方插入以下代码:{% comment %} 验证受邀者访问权限 {% endcomment %} {% assign valid_invite_ids = 'user001,user002,...,user500' | split: ',' %} {% comment %} 替换为你的受邀者ID列表 {% endcomment %} {% unless request.params.invite and valid_invite_ids contains request.params.invite %} <script>window.location.href = '/access-denied';</script> {% comment %} 跳转到无权限页面 {% endcomment %} {% endunless %}如果你觉得直接写ID列表麻烦,可将受邀者ID存储在店铺元字段中(后台→设置→元字段→店铺→添加元字段,类型设为多行文本,值为逗号分隔的ID),然后将代码中的
valid_invite_ids替换为:{% assign valid_invite_ids = shop.metafields.custom.invite_list | split: ',' %}创建无权限提示页面
在后台→在线商店→页面→添加页面,URL设为access-denied,内容提示用户无访问权限即可。
二、访客追踪实现
通过专属链接的唯一参数,结合Shopify的客户管理或自定义事件,记录已访问的用户:
方式1:利用Shopify客户元字段标记
假设你已将受邀者添加为Shopify客户,并给每个客户添加了invite_id标签(比如invite-user001),可在theme.liquid的验证代码后添加追踪逻辑:
{% if request.params.invite %} <script> // 发送请求标记客户为已访问(建议通过Shopify Flow webhook实现,避免前端暴露Admin Token) fetch('/apps/your-custom-app/mark-visited?invite={{ request.params.invite }}') .then(response => response.json()) .catch(error => console.log(error)); </script> {% endif %}
如果不想开发自定义应用,可使用Shopify Flow:
- 创建一个自定义webhook,触发条件为“HTTP请求”
- 前端发送包含
invite参数的请求到该webhook - Flow中设置:通过
invite参数搜索对应客户,更新其标签或元字段为visited
方式2:邮件追踪结合店铺验证
用Shopify内置的邮件营销工具给受邀者发邮件,邮件中的链接使用专属访问链接,并开启邮件追踪功能。通过邮件后台的“已点击”数据,即可筛选出已访问店铺的用户,未点击的则为未访问人群。
三、实用优化
- 定期导出客户列表(或邮件营销后台数据),对比受邀者名单,快速统计未访问用户,可针对性补发邀请。
- 测试阶段用3-5个测试ID验证权限拦截和追踪功能,确保逻辑正常后再批量发送邀请。
内容的提问来源于stack exchange,提问作者Bluestone88

