Product Mapping Configuration
Note
The ictvoipbox_cart checkout wizard supports only one billing cycle per product. Products used in ictVoIP Box bundles or checkout must have a single billing cycle enabled (recommended: Monthly). Enabling multiple billing cycles will cause the configure-product page to fall back to a raw placeholder instead of the DID selection, regulatory, and provisioning wizard.
Overview
Navigate to Addons → ictVoIP Box → Product Mappings tab
Product mapping links WHMCS products and bundles to providers (VoIP.ms or DIDWW). This determines which provider’s API and settings are used during checkout and provisioning.
How Product Mapping Works:
When a customer orders a product:
System checks product mapping to determine provider
Checkout uses provider-specific settings (DID countries, rates, regulatory requirements)
Order is queued for provisioning with correct provider
Admin provisions using provider’s API
Mapping Priority (Highest to Lowest):
Product Group Mapping - All standalone products in group assigned to same provider
Individual Product Mapping - Specific product assigned to provider
Bundle Mapping - Bundle and all constituent products assigned to provider
Three Mapping Methods
Method 1: Bulk Assign by Bundle
Recommended for Mixed Groups
Use this to assign a bundle and ALL its constituent products to the same provider, even if products are spread across multiple product groups.
Steps:
Locate bundle in “Bulk Assign by Bundle” section
Select provider from dropdown (VoIP.ms or DIDWW)
Click “Save Bundle Mappings”
System maps bundle + all products within bundle
When to Use:
Bundle contains products from multiple product groups
Want all bundle products to use same provider
Simplifies management of complex bundles
Example:
Bundle: “Complete PBX Package”
Contains: US DID (Group A) + Extensions (Group B) + Features (Group C)
Map bundle to VoIP.ms → All 3 products use VoIP.ms
Method 2: Bulk Assign by Product Group
Use this to quickly assign all standalone products in a product group to the same provider.
Steps:
Locate product group in “Bulk Assign by Product Group” section
Select provider from dropdown (VoIP.ms or DIDWW)
Click “Save Group Mappings”
System maps all standalone products in group (excludes bundle products)
When to Use:
All products in group should use same provider
Products are not part of bundles
Quick bulk assignment needed
Note
Only affects standalone products (not products within bundles). Bundle products must be mapped via bundle or individual mapping.
Example:
Product Group: “Domestic DIDs”
Contains: US DID, CA DID, UK DID (all standalone)
Map group to VoIP.ms → All 3 DIDs use VoIP.ms
Method 3: Individual Product Mappings
Use this for granular control over individual products and bundles.
Steps:
Use filter dropdown to select product group or “Bundles”
Locate product/bundle in DataTable
Select provider from dropdown in “Assigned Provider” column
Click “Save Product Mappings”
DataTable Columns:
Product ID: WHMCS product ID or
bundle_Xfor bundlesProduct Name: Product/bundle name with indicators (HIDDEN, BUNDLE)
Product Group: Product group name or “Bundles”
Assigned Provider: Dropdown to select VoIP.ms, DIDWW, or “No Provider (Use Default)”
Status: Badge showing mapping status (Default, Mapped, Invalid)
Status Badges:
Default (gray): No provider assigned
Mapped (green): Assigned to VoIP.ms
Mapped (green): Assigned to DIDWW
Invalid (yellow): Provider ID invalid (provider deleted)
When to Use:
Override group mapping for specific product
Map individual products not in groups
Fine-tune provider assignments
Map bundles individually
Critical Requirements
Danger
IMPORTANT: Products without mapping will NOT function within the ictVoIP Box framework:
Will NOT be recognized by the ictVoIP Box system
Will NOT be part of checkout process for provisioning
Will NOT trigger DID selection or regulatory forms
Will FAIL order validation and provisioning
Only select products created specifically for ictVoIP Box use
Every product intended for ictVoIP Box MUST be mapped to a provider (VoIP.ms or DIDWW). Products without provider mapping are invisible to the ictVoIP Box framework and cannot be provisioned.
Best Practices
✅ Recommended Practices:
Use bundle mapping for bundles with products across multiple groups
Use group mapping for simple product groups
Use individual mapping for exceptions and overrides
Verify mappings after bulk operations
Test checkout after mapping changes
Provider Selection Guidelines:
- VoIP.ms Products:
US and Canadian DIDs
Non-regulatory countries
Production-ready (sandbox or live)
- DIDWW Products:
International DIDs (South Africa, EU, UK, etc.)
Regulatory countries requiring verification
⚠️ Sandbox mode only during beta testing
Do not use production API key yet
Billing cycle limitation
The ictvoipbox_cart configure-product wizard currently supports only one billing cycle per product. Products used in ictVoIP Box bundles or checkout must be configured with a single billing cycle (recommended: Monthly). Enabling multiple billing cycles (for example Monthly and Annually) will cause the checkout to fall back to the raw configureproduct.tpl placeholder instead of loading the DID selection, regulatory, and provisioning wizard.