テーマ仕様書 更新履歴
2026年
2026/08/25更新

2026/08/25更新

+ 更新した行
- 削除した行

会員登録時のメールアドレス認証機能の追加

会員登録時およびマイページでのメールアドレス変更時に、メールアドレス認証が必要になりました。
会員登録時は認証完了まで仮会員となり、認証メールの URL を開くと会員へ移行します。

本機能について

本機能は「設定 > 顧客/会員 > 顧客/会員の設定 (opens in a new tab)」の「メールアドレス認証 (opens in a new tab)」が有効なショップ様のみご利用いただけます。無効なショップでは既存の会員登録フローのままです。

cart > カート画面

ec_force/shop/carts/show.html.liquid
ec_force/shop/carts/show.html+smartphone.liquid

 <!-- カート画面コンテナ -->
 <div id="cart-show-view">
+
+  <!-- メールアドレス認証バナー(メールアドレス認証設定が有効かつ仮会員のときのみ表示) -->
+  <!-- PC版 -->
+  {% include 'ec_force/shop/shared/email_verification_banner.html', banner_data_to: 'order/new?register_as_member=1' %}
+  <!-- SP版 -->
+  {% include 'ec_force/shop/shared/email_verification_banner.html+smartphone', banner_data_to: 'order/new?register_as_member=1' %}
 
   <!-- フラッシュメッセージ -->
   {{ 'notice' | flash: 'alert alert-success', 'text' }}
     <a href="/shop">お買い物を続ける</a>
     {% if customer_signed_in %}
       <!-- 購入リンク -->
-      <a href="/shop/order/new">ご購入手続きへ</a>
+      <!-- 「メールアドレス認証設定」が有効、かつ、顧客のステータスが「仮会員」のとき -->
+      {% if base_info.require_email_verification? and current_customer.state == 'temporary_member' %}
+        <!-- メール未認証時は購入不可(クリックするとアラートを表示) -->
+        <a href="/shop/order/new" class="js-unverified-checkout-btn" data-message="メールアドレス認証が未完了のため、購入できません。">ご購入手続きへ</a>
+      {% else %}
+        <a href="/shop/order/new">ご購入手続きへ</a>
+      {% endif %}
     {% else %}
       <!-- ログインフォーム -->
        {% unless auth_infra and auth_infra.login_only_auth_infra == true %}
          <form action="/shop/customers/sign_in?customer_return_to=%2Fshop%2Forder%2Fnew" id="new_customer" method="post" class="cart_show_login_form">
           <input type="email" class="validate[required,custom[email]]" id="customer_email" name="customer[email]" placeholder="メールアドレス" value="{{ line_email }}">
           <input type="password" class="validate[required,minSize[8]]" id="customer_password" name="customer[password]" placeholder="パスワード">
           <input type="hidden" name="sign_in_route" value="shop_cart">
           <input class="cart_show_login_btn" type="submit" value="ログイン">
          </form>
 
         <!-- 会員登録と同時の購入リンク -->
-        <a href="/shop/order/new?register_as_member=1">会員登録して購入手続きへ進む</a>
+        {% if base_info.require_email_verification? %}
+          <!-- メールアドレス認証が有効のときは仮会員登録へ -->
+          <a href="/shop/customers/temporary_registration">会員登録して購入手続きへ進む</a>
+        {% else %}
+          <a href="/shop/order/new?register_as_member=1">会員登録して購入手続きへ進む</a>
+        {% endif %}
 
         <!-- ゲスト用購入リンク -->
         <a href="/shop/order/new?register_as_member=0">会員登録せずに購入手続きへ進む</a>

mypage > マイページ画面

ec_force/shop/customer/base/show.html.liquid
ec_force/shop/customer/base/show.html+smartphone.liquid

 <!-- フラッシュメッセージ -->
 {{ 'notice' | flash: 'alert alert-success', 'text' }}
 {{ 'alert' | flash: 'alert alert-danger', 'text' }}
+{{ 'error' | flash: 'alert alert-danger', 'text' }}
 
 <!-- マイページコンテナ -->
 <div id="customers-view">
