2024/08/02

【新・Shopify マスターへの道】#10 アカウントページを作成しよう【2024 年最新版】

@ 信条刃

Shopify
  1. ストア構築の準備をしよう
  2. 商品を登録しよう
  3. コレクションを登録しよう
  4. ブログ記事を作成しよう
  5. サイトのデザインを選ぼう
  6. テーマを編集しよう(セクション編)
  7. テーマを編集しよう(テーマ設定編)
  8. トップページ以外を編集しよう
  9. サイトのフォントを編集しよう
  10. アカウントページを作成しよう(← 今回はここ)
  11. コンタクトフォーム を作成しよう
  12. About ページを作成しよう
  13. 規約を入力しよう
  14. メニューの編集をしよう
  15. 送料を設定しよう
  16. 一般設定を編集しよう
  17. 各種設定を編集しよう
  18. 決済テストを行おう
  19. ストアの所有権を移行しよう

前回は、サイトのフォントを編集しました。

前回の記事はこちら

Shopify では、会員登録機能をデフォルトで実装することができます。そこで今回は、アカウントページを作成し、会員登録ができるようにします。ただデフォルトの機能では、住所の入力欄が海外仕様になっているので、コードを編集して整えていきます。

今回も頑張っていきましょう!

また、お客様アカウントについて詳しく知りたい方はこちらの記事も合わせて読むと、より理解が深まると思います。

今回の目標

  • アカウント機能を追加する
  • 入力欄を日本仕様に編集する

デモサイトを構築する際に使用する商品画像や CSV ファイルのダウンロードをしてない方はこちらからダウロードしてください。

【Shopify マスターへの道】商品画像・CSV ファイルのダウンロード

アカウント登録機能を有効化する

Shopify の会員登録機能は、デフォルトでは無効になっています。そのため、まず「ログインリンクを表示」を有効にします。

ストアの管理画面で「設定」をクリックしてください。

管理画面で「設定」をクリック

次に「お客様アカウント」をクリックしてください。

「お客様アカウント」をクリック

「お客様アカウント」の設定に進むと、「ログインリンク」という設定項目があります。デフォルトでは、この設定が「ログインリンクを非表示にする」となっています。

「ログインリンク」という設定項目

「ログインリンクの表示」には 2 種類あります。

  1. 新規
  2. 従来

これらのどちらかにチェックを入れると、アカウント登録機能が有効化されます。

「新規」では、お客様はメールに送られたワンタイムコードを使用してログインします。一方、「従来」では、お客様はアカウントを作成し、メールアドレスとパスワードを使用してログインします。

「ログインリンクの表示」には 2 種類

今回は、「従来」で設定をしておきましょう。

アカウントページを確認する

アカウントページがストアに反映されていることを確認します。ストアのプレビューを開きます。

ストアのプレビューを開く

ヘッダーの部分に「人型のアイコン」が表示されていれば、アカウントの有効化が成功しています。

「人型のアイコン」が表示されているか確認

次にアカウントページを確認します。アイコンをクリックしてください。すると、ログインページが開きます。

アイコンをクリック

ログインページが開く

まだ、アカウントを持っていないので、「アカウントを作成する」をクリックし、アカウント登録をします。

「アカウントを作成する」をクリック

アカウントを登録

アカウント登録が完了すると、次の画像のようなアカウントページを表示できるようになります。(アカウント登録後、チェックアウトページに飛んでしまった方は、一度トップページに戻り再度「人型のアイコン」をクリックしてください)

アカウントページが表示

アカウントページでは、そのストアでの注文履歴や、住所などの情報を見ることができます。

では、住所を設定ページをみてみます。「住所を確認」をクリックしてください。

「住所を確認」をクリック

アカウントの設定直後は、住所が設定されていないので、「新しい住所を追加」をクリックして住所を追加します。

「新しい住所を追加」をクリック

このようなページが表示されるので、住所を設定してみましょう。必要な情報を入力したら、「住所を追加する」をクリックします。

「住所を追加する」をクリック

