Assist_Design/docs/SALESFORCE-SIM-PRODUCTS.md
T. Narantuya 94e1625b78 order fix
2025-08-27 10:54:05 +09:00

13 KiB

Salesforce Product2 Setup - Complete Portal Structure

This document covers the simplified product structure for Internet, SIM, and VPN services.

Core Custom Fields Required on Product2

-- Core Fields (All Products)
SKU__c (Text, 255) - Product identifier
Portal_Category__c (Picklist) - "Internet", "SIM", "VPN", "Other"
Portal_Visible__c (Checkbox) - Show in catalog
Item_Class__c (Picklist) - "Service", "Install", "Add-on", "Activation"
WHMCS_Product_Id__c (Number, 18, 0) - WHMCS Product ID (nullable for configured products)

-- Internet Fields
Internet_Plan_Tier__c (Picklist) - "Silver", "Gold", "Platinum"
Internet_Offering_Type__c (Picklist) - "Home 1G", "Home 10G", "Apartment 1G", "Apartment 100M"
Internet_Requires_Configuration__c (Checkbox) - true for Platinum/Gold, false for Silver
Internet_Monthly_Price__c (Currency) - Base monthly price
Internet_Display_Order__c (Number, 18, 0) - UI sorting

-- SIM Fields
SIM_Data_Size__c (Text, 50) - "5GB", "10GB", "25GB", "30GB", "50GB", "Voice-Only"
SIM_Plan_Type__c (Picklist) - "Data-only", "Data+SMS", "Data+Voice", "Voice-Only", "Add-on"
SIM_Has_Family_Discount__c (Checkbox) - true/false
SIM_Display_Order__c (Number, 18, 0) - for sorting in UI

-- VPN Fields (Optional)
VPN_Region__c (Text, 50) - "USA", "UK", "Global"
VPN_Display_Order__c (Number, 18, 0) - UI sorting

Internet Products (Simplified Structure)

Service Plans (Customer Selects Tier)

-- Silver Plan (Customer Configures Access Mode)
Name: "Internet Silver Plan"
SKU__c: "INTERNET-SILVER"
Portal_Category__c: "Internet"
Portal_Visible__c: true
Item_Class__c: "Service"
Internet_Plan_Tier__c: "Silver"
Internet_Offering_Type__c: "Apartment 1G"
Internet_Requires_Configuration__c: false
Internet_Monthly_Price__c: 4800
Internet_Display_Order__c: 1
WHMCS_Product_Id__c: 184

-- Gold Plan (Salesforce Configures)
Name: "Internet Gold Plan"
SKU__c: "INTERNET-GOLD"
Portal_Category__c: "Internet"
Portal_Visible__c: true
Item_Class__c: "Service"
Internet_Plan_Tier__c: "Gold"
Internet_Offering_Type__c: "Apartment 1G"
Internet_Requires_Configuration__c: true
Internet_Monthly_Price__c: 4900
Internet_Display_Order__c: 2
WHMCS_Product_Id__c: null  -- Salesforce will provide

-- Platinum Plan (Salesforce Configures)
Name: "Internet Platinum Plan"
SKU__c: "INTERNET-PLATINUM"
Portal_Category__c: "Internet"
Portal_Visible__c: true
Item_Class__c: "Service"
Internet_Plan_Tier__c: "Platinum"
Internet_Offering_Type__c: "Apartment 1G"
Internet_Requires_Configuration__c: true
Internet_Monthly_Price__c: 5300
Internet_Display_Order__c: 3
WHMCS_Product_Id__c: null  -- Salesforce will provide

Installation Products (Hidden from Catalog)

-- Single Payment Installation
Name: "Internet Installation (Single Payment)"
SKU__c: "INTERNET-INSTALL-SINGLE"
Portal_Category__c: "Internet"
Portal_Visible__c: false
Item_Class__c: "Install"
Internet_Monthly_Price__c: 22800  -- One-time price
WHMCS_Product_Id__c: 242

