【问题标题】:Discount input not working on Shopify cart page折扣输入在 Shopify 购物车页面上不起作用
【发布时间】:2020-12-22 11:49:31
【问题描述】:

我需要在我的购物车页面上输入优惠券代码,但它似乎无法以普通形式工作:

<input class="discount-code-field" autocomplete="off" type="text" name="discount" placeholder="Enter coupon code here" />

我在提交按钮之前,在表单中。

实时优惠券未应用于结帐页面上的订单。

我还需要做什么才能让它工作吗?

编辑: 表单看起来像这样——

<form action="/cart" method="post" class="cart">

  ............

  <div class="bottom-box">
     <input class="discount-code-field" autocomplete="off" type="text" name="discount" placeholder="Enter coupon code here" />
     <input type="submit" value="Proceed to checkout" name="checkout" class="cart-submit w-button"/>
  </div>
</form>

它会重定向到这样的 URL: https://store.com/4934605xxxx/checkouts/04d6478feeb9d3262fbea5571b682ebc?_ga=2.260083023.358228188.1608464294-110675315.1604953057

【问题讨论】:

  • 根据 Shopify 文档,您只能在结帐页面上应用优惠券代码,如果您想在购物车页面上使用它们,您需要使用任何 3rd 方 APP。

标签: shopify liquid


【解决方案1】:

只要您的购物车不使用 AJAX 来更新和重定向,这应该可以工作。

结帐页面接受?discount= 的get 参数,添加带有name="discount" 的字段会将该参数添加到结帐。

在您直接提交标准表单时有效。 (如果您更新购物车,字段折扣文本将不存在,您需要再次重新输入)如果您必须更新表单,您将需要以某种方式保留折扣代码,通过使用 ajax 更新购物车或将其存储为 cookie。

所以你的代码应该可以工作,我在我的开发商店上仔细检查了它,没有问题,它对结帐页面应用了折扣,因为 get 参数存在。

PS:这不会给购物车对象添加折扣,它只允许结帐重定向包含一个 get 参数,没有别的。所以这相当于和&lt;a href="/checkout?discount=YOUR_CODE"&gt;Checkout&lt;/a&gt;建立链接

【讨论】:

  • 如果我使用post 表单会怎样?例如&lt;form action="{{ routes.cart_url }}" method="post" novalidate class="cart"&gt;
  • @Ricardo 购物车表单默认为POST。尽管如此,它会将折扣设置为查询参数,这不是默认行为,但他们在那里做了一些“魔术”,它变成了一个查询参数。
  • 关于如何调试它为什么不起作用的任何想法?
  • @Ricardo 您是否希望购物车页面上的价格发生变化? (因为这不会发生)请澄清不工作是什么意思?您是否使用 URL 中的 get 参数重定向到结帐页面?如果 get 参数不存在,则您使用 JS 重定向到结帐页面而不是正常提交​​表单的变化很大。
  • 不,我不需要它来更新购物车页面上的数字。我只是希望它在结帐时应用。我已经用更多代码和细节更新了我最初的问题。
猜你喜欢
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 2019-08-17
  • 2018-10-18
  • 1970-01-01
相关资源
最近更新 更多