EC-CUBE で B2B
構築を相談する

プラグイン一覧 / 製品比較

製品比較プラグイン

選んだ商品を並べて比べられるようにします。型番・価格・在庫が縦に並び、商品スペック検索を入れていればその項目も並びます。

単体で動きます。他のプラグインは要りません。

商品スペック検索は必須ではありません。入れている場合だけ機能が増えます。

何のためのプラグインか

型番の似た商品が並ぶ業種では、一覧と商品ページを行き来しながら見比べることになります。 戻るボタンを押すたびに絞り込みが外れ、どれを見ていたのか分からなくなります。

このプラグインは、選んだ商品を横に並べて比べられるようにします。

製品比較の画面

アルミ切粉とみがき丸棒。下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 円。

予定価格です。オーナーズストアでの販売開始時に変わる場合があります。

販売ページの準備ができ次第、ここに載せます。

導入を任せる

サーバーの用意から EC-CUBE の設置、プラグインの導入と設定まで請け負います。 商習慣に合わせた作り足しもご相談ください。

この条件で回るか、確かめてから決めてください

締め日、支払サイト、請求書の様式、会計ソフトへの受け渡し。合うかどうかは商習慣によって変わります。やりたいことを書いて送ってください。