FROM CACHE - jp_header

カートページに要素を追加するとエラーメッセージが出てしまう。

hdm
Shopify Partner
21 2 2

main-cart-items.liquidのform内に下記記述を追加しています。

<div class="select-btn" id="select-btn1">
  <input id="radio{{ index }}" class="true" type="radio" name="personalization{{ index }}" value="true">1
  <input id="radio_null{{ index }}" class="false" type="radio" name="personalization{{ index }}" value="false">2
</div>
{%- for property in item.properties -%}
  {%- assign property_first_char = property.first | slice: 0 -%}
  {%- if property.last != blank and property_first_char != '_' -%}
    {% if forloop.index == 1 %}
      <div id="name-input{{ index }}">
        {{ property.first }}: <input class="op-1" type="text" name="name" value="{{ property.last }}" oninput="inputChange{{ index }}({{ index }})">
      </div>
      {% elsif forloop.index == 2 %}
          <div id="font-select{{ index }}">
           {{ property.first }}: <select class="op-2" oninput="inputChange{{ index }}({{ index }})">
                <option value="{{ property.last }}">{{ property.last }}</option>
                 <option value="hoge1">hoge1</option>
                 <option value="hoge2">hoge2</option>
                  <option value="hoge3">hoge3</option>
                   <option value="hoge4">hoge4</option>
                    <option value="hoge5">hoge5</option>
               </select>
              </div>
             {% endif %}
          {%- endif -%}
        {%- endfor -%}

それぞれのカート内アイテムにラジオボタンとinputなど追加しているのですが、こちらの要素に対して変更するとチェックアウトボタン下に「There was an error while updating your cart. Please try again.」とエラーメッセージが出てしまいます。

またエラーログPOST https://hoge/myshopify.com/cart/change 400と出ていました。

 

購入までの検証はしていませんが今のところ動作がおかしくなるといったことはないのですが気になってしまいます。

こちらのエラーの解決方法をご存じの方がいたらご教授いただけると助かります。

 

 

3件の返信3

hdm
Shopify Partner
21 2 2

動作について問題ないかと思っていたのですが、やはりエラーが出るとjavascriptが動かなくなってしまいます。

カートのほうで数量を変更すると追加したjavascriptが動かなくなるみたいです…

Jizo_Inagaki
Shopify Partner
1009 380 697

テーマや関連するコードが不明なので推測になりますが、おそらく以下の私のブログ記事が該当するかなと思います。

https://webutubutu.com/webdesign/10055

※見出し「cart.attributes(カートページ内の入力欄など)」の下か、見出し「結び」の上の「カスタマイザーを経由しない古いバージョン用のサンプルコードを見る」の中を参照のこと

 

上記が該当しない場合は、カートに絡むjsを読めば原因が特定できると思いますので調査することをお勧めします。

他にもエラー文で英語版のフォーラムなどを調べるといくつか事例が見つかりますので、そちらも参考にされると良いかなと思います。

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。
hdm
Shopify Partner
21 2 2

ご回答ありがとうございます。

changeイベントが発火するまでは理解していましたが商品ごとに名入れなどの情報を入力したくcart-items内のformに記述していました。

cart.jsを編集するのは困難な気がしたため、何かいい対策はないかと考えていたところです。