Retail Locator
Herradura does not use Dotter. We initially found Dotter on jackdaniels.com and assumed it was a Brown-Forman-wide standard, but it isn’t. Confirmed directly with you, and confirmed independently by what we found (or didn’t find) on herradura.com itself. This page now documents both: what Herradura actually appears to use, and Dotter as a second brand’s real but different choice: useful context, not our spec.
What herradura.com actually appears to use
Every product page (e.g. /en-us/blog/product/blanco/) has a “Buy Now” button. Unlike
Jack Daniel’s, clicking it doesn’t fetch any third-party vendor script:
button markup: <div class="wp-block-button is-style-tertiary trigger-shop-assistant">
<a class="wp-block-button__link wp-element-button">Buy Now</a>
</div>
scripts already loaded on the page (not lazy-loaded on click):
https://maps.googleapis.com/maps/api/js?key={key}&libraries=markerNo href on the button: it’s a JS click handler (trigger-shop-assistant), and the
Google Maps JavaScript API is loaded upfront, not fetched on demand the way
Dotter’s script is on Jack Daniel’s site.
Confidence level: strong circumstantial evidence, not a fully verified UI. We confirmed the Maps API loads and that no third-party locator script fires on click. We were not able to get the actual “shop assistant” modal to render in our automated browser session (it may require a real user gesture or geolocation prompt our synthetic click didn’t satisfy), so we can describe the mechanism with confidence but not the exact in-widget UX. Worth a two-minute manual check in a real browser before finalizing the design.
Best read of the evidence: Herradura’s locator is a custom-built, Google Maps-based
widget: likely a WordPress plugin (possibly part of the same bfwpf- family
documented in Web Forms and
Book a Tour) that queries a retailer dataset and plots
results on a Maps AdvancedMarkerElement (the libraries=marker parameter is the
newer Google Maps marker API, not the legacy one). Not a third-party SaaS subscription
like Dotter.
What jackdaniels.com uses instead (real, but not our spec)
Documented in full detail because it’s genuinely useful as an alternative pattern, and because another Brown-Forman brand actually runs it in production:
GET https://apps.dotter.me/687a05179d87ce1d9fc7b6dc/main.jsLoaded lazily on “Buy Now” click, opens a full-screen modal. Dotter (dotter.me)
is a “Where to Buy” platform combining a physical store locator with multi-retailer
e-commerce links; their public client list includes other spirits brands. Each brand
using Dotter gets its own app ID (687a05179d87ce1d9fc7b6dc above is Jack Daniel’s
specifically).
Approach: build for Herradura’s pattern, don’t assume Dotter
Given Herradura doesn’t use Dotter, the retail-locator package should be scoped around a custom Google Maps-based locator, not a Dotter wrapper:
import { WhereToBuy } from "@brown-forman/p1-retail-locator";
<WhereToBuy retailerDataSource={process.env.NEXT_PUBLIC_RETAILER_API_URL!}>
Buy Now
</WhereToBuy>This is a meaningfully bigger build than wrapping Dotter would have been: Dotter owns the retailer dataset and pricing/availability sync as a service; a custom Maps-based locator means we’re responsible for the retailer data source (an API, a CSV import, a manual admin list, undetermined) as well as the map UI itself.
Config shape
interface RetailLocatorConfig {
googleMapsApiKey: string;
/** Where retailer data comes from. The actual mechanism is unconfirmed, see below. */
retailerDataSource: string;
mapMarkerStyle?: "brand" | "default";
}Open questions for this page now live on Outstanding Questions, tracked centrally across all pages rather than repeated per page.