Troubleshooting Free Domains
If you're expecting to order a free domain alongside a product, but upon reaching the checkout page the domain is charged at a full price, read on.
Navigate to Configuration > System Settings > Products/Services (prior to WHMCS 8.0, Setup > Products/Services > Products/Services).
Click the Edit icon next to the product in question

Click the Pricing tab (1) and take note of the Payment Type (2) and prices configured there (3)
In this example the product is configured with a recurring price on Monthly and Annual billing cycles.
Now click the Free Domain tab
Make sure the Free Domain Payment Terms selected match those from the Pricing tab.

The above screenshot shows an incorrect configuration.
The free domain is offered when the product is purchased on a One-Time billing cycle, but the product is configured with Monthly and Annual billing cycles, so the free domain terms will never be met.

The above screenshot shows a correct configuration
If the product is ordered on a Monthly or Annual billing cycle, any .com domains will be offered for free.