要求在 shopify 中进行第三方年龄验证
Require 3rd party age verification in shopify
我需要在发货前进行第 3 方年龄验证。为此,我正在使用一家名为 EVS 的公司。他们最近发布了一个 shopify 应用程序,但似乎部分成熟。它要求用户在注册账户时输入出生日期,然后在用户下订单时触发验证。这样做的主要问题是,客户很少会在第一次下单前实际创建一个帐户——相反,他们会先下单,然后 shopify 会在事后通过电子邮件向他们发送电子邮件以创建一个帐户。之后创建帐户不允许客户输入 DOB。
所以我打算实施我自己的解决方案。我可以使用 EVS 的 API 到 运行 通过发送姓名、地址、DOB、DL# 和州以及 SSN 的最后 4 位的组合来进行验证。我已经建立了一个专有的订单管理系统,可以拉取客户和订单数据,我可以写一个客户端来执行验证。
我对 shopify 不太了解。我需要在第一次下订单时平衡客户的摩擦,而不是必须做大量的手动工作来进行验证。
以下是我设想的方案。还有其他选择吗?有更好的解决方案的想法吗?请记住,我需要验证一次客户。我可以将客户帐户标记为已验证,一旦验证,一切照常。
更改 shopify 模板以仅在用户登录时显示结帐按钮。如果未登录,则显示 "Create an account" 按钮。这样,用户在创建帐户期间提供 DOB,EVS 应用程序按设计工作。
设置一个单独的验证站点,如 verify.my-domain.com。我可以在创建订单后触发给客户的电子邮件,并要求他们进行验证。 (可能有不正确的电子邮件地址或垃圾邮件过滤问题。)
如果客户未登录,或帐户未验证年龄,并且他们单击“结帐”,我可以将他们重定向到一个页面。我可以使用页面上的表格来进行验证。如果验证通过,请将它们发送到结帐处。
对于选项 3,我不知道 shopify 允许什么或最佳实践允许什么。我可以使用 js 将数据传递到不同子域上我自己的服务器吗?或者 post 表单到另一个子域,然后重定向回 shopify?
如果有任何想法或建议,我将不胜感激。
你几乎总结了所有的选择,稍微澄清一下:
- 您可以要求客户在商店结账设置中创建一个帐户。 /admin/settings/checkout
- 这可行,您也可以在自定义页面上将其 iframe 放入其中。或者,更好的是,使用跨域调用或 jsonp。
- 这有点复杂,您必须坚持并维护大量外部状态。我会避免这个
我认为1和2的组合。开启"require customer account"。修改客户账户创建页面。使用您的服务器实施跨域策略,该服务器将托管利用 EVS 的自定义代码 API.
我不确定您是否在销售有形商品,但由于对用户年龄的严格政策,您必须记住送货地址可能会发生变化。对于紧密集成,您应该在客户发生变化时考虑使用 webhook,并确保他们的所有数据自上次 EVS 批准以来仍然有效。
我已经对此进行了相当广泛的研究,并且我们花了很多时间来试验各种选择。在这种情况下,我们的客户使用 Shopify Plus,因此我们确实可以访问 checkout.liquid
.
我们的研究使我们相信,如果他们试图以 'guest' 的身份结帐,则无法将要求的 'customer note' 出生日期传递给结帐。可能是因为 'customer' 还不存在。
我们的选择范围已缩小为:
- 编写一个自定义后端应用程序,允许 Shopify 和 EVS 在结帐过程中或之前直接通信(XML API 在 EVS 端),然后将验证状态传回 Shopify允许订单继续进行,或附加一些相关的状态标记,以便履行部门采取相应行动。 EVS 应用程序不会阻止订单继续进行,但会在管理员的风险级别面板中将客户的年龄标记为未验证。这将是一个相当大的项目,绝非唾手可得的成果。还存在重新做 EVS 应用程序已经做的很多事情的风险,并且 运行 进入他们所做的相同障碍。
- 强制客户在结帐前注册(如果未登录)。这似乎是最可行的方法。唯一需要注意的是,现有客户不会有客户备注(出生日期),我们需要构建一个较小的后端应用程序,以允许他们通过 Shopify API(这不能是通过液体完成)。
这些是我们的发现,我很想知道更多关于您最终是如何处理这个问题的。
我需要在发货前进行第 3 方年龄验证。为此,我正在使用一家名为 EVS 的公司。他们最近发布了一个 shopify 应用程序,但似乎部分成熟。它要求用户在注册账户时输入出生日期,然后在用户下订单时触发验证。这样做的主要问题是,客户很少会在第一次下单前实际创建一个帐户——相反,他们会先下单,然后 shopify 会在事后通过电子邮件向他们发送电子邮件以创建一个帐户。之后创建帐户不允许客户输入 DOB。
所以我打算实施我自己的解决方案。我可以使用 EVS 的 API 到 运行 通过发送姓名、地址、DOB、DL# 和州以及 SSN 的最后 4 位的组合来进行验证。我已经建立了一个专有的订单管理系统,可以拉取客户和订单数据,我可以写一个客户端来执行验证。
我对 shopify 不太了解。我需要在第一次下订单时平衡客户的摩擦,而不是必须做大量的手动工作来进行验证。
以下是我设想的方案。还有其他选择吗?有更好的解决方案的想法吗?请记住,我需要验证一次客户。我可以将客户帐户标记为已验证,一旦验证,一切照常。
更改 shopify 模板以仅在用户登录时显示结帐按钮。如果未登录,则显示 "Create an account" 按钮。这样,用户在创建帐户期间提供 DOB,EVS 应用程序按设计工作。
设置一个单独的验证站点,如 verify.my-domain.com。我可以在创建订单后触发给客户的电子邮件,并要求他们进行验证。 (可能有不正确的电子邮件地址或垃圾邮件过滤问题。)
如果客户未登录,或帐户未验证年龄,并且他们单击“结帐”,我可以将他们重定向到一个页面。我可以使用页面上的表格来进行验证。如果验证通过,请将它们发送到结帐处。
对于选项 3,我不知道 shopify 允许什么或最佳实践允许什么。我可以使用 js 将数据传递到不同子域上我自己的服务器吗?或者 post 表单到另一个子域,然后重定向回 shopify?
如果有任何想法或建议,我将不胜感激。
你几乎总结了所有的选择,稍微澄清一下:
- 您可以要求客户在商店结账设置中创建一个帐户。 /admin/settings/checkout
- 这可行,您也可以在自定义页面上将其 iframe 放入其中。或者,更好的是,使用跨域调用或 jsonp。
- 这有点复杂,您必须坚持并维护大量外部状态。我会避免这个
我认为1和2的组合。开启"require customer account"。修改客户账户创建页面。使用您的服务器实施跨域策略,该服务器将托管利用 EVS 的自定义代码 API.
我不确定您是否在销售有形商品,但由于对用户年龄的严格政策,您必须记住送货地址可能会发生变化。对于紧密集成,您应该在客户发生变化时考虑使用 webhook,并确保他们的所有数据自上次 EVS 批准以来仍然有效。
我已经对此进行了相当广泛的研究,并且我们花了很多时间来试验各种选择。在这种情况下,我们的客户使用 Shopify Plus,因此我们确实可以访问 checkout.liquid
.
我们的研究使我们相信,如果他们试图以 'guest' 的身份结帐,则无法将要求的 'customer note' 出生日期传递给结帐。可能是因为 'customer' 还不存在。
我们的选择范围已缩小为:
- 编写一个自定义后端应用程序,允许 Shopify 和 EVS 在结帐过程中或之前直接通信(XML API 在 EVS 端),然后将验证状态传回 Shopify允许订单继续进行,或附加一些相关的状态标记,以便履行部门采取相应行动。 EVS 应用程序不会阻止订单继续进行,但会在管理员的风险级别面板中将客户的年龄标记为未验证。这将是一个相当大的项目,绝非唾手可得的成果。还存在重新做 EVS 应用程序已经做的很多事情的风险,并且 运行 进入他们所做的相同障碍。
- 强制客户在结帐前注册(如果未登录)。这似乎是最可行的方法。唯一需要注意的是,现有客户不会有客户备注(出生日期),我们需要构建一个较小的后端应用程序,以允许他们通过 Shopify API(这不能是通过液体完成)。
这些是我们的发现,我很想知道更多关于您最终是如何处理这个问题的。