-- 12-Month Installation
Name: "Internet Installation (12-Month)"
SKU__c: "INTERNET-INSTALL-12M"
Portal_Category__c: "Internet"
Portal_Visible__c: false
Item_Class__c: "Install"
Internet_Monthly_Price__c: 1900
WHMCS_Product_Id__c: 243

-- 24-Month Installation
Name: "Internet Installation (24-Month)"
SKU__c: "INTERNET-INSTALL-24M"
Portal_Category__c: "Internet"
Portal_Visible__c: false
Item_Class__c: "Install"
Internet_Monthly_Price__c: 950
WHMCS_Product_Id__c: 244

-- Weekend Installation Add-on
Name: "Internet Weekend Installation"
SKU__c: "INTERNET-INSTALL-WEEKEND"
Portal_Category__c: "Internet"
Portal_Visible__c: false
Item_Class__c: "Add-on"
Internet_Monthly_Price__c: 3000  -- One-time price
WHMCS_Product_Id__c: 245

Optional Add-ons

-- Home Phone Service
Name: "Hikari Denwa (Home Phone)"
SKU__c: "INTERNET-ADDON-HOME-PHONE"
Portal_Category__c: "Internet"
Portal_Visible__c: false
Item_Class__c: "Add-on"
Internet_Monthly_Price__c: 450
WHMCS_Product_Id__c: 246

SIM Products

Main Service Plans (Portal_Visible__c = true)

Data-only Plans

Name: "SIM Data-only 5GB"
SKU__c: "SIM-DATA-ONLY-5GB"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "5GB"
SIM_Plan_Type__c: "Data-only"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 1
WHMCS_Product_Id__c: 97

Name: "SIM Data-only 10GB"
SKU__c: "SIM-DATA-ONLY-10GB"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "10GB"
SIM_Plan_Type__c: "Data-only"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 2
WHMCS_Product_Id__c: 219

Name: "SIM Data-only 25GB"
SKU__c: "SIM-DATA-ONLY-25GB"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "25GB"
SIM_Plan_Type__c: "Data-only"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 3
WHMCS_Product_Id__c: 248

Name: "SIM Data-only 30GB (3GB/3days)"
SKU__c: "SIM-DATA-ONLY-30GB-3DAY"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "30GB"
SIM_Plan_Type__c: "Data-only"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 4
WHMCS_Product_Id__c: 98

Name: "SIM Data-only 50GB"
SKU__c: "SIM-DATA-ONLY-50GB"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "50GB"
SIM_Plan_Type__c: "Data-only"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 5
WHMCS_Product_Id__c: 252

Data+SMS Plans

Name: "SIM Data+SMS 5GB"
SKU__c: "SIM-DATA-SMS-5GB"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "5GB"
SIM_Plan_Type__c: "Data+SMS"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 1
WHMCS_Product_Id__c: 104

Name: "SIM Data+SMS 10GB"
SKU__c: "SIM-DATA-SMS-10GB"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "10GB"
SIM_Plan_Type__c: "Data+SMS"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 2
WHMCS_Product_Id__c: 218

Name: "SIM Data+SMS 30GB (3GB/3days)"
SKU__c: "SIM-DATA-SMS-30GB-3DAY"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "30GB"
SIM_Plan_Type__c: "Data+SMS"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 4
WHMCS_Product_Id__c: 106

Data+Voice Plans (Regular)

Name: "SIM Data+Voice 5GB"
SKU__c: "SIM-DATA-VOICE-5GB"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "5GB"
SIM_Plan_Type__c: "Data+Voice"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 1
WHMCS_Product_Id__c: 105

Name: "SIM Data+Voice 10GB"
SKU__c: "SIM-DATA-VOICE-10GB"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "10GB"
SIM_Plan_Type__c: "Data+Voice"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 2
WHMCS_Product_Id__c: 216

Name: "SIM Data+Voice 25GB"
SKU__c: "SIM-DATA-VOICE-25GB"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "25GB"
SIM_Plan_Type__c: "Data+Voice"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 3
WHMCS_Product_Id__c: 247