設定した住所は、「デフォルト」に表示されます。また、「アカウントの詳細に戻る」で一つ前のページに戻ると、「アカウントの詳細」に登録した住所が表示されるようになっています。

「デフォルト」に表示

住所が表示

Shopify のアカウント機能では、このようなことを実装することができます。

デフォルトのアカウント登録機能の問題点

デフォルトで実装することができるアカウント登録機能ですが、問題点があります。それは、住所の入力欄の順番が海外仕様になっているということです。

住所の入力欄の順番が海外仕様になっている

今回は、コードを編集して日本仕様にデザインを整えていきます。それに加えて会社名の入力欄も削除してしまします。以下の画像が見本になります。

見本

住所登録ページの編集

ここからはコードの編集をします。HTML や CSS にあまり触れたことがない方には、少し難しいかもしれませんので、記事の最後まで飛ばして完成したコードをコピペしてもらっても構いません。

では、いきましょう。

住所登録ページの編集をしていきます。コードの編集をするので、「オンラインストア > テーマ > 3 点リーダー > コードを編集する」へ進みます。プレビュー画面が閉じていたらプレビュー画面も開いておきましょう。

「オンラインストア > テーマ > 3点リーダー > コードを編集する」へ進む

コードの編集画面へ移動したら、「sections」フォルダの中にある「main-addresses.liquid」を開きます。このファイルに、住所登録ページのコードが書いてあります。

「sections」フォルダの中にある「main-addresses.liquid」

姓と名の順序を入れ替える

まず、姓名の順番を入れ替えます。main-addresses.liquid に記述しているコードの中から、名前の入力欄を記述しているコードを探します。

コードを見ていくと、42 行目から 63 行目までが、名前の部分のコードになっています。
(label タグの for 属性が AddressLastNameNew となっていたり、ラベルタグの中身が{{ 'customer.addresses.last_name' | t }}ところから判断しています。)

42 行目から 63 行目までが、名前の部分のコード

42 – 52 行目のコードと 53 – 63 行目のコードを入れ替えます。

42 – 52 行目のコードと 53 – 63 行目のコードを入れ替える

コードを入れ替えたら、一度「保存する」をクリックし保存

コードを入れ替えたら、一度「保存する」をクリックし保存しましょう。保存したら、プレビュー画面で変更されているか確認します。

プレビュー画面で変更されているか確認

会社名の入力欄を削除する

会社名の入力欄は、今回は削除してしまいましょう。コードから、会社名の入力欄の記述を探します。

コードを見ていくと、64 – 74 行目が会社名の入力欄のコードになっています。(改行の具合で何行かずれているかもしれないので、間違わないようコードをよく読みましょう。)

この部分をまるっと削除してしまいましょう。

64 – 74 行目が会社名の入力欄のコード

削除したらコードを保存しましょう。

削除したらコードを保存

プレビュー画面で確認します。

プレビュー画面で確認

このように、会社名の入力欄が削除されていれば OK です。

住所の入力欄を一番下に移動する

次に、「住所 1」・「建物名、部屋番号など」入力欄を編集していきます。更に、入力欄のラベルの「住所 1」を「番地以降」に変更します。

では、「住所 1」・「建物名、部屋番号など」の入力欄のコードを探します。64 - 85 行目にコードが記述してあります。これを 150 行目の<div>タグの前に移動します。

150 行目の<div>タグの前に移動

移動したら「保存」ボタンをクリックしてください。

「保存」ボタンをクリック

移動させたら<label>タグの中身を書き換えます。以下のように、書き換えましょう。

137 行目:{{ 'customer.addresses.address1' | t }} → 番地以降

<label>タグの中身を書き換える

コードを保存して、プレビュー画面で確認します。

プレビュー画面で確認

電話番号の順番を入れ替える

電話番号の入力欄を姓名の入力欄の下に移動させます。

電話番号の入力欄のコードを探します。117 – 127 行目に書いてあるようです。これを切り取って 63 行目に移動します。

電話番号の入力欄のコードを探す

