Title: CloudFFL Finder for WooCommerce
Author: cloudffl
Published: <strong>November 13, 2026</strong>
Last modified: November 13, 2026

---

Search plugins

![](https://ps.w.org/cloudffl-for-woocommerce/assets/icon-256x256.png?rev=3801125)

# CloudFFL Finder for WooCommerce

 By [cloudffl](https://profiles.wordpress.org/cloudffl/)

[Download](https://downloads.wordpress.org/plugin/cloudffl-for-woocommerce.2.3.4.zip)

 * [Details](https://wordpress.org/plugins/cloudffl-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/cloudffl-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/cloudffl-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/cloudffl-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/cloudffl-for-woocommerce/)

## Description

CloudFFL Finder for WooCommerce supports dealer selection and order routing for 
products you configure as requiring an FFL transfer. It looks up dealer records 
through the CloudFFL API and records the selected dealer on the order. An active
CloudFFL API key is required for dealer search and verification. Merchants remain
responsible for determining applicable transfer, shipping, age, and other legal 
requirements; the plugin does not certify legal compliance.

The plugin is free and is developed and maintained by CloudFFL, operated by Longhorn
Web Solutions, LLC, the provider of the paid CloudFFL API service. API service charges
are billed separately by CloudFFL; there is no separate plugin license fee.

**Key Features:**

 * **Easy Setup** – Enter your CloudFFL API key and you’re ready to go
 * **Product Flagging** – Mark individual products as requiring FFL transfer
 * **Category-Level FFL** – Flag entire product categories (e.g., Firearms, Suppressors)
   to require FFL
 * **Ammunition State Restrictions** – Configure which states require FFL for ammunition
   categories
 * **Smart Cart Detection** – Automatically detects FFL items and prompts for dealer
   selection
 * **State-Based Ammo Gate** – Dynamically shows FFL finder based on shipping state
   for ammo
 * **Intuitive Dealer Search** – Search by ZIP code, city, or dealer name
 * **Interactive Map** – Optional Leaflet/OpenStreetMap integration (no API key 
   required)
 * **Order Integration** – FFL dealer info saved to orders and included in emails
 * **Admin Dashboard** – View selected dealer details on every order

**How It Works:**

 1. Mark products as “FFL Required” in the product editor, OR configure FFL-required
    categories in settings
 2. When a customer adds FFL items to their cart, they’re prompted to select a dealer
    at checkout
 3. The customer searches for nearby dealers and selects one
 4. The dealer’s address becomes the shipping address
 5. Order confirmation and admin views show the selected dealer details

**Category-Level FFL:**

For stores with large catalogs, you can flag entire categories instead of individual
products:

 1. Go to WooCommerce > CloudFFL > FFL Required Categories
 2. Select categories that contain FFL items (e.g., Firearms, Suppressors, Receivers)
 3. Any product in those categories will automatically require FFL dealer selection
 4. Child categories are automatically included when a parent is selected

**Ammunition State Restrictions:**

Configure ammunition routing according to your store requirements:

 1. Configure which product categories contain ammunition in plugin settings
 2. Select the states for which your store requires FFL shipment for ammunition
 3. When a customer ships to a restricted state with ammo in cart, they must select
    an FFL dealer
 4. Works alongside product and category flags; review these settings for your catalog
    and destinations

**Requirements:**

 * WordPress 5.8 or higher
 * WooCommerce 6.0 or higher
 * PHP 7.4 or higher
 * CloudFFL API key (create a [CloudFFL account](https://api.cloudffl.com/auth/sign-up),
   then open [API Keys](https://api.cloudffl.com/dashboard/api-keys))

### External Services

#### CloudFFL FFL API

This plugin connects from your WordPress server to https://api.cloudffl.com/api/
v1 (or the API endpoint configured by the merchant) to search for dealers and verify
a selected dealer before saving it to an order. A CloudFFL account and API key are
required; service access is governed by your CloudFFL plan.

Requests occur when a shopper or administrator searches for dealers, when a dealer
selection is verified during checkout or admin assignment, and when an administrator
clicks Test Connection. Search requests send the entered ZIP code, city/state, dealer
name or latitude/longitude, search radius, result limit and active-status filter
as applicable. Verification requests send the selected dealer ID. Test Connection
sends a fixed ZIP search (90210, radius 5, limit 1). Requests include the merchant’s
API key for authentication and ordinary server HTTP metadata, including server IP
and user agent. These API methods do not send the cart, payment details, or a complete
customer billing/shipping profile. A search ZIP or other location input may originate
from the shopper’s address.

Returned dealer identity, license and address data are used to display results and
populate order dealer/shipping details. See the [CloudFFL Terms of Service](https://www.cloudffl.com/terms/),
[FFL API Addendum](https://www.cloudffl.com/terms/ffl-api/) and [Privacy Policy](https://www.cloudffl.com/privacy/)
for the service’s policies. If you configure a different API endpoint, review that
provider’s policies too.

#### OpenStreetMap map tiles

When an enabled dealer map is displayed, the visitor’s browser requests map images
directly from tile.openstreetmap.org. Tile coordinates and zoom identify the viewed
area; requests also disclose the visitor’s IP address, browser/user agent and referrer
information as permitted by the browser/site policy. Requests continue when the 
map is panned or zoomed. This service supplies the base map; dealer records come
from CloudFFL. The plugin does not send the CloudFFL API key, order contents or 
payment data to the tile service.

Map data attribution: (c) [OpenStreetMap contributors](https://www.openstreetmap.org/copyright),
available under the Open Database License. Keep this attribution visible on maps.
Service use is subject to the [OSMF Terms of Use](https://osmfoundation.org/wiki/Terms_of_Use),
[Privacy Policy](https://osmfoundation.org/wiki/Privacy_Policy) and [Tile Usage Policy](https://operations.osmfoundation.org/policies/tiles/).
Public tile availability is not guaranteed. Disable Map View in plugin settings 
if you do not want map-tile requests.

### Source and Build Instructions

The distribution includes readable Block Checkout source in src/, Classic/admin 
source in assets/js/ and assets/css/, webpack.config.js, package.json, package-lock.
json. Development tests and release/check scripts remain in the source checkout.
BUILDING.txt describes dependency installation, asset compilation and release checks.
Leaflet 1.9.4, its readable source, source maps, images and BSD-2-Clause license
are bundled in assets/vendor/leaflet/. See THIRD-PARTY-NOTICES.txt for source provenance
and licensing.

### Copyright and License

Copyright (C) 2026 Longhorn Web Solutions, LLC. Developed under the CloudFFL brand.
Original plugin code is GPL-3.0-or-later; see COPYRIGHT.txt and LICENSE.txt. Leaflet
retains its original BSD-2-Clause license and copyright notices. Third-party provenance
and map attribution are documented in THIRD-PARTY-NOTICES.txt. The hosted API service
terms are separate from the plugin’s GPL license.

## Screenshots

[⌊Dealer search with map and selectable FFL details⌉⌊Dealer search with map and 
selectable FFL details⌉[

Dealer search with map and selectable FFL details

[⌊Selected dealer in Checkout Blocks with Change/Clear controls⌉⌊Selected dealer
in Checkout Blocks with Change/Clear controls⌉[

Selected dealer in Checkout Blocks with Change/Clear controls

[⌊Receiving dealer details in WooCommerce order administration⌉⌊Receiving dealer
details in WooCommerce order administration⌉[

Receiving dealer details in WooCommerce order administration

[⌊Search for a replacement dealer from order administration⌉⌊Search for a replacement
dealer from order administration⌉[

Search for a replacement dealer from order administration

[⌊Mark an individual product as FFL Required⌉⌊Mark an individual product as FFL 
Required⌉[

Mark an individual product as FFL Required

[⌊Configure ammunition categories and destination states⌉⌊Configure ammunition categories
and destination states⌉[

Configure ammunition categories and destination states

[⌊Storefront age confirmation prompt⌉⌊Storefront age confirmation prompt⌉[

Storefront age confirmation prompt

## Installation

 1. Install and activate WooCommerce. Obtain the installable CloudFFL release ZIP.
 2. Go to Plugins > Add New Plugin > Upload Plugin, choose the ZIP, install it, and
    activate CloudFFL Finder for WooCommerce.
 3. Create a CloudFFL account, complete account confirmation, and open API Keys in 
    the CloudFFL API dashboard. Create a key for this store and copy it when displayed.
    Key limits and API service access depend on your plan.
 4. Go to WooCommerce > CloudFFL Settings > General, paste the key, save changes, then
    click Test Connection. Keep the default API endpoint unless instructed otherwise
    by CloudFFL.
 5. Configure your FFL-required products/categories and test checkout with your shipping/
    payment configuration. Shoppers do not need a CloudFFL account or API key.

To update a direct ZIP installation, back up and test the store, upload the newer
release ZIP through the same Plugins screen, and choose Replace current with uploaded.
Do not uninstall first; uninstalling removes plugin settings. This build has no 
CloudFFL automatic updater. WordPress.org updates require an approved, published
release under the matching plugin slug.

## FAQ

### Is the plugin free?

Yes. CloudFFL provides this plugin at no additional charge. Dealer search and verification
require a paid CloudFFL API subscription and an active API key. Your API subscription
is billed by CloudFFL, separately from your WooCommerce store.

### Where do I get an API key?

Create a [CloudFFL account](https://api.cloudffl.com/auth/sign-up), complete account
confirmation, then open [API Keys](https://api.cloudffl.com/dashboard/api-keys).
Create a named key for your store and copy it when shown. API access follows your
CloudFFL plan; the plugin download does not itself activate service. Only the merchant
needs the key.

### What happens if a customer has both FFL and non-FFL items in their cart?

The plugin prevents mixed carts. Customers will see a notice explaining they need
to complete separate orders for firearms and other items.

### Does the map require a Google Maps API key?

No Google Maps key is needed. Leaflet is bundled locally; OpenStreetMap supplies
map tiles subject to its usage policy and availability. See External Services below.

### Can I customize the dealer search radius?

Yes, you can set a default search radius (10, 25, 50, or 100 miles) in the plugin
settings. Customers can also adjust the radius when searching.

### Is this plugin compatible with WooCommerce High-Performance Order Storage (HPOS)?

The plugin declares HPOS compatibility and uses WooCommerce order CRUD APIs. Validate
your store and extension combination before deployment.

### Does this work with variable products?

Yes, the “FFL Required” setting works with simple, variable, and grouped products.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

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

Contributors

 *   [ cloudffl ](https://profiles.wordpress.org/cloudffl/)

[Translate “CloudFFL Finder for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/cloudffl-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/cloudffl-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/cloudffl-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/cloudffl-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/cloudffl-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.3.4

 * Preserve checkout completion when billing names are entered after selecting a
   dealer.
 * Package the WordPress.org enqueue corrections for renewed checkout regression
   testing.

#### 2.3.3

 * Load order license-copy behavior and status styles through WordPress enqueue 
   hooks.
 * Use HTML template elements for Classic Checkout dealer markup.

#### 2.3.2

 * Honor Session only age verification with a session cookie, including cookies 
   from the previous release.
 * Keep 7, 30 and 90 day cookie lifetimes and stop stale tab storage from bypassing
   expiration.
 * Keep age confirmation working when Web Storage is blocked and restrict cross-
   tab messages to age-gate notifications.

#### 2.3.1

 * Keep dealer markers visible when switching from Classic search results to the
   map or reopening it.
 * Accept compact ZIP+4 dealer addresses while rejecting changed destination digits,
   and show specific admin verification errors.
 * Preserve quoted dealer-address JSON in HPOS compatibility copies without changing
   order payment state.
 * Wrap long dealer text and keep shipping controls within narrow checkout layouts.
 * Accept equivalent typographic quotes introduced by WooCommerce address formatting
   while rejecting substantive destination changes.
 * Keep ammunition dealer choices visible after reload and verify selected dealers
   across state changes.
 * Accept valid API expiration timestamps and reject malformed success responses.
 * Preserve gateway payment state and stock handling while holding paid orders that
   still need a dealer.
 * Preserve purchaser names and saved personal addresses; verify the dealer destination
   before accepting checkout totals.
 * Restore checkout selection controls and original shipping across reload, clear
   and pick-later transitions.
 * Render dealer text safely in lists and maps and improve Classic dialog keyboard
   handling.
 * Bundle Leaflet locally with readable source and licensing
 * Include plugin source, dependency manifests and build instructions in distribution
 * Add explicit external-service data, terms and privacy disclosures
 * Require consistent versions and passing lint, focused PHP tests and frontend 
   tests before packaging

#### 2.3.0

 * Security: Verify every checkout dealer selection with CloudFFL before saving 
   dealer metadata or FFL shipping details
 * Security: Ignore browser-provided dealer identity, license, phone, and address
   fields in Classic and Block Checkout
 * Security: Reject mismatched, inactive, expired, incomplete, unknown, or unavailable
   dealer records without silently selecting “Pick FFL Later”
 * Added: Private verification status, timestamp, source, eligibility, and expiration
   audit metadata
 * Improved: Preserve the authenticated seven-key WooCommerce REST metadata contract
   for the Odoo connector
 * Improved: Use one HPOS-compatible WC_Order CRUD path for Classic, Blocks, session,
   and admin dealer assignment

#### 2.2.0

 * Added: Category-level FFL flagging feature
 * Added: Configure product categories that always require FFL transfer
 * Added: Child category inheritance for FFL categories
 * Improved: Any product in an FFL-required category triggers FFL finder
 * Improved: Mixed cart detection includes category-level FFL items

#### 2.1.0

 * Added: Ammunition state restrictions feature
 * Added: Configure product categories as ammunition
 * Added: Select states that require FFL for ammunition shipments
 * Added: Dynamic FFL finder visibility based on shipping state
 * Added: State detection for both classic and block checkout
 * Added: Child category inheritance for ammo categories
 * Improved: Validation messages for ammo-specific FFL requirements
 * Improved: Admin settings with multi-select category and state pickers

#### 1.0.0

 * Initial release
 * FFL dealer search via CloudFFL API
 * Product meta for FFL Required flag
 * Mixed cart detection and blocking
 * Checkout integration with dealer selection
 * Leaflet/OpenStreetMap integration
 * Order meta and email integration
 * Admin order view with dealer details
 * Bulk and quick edit support for products
 * CSV import/export support

## Meta

 *  Version **2.3.4**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [FFL](https://wordpress.org/plugins/tags/ffl/)[firearms](https://wordpress.org/plugins/tags/firearms/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/cloudffl-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/cloudffl-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/cloudffl-for-woocommerce/reviews/)

## Contributors

 *   [ cloudffl ](https://profiles.wordpress.org/cloudffl/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/cloudffl-for-woocommerce/)