年齢確認を自作する

Topic summary

ワインショップでカートに年齢確認機能を実装しようとしている。

実装内容:

  • 「年齢確認商品(ワイン)」コレクションに属する商品がカートにある場合、生年月日と年齢の入力フォームを表示
  • sections/main-cart-footer.liquidにLiquidとJavaScriptのコードを追加
  • 20歳以上であることを確認し、カート属性として保存する仕組み

発生している問題:

  • フォームが表示されない
  • JavaScriptコードの一部が文字化けまたは破損している(calculateAge関数以降のコードが不完全)

指摘された可能性:

  • コレクションハンドル名が正しく認識されていない可能性
  • 文字列として正確に識別されていない問題

現在、コードの修正方法や他の解決策についてアドバイスを求めている状況。

Summarized with AI on November 6. AI used: claude-sonnet-4-5-20250929.

ワインを販売していて、年齢確認を追加したく、以下のコードを作り、sections/main-cart-footer.liquidに入れました。

{% assign has_alcohol = false %}
{% for item in cart.items %}
{% for collection in item.product.collections %}
{% if collection.handle == ‘年齢確認商品(ワイン)’ %}
{% assign has_alcohol = true %}
{% break %}
{% endif %}
{% endfor %}
{% if has_alcohol %}
{% break %}
{% endif %}
{% endfor %}

{% if has_alcohol %}

年齢確認

20歳未満の飲酒は法律で禁止されています。20歳未満の方への酒類の販売はできません。

生年月日を入力してください*

<input required class=“required” id=“birthdate” type=“date” name=“attributes[生年月日]” value=“{{ cart.attributes[“生年月日”] }}”>

年齢を入力してください*

<input required class=“required” id=“age” type=“number” name=“attributes[年齢]” min=“0” max=“120” value=“{{ cart.attributes[“年齢”] }}”>

{% else %}

チェックアウトへ進む {% endif %}

しかし、フォームが表示されませんでした。

原因や他の方法などなど、教えていただけると助かります

ハンドルを「年齢確認商品」のみにしたところ、フォームが表示されました。()が正確に文字列として認識されていない可能性があります。