カートとチェックアウト:見積もりベースのB2Bフロー

この記事では、見積もりベースのB2B販売向けに設計された当社のカートとチェックアウトシステムについて説明します。

問題点:B2BとB2Cの違い

従来のEコマースはB2C(Business-to-Consumer)です:

  • 固定価格

  • 即時チェックアウト

  • クレジットカード決済

  • 自動化されたフルフィルメント

当社のビジネスはB2B(Business-to-Business)です:

  • 見積もりベースの価格設定

  • 手動レビュー

  • 銀行振込決済

  • カスタム構成

両方のモデルをサポートするカートシステムが必要です。

カートの種類

見積もりカート(デフォルト)

目的: カスタム構成の見積もりを依頼する

フロー: アイテム追加 → 詳細入力 → 送信 → メールで見積もりを受信

決済: 事前支払い不要

使用例: カスタムビルド、大口注文、交渉価格

ショッピングカート(Google Shopping)

目的: 固定価格での直接購入

フロー: アイテム追加 → 詳細入力 → オンライン決済 → 注文確定

決済: 事前支払い必須(Razorpay)

使用例: Google Shoppingからの標準構成品

検出方法: URL内の gclidgbraid、または wbraid

カート構造

カートモデル

フィールド:

  • Items: ラインアイテムのリスト(SKU、数量、単価、金額)

  • CustomerName: 購入者名

  • CustomerEmail: 購入者メール

  • CustomerPhone: 購入者電話番号

  • CustomerAddress: 配送先住所

  • CustomerGSTIN: 税ID(オプション)

  • TotalAmount: ラインアイテムの合計

  • GSTAmount: 税額

  • NetAmount: 合計 + GST

  • Currency: カート通貨(INR、USDなど)

  • Type: "cart" または "quote"

ラインアイテム

フィールド:

  • SKU: 製品識別子

  • quantity: 数量

  • Rate: 単価

  • Amount: 単価 × 数量

カート追加フロー

直接追加(GET)

URLパラメータとSKUを使用してアイテムを追加。

動作:

  1. 新しいカートを作成、または既存のカートを読み込む
  2. 数量1でSKUを追加
  3. カートページを表示

使用例: 商品ページの「カートに追加」ボタン

フォーム追加(POST)

フォームデータ: SKU、数量、顧客詳細

動作:

  1. SKUの存在を検証
  2. 指定された数量でカートに追加
  3. カートの合計を更新
  4. カートページを表示

V-SKUの特別な取り扱い

V-SKU(仮想/構成済み製品)はカートの内容を置き換えます:

理由: V-SKUは完全なシステムであり、他のアイテムと互換性がないため

動作: 既存のアイテムをクリアし、V-SKUのみを追加

例外: Google Shoppingモード(複数アイテムを許可)

カートの保存

場所: サーバーサイドFlaskセッション

形式: セッションにシリアライズされた辞書

永続性: ブラウザを閉じるか、クッキーの有効期限まで

利点: チェックアウトまでデータベースへの書き込みなし

チェックアウトフロー

見積もり依頼

ステップ:

  1. ユーザーが顧客詳細を入力
  2. 「見積もりを依頼」をクリック
  3. カートがCRMチケットとして保存
  4. 営業チームにメール送信
  5. 営業チームが見積もりで返信

決済不要: 見積もりはメールで送信

直接購入

ステップ:

  1. ユーザーが顧客詳細を入力
  2. 「決済に進む」をクリック
  3. カートがOrderテーブルに保存
  4. Razorpay決済ページを表示
  5. 決済をキャプチャ
  6. 注文を確定

決済必須: Razorpay連携

通貨処理

カート通貨: カート作成時に設定

ロック: アイテム追加後は通貨を変更できない

換算: すべてのアイテムはカート通貨に換算

表示: カート通貨とINR換算額の両方を表示

GST計算

インド(GSTIN提供あり): 適用税率でGSTを追加

インド(GSTINなし): 適用税率でGSTを追加

国際: GSTなし

計算式: 正味金額 = 合計金額 + GST

トラッキングパラメータ

カート作成時に以下を保存:

キャンペーンパラメータ: utm_sourceutm_mediumutm_campaign

クリックID: gclidgbraidwbraidfbclid

保存: クッキーベース、時間枠(30分)

目的: コンタクトトラッキングを介してオフラインコンバージョンをオンラインキャンペーンに帰属

メール通知

見積もり依頼メール

宛先: 営業チーム

内容: 顧客詳細、ラインアイテム、合計金額

添付ファイル: なし

注文確認メール

宛先: 顧客

内容: 注文詳細、決済情報、次のステップ

添付ファイル: 請求書PDF(決済受領時)

決済連携

ゲートウェイ: Razorpay

対応通貨: INR、USD、EUR、GBP

決済方法: クレジットカード、デビットカード、UPI、ネットバンキング

Webhook: Webhookによる決済ステータス更新

詳細: 決済連携を参照

カート検証

チェックアウト前の検証:

SKU検証: すべてのSKUが存在すること

数量検証: 正の整数のみ

顧客検証: 名前、メール、電話番号は必須

住所検証: 配送には必須

GSTIN検証: 提供された場合は形式チェック

関連情報

関連記事

まとめ

当社のカートシステムは、見積もりベースと直接購入の両方のフローをサポートします:

カートの種類:

  • 見積もりカート(デフォルト、決済不要)

  • ショッピングカート(Google Shopping、決済必須)

機能:

  • 複数アイテムカート

  • 通貨ロック

  • GST計算

  • V-SKU特別取り扱い

  • キャンペーントラッキング

チェックアウト:

  • 見積もり依頼(営業へのメール)

  • 直接購入(Razorpay決済)

保存:

  • セッションベース(チェックアウトまでDB不使用)

  • 30日間の永続性

このハイブリッドアプローチは、B2B見積もりベースモデルとB2C直接購入モデルの両方に対応します。


← ドキュメントインデックスに戻る