我可以将折扣代码添加到 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/ **
我创建了一个新的产品元字段: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/ **