# WHMCS product mappings

Map WHMCS products (`servertype=hexagamecloud`) to GameCloud plan slugs without relying on product config option text fields alone.

## Addon UI

**Addons → HexaHost GameCloud → Mappings**

1. Select a WHMCS product
2. Choose a GameCloud plan from the live catalog (`GET /catalog/plans`)
3. Set default Minecraft version and software family
4. Save — validated via `POST /catalog/validate-plan`

Mappings are stored in `mod_hexagamecloud_product_mappings`.

## Server module behavior

On `CreateAccount` and `ChangePackage`, the provisioning module resolves:

- `planSlug` from mapping table (active row) or falls back to config option 1
- `minecraftVersion` / `softwareFamily` from mapping defaults or config options

Shared resolver: `integrations/whmcs/lib/ProductMapping.php`

## Dry-run validation

Before saving, the addon calls GameCloud to ensure the plan slug exists and is active. Invalid slugs are rejected — WHMCS product names alone are never used for mapping keys.

## Import / export

Mappings are WHMCS-local. Export the `mod_hexagamecloud_product_mappings` table for backup when migrating WHMCS hosts.
