🎨 ゼロからわかる！Shopifyテーマカスタマイズ基礎講座 🛠️ あなたのお店を思い通りにデザイン！

こんにちは😊
[株式会社プロドウガ](https://qiita.com/organizations/prodouga-com)の@YushiYamamotoです！
[らくらくサイト](https://rakuraku-site.prodouga.com/)の開発・運営を担当しながら、React.js・Next.js専門のフリーランスエンジニアとしても活動しています❗️

「Shopifyでネットショップを始めたけど、もっとお店の個性を出したい！」「他のストアと差をつけるデザインにしたいけど、どうすればいいの？」そんな風に感じているShopifyオーナーさん、いらっしゃいませんか？

Shopifyの大きな魅力の一つは、**豊富なテーマ（デザインテンプレート）**と、それを**自由にカスタマイズできる柔軟性**にあります。プログラミングの知識がなくても基本的なカスタマイズは可能ですが、少し踏み込んだ知識を身につけることで、あなたのストアを唯一無二の魅力的な空間に変えることができるんです！

この記事では、Shopify初心者の方や、これからテーマカスタマイズに挑戦したいエンジニア初学者の方に向けて、**Shopifyテーマの基本的な仕組みから、具体的なカスタマイズ方法、そして知っておくと便利なLiquid言語の初歩**まで、分かりやすく丁寧に解説します。

この記事を読めば、あなたもきっと「テーマカスタマイズ、意外と面白いかも！」と思えるはず。さあ、一緒に理想のストアデザインを実現しましょう！

## Shopifyテーマとは？お店の「見た目」と「骨組み」🏠

Shopifyにおける「テーマ」とは、あなたのオンラインストアの**見た目（デザイン）**と**機能的なレイアウト（骨組み）**を決定するテンプレートのことです。

*   **見た目**: 色使い、フォント、画像の配置、ボタンのデザインなど、ストア全体のビジュアルイメージ。
*   **骨組み**: ヘッダー、フッター、商品ページ、ホームページなどの各セクションがどのように構成され、情報がどこに表示されるかといった構造。

Shopifyには、公式が提供する無料テーマや、世界中のデザイナーが作成した有料テーマが豊富に用意されています。

```mermaid
graph TD
    A[Shopifyストア] --> B[テーマ];
    B --> C[見た目（デザイン）
    色,フォント,画像配置];
    B --> D[骨組み（レイアウト）
    ヘッダー/フッター,ページ構成,情報の表示場所];
```

テーマを選ぶことは、家を建てる際の「設計図」を選ぶようなもの。どんな雰囲気のお店にしたいか、どんな商品を扱っているのかを考慮して、最適なテーマを選びましょう。

:::note info
最初はShopify公式の無料テーマ（例: Dawn, Sense, Craft）から始めるのがおすすめです。これらは最新のShopify機能に対応しており、カスタマイズもしやすく、ドキュメントも豊富です。
:::

## テーマカスタマイズの2つのアプローチ 🛠️

Shopifyのテーマカスタマイズには、大きく分けて2つのアプローチがあります。

1.  **ノーコードカスタマイズ (テーマエディタ)**:
    *   プログラミング知識が**一切不要**。
    *   Shopifyの管理画面にある「テーマエディタ」を使って、ドラッグ＆ドロップや設定変更で直感的にデザインを調整できます。
    *   ロゴの変更、色の設定、フォントの選択、セクションの追加・編集・並び替えなどが可能です。
2.  **コード編集によるカスタマイズ (Liquid, HTML, CSS, JavaScript)**:
    *   HTML, CSS, JavaScript、そしてShopify独自のテンプレート言語**Liquid (リキッド)**の知識が必要。
    *   テーマエディタだけでは実現できない、より細かく自由なデザイン変更や機能追加が可能です。
    *   例えば、特定の条件下でのみ情報を表示したり、独自のデザインコンポーネントを作成したりできます。

この記事では、まずノーコードカスタマイズの基本を解説し、その後コード編集によるカスタマイズの入り口となるLiquidについて触れていきます。

## 【ノーコード編】テーマエディタでここまでできる！基本カスタマイズ術 ✨

まずは、プログラミング知識ゼロでも安心の「テーマエディタ」を使ったカスタマイズ方法を見ていきましょう。

### テーマエディタへのアクセス方法

1.  Shopify管理画面 > 左側メニュー「オンラインストア」 > 「テーマ」
2.  カスタマイズしたいテーマの「カスタマイズ」ボタンをクリックします。

すると、左側に設定パネル、右側にストアのプレビューが表示されるテーマエディタが開きます。

### 主なカスタマイズ項目

テーマエディタでできる代表的なカスタマイズは以下の通りです。

1.  **ヘッダー**:
    *   **ロゴの設定**: ストアの顔となるロゴ画像をアップロード。サイズ調整も可能です。
    *   **メニューの変更**: ナビゲーションメニューに表示する項目や順番を設定。
    *   **お知らせバーの追加**: セール情報や重要なお知らせをヘッダー上部に表示。
2.  **フッター**:
    *   **メニューの追加**: 「会社概要」「プライバシーポリシー」「特定商取引法に基づく表記」などの重要なページへのリンクを設置。
    *   **SNSリンクの表示**: InstagramやX (旧Twitter) などのSNSアカウントへのアイコンリンクを表示。
    *   **決済方法アイコンの表示**: 利用可能なクレジットカードなどのアイコンを表示し、安心感を高めます。
3.  **ホームページ (セクションの追加と編集)**:
    *   ホームページは、様々な「セクション」を組み合わせて作られます。
    *   **代表的なセクション**:
        *   画像バナー (ヒーローイメージ)
        *   特集商品 (おすすめ商品、新着商品など)
        *   コレクションリスト (商品カテゴリ一覧)
        *   テキスト (ブランドストーリー、お知らせなど)
        *   お客様の声 (レビュー)
        *   ブログ記事
    *   左側のセクション一覧から「セクションを追加」で新しいセクションを加えたり、既存のセクションをクリックして内容を編集したり、ドラッグ＆ドロップで順番を入れ替えたりできます。
4.  **テーマ設定**:
    *   **色 (Colors)**: ストア全体の主要な色（背景色、テキスト色、ボタン色など）を設定。ブランドカラーに合わせて統一感を出しましょう。
    *   **書体 (Typography)**: 見出しや本文のフォントファミリー、サイズ、太さを設定。読みやすく、ブランドイメージに合ったフォントを選びましょう。
    *   **レイアウト (Layout)**: ページの最大幅などを設定。
    *   **ソーシャルメディア**: 各SNSのURLを設定。
    *   **ファビコン**: ブラウザのタブに表示される小さなアイコンを設定。

```mermaid
graph TD
    subgraph テーマエディタ
        direction LR
        A[左: 設定パネル] --> B[右: ストアプレビュー];
        A --> C{セクションの追加/編集<br>・画像バナー<br>・特集商品<br>・テキスト};
        A --> D{テーマ設定<br>・色<br>・フォント<br>・レイアウト};
        A --> E{ヘッダー/フッター編集<br>・ロゴ<br>・メニュー<br>・SNSリンク};
    end
```

:::note info
テーマエディタでの変更はリアルタイムでプレビューに反映されるので、色々試しながら理想のデザインに近づけていきましょう！変更後は必ず右上の「保存する」ボタンをクリックしてくださいね。
:::

## 【コード編集入門編】Liquidって何？テーマ構造の心臓部 💻

テーマエディタでのカスタマイズに慣れてきて、「もっとこんなことしたいな…」という欲が出てきたら、いよいよコード編集の世界へ足を踏み入れるタイミングかもしれません。

Shopifyテーマのカスタマイズで中心となるのが、**Liquid (リキッド)** というShopify独自のテンプレート言語です。

### Liquidの役割

Liquidは、HTMLファイルの中に埋め込まれ、**動的なコンテンツを生成する**役割を担います。
例えば…

*   商品名や価格、在庫状況など、データベースに保存されている情報をウェブページに表示する。
*   「もし在庫が0個なら『売り切れ』と表示する」といった条件分岐を行う。
*   コレクション内の商品を一覧表示する、といった繰り返し処理を行う。

Liquidを理解することで、テーマの見た目だけでなく、情報の表示方法やページの構造をより柔軟にコントロールできるようになります。

### Liquidの基本構文

Liquidのコードは主に3つの要素で構成されます。

1.  **オブジェクト (Objects): `{{ ... }}`**
    *   二重の中括弧で囲まれた部分は、Shopifyのデータ（商品情報、コレクション情報、顧客情報など）を出力します。
    *   例: `{{ product.title }}` は商品のタイトルを表示します。
2.  **タグ (Tags): `{% ... %}`**
    *   中括弧とパーセント記号で囲まれた部分は、ロジック（処理の流れ）や制御構造（条件分岐、繰り返し）を記述します。
    *   例: `{% if product.available %}` は「もし商品が購入可能なら」という条件を表します。
3.  **フィルター (Filters): `|`**
    *   オブジェクトの出力を加工・整形します。パイプ記号の後にフィルター名を記述します。
    *   例: `{{ product.price | money }}` は価格を適切な通貨形式（例: ¥1,234）で表示します。

<details><summary>Liquidコードの簡単な例：商品名と価格を表示</summary>

```liquid
{% comment %}
  商品ページで商品名と価格を表示する基本的なLiquidコードの例です。
  実際にはもっと多くのHTMLやCSSと組み合わせて使用されます。
{% endcomment %}

<h1>{{ product.title }}</h1>

<p>
  価格:
  <span class="price">
    {{ product.price | money }}
  </span>
  {% if product.compare_at_price > product.price %}
    <s class="compare-at-price">
      {{ product.compare_at_price | money }}
    

  {% endif %}
</p>

{% if product.available %}
  <p style="color: green;">在庫あり</p>
{% else %}
  <p style="color: red;">売り切れ</p>
{% endif %}
```

</details>

### テーマファイルの構造 (ざっくり解説)

Shopifyテーマは、多数のLiquidファイル (.liquid)、CSSファイル (.css)、JavaScriptファイル (.js)、JSONファイル (.json) などで構成されています。

*   **`layout/theme.liquid`**: ストア全体の基本的なHTML構造（ヘッダー、フッター、コンテンツ表示エリアなど）を定義する最重要ファイル。各ページのコンテンツはここに埋め込まれます。
*   **`templates/` ディレクトリ**: 各ページタイプ（ホームページ、商品ページ、コレクションページなど）のメインとなるテンプレートファイルが格納されています。
    *   `templates/index.liquid`: ホームページのテンプレート
    *   `templates/product.liquid`: 商品ページのテンプレート
    *   `templates/collection.liquid`: コレクションページのテンプレート
*   **`sections/` ディレクトリ**: テーマエディタでホームページなどに追加できる「セクション」のLiquidファイルが格納されています。各セクションは独立したパーツとして機能します。
*   **`snippets/` ディレクトリ**: 複数の場所で再利用される小さなコード部品（例: 商品カード、アイコン表示など）のLiquidファイルが格納されています。
*   **`assets/` ディレクトリ**: CSSファイル、JavaScriptファイル、画像ファイルなどが格納されています。
*   **`config/settings_schema.json`**: テーマエディタで設定可能な項目（色、フォント、セクションの設定など）を定義するファイル。
*   **`locales/` ディレクトリ**: ストアの多言語対応のための翻訳ファイルが格納されています。

:::note warn
コード編集を行う際は、必ず事前に**テーマを複製してバックアップを取ってから**作業しましょう！万が一エラーが発生しても、元の状態に戻せるようにしておくことが重要です。
テーマの管理画面で「アクション」>「複製する」で簡単にバックアップできます。
:::

### コード編集を始める第一歩

1.  Shopify管理画面 > 「オンラインストア」 > 「テーマ」
2.  編集したいテーマ（バックアップ推奨）の「アクション」 > 「コードを編集する」をクリック。
3.  左側にテーマファイルの一覧、右側に選択したファイルのコードが表示されるエディタが開きます。

最初は、既存のコードを少し変更してみることから始めるのがおすすめです。例えば、`sections/header.liquid` を開いて、ヘッダー部分のテキストを少し変えてみたり、CSSファイル（例: `assets/base.css` や `assets/theme.css`）で特定要素の色やフォントサイズを調整してみたりしましょう。

## HTML/CSS/JavaScriptとの連携

Liquidは主にサーバーサイドで動的なHTMLを生成しますが、最終的にブラウザで表示されるのはHTML、CSS、JavaScriptです。

*   **HTML**: ウェブページの構造を定義します。LiquidはこのHTMLを動的に生成します。
*   **CSS**: ウェブページの見た目（色、フォント、レイアウトなど）を装飾します。Liquidで生成されたHTML要素に対してCSSでスタイルを適用します。
*   **JavaScript**: ウェブページにインタラクティブな動き（アニメーション、フォームのバリデーション、非同期通信など）を加えます。

これらの技術を組み合わせることで、より高度で魅力的なテーマカスタマイズが可能になります。

:::note info
最初はHTMLとCSSの基本を学ぶことから始めると、Liquidの理解も深まりやすいです。Progateやドットインストールなどの学習サイトで基礎を固めるのがおすすめです。
:::

## カスタマイズのヒントと注意点 💡

*   **小さな変更から試す**: 最初は大きな変更をせず、テキストの色を変える、余白を調整するなど、小さな変更から試して結果を確認しましょう。
*   **ブラウザのデベロッパーツールを活用する**: Google Chromeなどのブラウザには、ウェブページのHTML構造や適用されているCSSを確認・編集できる「デベロッパーツール」（多くはF12キーで起動）があります。これを使うと、どのコードがどの部分に影響しているのかを特定しやすくなります。
*   **Shopifyの公式ドキュメントやコミュニティを参照する**: Shopifyは開発者向けのドキュメント ([Shopify.dev](https://shopify.dev/)) が非常に充実しています。また、Shopifyコミュニティフォーラムでは、他の開発者と情報交換したり、質問したりできます。
*   **テーマのアップデートに注意**: テーマを直接編集した場合、そのテーマがアップデートされると編集内容が上書きされてしまう可能性があります。大きなカスタマイズをする場合は、子テーマの概念（Shopifyでは直接的な子テーマ機能はないため、複製してカスタマイズする運用が多い）や、Gitを使ったバージョン管理を検討すると良いでしょう。
*   **パフォーマンスを意識する**: 過度なカスタマイズや重い画像の使用は、ストアの表示速度を低下させる可能性があります。常にパフォーマンスを意識し、軽量なストア作りを心がけましょう。

## まとめ：カスタマイズで、もっと愛着のわくストアに！💖

今回は、Shopifyテーマカスタマイズの基本について、ノーコードでできることから、Liquidを使ったコード編集の入り口までを解説しました。

最初は難しく感じるかもしれませんが、テーマエディタで色々触ってみることから始め、少しずつLiquidやHTML/CSSに慣れていくことで、必ずあなたの理想とするストアデザインを実現できるようになります。

テーマカスタマイズは、あなたのお店のブランドイメージを具現化し、お客様に「このお店が好き！」と思ってもらうための重要なステップです。ぜひ楽しみながら、あなただけのオリジナルストアを作り上げてくださいね！

---

# 最後に：業務委託のご相談を承ります
私は業務委託エンジニアとしてWEB制作やシステム開発を請け負っています。最新技術を活用したレスポンシブなWebサイト制作、インタラクティブなアプリケーション開発、API連携など幅広いご要望に対応可能です。

「課題解決に向けた即戦力が欲しい」「高品質なWeb制作を依頼したい」という方は、お気軽にご相談ください。一緒にビジネスの成長を目指しましょう！

<a href="https://github.com/YushiYamamoto">
<img src="https://img.shields.io/badge/　GitHub-181717?style=for-the-badge&logo=github&logoColor=white" alt="GitHub">
</a>

<a href="https://yushi.prodouga.com/" target="_blank" rel="noopener">
<img src="https://img.shields.io/badge/　ポートフォリオ-FF5500?style=for-the-badge&logo=react&logoColor=white" alt="ポートフォリオ">
</a>
  
<a href="https://qiita.com/YushiYamamoto" target="_blank" rel="noopener">
<img src="https://img.shields.io/badge/　Qiita-55C500?style=for-the-badge&logo=qiita&logoColor=white" alt="Qiita">
</a>

<a href="https://codepen.io/yamamotoyushi" target="_blank" rel="noopener">
<img src="https://img.shields.io/badge/　Codepen-000000?style=for-the-badge&logo=codepen&logoColor=white" alt="Codepen">
</a>
<br>
<a href="https://prodouga.com/" target="_blank" rel="noopener">
<img src="https://img.shields.io/badge/　株式会社プロドウガ-FF0000?style=for-the-badge&logo=firefox&logoColor=white" alt="株式会社プロドウガ">
</a>
<a href="https://rakuraku-site.prodouga.com/" target="_blank" rel="noopener">
<img src="https://img.shields.io/badge/　らくらくサイト-4285F4?style=for-the-badge&logo=rocket&logoColor=white" alt="らくらくサイト">
</a>