【Shopify】サイト修正時のコーディング要否判断まとめ

# Shopを立ち上げるならShopify
色々な関わりがあり、最近Shopifyを使うことが増えてきました。
**非エンジニアでもGUIからサイト構築ができる手軽さ**と、**APIやLiquidコーディングと活用した作り込み**とが両立できる、優れたSaaSになっています。
完全にイチから立ち上げるスタートアップにとっても、既存システムを持っている企業にとっても、非常に使い勝手のいいサービス。超便利。

僕は技術者観点からさまざまなプロジェクトに呼ばれることが増えてきました。
ただ、「**これってGUIﾊﾟﾁﾊﾟﾁしたら実現できるのにな**」と思うサイト修正があったり、あるいは「**こんなに作り込んだら運用大変だぞ**」と思う場面があったりで、このあたりをきちんと言語化しておきたいなと思い記事に起こしました。
何かの参考になればと思います！

Shopify・Base・Storesの比較は[こちらのサイト](https://corekara.co.jp/contents/sales-up/base-stores/)が便利。

# Shopifyテーマとは
Shopifyの強みの一つに、**予め機能やデザインが実装されたテンプレート**「**Shopifyテーマ**」があります。
実体はLiquid/HTML/CSSの集合体で、「テーマ全体のデザインはこういう感じ」という広い内容から、「こういう機能を持たせたこういうセクション」という小さい機能までが定義されています。
より具体的な構成は[こちらのサイト](https://www.shop-cre.com/shopify-liquid-beginners/)が分かり良いです。

逆にいうと、**ここで定義されていない機能はGUIから使えず、Liquidコーディングが必要**になります。
さらに逆の逆を言うと、**Liquidコーディングで追加してしまえば、オリジナルなセクションを追加することも可能**なわけです。

# GUIでできることが全て
以上のことから、サイト開発にせよ修正するにせよ、基本的にはまずGUIで実現可能か考えてみます。
左の「オンラインストア」＞「テーマ」から、右の「カスタマイズ」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666990/5ab961da-6584-17ef-fd8b-86f44b876395.png)
そうすると、こんな画面になります。今回は「ちくわぶの定期販売」のサイトを例にしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666990/2b6e9998-aed3-3f73-9f31-3802be6ebef5.png)
左側の「セクションを追加」を押すと、セクションの一覧がでてきますよね。
これが、**このページにおいてこのテーマのできることの全て**、になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666990/ab9afe54-5355-b49a-ae4e-b247e20215ce.png)

なので、テーマインストール後は、**とにかくセクションの理解**をしていくのをオススメします。
テーマ選定時の注意点は[こちらのサイト](https://transcosmos-ecx.jp/blog/shopify/8)がオヌヌメ。

# Liquidコーディングが必要な時
なので、**「セクションで実現できないこと」を実現するためにLiquidコーディング**することになります。
そういうと、「じゃ、最初っから要件に沿って一からLiquidコーディングしてもらえばいいわ！」とか「オリジナルセクション量産してくれ！」と思うかもしれません。
個人的な狭い意見になりますが、個人的には**最小限に抑えたほうが結果良いサイトができる**と思っています。

先述の通り、**ShopifyテーマはLiquid/HTML/CSSの集合体で、テーマを開発する会社が書いたコードの集まり**。
精密に設計され最適化されている状態でローンチされているわけです。
その実体は何千・何万行のコードで構成されています。カートのドロワーだけで400行ぐらいのCSSファイルでデザインされています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666990/3337a76b-8e99-ee10-945a-c9b6f10062cc.png)

ここに手を加えると、例えば**トップページで文字を小さくするためにCSSを修正したときに、そのCSS修正の影響で他のページのデザインも変わってしまう可能性**がゼロではありません。
Liquidをいじる際はこうしたリスクを常に考えながら修正する必要があり、結構神経を使う作業だったりするわけです。
機能実装にしても、Javascriptの読み込み順によって機能しなかったりするので、テーマの理解がかなり必要になります。

そういったリスクを最小限にするように設計され実装されているのがShopifyテーマ。
逆に**一からコーディングするならばShopifyじゃなくていい**し、いちいち開発工数がかかってしまいます。
**もとのテーマの強みを生かし**、そこからLiquid修正で**少し**オリジナリティを追加する、というのが良いのかも。


# Custom Liquidは用法用量を守ろう
色々なテーマに「Custom Liquid」というセクションがあります。
GUIからLiquidコードを追加できるセクションです。
僕はこれを見たとき「怖ｽｷﾞｲｲｨ」と思いました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666990/4e9dba8f-73fe-f239-894e-dc12ddd9258f.png)
「Custom Liquid」の強みはもちろん**小回りの良さ**。
Liquidを直接入れ込むので、スタイルを入れ込むことも可能、大体のことは実現可能です。
使いこなせれば超便利。

ただ、最悪の事態がこれ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666990/91e0034a-8c10-6d44-1fec-5f1904ad1ac4.png)
「**何がなんのセクションなのか、何を参照してどういう構成なのか**」が全く分かりません。
**このセクションを作った人にしかわからない、あるいはLiquidを読めないと分からない状態、運用度外視のサイトになってしまいます**。
こうなるとだいたい**人が入れ替わったときに運用でコケます**。

一時的な表示目的の時に使うなど、使い道を限定しましょう。
あるいは、**よく使うのであればオリジナルでセクションを作りましょう**。
セクションのつくり方は[こちらのサイト](https://skillhub.jp/blogs/326)がオススメ。

# Sustainableなサイト運営を！
簡単さと作り込みのしやすさを兼ね備えたShopifyだからこそ、「何まで簡単か」「どこから作り込みか」を見極めることが必要になってきそうです。
是非、Sustainableなサイト運営ができるようなD2Cライフを！
どなたかの参考になれば、と思います