Shahid Malla

WHMCS Order Form Templates Compared

WHMCS ships 7 order-form templates. Which to use per product type, how to mix across product groups, and the conversion optimizations that actually move the needle.

S Shahid Malla
· Feb 5, 2026 · 5 min read · 91 views
shahidmalla.com/blog/whmcs-order-form-templates-compared
WHMCS Order Form Templates Compared
On this page (15 sections)

WHMCS ships seven different order-form templates, and most operators don't realize they can mix and match across product groups. The right form for your VPS pricing isn't the right form for your shared hosting plans, and using one template for everything is leaving conversion on the table.

This is the field guide to picking — and customizing — the right order form per product type.

The 7 order forms WHMCS ships

TemplateBest forNotes
standard_cartDefault. Single-product carts with optional add-ons.Reliable, well-tested, plain.
premium_comparisonTiered plans (Starter/Pro/Enterprise).Side-by-side feature comparison drives upsell.
modernOne-product flows (e.g., a single managed-hosting plan).Card-style, fewer fields visible per step.
boxesSmall catalogs (3-6 products) at a glance.Grid layout. Less polished than premium_comparison.
cart (legacy)Avoid.Older WHMCS versions only. Don't use on current.
verticalstepsDomain-first flows.Walks customer step by step: domain → plan → payment.
web20cartDeprecated, but you may see it on old installs.Replace with standard_cart on legacy installs.

How templates attach to product groups

WHMCS lets you assign a different order-form template per product group:

  1. Setup → Products/Services → Product Groups → edit a group → Order Form Template.
  2. Pick the template you want for this group.
  3. Save. Customers buying from this group see your chosen template.

This means you can use premium_comparison for hosting plans (side-by-side upsell) and standard_cart for SSL certificates (single product, just buy it). One install, multiple forms, no conflict.

Which form to pick by product type

You sellUse this formWhy
Shared hosting (tiered plans)premium_comparisonSide-by-side comparison drives upsell to mid/high tier.
Single managed planmodernOne-product flow, simpler UI.
VPS / cloud serverspremium_comparisonCustomers compare specs across tiers.
Domain resellerverticalstepsDomain-first flow matches the customer's mental model.
SSL certificatesstandard_cartDirect purchase, no comparison needed.
Software licensesstandard_cart or boxesDepends on count of license types.
Addons / extrasstandard_cartBolt-on purchases for existing customers.

Step-by-step — customizing one

Order form templates live in /templates/orderforms/. Each is a folder with its own templates and CSS. Don't edit them directly — clone first.

cd /path/to/whmcs/templates/orderforms
cp -r premium_comparison premium_comparison_brand

Then edit premium_comparison_brand/ to taste. Assign the cloned template to your product group.

The files that matter:

  • products.tpl — the plan-listing / comparison view.
  • configureproduct.tpl — the configure step (billing cycle, add-ons).
  • viewcart.tpl — the cart review before payment.
  • checkout.tpl — payment + customer details.
  • style.css — the form's CSS.

Step 5 — Conversion optimization (where to actually move the needle)

The default forms are functional. The wins come from these specific changes:

1. Reduce required fields at checkout

Every required field is a drop-off point. Audit Setup → General Settings → Order → Required Client Profile Fields. Are you really requiring company name and phone number? For low-friction sales: name, email, country are usually enough. Collect the rest later.

2. Show trust signals near the pay button

Logos of payment gateways accepted. SSL padlock icon. "Money-back guarantee" badge. These directly affect conversion rate, especially for first-time buyers.

3. Show pricing summary persistently

On longer flows, show a sticky cart summary so customers don't lose track of what they're buying. premium_comparison does this; verticalsteps doesn't by default — add a sticky element if you customize.

4. Pre-fill country based on IP

Use a free GeoIP service (or Cloudflare's CF-IPCountry header if you're behind Cloudflare). Pre-fill the country dropdown. Customers feel "this site knows me."

5. Skip the configure step for single-tier products

If a product has only one billing cycle and no configurable options, WHMCS still shows a configure step by default. Patch your template to skip it when nothing's configurable — straight to cart.

The domain step — what to do

By default, hosting orders prompt for a domain. Options:

  • Require domain: customer must select / register / transfer / "I will provide later." Highest friction.
  • Optional: customer can skip. Better conversion; some customers buy hosting without picking a domain.
  • Hidden: WHMCS auto-generates a placeholder. Only use for products that don't need a domain (SaaS licenses, etc.).

Configure per product: Setup → Products/Services → Products → edit → Pricing tab → Require Domain.

How to verify your order form works

  1. Place a real test order from each product group.
  2. Test on phone, tablet, desktop.
  3. Test signed in (existing customer) and signed out (new customer).
  4. Try every payment gateway.
  5. Try with a discount code, a free domain, an upsell add-on.
  6. Measure conversion before/after changes (UTM tracking through GA4 — see my GA4 guide).

Common pitfalls

"Custom order form broke after WHMCS upgrade." You modified a built-in form directly. Always clone first.

"Configurable options don't show on the form." The options group isn't assigned to the product. Configurable Options → edit group → check the product.

"Payment gateways missing from checkout." Either the gateway is inactive, or the gateway-specific currency doesn't match the order currency. Check both.

"Customer email validation rejects valid addresses." WHMCS validates email format strictly. Modern email addresses (e.g., addresses with subdomains, plus-signs) sometimes fail. Verify your regex in /includes/clientfunctions.php or, better, disable strict validation if it's causing friction.

My take — pick by use case, not by aesthetic

I see operators pick the prettiest-looking order form and live with bad conversion. The right form is the one that matches how your customers actually decide:

  • Comparing tiers → premium_comparison.
  • Just buying a thing → standard_cart or modern.
  • Domain first → verticalsteps.

Don't try to be clever. Match the form to the decision.

Going further


I A/B test and customize WHMCS order forms for hosting businesses — picking the right template, conversion-rate optimization, payment-gateway selector design. Tell me your conversion target and I'll send a quote in 24 hours.

Share this article

S

Written by

Shahid Malla

WHMCS expert, full-stack developer, technical lead at Fada.cloud. 10+ years building hosting platforms, custom modules, and automation that ships.

Trusted platforms

Prefer to hire through a platform?

Not sure about working directly? Hire me through Fiverr or Upwork instead - same me, same work, with the platform's buyer protection and escrow.

Got a project like this?

Tell me what you need - I'll send a real quote within 24 hours.