1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MakeShopクリエイターモードの条件分岐とpage.type一覧まとめ

1
Posted at

はじめに

こんにちは、CMA制作部スタッフ krm0095 です。

MakeShopのクリエイターモードを構築していると、

  • トップページだけバナーを出したい
  • 特定の商品ページだけレイアウトを変えたい
  • カテゴリごとにデザインを変えたい

といった「ページごとの出し分け」が必要になる場面が多くあります。
ただ、実際に実装しようとすると、どの変数を使えばいいのか分かりづらいと感じることも多いです。

この記事では、MakeShopの構築でよく使う「ページごとの条件分岐のやり方」と$page.typeの一覧を実務目線でまとめています。

条件分岐の基本

MakeShopのページ分岐はシンプルで、以下の3つでほぼ対応可能です。

  • $page.type:ページの種類
  • $page.id:個別ページ
  • $category.code:カテゴリーコード

$page.type:ページの種類で条件分岐

<{if $page.type == 'top'}>
  トップページだけ表示
<{/if}>

<{if $page.type == 'item'}>
  商品詳細ページだけ表示
<{/if}>

page.type 一覧まとめ

実際にテンプレート上で出力して確認した一覧です。

基本ページ

page.type 内容
top トップページ
category 商品一覧(カテゴリ)
item 商品詳細ページ
search 商品検索結果
cart カートページ

その他

page.type 内容
freepage フリーページ
news-list お知らせ一覧
news-detail お知らせ詳細
guide ご利用案内
company 会社概要
contract 特定商取引法
policy プライバシーポリシー

商品詳細ページやフリーページは、$page.idでピンポイントに出し分ける

$page.typeだけではページ単位の制御が難しいため、特定の商品ページのみ出し分けたい場合は$page.idを使います。

<{if $page.id == "item"}>
  全商品詳細ページに表示
<{/if}>

<{if $page.id == "000000000010"}>
  特定の商品ページだけ表示
<{/if}>

また、フリーページは$page.type = freepageで条件分岐するとすべてのフリーページに反映されてしまうため、$page.id(ページURL)とセットで使う必要があります。

<{if $page.type == 'freepage' && $page.id == 'shoplist'}>
  ショップリストページだけ
<{/if}>

カテゴリーページの条件分岐

カテゴリー単位で出し分ける場合は、$page.type$page.idではなく、$category.codeを使用します。

<{if $category.code == 'ct1'}>
  ct1カテゴリだけ表示
<{/if}>

MakeShopは「変数」が分かりづらい

MakeShopはページごとに使える変数が分かりづらいのが難点です。そんなときは、出力して確認します。

<div style="display:none;">
ページタイプ<{$page.type}>
ページID<{$page.id}>
カテゴリー識別コード<{$category.code}>
</div>

これをページ内に記述してデベロッパーツールで確認すれば、今どのページか・どの値で条件分岐できるかがすぐに分かります。

まとめ

MakeShopの条件分岐は、以下の3つを使い分けるだけで、ほとんどのケースに対応できます。

  • $page.type
  • $page.id
  • $category.code

ドキュメントが少なく最初は戸惑いますが、パターンを理解すれば柔軟にカスタマイズできるようになります。
独自デザイン構築の際に、少しでも参考になれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?