Name: "SIM Data+Voice 30GB (3GB/3days)"
SKU__c: "SIM-DATA-VOICE-30GB-3DAY"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "30GB"
SIM_Plan_Type__c: "Data+Voice"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 4
WHMCS_Product_Id__c: 107

Name: "SIM Data+Voice 50GB"
SKU__c: "SIM-DATA-VOICE-50GB"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "50GB"
SIM_Plan_Type__c: "Data+Voice"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 5
WHMCS_Product_Id__c: 250

Voice-Only Plan

Name: "SIM Voice-Only"
SKU__c: "SIM-VOICE-ONLY"
Portal_Category__c: "SIM"
Portal_Visible__c: true
Item_Class__c: "Service"
SIM_Data_Size__c: "Voice-Only"
SIM_Plan_Type__c: "Voice-Only"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 0
WHMCS_Product_Id__c: 142

Family Discount Plans (Portal_Visible__c = false)

These are used automatically when customer has existing SIM:

Data+Voice Family Discount Plans

Name: "SIM Data+Voice 5GB (Family Discount)"
SKU__c: "SIM-DATA-VOICE-5GB-FAMILY"
Portal_Category__c: "SIM"
Portal_Visible__c: false
Item_Class__c: "Service"
SIM_Data_Size__c: "5GB"
SIM_Plan_Type__c: "Data+Voice"
SIM_Has_Family_Discount__c: true
SIM_Display_Order__c: 1
WHMCS_Product_Id__c: 108

Name: "SIM Data+Voice 10GB (Family Discount)"
SKU__c: "SIM-DATA-VOICE-10GB-FAMILY"
Portal_Category__c: "SIM"
Portal_Visible__c: false
Item_Class__c: "Service"
SIM_Data_Size__c: "10GB"
SIM_Plan_Type__c: "Data+Voice"
SIM_Has_Family_Discount__c: true
SIM_Display_Order__c: 2
WHMCS_Product_Id__c: 217

Name: "SIM Data+Voice 25GB (Family Discount)"
SKU__c: "SIM-DATA-VOICE-25GB-FAMILY"
Portal_Category__c: "SIM"
Portal_Visible__c: false
Item_Class__c: "Service"
SIM_Data_Size__c: "25GB"
SIM_Plan_Type__c: "Data+Voice"
SIM_Has_Family_Discount__c: true
SIM_Display_Order__c: 3
WHMCS_Product_Id__c: 249

Name: "SIM Data+Voice 30GB (3GB/3days) (Family Discount)"
SKU__c: "SIM-DATA-VOICE-30GB-3DAY-FAMILY"
Portal_Category__c: "SIM"
Portal_Visible__c: false
Item_Class__c: "Service"
SIM_Data_Size__c: "30GB"
SIM_Plan_Type__c: "Data+Voice"
SIM_Has_Family_Discount__c: true
SIM_Display_Order__c: 4
WHMCS_Product_Id__c: 109

Name: "SIM Data+Voice 50GB (Family Discount)"
SKU__c: "SIM-DATA-VOICE-50GB-FAMILY"
Portal_Category__c: "SIM"
Portal_Visible__c: false
Item_Class__c: "Service"
SIM_Data_Size__c: "50GB"
SIM_Plan_Type__c: "Data+Voice"
SIM_Has_Family_Discount__c: true
SIM_Display_Order__c: 5
WHMCS_Product_Id__c: 251

Add-on Services (Portal_Visible__c = false)

These are shown as checkboxes for Data+Voice plans:

Name: "SIM Voice Mail Option"
SKU__c: "SIM-ADDON-VOICE-MAIL"
Portal_Category__c: "SIM"
Portal_Visible__c: false
Item_Class__c: "Add-on"
SIM_Data_Size__c: ""
SIM_Plan_Type__c: "Add-on"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 1
WHMCS_Product_Id__c: 119

