COOSY BLOG
  • HOMEホーム

  • SERVICEサービス

    • サービスTOP
    • Web制作
    • ブランディング
    • デジタルマーケティング
    • 戦略企画
    • DX推進・システム開発
    • グローバル展開
  • WORK制作実績

    • 制作実績TOP
    • コーポレートサイト
    • 採用サイト
    • ECサイト
    • プロモーション
    • サービスサイト・SaaS
    • システム開発
  • ABOUTクーシーについて

    • クーシーについて
    • 会社情報
    • 私たちが大切にしていくこと
    • お知らせ
    • クーシーラボ岩手
    • ロンドン支社
    • ミャンマー支店
  • BLOGブログ

  • RECRUITリクルート

  • Contactお問い合わせ

BLOG MENU

  • BLOGトップ
  • 目的別

    • 目的別TOP
    • コーポレートサイト
    • ECサイト
    • オウンドメディア
    • 採用サイト
    • プロモーション
    • Webサービス
    • LP
    • ブランディング・CI
  • Web制作ハウツー

    • Web制作ハウツーTOP
    • UIUX・サイト設計
    • WebデザインTips
    • PM/ディレクション
    • フロントエンド(HTML/CSS)
    • 撮影・動画編集
    • ライティング
    • CMS
    • Web制作ツール
    • イラスト
  • システム開発

    • システム開発TOP
    • プログラミング
    • EC構築
    • CMS開発・構築
    • サーバ構築
    • データベース構築
    • セキュリティー
  • Webサイト運用のコツ

    • Webサイト運用のコツTOP
    • サイト運用・管理・保守
    • コンテンツ運用
    • CRM(顧客管理)
  • Webマーケティング

    • WebマーケティングTOP
    • SEO対策・トレンド
    • コンテンツ制作・SEOライティング
    • アクセス解析
    • Web広告
    • Web集客ハウツー
  • 特集

    • 特集TOP
    • Web最新トレンド
    • カルチャー
    • ガジェット

Share on

  • Xでシェアする
  • Facebookでシェアする
  • このエントリーをはてなブックマークに追加

Shopifyでオリジナルのテーマ開発!最初の始め方を丁寧に解説

  • 目的別
  • システム開発
  • ECサイト
  • EC構築
Shopifyでオリジナルのテーマ開発!最初の始め方を丁寧に解説

今回はShopifyのテンプレート開発に必要な初期設定を解説します。ここで紹介する手順に沿ってセットアップを進めていただければ、どなたでもShopifyのテンプレート開発が始められます。

手順は以下の3ステップになります。

  1. アカウントを登録する
  2. 作業用テーマを準備する
  3. ローカル作業環境を準備する

そして最後には簡単な作業を例として実際の作業の流れもご説明します。

Shopifyのテンプレート開発をはじめてみたかった方は、是非参考にしてください。


それではさっそくShopifyのアカウント登録からはじめてみましょう。

1. アカウントを登録する

Shopify公式サイト

Shopify公式サイトの右上にある「無料体験をはじめる」から14日間の無料体験アカウントが取得できます。

参考

Shopify公式サイト

Shopify管理画面

アカウントの登録が完了すると、自動的に管理画面に移動します。

デモのオンラインストア

デモのオンラインストアも既に立ち上がっています。

アカウントの登録は以上です。
つづいて作業用テーマを準備しましょう。

2. 作業用テーマを準備する

今回はデフォルトのテーマ【Debut】を複製して、作業用のテーマ【Debutカスタム】を作ってみます。
テーマの複製はShopifyの管理画面で作業します。

Shopifyテーマ編集画面
画面内の「現在のテーマ」が現在選択されているテーマで、はじめはデフォルトテーマ【Debut】が選択されています。

テーマを複製する

テーマを複製

【Debut】のアクションから「複製する」を選択すると管理画面の下部にある「テーマライブラリー」に【Debutのコピー】が追加されます。

複製したテーマの名前を変更する

テーマの名前変更

【Debutのコピー】のアクションから「名前の変更」を選択し「Debutカスタム」と入力し保存します。

作業用テーマを現在のテーマに設定する

【Debutカスタム】のアクションから「公開する」を選択すると、現在のテーマが【Debut】から【Debutカスタム】に変更されます。

作業用テーマの準備は以上です。
つづいてはローカルの作業環境の準備になります。

3. ローカル作業環境を準備する

Shopifyのテーマファイルをローカルで編集するためにはTheme Kitが必要です。
Theme Kitのインストールと設定まわりは下記の手順となります。

