Shopify缺少参数ID

时间:2016-11-21 15:38:52

标签: html forms shopify

我收到错误:

  

参数缺失或无效:必需参数缺失或无效:   ID

尝试从产品页面向购物篮添加产品时,请不要理解为什么会发生这种情况?

dataGridView1.Columns[3].Name = "loadtickets";

任何有助于将其排序的帮助都很棒!

编辑 - 更新代码

<form action="/cart/add" method="post" enctype="multipart/form-data">
      {% if product.options.size > 1 %}
        <fieldset class="group">
          <ul class="checkbox">
            {% for variant in product.variants %}
            {% if variant.available == true %}

                  <li>
                    <label>
                    <input type="radio" value="{{variant.id}}" name="id" />
                    {{ variant.title }} for {{ product.price | minus:variant.price | money_with_currency }}
                    </label>
                  </li>
            {% else %}
            {% endif %}
            {% endfor %}
          </ul>
        </fieldset>
        {% endif %}
            <input type="submit" name="add" id="add" class="inpost-buy w-button" value="Add to Bag →"></input>
      </form>

1 个答案:

答案 0 :(得分:1)

您需要确保至少发送一个ID。我认为你也需要一个数量(如果你使用购物车api你会这样做)但是如果没有给出直线形式的帖子可能会假定为1。我要加一个数量。如果您不希望它只显示使用type=hidden

您的第二个问题是您的代码没有后备。如果某个产品有选项但没有可用的变体,那么您将被卡住。通常我使用变量来跟踪我是否有可购买的变体。你可以通过多种方式实现这一目标。我使用product.first_available_variant:

添加了一个测试
{% if product.first_available_variant == true %}
<form ...>
{% if product.options.size > 1 %}
...
<input type="radio" value="{{variant.id}}" name="id" {%if variant.id == product.selected_or_first_available_variant.id %} checked{% endif %} >
<label>{{ variant.title }} for {{ product.price | minus:variant.price | money_with_currency }}</label>

...
{% else %}
<input type="hidden" name="id" value="{{ product.selected_or_first_available_variant.id }}">
{% endif %}

<input type='hidden' name='quantity' value='1'>

</form>
{% else %}
<p>{{ 'no_product_available' | t }}</p> // or just some text if no locale support.
{% endif %}