前回は、サイトのフォントを編集しました。
前回の記事はこちら
Shopify では、会員登録機能をデフォルトで実装することができます。そこで今回は、アカウントページを作成し、会員登録ができるようにします。ただデフォルトの機能では、住所の入力欄が海外仕様になっているので、コードを編集して整えていきます。
今回も頑張っていきましょう!
また、お客様アカウントについて詳しく知りたい方はこちらの記事も合わせて読むと、より理解が深まると思います。
デモサイトを構築する際に使用する商品画像や CSV ファイルのダウンロードをしてない方はこちらからダウロードしてください。
【Shopify マスターへの道】商品画像・CSV ファイルのダウンロード
Shopify の会員登録機能は、デフォルトでは無効になっています。そのため、まず「ログインリンクを表示」を有効にします。
ストアの管理画面で「設定」をクリックしてください。
次に「お客様アカウント」をクリックしてください。
「お客様アカウント」の設定に進むと、「ログインリンク」という設定項目があります。デフォルトでは、この設定が「ログインリンクを非表示にする」となっています。
「ログインリンクの表示」には 2 種類あります。
これらのどちらかにチェックを入れると、アカウント登録機能が有効化されます。
「新規」では、お客様はメールに送られたワンタイムコードを使用してログインします。一方、「従来」では、お客様はアカウントを作成し、メールアドレスとパスワードを使用してログインします。
今回は、「従来」で設定をしておきましょう。
アカウントページがストアに反映されていることを確認します。ストアのプレビューを開きます。
ヘッダーの部分に「人型のアイコン」が表示されていれば、アカウントの有効化が成功しています。
次にアカウントページを確認します。アイコンをクリックしてください。すると、ログインページが開きます。
まだ、アカウントを持っていないので、「アカウントを作成する」をクリックし、アカウント登録をします。
アカウント登録が完了すると、次の画像のようなアカウントページを表示できるようになります。(アカウント登録後、チェックアウトページに飛んでしまった方は、一度トップページに戻り再度「人型のアイコン」をクリックしてください)
アカウントページでは、そのストアでの注文履歴や、住所などの情報を見ることができます。
では、住所を設定ページをみてみます。「住所を確認」をクリックしてください。
アカウントの設定直後は、住所が設定されていないので、「新しい住所を追加」をクリックして住所を追加します。
このようなページが表示されるので、住所を設定してみましょう。必要な情報を入力したら、「住所を追加する」をクリックします。
設定した住所は、「デフォルト」に表示されます。また、「アカウントの詳細に戻る」で一つ前のページに戻ると、「アカウントの詳細」に登録した住所が表示されるようになっています。
Shopify のアカウント機能では、このようなことを実装することができます。
デフォルトで実装することができるアカウント登録機能ですが、問題点があります。それは、住所の入力欄の順番が海外仕様になっているということです。
今回は、コードを編集して日本仕様にデザインを整えていきます。それに加えて会社名の入力欄も削除してしまします。以下の画像が見本になります。
ここからはコードの編集をします。HTML や CSS にあまり触れたことがない方には、少し難しいかもしれませんので、記事の最後まで飛ばして完成したコードをコピペしてもらっても構いません。
では、いきましょう。
住所登録ページの編集をしていきます。コードの編集をするので、「オンラインストア > テーマ > 3 点リーダー > コードを編集する」へ進みます。プレビュー画面が閉じていたらプレビュー画面も開いておきましょう。
コードの編集画面へ移動したら、「sections」フォルダの中にある「main-addresses.liquid」を開きます。このファイルに、住所登録ページのコードが書いてあります。
まず、姓名の順番を入れ替えます。main-addresses.liquid に記述しているコードの中から、名前の入力欄を記述しているコードを探します。
コードを見ていくと、42 行目から 63 行目までが、名前の部分のコードになっています。
(label タグの for 属性が AddressLastNameNew となっていたり、ラベルタグの中身が{{ 'customer.addresses.last_name' | t }}
ところから判断しています。)
42 – 52 行目のコードと 53 – 63 行目のコードを入れ替えます。
コードを入れ替えたら、一度「保存する」をクリックし保存しましょう。保存したら、プレビュー画面で変更されているか確認します。
会社名の入力欄は、今回は削除してしまいましょう。コードから、会社名の入力欄の記述を探します。
コードを見ていくと、64 – 74 行目が会社名の入力欄のコードになっています。(改行の具合で何行かずれているかもしれないので、間違わないようコードをよく読みましょう。)
この部分をまるっと削除してしまいましょう。
削除したらコードを保存しましょう。
プレビュー画面で確認します。
このように、会社名の入力欄が削除されていれば OK です。
次に、「住所 1」・「建物名、部屋番号など」入力欄を編集していきます。更に、入力欄のラベルの「住所 1」を「番地以降」に変更します。
では、「住所 1」・「建物名、部屋番号など」の入力欄のコードを探します。64 - 85 行目にコードが記述してあります。これを 150 行目の<div>タグの前に移動します。
移動したら「保存」ボタンをクリックしてください。
移動させたら<label>タグの中身を書き換えます。以下のように、書き換えましょう。
137 行目:{{ 'customer.addresses.address1' | t }}
→ 番地以降
コードを保存して、プレビュー画面で確認します。
電話番号の入力欄を姓名の入力欄の下に移動させます。
電話番号の入力欄のコードを探します。117 – 127 行目に書いてあるようです。これを切り取って 63 行目に移動します。
移動したら、「保存」をクリックしてください。
プレビュー画面を確認します。
市の入力欄を国/地域の下に移動します。
市の入力欄のコードを探します。75 - 85 行目に書いてあるようです。これを切り取って 105 行目に移動します。
移動後は「保存」ボタンをクリックしてください。
プレビュー画面を確認します。
郵便番号の入力欄を市の入力欄の上に移動します。
郵便番号の入力欄のコードを探します。116 - 127 行目に書いてあるようです。これを切り取って 105 行目に移動します。
移動後は「保存」ボタンをクリックしてください。
プレビュー画面を確認します。
以上で、アカウントページの編集は終了です。少し難しかったかもしれませんが、しっかりとコードを読みながら復習してみてください。
コードを編集することが難しい方は、以下のステップでコードをコピペしてください。
住所登録ページの編集をしていきます。コードの編集をするので、「オンラインストア > テーマ > 3 点リーダー > コードを編集する」へ進みます。プレビュー画面が閉じていたらプレビュー画面も開いておきましょう。
コードの編集画面へ移動したら、「sections」フォルダの中にある「main-addresses.liquid」を開きます。このファイルに、住所登録ページのコードが書いてあります。
ファイルが開けたら 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 限定販売機能を導入することができるアプリです。Shopify で VIP 会員限定販売ができるアプリについて徹底解説|ご利用ガイド
- シンプル Wishlist |お手軽お気に入り
「シンプル Wishlist |お手軽お気に入り」は、Shopify ストアに簡単にお気に入り機能を導入することができるアプリです。