0

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

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

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

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

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

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

4

1 回答 1

4

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

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

省略的原因有两个:

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

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

就我个人而言,我不相信依靠 cookie 获取数据是脆弱的论点。事实上,在液体中弹出的购物车变量是根据在同一个 cookie 中找到的会话 ID 加载的。

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

于 2012-11-07T19:45:43.230 回答