4.2 KiB
4.2 KiB
Corrected Business Logic - Ver2 Fixes
✅ Fixed Issues
1. Removed Non-Existent Fields
- Removed:
featureListandfeatureSetfrom field mapping - Impact: Prevents Salesforce query errors for non-existent fields
- Solution: Use hardcoded tier features in
getTierTemplate()
2. Clarified Addon Logic
Addons can be:
- Standalone: Independent monthly/onetime addons
- Bundled: Monthly addon + Onetime installation paired via
bundledAddonId
Key Points:
- Addons use
Item_Class__c = "Add-on"(even for installations) - Service installations use
Item_Class__c = "Installation" - Bundle relationship via
isBundledAddon+bundledAddonIdfields
3. Fixed Order Validation
Before (Incorrect):
// Too restrictive - only allowed exactly 1 service SKU
const mainServiceSkus = data.skus.filter(sku => !sku.includes("addon") && !sku.includes("fee"));
return mainServiceSkus.length === 1;
After (Correct):
// Allows service + installations + addons
const mainServiceSkus = data.skus.filter(sku => {
const upperSku = sku.toUpperCase();
return (
!upperSku.includes("INSTALL") &&
!upperSku.includes("ADDON") &&
!upperSku.includes("ACTIVATION") &&
!upperSku.includes("FEE")
);
});
return mainServiceSkus.length >= 1; // At least one service required
📋 Product Classification Matrix
| Product Type | Item_Class__c | SKU Pattern | Billing Cycle | Bundle Logic |
|---|---|---|---|---|
| Internet Plan | Service | INTERNET-SILVER-* |
Monthly | N/A |
| Service Installation | Installation | INTERNET-INSTALL-* |
Onetime | Standalone |
| Monthly Addon | Add-on | INTERNET-ADDON-DENWA |
Monthly | Can be bundled |
| Addon Installation | Add-on | INTERNET-ADDON-DENWA-INSTALL |
Onetime | Bundled with monthly |
| SIM Plan | Service | SIM-DATA-* |
Monthly | N/A |
| SIM Activation | Activation | SIM-ACTIVATION-FEE |
Onetime | Standalone |
🔧 Valid Order Examples
Internet Order with Addons
{
"orderType": "Internet",
"skus": [
"INTERNET-SILVER-HOME-1G", // Main service
"INTERNET-INSTALL-SINGLE", // Service installation
"INTERNET-ADDON-DENWA", // Monthly addon
"INTERNET-ADDON-DENWA-INSTALL" // Addon installation (bundled)
]
}
SIM Order with Addons
{
"orderType": "SIM",
"skus": [
"SIM-DATA-VOICE-50GB", // Main service
"SIM-ACTIVATION-FEE", // Required activation
"SIM-ADDON-VOICE-MAIL" // Standalone addon
],
"configurations": {
"simType": "eSIM",
"eid": "89049032000000000000000000000001"
}
}
🛡️ Business Rules
Internet Orders
- ✅ Must have at least 1 main service SKU
- ✅ Can have multiple installations, addons, fees
- ✅ Bundled addons (monthly + installation) allowed
SIM Orders
- ✅ Must specify
simTypein configurations - ✅ eSIM orders must provide
eid - ✅ Can include activation fees and addons
Addon Bundling
- ✅ Monthly addon + Onetime installation = Bundle
- ✅ Both use
Item_Class__c = "Add-on" - ✅ Linked via
bundledAddonIdfield - ✅ Frontend displays as single bundle item
🎯 Key Differences from Main Branch
| Aspect | Main Branch | Ver2 (Corrected) |
|---|---|---|
| Field Mapping | Includes non-existent fields | Only existing SF fields |
| Order Validation | Simple, permissive | Structured with clear rules |
| Addon Logic | Basic bundling | Comprehensive bundle support |
| Business Rules | Hardcoded in services | Zod schemas with validation |
| Error Handling | Basic try/catch | Structured error responses |
This ensures ver2 works correctly with your Salesforce setup while maintaining the flexible addon/installation logic you need.