2026年7月30日より、Theme Store に提出する新規テーマ+既存テーマの更新は、ヘッダーに shopify-account コンポーネントを含み、デスクトップ/モバイル両方で表示されている必要がある。あわせてレガシー顧客アカウントは非推奨となり、そのテンプレートファイルの同梱義務は無くなった。
shopify-account コンポーネントが、Theme Store 提出テーマの必須要件に昇格した。テーマのヘッダーに shopify-account を含めること。設置場所が明示的に指定されている。
desktop / mobile どちらでも visible であること。片方だけ、あるいはハンバーガー内に隠すだけでは要件を満たさない。
レガシー顧客アカウントが非推奨となり、そのテンプレートファイルをテーマに含める要件は無くなった。
2026年2月に導入された、ストアフロント上で顧客がサインインし、自分のアカウントを操作できるコンポーネント。記事に明記されている機能は次の3つ+1。
※ 図は記事の記述(ストアフロント上でサインイン → サインイン後は account メニューからアカウントページへ到達)を可視化したもの。内部の認証シーケンスやトークンの扱いについては記載なし。
| # | 要件 | 判定ポイント |
|---|---|---|
| 1 | shopify-account コンポーネントを含む |
必須 独自実装のログインリンクでの代替は要件として挙げられていない |
| 2 | 設置場所は header | 必須 フッターやアカウントページ内だけ、は不可 |
| 3 | デスクトップとモバイル両方で visible | 必須 レスポンシブで片方が消える実装は要注意 |
これから Theme Store に出す新作テーマ。最初から header に組み込んでおく。
公開中テーマでも、アップデートを提出する時点で要件を満たす必要がある。「新規のみ」ではない点が重要。
| 項目 | これまで | 2026年7月30日以降 |
|---|---|---|
| shopify-account | 任意 2026年2月導入、使うかは自由 | 必須 header に含めること |
| 表示デバイス | 制約なし | desktop + mobile 両方 で visible |
| レガシー顧客アカウント | テンプレートファイルの同梱が要件 | 非推奨 同梱要件は撤廃 |
| サインイン体験 | テーマごとにバラバラ | どのテーマでも一貫した体験(記事の狙い) |
| 猶予期間・移行期限 | — | 記載なし |
レガシー顧客アカウント用テンプレートファイルをテーマに含める必要は無くなった。テーマのファイル構成をその分スリムにできる。
「含める要件が無くなった」=「即削除して安全」とは書かれていない。既存ストアがレガシーアカウントで運用中の場合の影響については 記載なし。削除前に実ストアでの利用状況を確認すること。
テーマのヘッダーに shopify-account コンポーネントを配置する。
デスクトップ幅とモバイル幅の両方で実際に見えるか目視する。
レガシー顧客アカウント用テンプレの要否を判断してから提出。
requirement の文言は include ... in their header, visible on both desktop and mobile。DOM に存在していても CSS で片方非表示なら趣旨に反する。レスポンシブ時にヘッダーアイコンを間引く設計は要見直し。
新規テーマだけの話ではない。updates to existing themes も対象なので、バグ修正1件のアップデートを出すつもりでも、先に shopify-account 対応が必要になる。改修計画の順序に影響する。
パスワードレス・Sign in with Shop の自動認識・ソーシャルサインインは、いずれもコンポーネント側の提供機能。テーマ側で独自ログインフォームを作り込むと、要件充足と二重管理の両方で損をする。
同梱義務が消えたので、テーマのファイル数・保守対象を減らせる。ただし削除は要件ではない。「消してよい」ではなく「持たなくてよい」と読むのが安全。
記事の目的は customers get a consistent experience on any device。つまり Shopify はアカウント周りの UI をテーマの自由裁量から外し、プラットフォーム側の共通部品に寄せている。今後のカスタムテーマ設計では「どこまでが自由にいじれる領域か」を都度 Theme Store requirements で確認する前提になる。なお、コンポーネントのスタイリング自由度・カスタマイズ可能範囲は本記事には 記載なし。