移動したら、「保存」をクリックしてください。

移動後

プレビュー画面を確認します。

プレビュー画面を確認

市の入力欄の順番を変更する

市の入力欄を国/地域の下に移動します。

市の入力欄のコードを探します。75 - 85 行目に書いてあるようです。これを切り取って 105 行目に移動します。

市の入力欄のコードを探します。75 - 85 行目に書いてある

移動後は「保存」ボタンをクリックしてください。

「保存」ボタンをクリック

プレビュー画面を確認します。

プレビュー画面を確認

郵便番号の順番を変更する

郵便番号の入力欄を市の入力欄の上に移動します。

郵便番号の入力欄のコードを探します。116 - 127 行目に書いてあるようです。これを切り取って 105 行目に移動します。

郵便番号の入力欄のコードを探す

移動後は「保存」ボタンをクリックしてください。

「保存」ボタンをクリック

プレビュー画面を確認します。

プレビュー画面を確認

以上で、アカウントページの編集は終了です。少し難しかったかもしれませんが、しっかりとコードを読みながら復習してみてください。

住所登録ページの編集(コードを編集することが難しい方向け)

コードを編集することが難しい方は、以下のステップでコードをコピペしてください。

住所登録ページの編集をしていきます。コードの編集をするので、「オンラインストア > テーマ > 3 点リーダー > コードを編集する」へ進みます。プレビュー画面が閉じていたらプレビュー画面も開いておきましょう。

「オンラインストア > テーマ > 3点リーダー > コードを編集する」へ進む

コードの編集画面へ移動したら、「sections」フォルダの中にある「main-addresses.liquid」を開きます。このファイルに、住所登録ページのコードが書いてあります。

「sections」フォルダの中にある「main-addresses.liquid」

ファイルが開けたら 31 行目から 160 行目までを全て削除します。

31 行目から 160 行目までを全て削除

