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

プラグイン一覧 / 取引先品番管理

取引先品番管理プラグイン

取引先が使っている品番を自社の型番に対応づけ、相手の品番のまま探して発注できるようにします。品番表は CSV でまとめて取り込めます。

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

取引先アカウント管理・型番一括発注は必須ではありません。入れている場合だけ機能が増えます。

何のためのプラグインか

卸売では、得意先が自社の品番を振っています。 発注書も在庫表も相手の品番で 書かれているので、EC-CUBE の型番だけが並ぶ画面は取引先から見て読めません。結局、 品番の対応表を紙かエクセルで持ち、注文のたびに人が突き合わせることになります。

このプラグインは、取引先ごとに「相手の品番 ↔ 自社の規格」の対応表を持たせて、 相手の品番のまま探して発注できるようにします。

商品詳細の貴社品番

商品ページに、その取引先の品番が規格ごとに並びます。

主な機能

機能 内容
貴社品番の対応表 取引先ごとに「相手の品番 ↔ 自社の規格」を持ちます
画面に出す 商品詳細・商品一覧・カート・注文履歴に貴社品番を並べます
貴社品番で検索 検索欄に相手の品番を入れると、自社の型番へ読み替えて探します
貴社品番で発注 型番一括発注に貼った品番を読み替えます
CSV 一括登録 取引先から送られてきた品番表をそのまま取り込みます
取引先による登録 取引先がマイページから自分で登録します。既定は無効
受注CSV・配送CSV 受注時点の貴社品番を出せます。既定は出力しない
会社で引き継ぐ 取引先アカウント管理があれば、会社の対応表を担当者も使えます

取引先ごとに同じ品番があってかまいません。 得意先ごとに品番を振っているので、 たまたま同じ文字列になります。読み替えはログインしている会員の会社の中だけで 行います。

画面

対応表を管理する

管理画面の顧客管理 → 取引先品番。品番だけでも絞り込めます。取引先から 「この品番は何だったか」と聞かれる場面で、相手の会社が分からなくても引けます。

取引先品番一覧

会員と商品は、登録したあと変えられません。 付け替えられると、直したつもりで 別の取引先の対応を書き換えることになります。変えたいときは消して入れ直してください。

CSV でまとめて入れる

顧客管理 → 取引先品番CSV登録。列はこの順です。

CSV登録

列 中身
会員IDまたはメールアドレス どちらでも構いません。数字だけなら会員ID、それ以外はメールアドレスとして読みます
自社型番 商品規格の型番
貴社品番 取引先が使っている品番。空にした行は、その対応を削除します
貴社商品名 任意。空でも構いません

ヘッダー行の文字は見ません。列は並びで読みます。

すでにある組は上書きします。 取引先は品番表をまるごと送り直してくるので、毎回 消してから入れ直す必要はありません。

1行でも読めなければ何も入れません。 途中まで入った表は、店から見て「入ったのか 入っていないのか分からない」状態になります。エラーは行番号ごとに出ます(最大20件)。

取引先に自分で登録させる

顧客管理 → 取引先品番設定で有効にすると、取引先のマイページに「貴社品番」が 出ます。商品ページからも登録できます。

取引先のマイページ

商品を選ぶと、その商品の規格が並びます。空にすればその規格の登録は消えます。

既定は無効です。 入れただけで取引先の画面が増えるのは驚きになります。誰に 登録させるかは店が決めることなので、こちらでは決めません。

自社の型番は打たせません。 取引先は店の型番を知りません。商品を選んでもらい、 その商品の規格に品番を付ける形にしています。選べるのはその取引先が開ける商品 だけなので、見えない商品に品番を貼ることもできません。

どちらからでも直せます。 店が取り込んだ品番を取引先が直すことも、取引先が 入れた品番を店が直すこともできます。止めると、間違いに気づいた側が直せません。 最後に入れたのがどちらかは管理画面の一覧に出ます。

品番で探せます

検索欄に貴社品番を入れると、自社の型番へ読み替えてから本体の商品検索に 渡します。会員グループの公開範囲も、他のプラグインが足した検索条件も、そのまま 効きます。

商品一覧の貴社品番

商品一覧には先頭の1つと「ほか」を出します。規格ぜんぶを並べると商品名が押し出されます。

入れたもの どうなるか
対応表にある品番 自社の型番へ読み替えて探します
読み替えられない語 そのまま残します。 商品名で探す人の邪魔はしません
未ログイン 何もしません

検索欄の表示は入力したままです。 読み替えているのは組み立て済みのクエリに 束縛された値だけで、入力そのものには触れていません。取引先は自分が打った品番を 見たまま結果を読みます。

管理画面の商品検索には効きません。 本体が別のキーで引いているためです。

型番が1件に絞れないと登録できません

EC-CUBE の商品規格の型番に一意制約はありません。同じ型番を複数の規格に付けられます。

複数該当したときに先頭を採ることはしません。 採ると、対応表が黙って違う商品を 指します。気づくのは取引先に違うものが届いたときです。CSV も個別登録も、 「その型番の規格が複数あります」として止めます。

販売しない規格(規格を組み替えたときに残る古い行)は数えません。

会社で引き継ぎます

