我可以将折扣代码添加到 Metafield 并包含在“添加到购物车”按钮中以自动应用到结帐页面吗?

Can I Add Discount Code To Metafield And Include In Add To Cart Button to auto apply to checkout page?

我创建了一个新的产品元字段:product.metafields.my_fields.discount_code

在我的产品-template.liquid中,有这个部分:

<button class="btn cv_addtocart{% if section.settings.enable_payment_button %} btn--secondary{% else %} btn--primary{% endif %}" type="button" name="add" data-add-to-cart {% unless current_variant.available %}disabled="disabled"{% endunless %}>
<span data-add-to-cart-text>
                  {% if current_variant.available %}
                  {{ 'products.product.add_to_cart' | t }}
                  {% else %}
                  {{ 'products.product.sold_out' | t }}
                  {% endif %}
</span>
</button>
 {% if section.settings.enable_payment_button %}
                {{ form | payment_button }}
              {% endif %}
            </div>
          </div>

我正在尝试将产品元字段的值传递到“添加到购物车”按钮中。在这种情况下,我希望包含输入到产品元字段中的折扣代码。

所以我希望做这样的事情:

 {% if section.settings.enable_payment_button %}
 {{ form | payment_button | discountCode = product.metafields.my_fields.discount_code }}
 {% endif %}

基本上,我试图在结账时自动对产品应用正常折扣。我已经看到将折扣代码附加到 url 的各种可共享链接,但这不符合我的需要。相反,我想从结帐页面上该产品的元字段中检索折扣代码 (DISCOUNT20),并在那里应用优惠券代码。

有什么想法吗?纠结了好久

所以我想出了一条比较靠谱的路线:

我找到了我的购物车模板 liquid 文件并搜索了一个表格

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

我在这一行的正下方插入了这个

{%- for item in cart.items -%} 
    {%- if item.product.metafields.my_fields.discount_code.value != blank -%} 
        <input type="hidden" name="discount" value="{{item.product.metafields.my_fields.discount_code.value}}" >
    {%- endif -%} 
  {%- endfor -%}

在我的例子中,值 = 从购物车中产品的产品元字段中检索的内插值。

仅供参考 - 您需要在设置中创建一个元字段,然后创建一个折扣代码,复制折扣代码,转到您想要应用折扣代码的产品,访问该产品并向下滚动到元字段,将折扣代码粘贴到产品的折扣中(如果您将元字段命名为“折扣”,则可能已将其命名为其他名称)元字段。

因此,由于将使用名称="discount" 和值="discount_code" 提交表单,结帐页面将对折扣进行评估并使用适当的值。然而,这只有在 for 循环中才有可能。

对于如此简单的修复,我很惊讶它竟然如此难以弄清楚。希望对您有所帮助!


** 如果需要,可以额外阅读一些内容:https://wearetmbr.com/shopify-auto-fill-discount-code-on-checkout-page/ **