无法将变体数据传递到 shopify 表单中

Unable to pass variant data into shopify form

我正在尝试使用 data-variants 属性将变体 JSON 数据传递到添加到购物车表单中,但我无法正确重构以使用 Shopifys 更新的表单语法。

<form id="add-to-cart-form" action="/cart/add" method="post" enctype="multipart/form-data" data-variants="{{variants_with_quantity_json | url_param_escape }}"></form>

{% form 'product', product, data-product-form: '', data-product-handle: product.handle, data-enable-history-state: 'true', id: "add-to-cart-form" %}

data variant 属性在我的版本中只是输出没有数据的对象。

但是我需要像这样在表单上访问数据;

我正在尝试将库存数量添加到 product.variants.json 并且需要弄清楚如何将 {{ variants_with_quantity_json }} 传递给表格。

{% assign variants_with_quantity_json = product.variants | json %}

{% unless variants_with_quantity_json contains 'inventory_quantity' %}
  {% for variant in product.variants %}
    {% assign replace_hook_variant_id = '"id":' | append:variant.id %}
    {% assign replace_id_plus_inventory = replace_hook_variant_id | append: ',' | append: '"inventory_quantity":' |
    append: variant.inventory_quantity %}
    {% assign variants_with_quantity_json = variants_with_quantity_json | replace: replace_hook_variant_id,
      replace_id_plus_inventory  %}
  {% endfor %}
{% endunless %}

好的,您需要先将数据分配给一个变量,然后再将其传递给 Shopify 中的 {% form %} 所以你 {% form %} 看起来像这样:

{% assign data_variants = variants_with_quantity_json | url_param_escape %}

{% form 'product', product, data-product-form: '', data-product-handle: product.handle, data-enable-history-state: 'true', id: "add-to-cart-form" data-variants: data_variants %}

或者您可以使用 {% capture %} 液体代码标签来获取和传递值

{% capture 'data_variants' %}variants_with_quantity_json | url_param_escape{% endcapture %}

{% form 'product', product, data-variants: data_variants %}
...
{% endform %}