Theme Kitをインストールする

Mac は Homebrew からインストールします。

$ brew tap shopify/shopify
$ brew install themekit

Windows は Chocolatey からインストールします。

$ choco install themekit

インストールが完了したらthemeコマンドが使えるかを確認します。

$ theme version
ThemeKit 1.1.1 windows/amd64

このような表示が出ればTheme Kitのインストールが完了です。

プライベートアプリを作成する

Theme KitをShopifyのテーマに接続するためにはShopifyのプライベートアプリを作成する必要があります。
プライベートアプリの作成はShopifyの管理画面からおこないます。

Shopifyのアプリ管理画面

アプリ管理の画面で「プライベートアプリを管理する」を選択します。
「プライベートアプリの開発を有効にする」を選択し「プライベートアプリを作成する」へ進みます。

「プライベートアプリを作成する」の入力画面では以下の内容を入力します。

アプリの詳細を設定

プライベートアプリ名

任意のアプリ名を入力します。今回はシンプルに「Theme Kit」という名前にします。

緊急連絡用開発者メール

アプリ管理者のメールアドレスを入力します。

Admin API

「非アクティブなAdmin API権限を表示する」を開き、「テーマ」の「アクセスなし」を「読み取りおよび書き込み」に変更してページ下部の「保存する」を選択し「アプリを作成する」を実行します。

アプリの作成が終わるとこのような画面になります。

アプリの詳細画面

Admin APIに表示されている以下の内容はメモしておきましょう。
※とくにパスワードは次の手順で必要になります

  • APIキー
  • パスワード※以降「アプリパスワード」とします
  • URLの例
  • 共有秘密

プライベートアプリの作成は以上です。

Theme KitをShopifyのテーマに接続する

Theme KitをShopifyのテーマに接続する作業はコマンドラインからおこないます。

接続したいテーマのテーマIDを確認する

まずは接続したいテーマのテーマIDを確認しましょう。
テーマIDの確認には以下のコマンドを使います。

$ theme get --list --password=[アプリパスワード] --store="[ストアのドメイン]"
Available theme versions:
[000000000000] Debut
[111111111111][live] Debutカスタム

※値はダミーです

12桁の数字がテーマIDです。
[live] と付いているのは現在選択されているテーマです。
【Debutカスタム】のテーマIDは111111111111であることが確認できました。

【Debutカスタム】のテーマファイルをダウンロードする

テーマファイルのダウンロードには以下のコマンドを使います。

$ theme get -p=[アプリパスワード] -s=[ストアのドメイン] -t=[ DebutカスタムのテーマID]

テーマファイルのダウンロードが完了すると、以下の/config.ymlが自動で生成されます。

development:
password: [アプリパスワード]
theme_id: "[テーマID]"
store: [ストアのドメイン]

以降パスワード等はこの/config.ymlを参照するので省略ができます。

テーマのプレビューURLを確認する

動作確認はプレビューからおこないます。
プレビューのURLはShopifyの管理画面から確認ができます。

Shopifyテーマ編集画面「プレビュー」

【Debutカスタム】の「アクション」で「プレビュー」を選択すると、ストアのドメインにパラメータ付が付いたURLが別ウィンドウで表示されます。これがプレビューのURLになります。

以上で作業環境の準備が整いました。
それではさいごに簡単な修正作業をしてみましょう。

簡単な作業をしてみよう

今回はShopifyの仕様部分の説明はなるべく省略して「どのように作業するのか」ということに重点を置いて解説させていただきます。

それではさっそく作業してみましょう。
作業内容は以下です。

KVの「テキストオーバーレイ付き画像」というテキストを「HELLO」に変更する

Shopifyの作業方法は2つです。

(1)Shopify管理画面で作業する
(2)Theme Kitで作業をする


はじめにShopify管理画面で作業するパターンを解説します。

(1)Shopify管理画面で作業する

Shopifyテーマ編集画面「カスタマイズ」

テーマの管理画面で、現在のテーマ【Debutカスタム】の「カスタマイズ」を選択するとページの編集画面が開きます。

Shopifyページ編集画面
上部「ホームページ」は現在編集しているページです。
左はパーツ一覧で、ページ内のヘッダーからフッターまでのパーツ一式があります。
右は入力欄です。

パーツ一覧から「テキストオーバーレイ付き画像」を選択し、入力欄の見出し「テキストオーバーレイ付き画像」のテキストを「HELLO」に変更します。
ページ右上の保存するボタンがアクティブ(緑色)になるので、クリックして保存します。

