Zenn
🎉

Shopifyで年齢確認のチェックボックスを実装する方法を考察

2025/02/12に公開

はじめに

今回は、Shopify で年齢確認を導入する方法について考察しました。

お酒やタバコなど、購入に年齢制限がある商品を扱うストアでは、ユーザーが法定年齢に達しているかどうかを確認する仕組みが必要になります。そこで重要になるのが、年齢確認の導入です。

それでは、年齢確認の概要を整理しながら、導入のメリット・デメリット、そして導入方法を見ていきましょう。

今回は、以下の記事を参考にしています。

Shopify で年齢確認機能を導入する定義

年齢確認機能とは、購入者が該当商品の購入に必要な年齢に達しているかどうかを判断する仕組みです。対象の商品をカートに追加する際、あるいはチェックアウト時に「私は○○歳以上です」といったチェックボックスやポップアップを表示し、ユーザーに確認を求めるものが一般的です。

法的に年齢制限が設けられている商品(酒類・タバコ・アダルト商品など)を取り扱うショップでは、年齢確認機能を導入することでコンプライアンスを遵守し、リスク回避に努めることが求められます。

Shopify で年齢確認機能を導入するメリット

まずは、Shopify で年齢確認機能を導入することで得られるメリットについて解説していきます。

1. 法的リスクの回避・コンプライアンス遵守

未成年に対する販売が禁止されている商品を扱う場合、年齢確認機能がないと法律違反に問われる可能性があります。年齢確認を設定することで、リスクを低減でき、コンプライアンスをしっかりと守ることができます。

2. ストアの信頼性向上

購入者が「この店はきちんと年齢確認をしている」という印象を持つことで、ストアへの信頼感が高まります。コンプライアンス意識の高いショップであるというアピールにもなり、ブランドイメージを守ることにつながります。

3. 特定商品へのターゲット表示

年齢制限が必要な商品だけに確認画面を表示し、それ以外の商品には表示しない設定が可能です。必要な場面でのみチェックを求めるため、ユーザーの負担を最小限に抑えつつ、しっかりと確認を行うことができます。

4. データの保持による万全な管理

年齢確認の有無を商品プロパティとして保存しておけば、後々のトラブルや監査の際にも証拠として機能します。法的な要件を満たしつつ、情報を整理・保管できる仕組みは重要です。

5. 問題が起きた際のエビデンス確保

販売時に必須チェックを入れた履歴が残るため、万が一問題が発生したとしても「きちんと年齢確認を行った」というエビデンスを示すことができます。

Shopify で年齢確認機能を導入するデメリット

次に、Shopify で年齢確認機能を導入する際に考慮すべきデメリットについて解説していきます。

1. ユーザーの購入フローにひと手間が増える

年齢確認チェックが必要になることで、購入フローにステップが増えます。特に頻繁に商品を購入するリピーターにとっては、チェック作業が煩わしく感じられる可能性があります。

2. デザイン・UI における調整の手間

年齢確認のポップアップやチェックボックスが、ストアのデザインから浮いてしまうと、ユーザー体験が損なわれることがあります。全体のデザインとの調和や、チェックボックスの配置、文言などのUI調整に手間がかかる場合があります。

3. テーマやカスタムコードの改修が必要な場合

簡易的に導入できるアプリがある一方で、自分でコードをカスタムして年齢確認を導入する場合は、テーマへの組み込みやLiquidファイルの修正が必要になります。その分、開発コストや時間がかかる可能性があります。

4. 一部ユーザーの離脱リスク

年齢確認によって購入を制限することは当然ながら必要ですが、チェック作業や表示確認に煩わしさを感じるユーザーの離脱につながる可能性もあります。対象商品の特性やショップ全体の導線を考慮して導入することが望ましいです。

Shopify で年齢確認機能を導入する方法

ここでは、Shopify において年齢確認を導入する基本的な方法を考察していきます。

1. テーマに直接コードを挿入する方法

  • テンプレート(例: product.liquid など)に、購入ボタンの近くにチェックボックスを挿入する。
  • チェックが入っていない場合、カートボタンを押せないように JavaScript やLiquid で制御する。
  • カスタマイズにより、ユーザーが「○○歳以上です」にチェックしない限り次へ進めないようにする。

メリット

  • アプリなしで実装が可能。
  • 自分好みに細かくカスタマイズできる。

デメリット

  • コードの編集が必要なので、非エンジニアにはハードルが高い。
  • テーマアップデート時に管理が煩雑になる恐れがある。

