FluxBilling
Settings

Domain Search Widget

Embed a domain search box on your own website so visitors can check availability, see your prices and start a registration in your client portal.

Updated · 2026-09-03

What the Domain Search Widget does

The Domain Search Widget is a search box you drop into your own website. A visitor types a name, presses Search, and sees a row for each domain extension you sell — whether the name is free, what you charge for it, and a Register button. Clicking Register takes them into your customer portal with the domain already filled in, ready to add to the basket and check out.

Everything the widget reports comes from your own installation: the extensions are the domain products you have created, the prices are the prices on those products, and each availability check is run through the registrar connection those products use. There is nothing to keep in step by hand — change a price on the product and the widget quotes the new one.

How to reach it

In the admin panel go to Settings, open the Integrations group and click Domain Search Widget. The tab sits next to Plugins and AI.

This tab has no fields to fill in and no save button. It reports what you currently offer and hands you the code to paste. All of the configuration lives on your products.

Before it will show anything: sell at least one extension

The widget only offers extensions that exist as products. For each one you want to sell:

  1. Go to Products and create a product for that extension — one product per extension, for example one for .com and another for .net.
  2. Set its provisioning service to your domain registrar plugin. This is the connection that answers availability questions and registers the name; see Managing Plugins.
  3. Fill in the extension (TLD) field the plugin adds to the product, without a leading dot.
  4. Give the product a price. The widget quotes the annual price where there is one, and falls back to the monthly price otherwise.
  5. Leave the product active.

At the top of the tab you will then see a green banner reading Currently offered: followed by every extension the widget will search, for example .com .net .org.

Until at least one such product exists, the banner is amber instead and explains that no domain products are configured yet, that the widget will stay hidden on your site, and what to create. It carries an Open Products link straight to the products page.

Note: a widget with nothing to offer removes itself from the page rather than showing an empty box. If you have pasted the code and see nothing on your site, check this banner first.

Putting it on your website

The Embed Code card holds a ready-made snippet already pointing at your own installation, with a copy button. Copy it from there — the address is specific to you. The snippet is two lines: an empty container element with the id fb-domain-search, and a script tag that fills it in.

  1. Copy the snippet.
  2. Paste it into the page where the search box should appear — a home page hero, a dedicated domains page, a sidebar. The widget renders inside the container, exactly where you put it.
  3. Save and reload your page. The search bar appears and adapts to the width of whatever surrounds it.

The widget draws itself in an isolated container, so your site's stylesheet cannot distort it and it cannot leak styles into your site. That is also why it does not inherit your fonts and colours automatically — use the accent attribute below to match your brand.

Optional customisation

The Optional Customization card lists four attributes you can add to the script tag.

Attributes you can add to the embed snippet
AttributeWhat it does
data-targetA CSS selector for the container to render into, if you do not want to use the supplied fb-domain-search container. Default: #fb-domain-search.
data-accentAccent colour for the search button and the input's focus ring. Default: #0891b2.
data-placeholderPlaceholder text inside the search input. Defaults to a prompt to find a domain.
data-buttonLabel on the search button. Defaults to Search.

Tip: if the container id clashes with something on your page, keep your own element and point data-target at it instead. The widget will use the first element the selector matches, and falls back to inserting itself where the script tag sits if it finds nothing.

How a search behaves

What the visitor types decides what is checked:

  • A bare name such as mycompany is checked against every extension you offer.
  • A full domain such as mycompany.com is checked against that one extension only.
  • A leading www. is stripped, and case is ignored.
  • Names that are not valid domain labels are refused before any lookup is attempted.

At most ten extensions are checked in a single search, so a very long extension list is truncated rather than sending a burst of lookups to your registrar. Each row then shows one of three results:

Available
Free to register. The row shows your price with the currency symbol of your base currency, a /yr or /mo suffix, and a green Register button.
Taken
Already registered. No price and no button.
Could not check
Your registrar connection did not give a usable answer for that extension — it was unreachable, it refused the request, or that product's plugin does not answer availability questions. The other extensions in the same search are unaffected.

Availability checks are rate limited per visitor address, at roughly thirty checks a minute. A visitor who goes past it sees “Too many checks — please wait a minute.” A failed request shows “Something went wrong — please try again.”

What happens when a visitor clicks Register

The widget does not take orders itself. Register hands the visitor to your customer portal's Domain Names page with the chosen domain carried across, and the check is re-run there immediately so the visitor sees a confirmed result rather than a stale one. From there the ordinary ordering flow applies:

  • For an annually priced extension, a Registration period selector lets the customer choose how many years; the price multiplies accordingly.
  • Add to Cart puts the registration in the basket, which then shows In cart.
  • Transfer In is offered as an alternative for a name that is already registered. The customer supplies the EPP/authorisation code from their current registrar; the portal explains that the domain must be unlocked first, that transfers usually take five to seven days, and that a transfer includes one year of renewal.
  • Go to Checkout completes the order in the normal way — see Placing an Order.

A visitor does not need an account to get that far: the domain pages and the basket are open to guests, and details are collected at checkout like any other order. Customers can also reach the same page directly from the order pages in the portal, so the widget is a shortcut into an existing flow rather than a separate sales channel.

Keeping it accurate

  • Prices. Change the price on the product; the widget picks it up within a minute. It always shows the annual price if the product has one.
  • Currency. Prices are shown in your base currency with its symbol, positioned as you have configured it in Billing settings.
  • Adding an extension. Create the product; it joins the offered list automatically, on your site as well as in the portal.
  • Withdrawing an extension. Deactivate or archive the product. It leaves the offered list and stops being searched.

What can go wrong

Nothing renders on my page
The usual cause is that you offer no extensions: check the banner at the top of the tab, because the widget removes itself from the page in that case. Otherwise confirm the snippet is really in the page you are viewing and that nothing on your site is blocking it. A missing container is not a cause — when the supplied container is absent the widget inserts itself where the script tag sits.
Every row says “Could not check”
The registrar connection behind those products is not answering. Open the plugin on the Plugins tab, check its status is active and its credentials are still valid, and test the connection there.
One extension is missing from the results
That product is inactive, has no extension set, or its provisioning service is not a domain registrar connection. A product without an extension is not offered through domain search at all.
The price on my site differs from the checkout price
The widget quotes the product's base price. Anything applied later — tax, a discount code, a multi-year period — is calculated at checkout, so a difference here is expected. See Billing settings for how tax is presented.
The search box does not match my site's design
Set data-accent to your brand colour and, if useful, data-placeholder and data-button. The widget is deliberately isolated from your stylesheet, so those attributes are the way to restyle it.
Visitors report being blocked
Several people behind one office connection share the same rate-limit allowance for availability checks. The limit resets within a minute.

Related articles

Products · Product Categories · Managing Plugins · Placing an Order · Billing · Live Chat