1

我们看到某些订单的购物车属性丢失,并且已将其追溯到启用结帐的“帐户是可选的”设置并且提交购物车表单以进行结帐时的情况。如果用户没有看到登录或可选的结帐作为访客屏幕,他们首先被重定向到这里。在这个阶段,无论在 POST 中提交的用于结帐的新购物车属性都不会保留,并且在用户继续到结帐屏幕时会丢失。

这是我们收集到的证据...

1)在购物车表单提交结帐之前/cart.js的值确认当前没有与购物车一起保存的属性... http://cl.ly/PF62

2) 在查看我们的购物车页面时,我们使用 jQuery 来确认将在购物车更新或结帐 POST 时添加的属性:

> var inputs = jQuery('form#cartform').serializeArray();
> for (var x=0;x<inputs.length;x++) {
      console.log(inputs[x].name + ': ' + inputs[x].value);
  }
> updates[201564942]: 1
  note: 
  attributes[delivery_note]: 
  attributes[referrer_dropdown]: Choose One
  attributes[referrer_text]: 
  attributes[speaker]: 
  attributes[search_keywords]: 
  attributes[backordered-haven-82-inch-solid-wood-media-console-espresso-on-oak]: Ships in: about 6 weeks
  attributes[backordered-po-haven-82-inch-solid-wood-media-console-espresso-on-oak]: None

3)在尝试正常结帐之前,jQuery.clone() 表单,并将其更改为提交到http://requestb.in url 以验证发布的元素。这是确认所有输入项都已正确发布的结果... http://cl.ly/PG9h

4)现在正常提交表格并最终进入帐户/登录视图... http://cl.ly/PEzJ

5)现在再次检查/cart.js ...没有保存到属性的更改... http://cl.ly/PF4w

6) 现在以访客身份点击结帐,然后在结帐的第一个屏幕上结束。

7) 返回 /cart 页面

8)再次点击Checkout,这次没有重定向,我们直接去checkout。

9) 现在再次检查 /cart.js ... http://cl.ly/PFS3

10)EUREKA,本次保存购物车属性。

即使作为 Shopify 开发人员,可以通过在 POST 结帐之前强制在后台更新购物车 POST 来解决此问题,但这似乎是一个需要修复的错误。有点令人惊讶的是,论坛上的其他地方或 SO 上似乎没有关于此的喋喋不休。

请指教,谢谢。

4

1 回答 1

0

这不能在我这边复制。我使用了全新安装的 New Standard主题,在 cart.liquid 的购物车表单中添加了以下内容:

<input type="hidden" name="attributes[someValue]" value="Hello" />

我以访客身份完成了第一个订单,显示登录或继续以访客身份屏幕并以访客身份签出。我完成了订单(使用了虚假网关,也许这很重要?)。

在订单详细信息屏幕上,我可以看到我的购物车属性(有趣的观察,键 someValue 已重命名为 somevalue(都是小写)。)

这样就可以了:购物车属性不会因为通过登录或继续以访客身份屏幕而丢失。

在那之后,我经历了第二个订单。当您不久前以访客身份结账时,不会再次询问您:单击购物车页面上的结帐按钮会将您直接带到结帐的第 1 页,绕过登录或继续以访客身份屏幕。

在第二个订单的订单详情屏幕上,我也可以看到我的购物车属性

于 2013-05-30T03:31:54.153 回答