管理画面からの作業は以上で完了です。
プレビューでKVのテキストが「HELLO」に変更されたことを確認しましょう。

(1)でやった作業を元に戻す

Theme Kitで同じ作業をする前に、いったん(1)の作業を元に戻したいと思います。
ローカルにあるテーマファイルでデプロイをかけます。

$ theme deploy --allow-live

これで作業が元に戻りました。
※本来の用途とは違います

プレビューでテキストが「テキストオーバーレイ付き画像」に戻っていることを確認しましょう。

なぜ作業が戻ったのか

(1)の作業はShopifyの管理画面上からおこないました。その修正内容を取り込んでいないローカルのテーマファイルでデプロイをかけたので、
テーマファイルが先祖返りした=作業が元に戻った
ということが起こりました。
※本来の用途と違うのはこのことです

管理画面での修正内容を取り込むにはどうすればよかったか

以下のコマンドでリモートのテーマファイルを取り込みます。

$ theme download

デプロイをかける前にこちらのコマンドを使えば管理画面でおこなった修正内容を取り込むことができました。

Shopifyにはバージョン管理がないのでご注意を

Shopifyにはバージョン管理がありません。もし誤って先祖返りを起こしてしまったら一発アウト!「間違えたから1つ前の状態に戻したい」は出来ませんので、Theme Kitでデプロイをかける際は細心の注意が必要です。
※注意喚起の意味を含め、あえてここでは先祖返りを起こして作業を元に戻しました

それではあらためてheme Kitで同じ修正作業をやってみましょう。

(2)Theme Kitで作業をする

該当するパーツのテンプレートファイルをさがす

プレビューでhtmlコードを確認します。作業したいパーツの前後の要素に付いているclass名をフックとしてGrepで該当するテンプレートファイルを探し出すのが確実です。
今回作業したいパーツは/sections/hero.liquidというテンプレートの中にありました。

mainタグ直下の要素がshopify-section-xxxといったidのdivで1つ1つパーツ毎に囲われていることに注目しましょう。
実は各shopify-section-xxxのパーツのテンプレートは、落としてきたテーマファイルのsectionsというディレクトリに格納されています。
今回作業したいパーツはidがshopify-section-hero-1のdivで、テンプレートは/sections/hero.liquidになります。

テンプレートのコードを確認する

該当箇所のコードは以下。

{{ section.settings.title | escape }}

「テキストオーバーレイ付き画像」というテキストは配列の値を表示していたわけです。
ではその配列はどこで定義されているのか。
さらにコードを読み進めていくと下の方にこのような記述があります。

{% schema %}
{
  "name": {
    …
  },
  "class": "index-section index-section--flush",
  "settings": [
    …
    {
      "type": "text",
      "id": "title",
      "label": {
        "cs": "Nadpis",
        "da": "Overskrift",
        "de": "Titel",
        "en": "Heading",
        "es": "T?tulo",
        "fi": "Otsake",
        "fr": "En-t?te",
        "it": "Heading",
        "ja": "見出し",
        …
      },
      "default": {
        "cs": "Obr?zek s textov?m p?ekryvem",
        "da": "Billede med tekstoverlejring",
        "de": "Foto mit ?berlegtem Text",
        "en": "Image with text overlay",
        "es": "Imagen con texto superpuesto",
        "fi": "Kuva p??ll? olevalla tekstill?",
        "fr": "Image avec calque texte",
        "it": "Immagine con testo",
        "ja": "テキストオーバーレイ付き画像", //←ココ
        …
      }
    },
    …
  ],
  "presets": [
    …
  ]
}
{% endschema %}

※一部コードを省略しています

ここで定義している配列の中に「テキストオーバーレイ付き画像」という値がありました。
まずはシンプルにこの値を「HELLO」に変更してデプロイをかけてみましょう。

するとKVのテキストが「HELLO」に変わります。
しかしページ下部の方にあるshopify-section-hero-2のテキストも「HELLO」に変わってしまいました。
このことで/sections/hero.liquidという1つのテンプレートが、shopify-section-hero-1,shopify-section-hero-2と2か所で共通使用されていたことが分かります。
いったん今の修正は元に戻しましょう。
※「HELLO」を「テキストオーバーレイ付き画像」に戻す

では、shopify-section-hero-1のテキストだけ「HELLO」にしたい場合はどうすればよいのか。

各パーツのセクションには固有のセクションIDがある

