13 KiB
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:
- Draft → Customer selecting options
- Pending Configuration → Sent to Salesforce for configuration
- Configured → Salesforce determined products and WHMCS IDs
- Pending Review → Ready for operator approval
- 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:
- GET /catalog/personalized checks existing SIM services
- If customer has SIM → Show family discount products
- If new customer → Show regular products
- 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"