2016-11-21 10 views
0

がありません:Shopifyは、私はエラーを取得しています。パラメータID

Parameter Missing or Invalid: Required parameter missing or invalid: id

製品ページからバスケットに製品を追加しようとすると、これが起こっている理由を、理解していませんか?

<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> 

これはソート得るためにすべてのヘルプは鮮やかになります!

EDIT - あなたは、少なくともIDを送信していることを確認する必要があり

<form action="/cart/add" method="post"> 
      {% if product.options.size > 1 %} 
      <fieldset class="group"> 
       <ul class="checkbox"> 
       {% for variant in product.variants %} 
       {% if variant.available == true %} 
         <li> 
         <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> 
         </li> 
       {% else %} 
       {% endif %} 
       {% endfor %} 
       </ul> 
      </fieldset> 
      {% else %} 
      <input type="hidden" name="id" value="{{ product.selected_or_first_available_variant.id }}"> 
      {% endif %} 
       <input type='hidden' name='quantity' value='1'> 
       <input type="submit" name="add" id="add" class="inpost-buy w-button" value="Add to Bag →"></input> 
      </form> 
+0

なぜ、 'enctype =" multipart/form-data "' ...のような理由でテストを追加しましたか? – CBroe

+0

私は変種のオプションも考慮に入れていると思うので、 – user3082823

+0

enctypeとは何が関係していますか?同じフォームでファイルのアップロードが行われているのですか? – CBroe

答えて

1

更新されたコード。私はあなたが量を必要と思う(あなたはカートのAPIを使用する場合は行う)が、ストレートフォームのポストは、現在与えられていない場合は1と仮定することがあります。私は数量を追加します。表示したくない場合は、type=hiddenを使用してください。

2番目の問題は、コードにフォールバックがないことです。製品にオプションがありますが、使用可能なバリアントがない場合、あなたは固執します。一般的に私は変数を使用して、購入可能なバリアントがあるかどうかを追跡します。これにはいくつかの方法があります。

{% 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 %} 
+0

残念ながら、パラメータがないか無効です:必須パラメータがないか無効です:ID – user3082823

+0

実際にチェックボックスがありますか? chromeとdevツールを使用する場合は、ネットワークログを保存するときに何が起こるのか - POSTエントリを見て、ヘッダページを表示します。あなたの投稿はリクエストヘッダーセクションとレスポンスヘッダーセクションの下にあります。それをここに貼り付けることができますか? – bknights

+0

ネットワークログ経由で送信された 'add'/POSTからヘッダーを追加しました – user3082823

関連する問題