Jul 17, 2026
13 min read
WooCommerce Wine and Spirits Compliance and Subscriptions Without Shopify Apps
Running a Wine or Spirits Subscription on WooCommerce?
If your compliance checks stop at signup and your renewals just keep firing, that gap gets built once, not patched every time it breaks.
See How We HelpA customer joins your wine club in February. She’s in California, she confirms her age, her ID checks out, and the order goes through clean. In June, her card charges again for the quarterly shipment. Nobody asks her age this time. Nobody asks where she lives now.
She moved to Utah in April.
Utah restricts direct-to-consumer wine shipments heavily, and your February compliance check has nothing to say about that, because it already did its job and closed the file. The renewal fired on schedule. The label printed.
The carrier picked it up. Somewhere between your merchant account and a doorstep in Salt Lake City, a shipment that should never have happened did.
This isn’t a story about a customer lying or a plugin malfunctioning. Every piece of software involved did exactly what it was built to do. The problem is what none of them were built to do: check again.
Alcohol Shipping Compliance, In Plain Terms
Alcohol is one of the only product categories in the United States regulated at the state level instead of the platform level. A t-shirt store follows the same rules in Idaho as it does in Georgia. A wine store doesn’t.
That’s a legacy of the three-tier system, put in place after Prohibition, which requires alcohol to move from producer to distributor to retailer through licensed channels. Direct-to-consumer shipping exists as a set of state-by-state exceptions carved into that system, not as a default right. Every state sets its own rules for who can ship what, how much, and to whom.
A few realities that shape almost every build decision in this category:
- Reciprocity varies – Some states allow shipments from any licensed out-of-state winery. Others only allow it from states that extend the same courtesy back. A handful don’t allow direct shipping at all.
- Spirits face tighter restrictions than wine in most states – A compliance setup built around wine shipping rules will usually undercount the restrictions that apply to spirits.
- Carriers add their own layer on top of state law – UPS and FedEx both require adult signature on alcohol shipments, and USPS won’t carry alcohol at all, which rules out one of the cheapest shipping options in the country before compliance even enters the picture.
- Permits aren’t a one-time purchase – Most states that allow direct shipping require an active permit, often renewed annually, and some cap the total volume a business can ship into that state per year.
None of this is legal advice, and it shouldn’t be treated as a complete list of what applies to your business. Alcohol shipping law changes by state, sometimes mid-year, and the right move before launching or scaling a subscription is confirming current requirements with a licensed alcohol compliance attorney or a compliance platform built for the category, like Sovos ShipCompliant.
Running a WooCommerce alcohol subscription means carrying this regulatory weight on top of everything a normal food and beverage subscription business already has to manage: perishability, batch timing, and shipping cost. Alcohol just adds a legal dimension none of those other categories deal with.
Do You Need a License to Sell Wine Online?
Yes, in nearly every case. Selling wine or spirits online requires the same underlying licensing as selling it in person, plus a direct-shipping permit in each state you plan to ship into. The specific license depends on whether you’re a producer, a retailer, or a marketplace reselling on behalf of others, and requirements differ enough by state that a blanket answer isn’t safe to build a business on. Confirming your specific licensing path with a compliance attorney before your first sale is worth the cost of the conversation.
Why Age Verification Doesn’t Survive a Subscription Renewal
Every age-verification plugin on the market solves the same narrow moment: someone lands on your site, confirms they’re 21 or older, and the plugin lets the sale continue. Tools like Age Verification Manager and Token of Trust are genuinely good at this. That’s also the entire scope of what they do.
Most of them aren’t built to ask the question again automatically, tied to a billing cycle or an address change. Age Verification Manager is a partial exception: it has a policy-versioning feature that lets an admin force everyone to re-verify after a legal change. That’s a manual, global reset someone has to remember to trigger, not a check that runs itself against one subscriber’s renewal date or new address.
A subscription isn’t one transaction. It’s a standing agreement to bill and ship on a recurring schedule, and the compliance status you confirmed at signup has a shelf life. Addresses change, and state laws change.
In some states, the permitted volume you can legally ship to one household resets or caps out over a rolling period. That means a subscriber who’s been compliant for a year can become non-compliant on their next renewal without anyone doing anything wrong.
Does age verification work on subscription renewals? Not by default. Most age-gate tools run once, at the transaction where they’re installed, and a recurring subscription charge typically doesn’t route back through that same checkout flow. The verification that protected your first sale usually has no mechanism to protect your fifteenth.
What happens when a wine subscriber moves states isn’t a hypothetical edge case for a business running hundreds or thousands of renewals a month. It’s a statistical certainty. The only real question is whether your system catches it before the label prints or after a compliance officer finds it in an audit.
Where WooCommerce’s Wine Club Plugins and Compliance Plugins Stop Talking to Each Other
Search for wine club WooCommerce plugin options and you’ll find a genuinely mature ecosystem. Wine Club Plugin, built by Limantour, and WP Club Connect both handle the operational side of running a club well: skip-a-shipment options, local pickup alongside standard delivery, batch processing hundreds of orders at once, and member-only pricing.
Limantour’s own product page is candid about why the plugin exists at all: their team tried running a winery’s subscription on WooCommerce’s standard subscription tooling first and found it missing features wineries actually need. That’s a fair assessment, and it points at something worth noticing.
What they identified and built for was operational, not regulatory. Skip shipments, yes. Re-check a subscriber’s shipping eligibility before that skipped shipment resumes, no.
Compliance plugins sit on the opposite side of the same gap. They handle the age-gate and, in some cases, a state-blocklist at checkout. What they don’t do is watch a subscription over its lifetime.
Stack the two together and you get a wine club WooCommerce setup with a working club and a working age gate that have never been introduced to each other. That’s the real shape of most wine club WooCommerce plugin limitations: not that either plugin is broken, but that woocommerce wine club compliance was never either one’s job.
When renewal logic and compliance logic don’t share data, nothing crashes. A shipment just goes out clean on your dashboard and non-compliant in the real world, and the same disconnect shows up outside alcohol too. Pet food subscriptions hit a version of it: weight-based pricing and life-stage routing that standard Shopify subscription apps were never built to handle, for reasons that have nothing to do with either app being poorly made.
Closing a mismatch like this isn’t a plugin decision. It’s a build decision: the logic needs to check a subscriber’s compliance status at every billing cycle, not just at signup. That’s the same problem brands run into once they outgrow Recharge and Appstle, regardless of what they’re actually selling.
Shopify’s Alcohol Compliance Apps: What They Get Right and Where They Stop
It would be easy, and inaccurate, to claim Shopify has no answer for alcohol compliance. It does, and parts of it are genuinely strong.
CrushSuite was built specifically for wineries selling direct-to-consumer on Shopify, handling state-by-state shipping restrictions, compliance fees, and age verification inside native checkout. Drinks Assure does something similar: it blocks non-compliant orders before checkout completes, enforces volume limits, and runs without needing a developer to configure. Both are legitimate, well-built tools, and for a business selling one-time orders, either can be a complete solution.
The shopify vs woocommerce alcohol question isn’t really about which platform is more capable. It’s about what kind of transaction each compliance tool was designed to protect. CrushSuite and Drinks Assure, like the WooCommerce age-gate plugins, are architected around a single checkout event. They evaluate an order the moment it’s placed. Neither one was built to reach back into a subscription three renewals later and ask whether the answer it gave in January still holds in July.
A shopify alcohol compliance app doing exactly what it was designed to do isn’t the failure point. The failure point is assuming that design covers a recurring relationship, when it was built for a single moment inside one.
Is there a crushsuite alternative or a drinks assure limitation worth knowing before you commit to either? Only if your business runs subscriptions. For single-purchase wine or spirits sales, both tools do their job well.
For a wine club or a recurring spirits box, the gap opens at renewal, and neither app’s settings panel has a toggle for it. That’s why sell wine on shopify vs woocommerce increasingly comes down to whether you need code-level access to close it, not which platform “supports alcohol” in the abstract.
Can a subscription be blocked for shipping compliance on either platform? Technically, yes, if you build the logic to check for it. Out of the box, on either Shopify or WooCommerce, the answer is no.
Building WooCommerce Compliance Into Every Wine Subscription Renewal
If the problem is that nothing re-checks compliance at renewal, the fix is specific: build a renewal that re-checks compliance. That sounds obvious stated plainly, and it’s exactly what’s missing from every plugin, app, and out-of-box subscription tool covered so far.
- Re-run the eligibility check at every billing cycle, not just at signup – The address on file, the state’s current reciprocity status, and the subscriber’s remaining allowable shipment volume for that state should all get evaluated fresh, immediately before a renewal charges. This is a straightforward integration between your subscription logic and a compliance data source, and it’s the single highest-leverage fix in this entire category.
- Decide what happens when a renewal fails that check, before it happens – Three outcomes are realistic: hold the order and notify the subscriber, cancel the specific shipment while keeping the subscription active, or flag it for a human to review manually. Which one is right depends on your risk tolerance and your team’s capacity to handle exceptions, but the decision needs to exist in your system logic, not get improvised the first time it happens.
- Tie policy versioning to individual renewal dates, not a global reset – Some age-gate tools, like Age Verification Manager, already let an admin force everyone to re-verify after a legal change. That covers a policy update, but it doesn’t catch the more common case: one subscriber’s renewal happening after a state’s rules changed for just their address. A woocommerce subscription renewal compliance system needs to check policy version against renewal date per subscriber, not wait for an admin to trigger a blanket reset.
- Sync address changes to compliance status the moment they happen, not at the next renewal – If a subscriber updates their shipping address in their account, that update should immediately re-trigger an eligibility check, not wait for the billing cycle to catch it days or weeks later.
- Account for what happens when a failed payment retries into a newly restricted state – Payment retry logic and compliance logic are usually built by different teams, on different timelines, and they rarely talk to each other. A card that fails on day one and successfully retries on day four needs to pass the same compliance check it would have needed on day one, not skip it because the retry was handled by a different part of the system.
None of this exists as a wine club subscription failed renewal toggle inside WooCommerce Subscriptions or any plugin built on top of it. It’s custom logic, built once, that sits between your subscription engine and your compliance data. That’s the actual work behind custom wine subscription development, and it’s the difference between a system that happens to be compliant today and one that stays compliant as your subscriber base, and the laws governing it, keep changing.
The same idea shows up outside alcohol too. Brands running Recharge on Shopify hit a comparable wall once their pricing or subscriber logic outgrows what the app’s settings panel can express, which is a big part of why custom Recharge integrations for complex stores tend to start from the same root cause: a gap between what the app checks and what the business actually needs checked.
Build on WooCommerce, or Migrate a Wine Club From Shopify to It
Everything above points at one of two decisions, depending on where your business already stands.
If you’re already running on WooCommerce, the plugins handling your club mechanics and the plugin handling your age gate are both doing their jobs correctly. What’s missing is the logic connecting them to your renewal cycle, not a replacement for either tool.
That connective logic, tying subscription billing to a compliance check that runs at every renewal, is what WooCommerce subscription development actually looks like once an off-the-shelf setup has hit its ceiling.
If you’re running on Shopify with an active subscriber base and you’ve hit the ceiling described above, deciding to migrate a wine club from Shopify to WooCommerce is a real option, but only if it’s done right. Alcohol ecommerce platform migration means moving subscriber records, stored payment tokens, and compliance history together, in sync, without a gap where a renewal could fire mid-migration with no compliance check attached to it at all. That’s not a job for an export-import script.
It takes connecting billing, CRM, and compliance systems so they actually agree with each other, paired with a migration built around keeping live subscribers intact instead of just moving a database.
Either path starts with the same admission: an age-verification popup and a subscription plugin were never going to be enough on their own. They were never supposed to be. Closing that gap is a build decision, not a shopping decision, and it’s worth making before your next renewal cycle finds the gap for you.
Your Next Renewal Cycle Won't Wait
Whether you're staying on WooCommerce or moving off Shopify with live subscribers, this is worth a conversation before the next billing run, not after.