卸売や資材の業界でECを導入しようとすると、かなり早い段階で詰まる箇所があります。
「〇個以上で〇%引」「同じ商品でもロットが変わると単価が変わる」「この組み合わせだと送料が別計算」。
こういうルールを、なんとかEC画面の中に入れようとするとき、たいていのプラットフォームの設定画面はそこで終わっています。
BtoCなら定価に割引クーポンで済みます。でも卸売の価格体系はそうなっていない。顧客ごとに取り決めがあって、数量によって段階的に変わって、組み合わせによって例外があって。そのルールをECの「割引設定」の画面に収めようとすると、どこかで無理が出る。
それで「このプラットフォームは使えない」「やっぱりフルスクラッチで作らないと」と判断してしまうことが多いのですが、もう少し手前で止まれる方法があります。
標準機能が止まる場所
そもそも、なぜ標準機能で入らないのか。
大手のECプラットフォームはBtoCを想定した設計が基本です。「定価から〇%引」「〇円以上で送料無料」のような一律のルールは管理画面から設定できます。でも「A社には1箱単位で3%引、B社には5箱以上なら5%引、ただし特定の品番は除外」のような取り決めは、それ専用の入力欄が用意されていません。
BtoB向けのECプラットフォームでも、この部分はたいてい「別途ご相談」か、オプション機能の追加費用になっています。
間に入れる、という発想
ではどうするか。プラットフォームを捨てるのではなく、計算だけ外に出す方法があります。
EC側のAPIを使って注文の内容を受け取り、外側で自分のルールに従って金額を再計算して、その結果を画面に差し込んで返す。プラットフォームの表示は使いながら、価格計算の部分だけを自前のロジックに置き換えるイメージです。
BtoBのECでよく使われているプラットフォームは、受注データを外部から取得したり、カートの内容を呼び出したりするAPIを持っています。標準の管理画面だけ見ていると「ここまでしか設定できない」で止まりますが、API経由でアクセスすると、カートに入っている商品・数量・顧客情報を外側で受け取って計算し直すことができます。
AIにどう頼んだか
私が似たような要件を整理するときは、業務のルールをそのまま日本語で書き出してAIに渡します。
BtoBのECで独自の価格ルールを実装したい。
- 商品Aは10個以上で5%引、20個以上で10%引
- 商品AとBをセットで買うと送料が通常計算と変わる
- 顧客によって適用するルールが違う(顧客IDで切り分けたい)
プラットフォームの管理画面でこれを設定しようとすると無理だった。APIで受注データを取り出して、外側で計算してから結果を返す仕組みを作りたい。どんな構成が現実的か教えて。
ルールの複雑さ次第で構成は変わりますが、「プラットフォームのAPIから取得 → 外側で計算 → 結果を返す」という流れ自体は、AIが整理してくれます。自分でコードを書く必要はなく、どんなステップが必要かの見通しが立てば、あとはAIに作ってもらいながら進められます。
必要なもの
同じ方向で進めるのに最低限要るものは、だいたい3つです。
- 使っているECプラットフォームに外部からアクセスできるAPI(受注データや顧客情報が取り出せるか確認する)
- 価格ルールを管理する仕組み(スプレッドシートや簡単なデータベース。ルール変更のたびにコードを触らなくて済むように)
- そのAPIと計算処理を動かす場所(無料から使えるクラウド実行環境で足ります)
フルスクラッチでゼロから作る必要はありません。既存のプラットフォームに乗ったまま、計算の部分だけ追加します。
詰まりやすい所
この方向で進めるときに、注意しておきたい点があります。
まず、APIの仕様はプラットフォームによって大きく違います。「外部からデータを取れる」といっても、取れる内容に制限があったり、リアルタイムで書き込めないケースもあります。最初にAPIドキュメントを確認して、自分がやりたいことに対応しているか確認するのが先です。
もう一つは、価格ルールをどこで管理するか。ルールがコードに直書きになっていると、「〇%引の条件を変えたい」と言われるたびにエンジニアに依頼する必要が出てきます。担当者がスプレッドシートで編集できる場所に管理表を置いておくと、運用のハードルが下がります。
それと、計算の結果を画面に反映するタイミング。注文確定前のカート画面で計算結果を見せたいのか、確定後に請求書で調整する形でいいのか、ここで要件が変わります。前者のほうが技術的にはやや複雑になります。
どんな業種に向いているか
このやり方が効きやすいのは、取引先ごとの価格取り決めがあって、数量によって単価が変わる業種です。資材・原材料の卸、食品・農産物の業務用販売、工業部品の受発注など、BtoB取引でECを使いたいが標準機能で入りきらない、というパターンで詰まっていれば、だいたい同じ手が使えます。
「プラットフォームが対応していない」は「実装できない」とイコールではないです。計算だけ外に出して間に入れる、という発想で動く範囲がかなり広がります。