また少し仕様の話しになりますが、各パーツのセクションには固有のセクションIDがあります。
テンプレートのコード内に

<div data-section-id="{{ section.id }}" data-section-type="hero-section">
…

という記述があります。{{ section.id }}はセクションIDを出力します。
ページ上ではその部分が、

<div id="shopify-section-hero-1">
<div data-section-id="hero-1" data-section-type="hero-section"> ←ここ
…
<div id="shopify-section-hero-2">
<div data-section-id="hero-2" data-section-type="hero-section"> ←ここ
…

※一部コードを省略しています

というhtmlコードで表示されます。

shopify-section-hero-1のセクションIDはhero-1
shopify-section-hero-2のセクションIDはhero-2


ということが分かりました。

特定のセクションIDのデータ配列に値を設定する

特定のセクションIDのデータ配列に値を設定する場合には/config/settings_data.jsonを使います。
さっそくコードを見てみましょう。

{
  "current": {
    "sections": {
      "header": {
        "type": "header",
        "settings": {}
      },
      "hero-1": {
        "type": "hero",
        "settings": {
          "hero_size": "large",
          "text_size": "large"
        }
      },
      …
      "hero-2": {
        "type": "hero",
        "settings": {
          "text_size": "large"
        }
      },
      …
    },
    …
  },
  …
}

※一部コードを省略しています

こちらのhero-1がセクションIDにあたります。
hero-1のsettingsにtitleを追加してみます。

{
  "current": {
    "sections": {
      "header": {
        "type": "header",
        "settings": {}
      },
      "hero-1": {
        "type": "hero",
        "settings": {
          "hero_size": "large",
          "text_size": "large", //←カンマを追加して改行
          "title": "HELLO"    //←title追加。値は「HELLO」
        }
      },
      …
      "hero-2": {
        "type": "hero",
        "settings": {
          "text_size": "large"
        }
      },
      …
    },
    …
  },
  …
}

※一部コードを省略しています

これでhero-1のsettings.titleに「HELLO」という値が設定できました。
デプロイかけてshopify-section-hero-1のテキストだけが「HELLO」に変更されるのを確認しましょう。

Theme Kitでの作業は以上です。
「簡単な作業をしてみよう」ということでしたが、Theme Kit側からの作業は少し複雑でしたね(笑)。なるべく仕様の説明も省略したかったのですが、Theme Kitから直接テンプレートを作業する以上、ある程度の仕様把握も必要になってきます。

おわりに

今回はShopifyのスタートアップに関して解説させていただきました。このブログが少しでも多くの方のShopifyをはじめるきっかけとなったら幸いです。

はじめてのShopifyのコーディングで注意する2ポイント

クーシーブログ編集部

この記事を書いた人

クーシーブログ編集部

1999年に設立したweb制作会社。「ラクスル」「SUUMO」「スタディサプリ」など様々なサービスの立ち上げを支援。10,000ページ以上の大規模サイトの制作・運用や、年間約600件以上のプロジェクトに従事。クーシーブログ編集部では、数々のプロジェクトを成功に導いたメンバーが、Web制作・Webサービスに関するノウハウやハウツーを発信中。

お問い合わせはこちらから

Web制作デザイン、丸ごとお任せ

お問い合わせする

2021/08/23

土田

Share on

  • Xでシェアする
  • Facebookでシェアする
  • このエントリーをはてなブックマークに追加
お問い合わせはこちら

ECサイト・EC構築の関連記事はこちら

  • 海外と日本で人気のECモール4サイトのデザインをデザイナー目線で解説

    この記事では、BtoC-EC 市場規模トップ4カ国に注目し、ECモールの人気の背景を分析します。

    • ECサイト
  • ECサイトの信頼獲得|サイトの信頼度を上げるコンテンツ7選

    非常に重要なワードである「ECサイトの信頼」について、信頼の正体や、信頼を獲得するための方法を丁寧に解説していきます。

    • ECサイト
  • Shopifyと既存WordPressサイトを連携させて集客チャネルを増やす方法

    もしすでに多くの人にみられているWordPressサイトをお持ちなら、Shopifyとの連携はぜひ検討すべきです。

    • ECサイト
  • ECサイトはShopifyかWordPressか?6つのポイントで比較します

    ECサイトはShopifyとWordPressどちらを選ぶべきか6つのポイントで比較しました。おすすめのケースもあります。

    • ECサイト
    • CMS
  • 売れるECサイトの集客方法12選 | 費用と期間ごとに紹介!

    短期で結果が出るのは広告ですが、ひと口に広告と言っても種類はさまざま。なかにはECサイトでしか使えない広告もあります。

    • ECサイト
  • ECサイトのおすすめ「在庫管理システム」7選【在庫管理ちゃんとやってますか?】

    ECサイト運営の成否を分けるのは在庫管理と言っても過言ではありません。地味ですが、経営を安定させるために不可欠な業務です。

    • ECサイト
    • コンテンツ運用
  • ECサイトならではのSEO対策!8つのポイントでSEOに強いサイトに

    集客アップのためののSEO対策はECサイトにおいても大変重要です。実はECサイトならではのSEO対策があります。本記事では、あなたのECサイトをSEOに強くするためのポイントを解説します。

    • ECサイト
    • SEO対策・トレンド
  • 【ECサイト成功事例10選】事例から成功のコツを紐解く

    「自社のECサイトの売り上げが伸びない」とお悩みのご担当者の方へ。この記事ではECサイトの成功事例を9つ、解説付きでご紹介します。

    • ECサイト