+
+  <!-- メールアドレス認証バナー(メールアドレス認証設定が有効かつ仮会員のときのみ表示) -->
+  <!-- PC版 -->
+  {% include 'ec_force/shop/shared/email_verification_banner.html', banner_data_to: 'customer' %}
+  <!-- SP版 -->
+  {% include 'ec_force/shop/shared/email_verification_banner.html+smartphone', banner_data_to: 'customer' %}
 
   <!-- 会員番号(任意) -->
   {{ current_customer.number }}

mypage > 会員情報変更画面

ec_force/shop/customer/base/edit.html.liquid
ec_force/shop/customer/base/edit.html+smartphone.liquid

       <!-- メールアドレス -->
       {% if shop_form_settings['email'] %}
+        {% assign temporary_member_email_locked = false %}
+        {% if base_info.require_email_verification? and current_customer.state == 'temporary_member' %}
+          {% assign temporary_member_email_locked = true %}
+        {% endif %}
         <label for="customer_email">メールアドレス</label>
-        <input class="validate[required,custom[email]]" type="email" value="{{ current_customer.email }}" name="customer[email]" autocomplete="email" id="customer_email">
+        <!-- 仮会員の場合は readonly にして変更不可とする -->
+        <input class="validate[required,custom[email]]" type="email" value="{{ current_customer.email }}" name="customer[email]" autocomplete="email" id="customer_email"{% if temporary_member_email_locked %} readonly{% endif %}>
+        {% if temporary_member_email_locked %}
+          <!-- メール未認証時はメールアドレス変更不可の注意文 -->
+          メールアドレスの認証が完了していないため、メールアドレスは変更できません。認証メールをご確認いただくか、再送信をおこなってください。
+        {% endif %}
+
+        <!-- メールアドレス変更の確認(認証コード) -->
+        <!-- メールアドレス認証設定が有効かつ本会員の場合のみ表示 -->
+        {% if base_info.require_email_verification? and temporary_member_email_locked == false %}
+          <div id="member-email-update-token-section" style="display:none">
+            <label for="member-email-update-token">メールアドレス変更の確認</label>
+            メールアドレスを変更する場合は認証コード(6桁)による確認が必要です。「認証コードを送信」ボタンを押してメールを受け取り、記載の認証コード(6桁)を入力してから会員情報を保存してください。
+            <p class="js-member-email-update-token-message" style="display:none"></p>
+            <input id="member-email-update-token" type="text" name="member_email_update_token" maxlength="6" placeholder="認証コード(6桁)">
+            <button class="js-member-email-update-send" type="button">認証コードを送信</button>
+          </div>
+        {% endif %}
       {% endif %}
 
       <!-- 性別 -->
     <!-- 送信ボタン -->
-    <input type="submit" name="commit" value="保存" data-disable-with="保存中...">
+    <input type="submit" name="commit" value="保存" id="customer-save-btn" data-disable-with="保存中...">
 
     <!-- 退会ボタン -->

auth > 会員登録画面

ec_force/shop/customers/registrations/new.html.liquid
ec_force/shop/customers/registrations/new.html+smartphone.liquid

 <!-- 会員登録フォームの記述 -->
 {% unless auth_infra and auth_infra.login_only_auth_infra == true and auth_infra_regist == nil %}
-  <form action="/shop/customers" accept-charset="UTF-8" method="post" class="customers_registration_form">
+  <!-- メールアドレス認証が有効な場合は仮会員登録フローの入力受付先へ送信する -->
+  {% if base_info.require_email_verification? %}
+    {% assign registration_action = '/shop/customers/temporary_registration/profile' %}
+  {% else %}
+    {% assign registration_action = '/shop/customers' %}
+  {% endif %}
+  <form action="{{ registration_action }}" accept-charset="UTF-8" method="post" class="customers_registration_form">
     {% if customer.error_messages != empty %}
         {% for error_message in customer.error_messages %}
           {{ error_message }}

auth > 会員ログイン/会員登録画面

ec_force/shop/customers/sessions/new.html.liquid
ec_force/shop/customers/sessions/new.html+smartphone.liquid

 <!-- 会員登録フォームの記述(任意)-->
 {% unless auth_infra and auth_infra.login_only_auth_infra == true and auth_infra_regist == nil %}