2. ポップアップやモーダルを用いた方法

  • ローディング時に「年齢確認」のモーダルを表示し、チェックが完了しない限りページを閲覧できないようにする。
  • JavaScript やテーマのスクリプトにて制御する。

メリット

  • 対象商品全体に強制的にチェックを求められる。
  • ユーザーが商品ページにたどり着く前に確認可能。

デメリット

  • ポップアップが頻繁に出すぎると、ユーザー体験が悪化する恐れがある。
  • ストア全体のデザインや動線を損ねる可能性があるため、UIの工夫が必要。

ここからは、Shopify で年齢確認チェックボックスを表示させる具体的なコードについて、考察していきます。

Shopify の商品ページにチェックボックスを表示させる具体的な実装方法

ここでは、商品ページに年齢確認のチェックボックスを追加し、チェックが入っていない場合は購入ボタンを押せないようにする基本的な実装例を紹介します。テーマの種類によってテンプレートファイル名は異なる場合がありますが、Dawn テーマを例にして、product.liquidmain-product.liquid、あるいはセクションファイル(例: sections/main-product.liquid)をカスタマイズする方法を想定しています。

コード例

以下は、商品ページに年齢確認用のチェックボックスと、Add to Cart ボタン(購入ボタン)の制御を行うサンプルコードです。チェックが入っていない状態で購入できないようにするロジックを組み込みます。

<!-- ① 年齢確認用のチェックボックスを商品ページに追加 -->
{% comment %}
  必要に応じてタグやメタフィールドで
  「年齢確認が必要な商品かどうか」を判別するロジックを追加すると便利です。
{% endcomment %}

{% if product.tags contains 'age-verification' %}
  <div class="age-check-wrapper">
    <label for="age-check" class="age-check-label">
      <input type="checkbox" id="age-check" />
      <span>私は法定年齢以上です</span>
    </label>
  </div>
{% endif %}

<!-- ② Add to Cart ボタンのコードを探し、IDやクラスを確認しておきましょう。 -->
<!-- Dawn テーマの場合の一例 -->
<button
  name="add"
  type="submit"
  class="button button--primary product-form__submit"
  id="add-to-cart"
>
  {{ 'products.product.add_to_cart' | t }}
</button>

<!-- ③ 上記のボタンを制御するための JavaScript を追加 -->
<script>
  document.addEventListener('DOMContentLoaded', function() {
    const ageCheckbox = document.getElementById('age-check');
    const addToCartBtn = document.getElementById('add-to-cart');

    // 該当商品の場合のみ処理を実行
    if (ageCheckbox && addToCartBtn) {
      // 初期状態でボタンを無効にする(必要に応じて有効にしたい場合は false に)
      addToCartBtn.disabled = true;

      ageCheckbox.addEventListener('change', function() {
        // チェックが入っていればボタンを有効化、外れていれば無効化
        addToCartBtn.disabled = !this.checked;
      });
    }
  });
</script>

<!-- ④ CSS の例(例として最低限のデザイン) -->
<style>
  .age-check-wrapper {
    margin-bottom: 1em;
  }
  .age-check-label {
    display: inline-flex;
    align-items: center;
    font-size: 16px;
  }
  #age-check {
    margin-right: 8px;
  }
  /* 無効化されているボタンにスタイルを適宜付与(参考例) */
  button:disabled {
    background-color: #ccc;
    cursor: not-allowed;
  }
</style>

コードの解説

  1. タグ判別 (if 文)

    • product.tags contains 'age-verification' のように、商品タグを利用して「年齢確認が必要な商品か」を判別しています。タグやメタフィールドを活用することで、他の商品には表示しないように制御できます。
  2. チェックボックス設置

    • div.age-check-wrapper 内に <input type="checkbox" id="age-check" /> を配置。横にラベルテキストを添えて、ユーザーが確認内容を理解しやすいようにしています。
  3. Add to Cart ボタン

    • Dawn テーマの例として、<button name="add" type="submit" id="add-to-cart"> を利用しています。実際のテーマで使用しているクラス名やボタンの ID は異なる場合があるので、テーマのコードを確認してください。
  4. JavaScript による制御

    • DOMContentLoaded イベントでページ読込完了を待ち、以下の処理を実行します。
      • チェックボックス (ageCheckbox) と Add to Cart ボタン (addToCartBtn) を取得。
      • ボタンを初期状態で disabled = true にしておき、ユーザーがチェックを入れて初めて購入ボタンが有効になるように設定。
      • チェックが切り替わるたびに addToCartBtn.disabled = !this.checked; を実行することで、チェックが入っているときのみ購入可能となります。
  5. CSS のスタイリング

    • .age-check-wrapper.age-check-label など、チェックボックスの見た目や余白を整えています。
    • ボタンが disabled になっている場合のスタイル指定 (button:disabled) もしておくと、ユーザーが「押せない状態」であることを視覚的に分かりやすくなります。