Name: "SIM Call Waiting Option"
SKU__c: "SIM-ADDON-CALL-WAITING"
Portal_Category__c: "SIM"
Portal_Visible__c: false
Item_Class__c: "Add-on"
SIM_Data_Size__c: ""
SIM_Plan_Type__c: "Add-on"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 2
WHMCS_Product_Id__c: 123

Name: "SIM Unlimited 15 (Domestic) Free Calling Option"
SKU__c: "SIM-ADDON-UNLIMITED-CALLING"
Portal_Category__c: "SIM"
Portal_Visible__c: false
Item_Class__c: "Add-on"
SIM_Data_Size__c: ""
SIM_Plan_Type__c: "Add-on"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 3
WHMCS_Product_Id__c: 125

Name: "SIM Unlimited Calling Option"
SKU__c: "SIM-ADDON-UNLIMITED-CALLING-V2"
Portal_Category__c: "SIM"
Portal_Visible__c: false
Item_Class__c: "Add-on"
SIM_Data_Size__c: ""
SIM_Plan_Type__c: "Add-on"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 4
WHMCS_Product_Id__c: 259

Activation Fee (Portal_Visible__c = false)

Name: "SIM Activation Fee"
SKU__c: "SIM-ACTIVATION-FEE"
Portal_Category__c: "SIM"
Portal_Visible__c: false
Item_Class__c: "Activation"
SIM_Data_Size__c: ""
SIM_Plan_Type__c: "Activation"
SIM_Has_Family_Discount__c: false
SIM_Display_Order__c: 0
WHMCS_Product_Id__c: 99

VPN Products (Simplified)

-- VPN Service (Region-agnostic)
Name: "VPN Premium Service"
SKU__c: "VPN-PREMIUM"
Portal_Category__c: "VPN"
Portal_Visible__c: true
Item_Class__c: "Service"
VPN_Region__c: "Global"  -- Customer chooses region at order time
VPN_Display_Order__c: 1
WHMCS_Product_Id__c: 33

-- VPN Activation Fee
Name: "VPN Activation Fee"
SKU__c: "VPN-ACTIVATION"
Portal_Category__c: "VPN"
Portal_Visible__c: false
Item_Class__c: "Activation"
WHMCS_Product_Id__c: 37

Salesforce Configuration Flow (Internet Gold/Platinum)

Order Status Flow:

  1. Draft → Customer selecting options
  2. Pending Configuration → Sent to Salesforce for configuration
  3. Configured → Salesforce determined products and WHMCS IDs
  4. Pending Review → Ready for operator approval
  5. Approved → Ready for provisioning

Salesforce Flow Logic:

// When Order.Status = "Pending Configuration"
// AND Internet_Plan_Tier__c IN ("Gold", "Platinum")

1. Get Account.Internet_Eligibility__c
2. Check Account location/infrastructure
3. Determine configuration:
   - Fiber + Gateway available → IPoE-HGW (WHMCS ID: 183)
   - Fiber only → IPoE-BYOR (WHMCS ID: 185)
   - Legacy → PPPoE (WHMCS ID: 187)
4. Call Portal: POST /orders/{orderId}/configure

Configuration API Response:

{
  "configuredProducts": [
    {
      "sku": "INTERNET-PLATINUM-CONFIGURED",
      "whmcsProductId": 183,
      "accessMode": "IPoE-HGW",
      "includesGateway": true,
      "monthlyPrice": 5300
    }
  ],
  "configurationReason": "Location supports fiber with gateway"
}

Family Discount Logic (SIM)

Catalog-Driven Approach:

  1. GET /catalog/personalized checks existing SIM services
  2. If customer has SIM → Show family discount products
  3. If new customer → Show regular products
  4. Frontend sends correct SKU from catalog selection

Example:

  • New Customer sees: "SIM Data+Voice 50GB" (4,180 JPY) → SKU: "SIM-DATA-VOICE-50GB"
  • Existing Customer sees: "SIM Data+Voice 50GB (Family Discount)" (3,680 JPY) → SKU: "SIM-DATA-VOICE-50GB-FAMILY"