プラグイン一覧 / 製品比較
製品比較プラグイン
選んだ商品を並べて比べられるようにします。型番・価格・在庫が縦に並び、商品スペック検索を入れていればその項目も並びます。
単体で動きます。他のプラグインは要りません。
商品スペック検索は必須ではありません。入れている場合だけ機能が増えます。
何のためのプラグインか
型番の似た商品が並ぶ業種では、一覧と商品ページを行き来しながら見比べることになります。 戻るボタンを押すたびに絞り込みが外れ、どれを見ていたのか分からなくなります。
このプラグインは、選んだ商品を横に並べて比べられるようにします。

アルミ切粉とみがき丸棒。下4行(材質・表面処理・直径・定尺長さ)は商品スペック検索で登録した項目です。登録していない項目は空欄になります。
主な機能
| 機能 | 内容 |
|---|---|
| 比較に追加 | 商品一覧と商品詳細から。会員でなくても使えます |
| 比較表 | 型番・価格・在庫を縦に並べます |
| スペックの取り込み | 商品スペック検索を入れていれば、その項目も並びます |
| 上限 | 4件まで |
会員でなくても使えます。 比べてから会員登録する人がいるので、ログインを必須に していません。

一覧の各商品に「比較に追加」が出て、上に件数が並びます。カートに入れるボタンはそのまま使えます。
並ぶ項目
| 項目 | 出どころ |
|---|---|
| 型番 | 商品規格の商品コード。複数あれば「/」でつなぎます |
| 価格 | 税込の販売価格。幅があれば「〜」でつなぎます |
| 在庫 | あり / なし |
| スペック | 商品スペック検索で登録した項目 |
商品スペック検索は必須ではありません。入っていればスペックの行が増え、入っていなければ 上の3行だけです。
テーブルを持ちません
比較に入れた商品はセッションに置きます。比較はその場の作業で、あとから見返すもの ではないためです。
持つのは商品の id だけです。 商品そのものを入れると、店が値段を直したときに古い値が 残ります。出すときに引き直します。公開が終わった商品はセッションからも消します。 残すと、件数だけ増えて画面に出ない商品ができます。
上限は4件です
横に並べる表なので、5つを超えると画面からはみ出して読めなくなります。実際に比べるのは 2〜3件です。
行がずれることはありません
比較表の行は差し替えられますが、値の数が商品の数と合わない行は出しません。 表がずれて、別の商品の値が隣の列に出るためです。金額や寸法がずれて出るのは、出ないより 悪いという判断です。捨てた行はログに残します。
カートを壊しません
「比較に追加」は、箱の中にフォームを置いていません。 フォームは外に出し、中の項目と
ボタンは HTML5 の form 属性で結び付けています。
本体の商品一覧は、押されたボタンの入っている枠の中のフォームを全部まとめて送ります。 入れ子のフォームがあると、こちらの CSRF トークンがカートのリクエストの後ろに付き、 後ろ勝ちで本体のトークンを上書きします。 カートが 404 になり、画面には 「カートへの追加に失敗しました。」としか出ません。実際に踏みました。
商品詳細は購入フォームだけを送るので素通りしますが、店が断片を一覧のカードへ置いたら 同じことが起きます。 置く場所を選べるようにしてある以上、断片の側で守る必要があります。
知っておいてほしい仕様
| 項目 | 内容 |
|---|---|
| 比較の記録は残りません | セッションなので、ブラウザを閉じれば消えます。「先週比べた組み合わせ」は残せません |
| 追加と削除は POST です | GET だと、クローラの先読みや画像の遅延読み込みで勝手に入ります |
| 戻り先は自サイトの中だけ | referer をそのまま使うと、外から貼られたリンクで別のサイトへ送れてしまいます |
| 本体のテンプレートを文字列で置換していません | 商品カードは CSS のセレクタで探し、商品ページへのリンクから id を拾います。目印が外れても例外は出ず、見つからなければ何もしません |
画面の文言を変える
比較の画面の文言は、テンプレートの写しを app/template/plugin/ProductCompare/ に置いて変えます。
管理画面では直せません(プラグインテンプレート編集プラグイン 4.4.1 から。直した履歴が
残らないためです)。写しは git で控えを残してください。
置くのは直したいファイルだけです。置いていないものはプラグインの中の原本が使われるので、 テーマを変えても写し直しは要りません。 プラグインを更新しても写しは残ります。原本が 変わったときは、差分を見て取り込みます。
ページ管理の編集欄からは直さないでください。 本体は保存するとき必ずテーマ配下へ書くので、 **「保存できたのに画面が変わらない」**状態になり、以後プラグインを更新しても反映されません。 プラグインテンプレート編集プラグインを入れておくと、この欄を伏せ、本体が書いた写しを その場で消します。
動作要件
| 項目 | 内容 |
|---|---|
| EC-CUBE | 4.4 系 |
| PHP | 8.2 / 8.3 |
| データベース | MySQL 8 / PostgreSQL 13 以上 |
| 依存プラグイン | なし(商品スペック検索があれば連携します) |
商品スペック検索をクラス名で参照していません。 入っていない環境ではクラスが存在せず、 オートローダが探しに行くだけ無駄になります。テーブルの有無で判定しています。
差し替えられるところ
主要な処理はインターフェースとして切ってあります。実装を差し替えれば動きが変わります。 自社の商習慣に合わない部分があれば、まず差し替えで済むかを確かめてください。
AI に書かせられます。このプラグインには CLAUDE.md と docs/extension-samples.md が 同梱されていて、差し替え口ごとにそのまま使えるサンプルが載っています。 やりたいことを日本語で伝えれば、AI コーディングツールが実装を書きます (くわしく)。
| インターフェース | できること |
|---|---|
CompareRowProviderInterface | 比較表に出す行を足す(商品説明の一部を出す、独自のテーブルから引く、など) |
入手する
オーナーズストアで購入
買い切りです。月額はかかりません。予定価格 税抜 50,000 円。
予定価格です。オーナーズストアでの販売開始時に変わる場合があります。
この条件で回るか、確かめてから決めてください
締め日、支払サイト、請求書の様式、会計ソフトへの受け渡し。合うかどうかは商習慣によって変わります。やりたいことを書いて送ってください。