ここまでで、コードによる実装は終了です。

次に、Shopify のアプリを用いて年齢確認機能を実装する方法について解説していきます。

Shopify アプリを用いて年齢確認機能を実装する方法

自力でコードを編集するのが難しい場合や、より簡便に年齢確認を導入したい場合には、Shopify アプリを利用する方法がおすすめです。ここでは、シンプル年齢確認チェックボックスアプリを紹介します。

以下が、Shopify のアプリリストです。

https://apps.shopify.com/ur-age-confirmation-checkbox?locale=ja

以下が、公式のご利用ガイドです。

https://unreact.jp/shopify-apps/sa-089-ur-age-confirmation/guide

こちらの記事を参考に、こちらの年齢確認チェックボックスアプリについて解説します。

シンプル年齢確認チェックボックスアプリ とは

シンプル年齢確認チェックボックスアプリは、株式会社UnReact が開発した、月額 $6.99 で利用できる年齢確認専用の Shopify アプリです。商品ごとに必須の年齢確認チェックボックスを設置し、未成年への販売を防ぐ機能を提供します。

主な特徴

  • 商品ごとにチェックボックスを表示・非表示
    特定の商品だけにチェックボックスを設置し、不要な商品には表示しないといった細かな制御が可能。
  • チェック未完了での購入ブロック
    年齢確認チェックが入っていない場合、カートに進めない・チェックアウトができないように制御。
  • コンプライアンスを遵守した販売
    未成年への販売を防ぎ、法的リスクやブランドイメージの毀損を最小限に抑える。
  • 商品プロパティに年齢確認の情報を保存
    購入履歴として年齢確認の有無を残せるため、何か問題が起きた際のエビデンスとしても活用可能。
  • 管理画面で直接操作 & Dawn テーマ対応
    コード編集不要で管理画面から設定できるので、初心者でも扱いやすく、Shopify のデフォルトテーマ (Dawn) にもしっかり対応。
  • 英語・日本語の多言語対応
    国内外のユーザーが利用してもスムーズに年齢確認が行える。

インストール方法

  1. Shopify アプリストア で「シンプル年齢確認チェックボックスアプリ」を検索。
  2. アプリを「Add app」からストアに追加し、承認画面を確認後、インストールを行う。
  3. Shopify 管理画面に戻り、アプリを開くと各種設定画面が表示されるので、ガイドに従ってチェックボックスの文言やデザインをカスタマイズ。
  4. 年齢確認が必要な商品を選択し、チェックボックスを有効にすれば設定完了。

導入のメリット

  • ノーコードで簡単設定
    開発知識がなくても管理画面で設定が完結。
  • 確実な購入制限
    チェックが入っていない限り購入できない仕組みで未成年購入を防止。
  • ストアのデザインを損なわない
    表示場所やラベルのカスタマイズで、ストアに自然に溶け込むデザインが可能。

ここからは、シンプル年齢確認チェックボックスアプリの概要について、アプリリストの参照しながら解説します。

シンプル年齢確認チェックボックスアプリの概要

以下のアプリリストを参考に、シンプル年齢確認チェックボックスアプリの概要について解説します。

https://apps.shopify.com/ur-age-confirmation-checkbox?locale=ja

こちらのアプリを用いると、商品ごとに年齢確認のためのチェックボックスを設置できる。

また、コンプライアンスのための年齢確認を実現できます。

商品ごとにチェックボックスの表示・非表示を設定できます。

チェックされていない場合に購入を防止できます。

年齢認証の情報は商品のプロパティに保存されます。

ノーコードで様々な設定をできます。

1 クリックでテーマに追加できます。

以下のアプリストアから、インストールを行うことができます。

https://apps.shopify.com/ur-age-confirmation-checkbox?locale=ja

最後に

今回は、Shopify で年齢確認機能を導入する定義から、メリット・デメリット、そして導入方法について解説しました。コードで直接実装する方法は柔軟性があるものの、開発リソースや知識が求められます。一方、シンプル年齢確認チェックボックスアプリのような専用アプリを利用すれば、ノーコードで簡単に必要な機能を実現できます。

これから年齢確認が必要な商品を取り扱うストアを運営したい方や、すでに運営中だけどコンプライアンスをさらに強化したいという方は、ぜひこの機会に年齢確認機能の導入を検討してみてください。

参考記事

今回は、以下の記事を参考にしています。

Discussion

ログインするとコメントできます