Magento for alcohol and spirits brands: age checks, state shipping rules and wine clubs
I build Magento for alcohol and spirits brands that ship direct to the drinker, and most of the work sits behind the checkout button. A case of wine can go to most US states. A bottle of whiskey can go to only a few. Every order needs an age check online and an adult signature at the door, and each state then wants its own tax return. I set Magento up to refuse the orders it should not take, while the rules themselves come from your compliance advisor.
- Age verification at checkout, with the result saved on the order
- Ship-to rules by state and by product type: wine, spirits, beer
- Wine club releases that pass the same checks as any other order
Selling alcohol online: the four rules that shape the store
A clothing store can go live with a payment method and a flat shipping rate. An alcohol store has to know who is buying, where the box is going and what the carrier will accept, all before it takes any money.
-
Age 21+ Checked twice, not once
An alcohol order in the US is checked at two points. Online, before the sale, the buyer’s details are compared with identity data. At the door, the carrier asks for an adult signature from someone 21 or older. Magento has nothing built in for the first part, and the second part is a carrier setting that has to be on every alcohol label.
-
By state Wine travels further than spirits
Most states let a winery holding their direct shipper permit sell to residents. Spirits and beer can go direct to consumers in far fewer places. On top of that, each state has its own permit, its own tax return and often a cap on how much one person may receive. Whether an order can ship depends on what is in the box as much as where it is going.
-
No USPS Only licensed carrier accounts
USPS does not carry alcohol. UPS and FedEx do, but only for licensed shippers that have signed an alcohol shipping agreement with them, and those packages need the adult signature service. So the shipping methods Magento shows at checkout have to match what your carrier contract actually allows.
-
Clubs Members pay per release
A wine club is not a fixed monthly box. Members are charged when a release ships, the bottles change each time, and some members want to swap or skip. Magento Open Source has no subscriptions at all, so a club runs on an extension or a club platform connected to Magento, and every release produces a list of declined cards to chase.
What I add to Magento for a wine, beer or spirits store
These are the six parts I would scope first. A few are settings, most are custom code or a connected service, and each card says which. Permits and licensing stay with you and your lawyer.
-
Age verification that leaves a record
I connect an age verification service to checkout so name, date of birth and address are checked before payment is taken. If the check fails, the buyer can upload a photo ID and the order waits for a person to review it. The result and the time of the check are stored on the order, which is what you want in hand if a state or your carrier asks how a sale was verified. Club members are checked once at sign-up, not on every release.
-
Who can buy what, by address
Each product gets a type attribute (wine, spirits, beer, cider) and I add a rules table per state: which types may ship there and how much one person may receive. Checkout compares the cart with the shipping address and tells the customer what cannot go to their state before they pay. Open Source has nothing like this, so it is a custom module, or I connect a compliance service such as Sovos ShipCompliant that already tracks the rules. The list of states comes from your permits and your compliance advisor.
-
Excise figures and state returns
Magento’s tax rules handle sales tax well, as a percentage per region. Excise works differently: states usually charge it per gallon, at a rate that depends on the product type and sometimes on alcohol content. I store bottle size and ABV on every product, so the report for each state can show volume shipped by type and the excise due. Your accountant still files the returns. The store just gives them numbers they can trust.
-
Carrier labels and adult signature
Once your UPS or FedEx alcohol agreement is in place, I set up the shipping integration so every alcohol package is sent with the adult signature service and the alcohol flag the carrier expects. States you cannot ship to get no rate at all. Heat is hard on wine in summer, so I often add a “hold until cooler weather” choice and an ice pack as a small virtual product. For pickup at your tasting room, the in-store pickup method that comes with MSI works with the room set up as a source.
-
Club tiers and release runs
A club needs member tiers, a release that creates orders for every active member in one run, and a way for members to customize or skip before the run. I build that on a subscription extension or connect the club platform you already use, keeping Magento as the place orders and stock live. Every release order is a normal Magento order, so the age record, the state rules and the tax report all apply. Failed payments land in a list for your team, and the member gets an email asking for a new card.
-
Trade buyers and the three-tier system
Outside direct shipping, most US alcohol moves through three tiers: producer, distributor, retailer. Licensed distributors and retailers get their own customer group with case pricing through tier prices, and their license is checked before the account is approved. Open Source shows every payment method to everyone, so I add a small plugin that limits invoice terms to trade buyers. Your TTB label approval (COLA) and permit numbers can sit on each product as attributes, ready for an audit.
Your quote
Get a fixed quote for your project
Send your store URL and describe what you want to change. We can review the requirements and agree a written scope, quote and timeline before work starts.
- Free first call
- Written scope, price and timeline
- You approve every change
Five steps from compliance audit to live alcohol DTC
Audit → plan → build → deploy → stabilise. Tuned for alcohol’s compliance cadence: quarterly state-law updates, monthly carrier-rejection analysis, annual ABC renewals. Optional ongoing retainer for state-law monitoring + carrier ops.
-
01
Audit
ABC licensure per state (which states do you have DTC license? which do you ship to without one?), current age-gate vendor + audit log, shipping carrier mix (FedEx vs UPS vs local fulfillment), subscription provider + churn rate, three-tier role (producer / distributor / retailer / hybrid), TTB COLA coverage per SKU. 1 week.
Compliance gaps + risk map -
02
Plan
State shipping matrix lock-down (per-product overrides for beer / wine / spirits), age-gate vendor pick (Veratad vs AgeChecker.net vs Jumio by budget + UX), carrier policy (FedEx Adult Sig vs UPS Adult Sig vs Drizly partnership for last-mile), subscription provider pick (ReCharge vs Bold vs Skio), COLA/ABC dashboard scope. Written spec + Gantt.
Locked compliance plan -
03
Build
Catalog (with COLA + ABC attrs) + 21+ age-gate at checkout + state matrix at add-to-cart + FedEx/UPS Adult Sig carrier integration + ReCharge for subs + Drizly-style local-fulfillment routing + Hyvä storefront. Test fixtures for every shippable state. Built in 6-12 weeks depending on scope. Mock under-21 + banned-state QA every Friday before go-live.
Build + UAT -
04
Deploy
Blue-green deploy with age-gate smoke test, mock under-21 block, state-matrix QA across all 50 states (50 test orders with state-specific ZIPs), Adult Sig carrier integration verified with FedEx + UPS test labels, subscription billing dry-run. War room for the first 48h. Cutover usually mid-week to leave Friday for support.
Live + verified -
05
Stabilise
Quarterly state-law update (states amend DTC alcohol law 2-4 times/yr; I monitor and patch the matrix). Monthly carrier-rejection analysis (which states reject most often, which SKUs over-index). Subscription churn monitoring. ABC license renewal reminders 60 days out. Optional ongoing retainer ($2k to $6k/mo) including state-law monitoring + carrier ops.
Compliant + iterating
Free extensions that fit an alcohol and spirits store
Open source under MIT. Hyvä and Luma, Magento 2.4.4 to 2.4.9.
-
Downloadable files on the product page: manuals, data sheets, certificates.Product Attachments for Magento 2
Free -
Question and answer pages with FAQPage schema.FAQ Extension for Magento 2
Free -
Checks the postcode at checkout before you promise delivery.ZIP/PIN Code Validation at Checkout for Magento 2
Free -
Low stock warnings and back in stock emails.Low Stock & Back-in-Stock Alerts for Magento 2
Free
What clients say about working with me
Public reviews on Upwork. Same person and the same $25/hr rate for every client.
Magento work and feedback View Upwork profile
-
Sports footwear and hockey shop, Netherlands -
Photo printing supplies wholesaler, Netherlands -
Educational toys and books shop
-
Kishan has done an excellent job in a timely manner. He is very knowledgeable, has a very positive attitude, easy to communicate.
Z. K.Magento 2 client -
He is technically strong, approaches problems thoughtfully, and focuses on stable, long-term solutions.
E. H.Magento 2 client -
Kishan was a pleasure to work with! He is highly skilled, professional, and delivered outstanding results on time.
M.Magento 2 client
- Working with alcohol brands in
- United States
- United Kingdom
- Canada
- Australia
- Germany
- France
- Netherlands
- India
Twelve questions alcohol DTC founders actually ask
Book a free 30-min alcohol-Magento consultation
Tell me your category (wine / spirits / beer / RTD), states where you have DTC license, and your main pain (age-gate / state ban / TTB COLA / sub provider / Drizly). I’ll send a written platform-fit recommendation within 24 hours and include a 30-min calendar link if a call would help. No upsell.
Message me on WhatsApp
No form to fill. Send me a quick message. I reply during 10 AM to 7 PM IST, Monday to Saturday.
Helpful to mention
- Current platform
- Store URL
- Annual GMV (USD)
- Alcohol category
- Compliance focus
- Main pain / why you’re looking at Magento
These are already in the message for you. Just add your answers.
Message me on WhatsAppOr save my number: +91 84012 70422