【问题标题】:Shopify Using Cart Cookie to track cart idShopify 使用购物车 Cookie 跟踪购物车 ID
【发布时间】:2012-11-07 16:33:55
【问题描述】:

这是来自 shopify api 论坛的交叉发布-

我有一个应用程序,它依赖于在创建购物车订单时对其进行识别,然后将该 ID 与任何进来的订单进行匹配(假设购物车最终成为订单)。根据@HunkyBill 的建议,这是通过阅读“购物车”cookie 来完成的。这确实有效,但是它似乎是一种脆弱的方式来做一些看起来应该用购物车对象完成的事情。我有两个问题:

如果用户关闭了 cookie 会发生什么(在购物车仍然是购物车时就无法访问购物车 id.. 预购)?

是否可以简单地将 CartId 作为变量添加到购物车对象中?

每个其他对象都有自己的 id,可以通过 Liquid 访问...每一个。除了购物车对象,它是唯一直接链接到另一个对象 Order 的对象。我完全理解 Shopify 可能需要一个 cookie 变量来执行它的某些功能——我不建议以任何方式修改该过程。但是,将购物车 ID 添加到购物车对象将解决所有这些问题(对于应用程序开发人员),并提供一种简单的方法来将购物车活动与转换后的订单对齐。它也不会影响已经使用购物车 cookie 构建的任何产品。

如果有更好的解决方案/技术来识别购物车,然后将其与订单相关联,我会全力以赴。我有点震惊,这个关键功能(主要是跟踪转换)没有以更强大和一致的方式处理。

【问题讨论】:

    标签: api cookies shopify cart


    【解决方案1】:

    如果用户关闭了 cookie,那么无论如何你都会被淹没。如果没有 cookie 中的会话 ID,他们将无法构建购物车。

    对于购物车:您是对的,在前端,液体购物车对象不包含令牌。它只能通过 cookie 获得。

    省略的原因有几个:

    • 首先,当时只有一个购物车在视图中处于活动状态,因此在渲染页面时无需区分它。

    • 第二:在视图的上下文中,标记是没有意义的。用户永远不需要看到它。

    我个人不认同依靠 cookie 获取数据是脆弱的论点。事实上,在 Liquid 中弹出的 cart 变量是根据在同一个 cookie 中找到的会话 id 加载的。

    也就是说,我想不出一个很好的理由让它不包含在液体对象中。我会将其作为低优先级功能请求提交。

    【讨论】:

    • 非常感谢您的回复。我将添加一个确实违反了您给出的两个原因的用例(恰好是我的)。
    • 抱歉 - 只是在这里输入太快了。我的应用程序监控购物车内发生的事情,然后根据此显示某些事情。因此,当用户从一个页面移动到另一个页面时,可能会改变他们的购物车,我正在使用液体来呈现购物车变量,然后将其写入(并传递)在延迟加载的动态远程脚本的 url 中。如果没有购物车 ID,该脚本将无法运行。这就是服务器识别购物车的方式。虽然这使用 cookie 方法有效,但管理起来要困难得多。因此,虽然用户不需要呈现的购物车 ID,但我的服务器需要。
    • (空间不足)。因此,由于液体将 get 变量放在我的 javascript url 中,这就是我的服务器用来确定我们正在查看的购物车(和用户)的内容,因此迫切需要区分购物车。因此,在我的情况下,这两个假设都是不正确的。再次感谢您的回复并将其列入清单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多