COOSYの
制作実績

UIUXと美しさを両立させた、クーシーが誇る成功事例一覧。
課題解決のアイデア満載です。

制作実績を見る

Web制作の課題はクーシーが解決します

  • ECサイト

    Shopify等の選定から戦略まで一貫支援。SEO・AIOを強化し、売れるECサイト構築と最適な運営プランをご提案します。

  • Web制作

    コーポレートサイト、採用サイト、ECサイトまで。最新AI技術を掛け合わせ、各サイトの特性に合わせたUIUX設計を実現します。

  • Webデザイン

    UIUXと美しさを両立し、ブランドを「カタチ」に。SEO・AIOも考慮した戦略的ビジュアルで目標達成を支援します。

CATEGORY LIST

  • すべての記事一覧

  • 目的別

    • 目的別TOP
    • コーポレートサイト
    • ECサイト
    • オウンドメディア
    • 採用サイト
    • プロモーション
    • Webサービス
    • LP
    • ブランディング・CI
  • Web制作ハウツー

    • Web制作ハウツーTOP
    • UIUX・サイト設計
    • WebデザインTips
    • PM/ディレクション
    • フロントエンド(HTML/CSS)
    • 撮影・動画編集
    • ライティング
    • CMS
    • Web制作ツール
    • イラスト
  • システム開発

    • システム開発TOP
    • プログラミング
    • EC構築
    • CMS開発・構築
    • サーバ構築
    • データベース構築
    • セキュリティー
  • Webサイト運用のコツ

    • Webサイト運用のコツTOP
    • サイト運用・管理・保守
    • コンテンツ運用
    • CRM(顧客管理)
  • Webマーケティング

    • WebマーケティングTOP
    • SEO対策・トレンド
    • コンテンツ制作・SEOライティング
    • アクセス解析
    • Web広告
    • Web集客ハウツー
  • 特集

    • 特集TOP
    • Web最新トレンド
    • カルチャー
    • ガジェット
  • WORKS

    Webサイト・アプリなどの
    様々な実例・制作実績のご紹介

    WORKS
  • CONTACT CONTACT

    Webサイトのご相談、お見積もりはこちらから

    Webサイトのご相談、お見積もりなど
    お気軽にお問い合わせください

ホーム

  • TOP
  • COOSY BLOG
  • Shopifyでオリジナルのテーマ開発!最初の始め方を丁寧に解説
ページトップへ
  • TOP
  • SERVICE

    • ブランディング
    • デジタルマーケティング
    • 戦略企画
    • DX推進・システム開発
    • グローバル展開
    • Web制作
  • WORKS

    • コーポレートサイト
    • 採用サイト
    • ECサイト
    • プロモーションサイト
    • サービスサイト
    • システム開発
  • ABOUT

    • 会社情報
    • 私たちが大切にしていくこと
    • お知らせ
    • クーシーラボ 岩手
    • ロンドン支社
    • ミャンマー支店
  • RECRUIT

    • ディレクション部
    • デザイン部
    • システム開発部
    • アカウント・プランニング部
    • Webマーケティング事業部
    • 人事・総務部
    • オフショア
    • グローバル事業部
  • BLOG

    • 目的別
    • Web制作ハウツー
    • システム開発
    • Webサイト運用のコツ
    • Webマーケティング
    • 特集

COOSY SNS

  • facebook
  • X
  • お問い合わせ
  • Privacy policy
  • Site Policy
  • Security Policy
© COOSY All Rights Reserved.