-  <form action="/shop/customers" accept-charset="UTF-8" method="post" class="customers_registration_form">
+  <!-- メールアドレス認証が有効な場合は仮会員登録フローの入力受付先へ送信する -->
+  {% if base_info.require_email_verification? %}
+    {% assign registration_action = '/shop/customers/temporary_registration/profile' %}
+  {% else %}
+    {% assign registration_action = '/shop/customers' %}
+  {% endif %}
+  <form action="{{ registration_action }}" accept-charset="UTF-8" method="post" class="customers_registration_form">
 
     {% if customer.error_messages != empty %}
       <div>
         {% for error_message in customer.error_messages %}
           <p>{{ error_message }}</p>
         {% endfor %}
       </div>
     {% endif %}
 
     <!-- お名前 -->

shared_partial > email_verification_banner(部分テンプレート)

ec_force/shop/shared/_email_verification_banner.html.liquid
ec_force/shop/shared/_email_verification_banner.html+smartphone.liquid

新規追加ファイルです。
詳細はemail_verification_banner(部分テンプレート)をご確認ください。

auth > 仮会員登録画面

ec_force/shop/customers/temporary_registrations/new.html.liquid
ec_force/shop/customers/temporary_registrations/new.html+smartphone.liquid

新規追加ファイルです。
詳細は仮会員登録画面をご確認ください。

auth > 仮会員登録完了画面

ec_force/shop/customers/temporary_registrations/complete.html.liquid
ec_force/shop/customers/temporary_registrations/complete.html+smartphone.liquid

新規追加ファイルです。
詳細は仮会員登録完了画面をご確認ください。

auth > メールアドレス認証完了画面

ec_force/shop/customers/temporary_token_verify/success.html.liquid
ec_force/shop/customers/temporary_token_verify/success.html+smartphone.liquid

新規追加ファイルです。
詳細はメールアドレス認証完了画面をご確認ください。

auth > メールアドレス認証失敗画面

ec_force/shop/customers/temporary_token_verify/failure.html.liquid
ec_force/shop/customers/temporary_token_verify/failure.html+smartphone.liquid

新規追加ファイルです。
詳細はメールアドレス認証失敗画面をご確認ください。

auth > 認証メール再送信完了画面

ec_force/shop/customers/resend_verification_email_completes/show.html.liquid
ec_force/shop/customers/resend_verification_email_completes/show.html+smartphone.liquid

新規追加ファイルです。
詳細は認証メール再送信完了画面をご確認ください。

NP後払いリアルタイム カード払い対応

NP後払いリアルタイムで、請求書からクレジットカード払いに切り替えた注文について、マイページの購入履歴に「カード払い利用」と「後払いカード変更割引額」を表示できるようにしました。

本機能について

本機能の利用には申込みが必要です。
株式会社ネットプロテクションズホールディングスのホームページよりお問い合わせください。

利用時の設定は NP後払いリアルタイムカード払い (opens in a new tab)をご確認ください。

mypage > 購入履歴一覧画面

ec_force/shop/customer/orders/index.html.liquid
ec_force/shop/customer/orders/index.html+smartphone.liquid

   <!-- 支払い方法(任意) -->
   {{ order.payment.payment_method.name }}
+  {% if order.payment_later_card_converted? %}
+    カード払い利用
+  {% endif %}
 
   <!-- 対応状況(任意) -->
   {{ order.human_state_name }}

mypage > 購入履歴詳細画面 基本情報

ec_force/shop/customer/orders/show.html.liquid
ec_force/shop/customer/orders/show.html+smartphone.liquid

   <!-- 10%対象消費税(任意) -->
   {{ order.tax10 | number_to_currency: format: '%n %u' }}
+
+  {% if order.payment_later_card_converted? %}
+    <!-- 後払いカード変更割引額(任意) -->
+    {{ order.payment.payment_later_card_discount_amount | number_to_currency: format: '%n %u' }}
+  {% endif %}
 
   <!-- 合計 -->
   {{ order.total | number_to_currency: format: '%n %u' }}
   <!-- 支払い方法(任意) -->
   {{ order.payment_method.name }}
+  {% if order.payment_later_card_converted? %}
+    カード払い利用
+  {% endif %}
 
   <!-- 分割回数(任意) -->
   {{ order.payment.payment_times }}