FFL Connect for WooCommerce

Description

Selling firearms online means every order has to ship to a Federal Firearms Licensee (FFL), not to the customer. FFL Connect adds that step to your WooCommerce checkout.

When a cart contains a product that needs an FFL transfer, the customer searches by ZIP code, sees nearby licensed dealers in a list and on a map, and picks one. The chosen dealer becomes the order’s shipping address and the dealer’s FFL number is saved on the order, so you do not have to chase customers for dealer details after they pay.

What it does

  • Adds an FFL dealer picker (ZIP code search, results list and interactive map) to the checkout.
  • Appears only when the cart contains a product that needs an FFL transfer.
  • Lets you mark products one by one (“Requires FFL transfer”) or by whole product category.
  • Sets the order’s shipping address to the chosen dealer.
  • Shows the dealer’s FFL number on the order screen and in order emails.
  • Re-checks the chosen dealer on your server before the order is accepted. If the check cannot be completed, the order is not placed.
  • Works with WooCommerce High-Performance Order Storage.

What you need

  • WooCommerce, using the classic checkout (the [woocommerce_checkout] shortcode). The dealer picker does not appear on the block-based checkout.
  • An FFL Connect API key. The plugin is free; the dealer database it searches is a paid service.

How to get an API key

  1. Go to fflconnect.net/pricing and buy an annual licence for your store. You can pay by credit card or Google Pay.
  2. Your API key and the plugin download link are emailed to you as soon as the payment goes through. The key is also shown on your order page.
  3. Paste the key into WooCommerce > FFL Connect on your site and press Test connection.

Questions about your key or licence: fflconnect.net/contact.

About the dealer data

Dealer records come from the list of active licensees published by the U.S. Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) and are refreshed monthly. Dealers known not to accept transfers are left out of results.

This plugin helps you collect a dealer for each firearm order. It does not give legal advice, and it does not replace your own compliance procedures, including obtaining a copy of the receiving dealer’s licence where the law requires it.

External services

This plugin relies on two external services.

FFL Connect API (api.fflconnect.net)

Used to find dealers and to confirm the dealer a customer selected. It is provided by Fuzzy Holdings LLC, the author of this plugin.

  • When a customer searches for dealers at checkout, your server sends the ZIP code and search radius they entered, together with your store’s API key.
  • When an order with an FFL item is placed, your server sends the selected dealer’s FFL licence number, together with your store’s API key, to confirm the dealer.
  • When you press “Test connection” on the settings page, your server sends one test search with your API key.

No customer names, addresses, emails or order contents are sent. Requests are made by your server, so your customers’ browsers do not contact this service.

Terms of Service | Privacy Policy

OpenStreetMap map tiles (tile.openstreetmap.org)

Used to draw the map in the dealer picker. When the picker is shown, the customer’s browser requests map images directly from OpenStreetMap’s servers, which means OpenStreetMap receives the customer’s IP address and the map area being viewed. The service is provided by the OpenStreetMap Foundation.

Tile usage policy | Privacy Policy

The Leaflet map library itself is bundled with the plugin and is not loaded from another site.

Screenshots

Installation

  1. Install and activate the plugin. WooCommerce must be active.
  2. Get an API key at fflconnect.net/pricing (see “How to get an API key” above). It is emailed to you right after purchase.
  3. Go to WooCommerce > FFL Connect and enter your API key. Press Save Changes, then Test connection.
  4. Tell the plugin which products need an FFL transfer: tick product categories on the same settings page, or tick Requires FFL transfer on individual products (Product data > General).
  5. Make sure your checkout page uses the [woocommerce_checkout] shortcode.
  6. Add an FFL product to your cart and open the checkout to see the dealer picker.

FAQ

Is the plugin free?

The plugin is free and open source. It needs an API key for the FFL Connect dealer database, which is a paid annual service.

Does it work with the block checkout?

No. The dealer picker is added to the classic checkout only. If your checkout page uses the Checkout block, replace it with the [woocommerce_checkout] shortcode.

What happens if a customer does not choose a dealer?

The order is not accepted. They see a message asking them to search for and select a dealer.

What happens if the dealer service cannot be reached?

Customers see a message that the search is unavailable, and orders containing FFL items are not accepted until it is back. Orders without FFL items are not affected.

Can a customer type in a dealer that is not in the results?

No. Only dealers returned by the search can be selected, and the selection is confirmed again on your server.

Where do I see the chosen dealer?

On the order screen, under the shipping address, and in order emails. The dealer’s name and address are also the order’s shipping address.

Does it support product variations?

Yes. If the product, the selected variation, or one of the product’s categories is marked as needing an FFL, the picker appears.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“FFL Connect for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1.2

  • Renamed internal function, class, constant, hook and option names from the ffl_connect_ / FFL_Connect_ prefix to fflconnect_ / FFLConnect_. WordPress.org review flagged both ffl and ffl_connect as too short and too generic to be a unique plugin prefix. Existing saved API keys are migrated automatically.

1.1.1

  • Renamed internal option, AJAX and script-data names from the gemini_ffl_ prefix to ffl_connect_, to avoid name collisions flagged in review. Existing saved API keys are migrated automatically on upgrade.

1.1.0

  • First release on WordPress.org.
  • New settings page under WooCommerce > FFL Connect with a connection test.
  • Mark whole product categories as needing an FFL transfer, in addition to individual products.
  • Dealer results are listed alphabetically.
  • The picker now inherits your theme’s colours and works on dark themes.
  • The map library is bundled with the plugin.
  • Order data is stored through WooCommerce’s order API (High-Performance Order Storage compatible).
  • The dealer’s FFL number is included in order emails.