削除したら、31 行目に以下のコードを貼り付けてください。

  <div data-address>
    <button
      type="button"
      aria-expanded="false"
      aria-controls="AddAddress"
    >
      {{ 'customer.addresses.add_new' | t }}
    </button>
    <div id="AddAddress">
      <h2 id="AddressNewHeading">{{ 'customer.addresses.add_new' | t }}</h2>
      {%- form 'customer_address', customer.new_address, aria-labelledBy: 'AddressNewHeading' -%}
        <div class="field">
          <input
            type="text"
            id="AddressLastNameNew"
            name="address[last_name]"
            value="{{ form.last_name }}"
            autocomplete="family-name"
            placeholder="{{ 'customer.addresses.last_name' | t }}"
          >
          <label for="AddressLastNameNew">{{ 'customer.addresses.last_name' | t }}</label>
        </div>
        <div class="field">
          <input
            type="text"
            id="AddressFirstNameNew"
            name="address[first_name]"
            value="{{ form.first_name }}"
            autocomplete="given-name"
            placeholder="{{ 'customer.addresses.first_name' | t }}"
          >
          <label for="AddressFirstNameNew">{{ 'customer.addresses.first_name' | t }}</label>
        </div>
        <div class="field">
          <input
            type="tel"
            id="AddressPhoneNew"
            name="address[phone]"
            value="{{ form.phone }}"
            autocomplete="tel"
            placeholder="{{ 'customer.addresses.phone' | t }}"
          >
          <label for="AddressPhoneNew">{{ 'customer.addresses.phone' | t }}</label>
        </div>
        <div>
          <label for="AddressCountryNew">{{ 'customer.addresses.country' | t }}</label>
          <div class="select">
            <select
              id="AddressCountryNew"
              name="address[country]"
              data-default="{{ form.country }}"
              autocomplete="country"
            >
              {{ all_country_option_tags }}
            </select>
            <svg aria-hidden="true" focusable="false" viewBox="0 0 10 6">
              <use href="#icon-caret" />
            </svg>
          </div>
        </div>
        <div id="AddressProvinceContainerNew" style="display: none">
          <label for="AddressProvinceNew">{{ 'customer.addresses.province' | t }}</label>
          <div class="select">
            <select
              id="AddressProvinceNew"
              name="address[province]"
              data-default="{{ form.province }}"
              autocomplete="address-level1"
            ></select>
            <svg aria-hidden="true" focusable="false" viewBox="0 0 10 6">
              <use href="#icon-caret" />
            </svg>
          </div>
        </div>
        <div class="field">
          <input
            type="text"
            id="AddressZipNew"
            name="address[zip]"
            value="{{ form.zip }}"
            autocapitalize="characters"
            autocomplete="postal-code"
            placeholder="{{ 'customer.addresses.zip' | t }}"
          >
          <label for="AddressZipNew">{{ 'customer.addresses.zip' | t }}</label>
        </div>
        <div class="field">
          <input
            type="text"
            id="AddressCityNew"
            name="address[city]"
            value="{{ form.city }}"
            autocomplete="address-level2"
            placeholder="{{ 'customer.addresses.city' | t }}"
          >
          <label for="AddressCityNew">{{ 'customer.addresses.city' | t }}</label>
        </div>
        <div class="field">
          <input
            type="text"
            id="AddressAddress1New"
            name="address[address1]"
            value="{{ form.address1 }}"
            autocomplete="address-line1"
            placeholder="{{ 'customer.addresses.address1' | t }}"
          >
          <label for="AddressAddress1New">番地以降</label>
        </div>
        <div class="field">
          <input
            type="text"
            id="AddressAddress2New"
            name="address[address2]"
            value="{{ form.address2 }}"
            autocomplete="address-line2"
            placeholder="{{ 'customer.addresses.address2' | t }}"
          >
          <label for="AddressAddress2New">{{ 'customer.addresses.address2' | t }}</label>
        </div>
        <div>
          {{ form.set_as_default_checkbox }}
          <label for="address_default_address_new">{{ 'customer.addresses.set_default' | t }}</label>
        </div>
        <div>
          <button>{{ 'customer.addresses.add' | t }}</button>
          <button type="reset">{{ 'customer.addresses.cancel' | t }}</button>
        </div>
      {%- endform -%}
    </div>
  </div>

コードを貼り付けたら、「保存する」をクリックしてコードの変更を保存します。

コードを貼り付けたら、「保存する」をクリック

保存したら、プレビュー画面で変更が反映されているか確認します。以下の画像のように表示されていれば OK です。(都道府県の入力欄が表示されていない場合は、「国/地域」を「日本」に設定してみましょう。)

見本

以上で完了です。

お疲れ様でした。

まとめ

今回は、Shopify のデフォルト機能でアカウント登録機能を実装しました。Shopify は海外のサービスなので、住所の入力欄を編集しないといけないのが少し面倒です。

Shopify を勉強するなら、一緒に HTML や CSS の勉強をすることもおすすめします。

また、お客様アカウントについて詳しく知りたい方はこちらの記事も合わせて読むと、より理解が深まると思います。

今回の振り返り

  • アカウント機能を追加できた
  • 入力欄を日本仕様に編集できた

今回はここまでです。

次回は、コンタクトフォームを作成していきます。

次回の記事はこちら

  • お手軽 VIP 会員限定販売|シンプル VIP プログラム
    「お手軽 VIP 会員限定販売|シンプル VIP プログラム」は、Shopify ストアに簡単に VIP 限定販売機能を導入することができるアプリです。

お手軽VIP会員限定販売|シンプルVIPプログラム

Shopify で VIP 会員限定販売ができるアプリについて徹底解説|ご利用ガイド

  • シンプル Wishlist |お手軽お気に入り
    「シンプル Wishlist |お手軽お気に入り」は、Shopify ストアに簡単にお気に入り機能を導入することができるアプリです。

シンプル Wishlist|お手軽お気に入り

Shopify にお気に入り(wishlist)を簡単に導入できるアプリについて徹底解説|ご利用ガイド

© 2021 powerd by UnReact