取引先アカウント管理が入っていると、対応表は取引先の 根の会員に付きます。担当者のメールアドレスで CSV を書いても、会社の対応表として 入ります。

会社で決めた品番が、発注する人によって変わりません。 担当者が増えても、品番表を 配り直す必要はありません。

持ち主は保存したときの会社で固定します。 都度たどると、担当者が別の会社へ移った ときに対応表が付いて行ってしまいます。

取引先アカウント管理が入っていなければ、対応表は会員個人のものになります。

事業部ごとに表を分ける

会社で1つにまとめると困る取引先があります。事業部ごとに違う品番体系を使っていると、 全部が親会社の1つの表に混ざり、同じ品番が別の商品を指して取り込めません。 持ち主をどの会員にするかは決め直せます。

// 既定(根の会員へ寄せる)より先に呼ばれればよい
#[AsTaggedItem(priority: 100)]
class DivisionCodeOwner implements CodeOwnerResolverInterface
{
    /** 事業部として扱う会員の id。会員グループや独自の項目で見分けても構いません */
    private const DIVISIONS = [1001, 1002, 1003];

    public function ownerOf(Customer $Customer): ?Customer
    {
        // 決めないときは null。既定(取引先の根の会員)に回ります
        return in_array($Customer->getId(), self::DIVISIONS, true) ? $Customer : null;
    }
}

担当者で発注する取引先なら、親を辿って最初に見つけた事業部で止める書き方になります。 priority の高いものから呼び、最初に会員を返した実装が持ち主です。

入口は1か所です。 画面の表示・検索の読み替え・管理画面の登録・CSV の取り込み・ マイページの登録・受注時の写しは全部ここを通るので、「CSV では事業部、画面では会社」と いう分かれ方はしません。足した判定は全部に同時に効きます。

分け方を変えても、登録済みの行は付け替わりません。 対応表は持ち主の会員 id で 持っています。運用の途中で変えるなら CSV を入れ直してください。古い持ち主の行は残り、 誰からも引かれない行になります。

持ち主にできるのは会員です。 会員グループや文字列では分けられないので、事業部にあたる 会員を作ることになります。

型番一括発注に貼った品番も読み替えます

型番一括発注を入れていると、貼り付けた貴社品番をそのまま 自社の型番へ読み替えます。取引先は自社の発注書をそのまま貼れます。

読み替え口(ProductCodeTranslatorInterface)は複数並べられます。旧型番の対応表や JAN からの読み替えを別の実装として足せば、このプラグインと並べて使えます。

受注CSV・配送CSV に出せます

受注時点の貴社品番と貴社商品名を、受注CSV と配送CSV の明細の項目として出せます。

既定は「出力しない」です。 既存の CSV に列が勝手に増えると、取り込む側が 壊れます。出すときは設定 → CSV出力項目設定で「出力する」側へ移してください。

出るのは受注した時点の品番です。あとから取引先が品番を振り直しても、済んだ受注の CSV は変わりません。変わると、先月出した CSV と今日出す CSV が食い違います。

出す先 値
商品ページ・カート・注文履歴 いまの対応表
受注CSV・配送CSV 受注時点の写し

振り直した直後は、画面と CSV で違う値が出ます。これは意図した違いです。 画面は 取引先が今日読める値であってほしく、CSV は過去のぶんが動かないでほしいからです。

知っておいてほしい仕様

項目 内容
注文履歴の品番は「いまの対応表」で出ます 注文したときの品番は画面には持っていません。対応表を組み替えると、過去の注文の表示も変わります。「あのときの品番」で引きたいときは受注CSVか注文請書・発注書側で残してください
入れる前の受注には出ません 写しを取り始めたのは入れてからです。過去の受注は空のままです
管理画面からの受注登録では写しが入りません 受注確定の流れでだけ埋めます
無効化すると CSV の項目は消えます 無効な間は中身が出せないためです。入れ直すと「出力しない」側から作り直すので、並べ替えはやり直しになります
1つの規格に持てる品番は1つ 2つあると、画面にどちらを出すか決められません
会員でない購入では何もしません 読み替えはログインしている会員の会社の中だけで行います

動作要件

項目 内容
EC-CUBE 4.4 系
PHP 8.2 / 8.3
データベース MySQL 8 / PostgreSQL 13 以上
依存プラグイン なし

取引先アカウント管理と型番一括発注は 必須ではありません。入れていれば自動で連携します。

差し替えられるところ

主要な処理はインターフェースとして切ってあります。実装を差し替えれば動きが変わります。 自社の商習慣に合わない部分があれば、まず差し替えで済むかを確かめてください。

AI に書かせられます。このプラグインには CLAUDE.md と docs/extension-samples.md が 同梱されていて、差し替え口ごとにそのまま使えるサンプルが載っています。 やりたいことを日本語で伝えれば、AI コーディングツールが実装を書きます (くわしく)。

インターフェースできること
CodeOwnerResolverInterface品番の持ち主をどの会員にするかを決める(事業部ごとに別の品番体系を使う取引先で、表を事業部で分ける)

入手する

オーナーズストアで購入

買い切りです。月額はかかりません。予定価格 税抜 50,000 円。

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

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

導入を任せる

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

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

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