Magentoには「カスタム変数」という機能があります。
この機能はCMSページや静的ブロック、メールテンプレート上に予め用意しておいたHTMLパーツかテキストを挿入することができる機能です。
ところが、この機能は他の機能に埋もれてしまって忘れられている傾向が強いように感じます。
このエントリではカスタム変数について解説し、どう使うのかを説明します。

カスタム変数とは

カスタム変数はMagentoに用意されている機能の一つで、HTMLもしくはテキスト文字列をストアビューごとに登録し、所定の機能から呼び出すことができる機能です。

カスタム変数にはHTMLデータとテキストデータがそれぞれ用意されていますが、HTMLデータの入力する箇所にはWYSIWYGエディタが用意されていないため、HTMLタグを自力で入力する必要があります。 

カスタム変数を埋め込める場所

カスタム変数は、

  • CMSページ
  • 静的ブロック
  • メールテンプレート

に対して埋め込むことができます。
CMSページと静的ブロックは、WYSIWYGエディタの左上にカスタム変数を利用するためのボタンが用意されています。
ここをクリックすると、次の図のようなウインドウが開きます。

カスタム変数の挿入

この一番下にカスタム変数の候補が表示されます。クリックすると編集中のコンテンツにカスタム変数が挿入されます。
メールテンプレートの場合は画面上にボタンがあるので、迷うことはないと思います。 

静的ブロックとカスタム変数の違い

静的ブロックとカスタム変数には大きな違いがあります。
静的ブロックは基本的にWYSIWYGエディタを使用して編集することを想定しています。もちろん設定でWYSIWYGエディタをオフにして、HTMLタグを自力で入力することも可能です。

ところが、WYSIWYGエディタは便利な半面で、場合によっては余計なおせっかいを焼く場合があります。
例えばJavaScriptやCSS、外部サービス特有のタグや属性を勝手に消してしまうことがあります。
(もちろんWYSIWYGエディタの設定を見直すことである程度回避は可能ですが)

これに対して、静的ブロックはWYSIWYGエディタ機能が最初から用意されていないので、入力した内容が改変されてしまう恐れがありません。
ですから、JavaScriptを使用したウィジェットなどを埋め込みたい場合にはカスタム変数に一旦設置し、CMSページなどに埋め込むことで回避が可能です。

また、カスタム変数にはテキストデータを登録できるため、メールテンプレートの形式に合わせてテキストとHTMLを出し分けるということができます。

カスタム変数を使うと便利なシーン

前述のとおり、カスタム変数はWYSIWYGエディタが使えないというデメリットがあります。
ですが、エディタ機能がマークアップを改変してしまうことがないため、JavaScriptやCSSなどを記述することができます。
つまりはCMSページや静的ブロックのWYSIWYGエディタが邪魔をするようなマークアップをしたい場合に使うのが効果的だといえるでしょう。

もちろん、メールテンプレート上に複数のテンプレートで使いまわしたいパーツを書いておく、というのも使い方の一つです。
ほかにもプログラムでカスタム変数を呼び出してやることもできますが、それは管理画面上で行える範囲を超えていますので、このエントリでは取り扱いません。