カートとチェックアウト:見積もりベースのB2Bフロー
この記事では、見積もりベースのB2B販売向けに設計された当社のカートとチェックアウトシステムについて説明します。
問題点:B2BとB2Cの違い
従来のEコマースはB2C(Business-to-Consumer)です:
-
固定価格
-
即時チェックアウト
-
クレジットカード決済
-
自動化されたフルフィルメント
当社のビジネスはB2B(Business-to-Business)です:
-
見積もりベースの価格設定
-
手動レビュー
-
銀行振込決済
-
カスタム構成
両方のモデルをサポートするカートシステムが必要です。
カートの種類
見積もりカート(デフォルト)
目的: カスタム構成の見積もりを依頼する
フロー: アイテム追加 → 詳細入力 → 送信 → メールで見積もりを受信
決済: 事前支払い不要
使用例: カスタムビルド、大口注文、交渉価格
ショッピングカート(Google Shopping)
目的: 固定価格での直接購入
フロー: アイテム追加 → 詳細入力 → オンライン決済 → 注文確定
決済: 事前支払い必須(Razorpay)
使用例: Google Shoppingからの標準構成品
検出方法: URL内の gclid、gbraid、または 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でSKUを追加
- カートページを表示
使用例: 商品ページの「カートに追加」ボタン
フォーム追加(POST)
フォームデータ: SKU、数量、顧客詳細
動作:
- SKUの存在を検証
- 指定された数量でカートに追加
- カートの合計を更新
- カートページを表示
V-SKUの特別な取り扱い
V-SKU(仮想/構成済み製品)はカートの内容を置き換えます:
理由: V-SKUは完全なシステムであり、他のアイテムと互換性がないため
動作: 既存のアイテムをクリアし、V-SKUのみを追加
例外: Google Shoppingモード(複数アイテムを許可)
カートの保存
場所: サーバーサイドFlaskセッション
形式: セッションにシリアライズされた辞書
永続性: ブラウザを閉じるか、クッキーの有効期限まで
利点: チェックアウトまでデータベースへの書き込みなし
チェックアウトフロー
見積もり依頼
ステップ:
- ユーザーが顧客詳細を入力
- 「見積もりを依頼」をクリック
- カートがCRMチケットとして保存
- 営業チームにメール送信
- 営業チームが見積もりで返信
決済不要: 見積もりはメールで送信
直接購入
ステップ:
- ユーザーが顧客詳細を入力
- 「決済に進む」をクリック
- カートがOrderテーブルに保存
- Razorpay決済ページを表示
- 決済をキャプチャ
- 注文を確定
決済必須: Razorpay連携
通貨処理
カート通貨: カート作成時に設定
ロック: アイテム追加後は通貨を変更できない
換算: すべてのアイテムはカート通貨に換算
表示: カート通貨とINR換算額の両方を表示
GST計算
インド(GSTIN提供あり): 適用税率でGSTを追加
インド(GSTINなし): 適用税率でGSTを追加
国際: GSTなし
計算式: 正味金額 = 合計金額 + GST
トラッキングパラメータ
カート作成時に以下を保存:
キャンペーンパラメータ: utm_source、utm_medium、utm_campaign
クリックID: gclid、gbraid、wbraid、fbclid
保存: クッキーベース、時間枠(30分)
目的: コンタクトトラッキングを介してオフラインコンバージョンをオンラインキャンペーンに帰属
メール通知
見積もり依頼メール
宛先: 営業チーム
内容: 顧客詳細、ラインアイテム、合計金額
添付ファイル: なし
注文確認メール
宛先: 顧客
内容: 注文詳細、決済情報、次のステップ
添付ファイル: 請求書PDF(決済受領時)
決済連携
ゲートウェイ: Razorpay
対応通貨: INR、USD、EUR、GBP
決済方法: クレジットカード、デビットカード、UPI、ネットバンキング
Webhook: Webhookによる決済ステータス更新
詳細: 決済連携を参照
カート検証
チェックアウト前の検証:
SKU検証: すべてのSKUが存在すること
数量検証: 正の整数のみ
顧客検証: 名前、メール、電話番号は必須
住所検証: 配送には必須
GSTIN検証: 提供された場合は形式チェック
関連情報
関連記事
-
商品ページ - カート追加ボタン
-
通貨換算 - カート通貨
-
アナリティクストラッキング - キャンペーン帰属
まとめ
当社のカートシステムは、見積もりベースと直接購入の両方のフローをサポートします:
カートの種類:
-
見積もりカート(デフォルト、決済不要)
-
ショッピングカート(Google Shopping、決済必須)
機能:
-
複数アイテムカート
-
通貨ロック
-
GST計算
-
V-SKU特別取り扱い
-
キャンペーントラッキング
チェックアウト:
-
見積もり依頼(営業へのメール)
-
直接購入(Razorpay決済)
保存:
-
セッションベース(チェックアウトまでDB不使用)
-
30日間の永続性
このハイブリッドアプローチは、B2B見積もりベースモデルとB2C直接購入モデルの両方に対応します。