Spree 购物车在用户登录时被替换而不是合并

Spree shopping cart being replaced instead of merged upon user sign in

使用 Spree 3.0.8

当我执行序列时:

  1. 以访客用户(未登录)身份将商品添加到购物车;
  2. 继续结帐(提示登录);
  3. 登录

我的购物车基本上被登录用户的最新不完整订单所取代。

我希望将客人和未完成的订单合并。 至少这似乎是 spree_auth_devise 代码中的意图。

有人知道为什么会发生这种情况吗?

干杯, 瓦斯科

显然,这是在此提交中引入的: https://github.com/spree/spree_auth_devise/commit/336b0e4f3a9c38dba36c8deef37549f48f61672f

虽然上面的提交解决了 https://github.com/spree/spree/issues/6578, 它还会丢弃来宾用户的购物车,因为没有关联的电子邮件。

我恢复到旧代码并解决了问题(以引入问题 #6578 为代价,在我的情况下,该问题不适用)。

如果您使用的是过时版本的 Spree 并且不想更新它,您可以采取变通方法来解决此问题。

我所做的是通过登录提交从 Order 发送 guest_token 属性并将其保存在会话变量中。之后,您应该可以在登录完成后找到Order

希望对您有所帮助!