Aug 02, 2026
15 min read
How to Build a Shopify Alcohol Subscription That Rechecks Every Renewal
Your Compliance App Stops at Checkout
Age verification, state routing, volume ledgers, and renewal rechecks all need custom logic. We build it for alcohol brands on Shopify.
See How We BuildCalifornia opens and closes on a date you can see in the statute. As of January 1, 2026, qualifying craft distillers can ship spirits directly to California subscribers under AB 1246, and that same law expires January 1, 2027, unless the state extends it. A Shopify alcohol subscription with California members must be built to survive a state switching off: pausing a cohort, redirecting orders, or converting members before a pilot sunsets. No app settings panel has a toggle for that.
If you run a wine club or spirits subscription, you already know the billing-cycle version of this. Why compliance checked at signup stops protecting you by renewal three is mapped in full in our piece on why alcohol compliance breaks at renewal. This is the system that closes it, on Shopify, under 2026 rules.
Four layers make a compliant Shopify alcohol subscription work: a rules table with dates, a re-validation job that fires on every billing attempt, a rolling volume ledger, and a reporting stack that satisfies state permits. Each one maps onto a named Shopify primitive. None of them ships in a box.
The 2026 Map, Date-Stamped
Wine first, because it’s the settled side. DtC wine shipping now reaches 48 states plus Washington, D.C. after Mississippi opened to out-of-state wineries in July 2025. Utah and Delaware hold the remaining full bans. Most state permits require annual renewal, and some cap total volume shipped into the state per year, so “legal to ship there” and “legal to keep shipping there” are two different questions.
Spirits are the opposite of settled. As of August 2026, distilleries can ship DtC to roughly eight states plus D.C., most with hard craft-size limits: Arizona under 20,000 gallons annually, New York for craft distilleries with production limits in New York or a reciprocal state, Alaska with dry-community carve-outs. The practical reading is that most spirits brands cannot legally ship to most of the country, which shapes the licensed retailer fulfillment model covered later.
California’s AB 1246 deserves its own paragraph because it changes the calculation for any subscription system built today. Signed by Governor Newsom in October 2025, the law lets qualifying out-of-state craft distillers who produce no more than 150,000 gallons annually, with at least 65% produced in-house, ship spirits directly to California consumers. Requirements: a $25 Distilled Spirits Direct Shipper Permit, 2.25 liters per consumer per day maximum, adult signature with CONTAINS ALCOHOL labeling on every shipment, annual reports to the California ABC, and consent to California jurisdiction. The entire framework sunsets January 1, 2027.
On the federal side, a Craft Distilled Spirits Direct-to-Consumer Shipping Act was introduced in 2026 and remains pending as of publication. It is a refresh trigger, not a plan.
Checkout-Time Compliance Meets Cycle-Time Orders
The compliance apps are genuinely good at what they do. DRINKS Assure enforces taxes, volume limits, and age verification inside native Shopify checkout down to the zip code. Sovos ShipCompliant announced a partnership with Awtomic, a Shopify-native wine club platform, in August 2025. Bloom Commerce covers clubs, allocations, and release-batch management with ShipCompliant and Avalara integrations. Winehub does clubs, allocations, and loyalty with ShipCompliant hooks built in.
The gap is not that these tools are poorly made. The gap is what they were built to protect: the checkout moment. A billing cycle’s recurring order never passes through checkout. The compliance check that ran when a member signed up has no mechanism to run again when month seven’s order generates in the background.
That one sentence is the article’s entire premise. Everything below is what you build to close it.
The surgical residue after a fair accounting of the app ecosystem: cycle-time re-validation, the rolling volume ledger, mid-term address mutations, state rules with expiration dates, spirits retailer-network routing, and per-state reporting. Each gets its own section.
State Rules as Data, With Expiration Dates
The supplement compliance build introduced the restriction-flag metafield schema: per-SKU flags driving checkout validation, shipping-method selection, and warning display. Alcohol extends that schema by one column that changes everything: the expiration date.
A state rules table stores more than permitted or blocked. Each row carries the license type, product type, permitted volume window, per-day caps, adult-signature requirement, permit renewal date, effective date, and sunset date. Mississippi gets a row with an effective date of July 2025. California gets a row with a sunset date of January 1, 2027. The pending federal bill, if enacted, adds rows for every newly opened state at once.
Hardcoding any of this into application logic means a new state is a rebuild. Storing it as data means a new state is a configuration row. The cheapest insurance in the whole project is the same line it was in the supplement piece, and it’s more true here than anywhere.
At signup, a Shopify Functions checkout validation reads the table: does the destination state permit this product, on this date, at this volume, for this member’s running total? The same primitive that gates a supplement checkout at a New York destination gates an alcohol checkout everywhere, with a richer schema underneath it.
The Re-Validation Job That Runs at Every Cycle
This is the build. Not the table, not the schema. The job that runs when the billing engine fires and asks the compliance engine whether this order can go.
The wiring from end to end: a billing attempt generates an order. Before fulfillment moves, a job calls the compliance API (ShipCompliant-class) with the member’s current address, the product set, the current date against the rules table, and the volume ledger balance for this member in this state. A pass clears the path. A fail routes to a pre-decided outcome.
Our wine club post named the three outcomes that matter: hold the order and notify the subscriber, skip this shipment while keeping the subscription active, or flag for human review. This build wires those outcomes into the system rather than leaving them to improvisation the first time a renewal fails a check.
The hold gate uses the same primitive as review-gated fulfillment in consultative skincare flows: the cycle’s order carries a named fulfillment hold with a compliance-review handle, the re-validation job calls the compliance engine, and on pass the app releases that specific hold by ID. Shopify’s warning about blanket hold release applies here too: release without the specific ID ships prematurely, and production systems have found that bug.
The retry path deserves its own sentence because it is where clean dashboards produce illegal boxes. A payment that fails Tuesday and retries Friday must re-pass the compliance check on Friday. Retry logic and compliance logic are typically built by different teams on different timelines, and they rarely share state. Building the compliance gate as middleware that every order path (initial, retry, manual recharge) passes through is the only version that holds.
The Volume Ledger
Some state rules don’t just restrict which orders go through. They restrict how many go through, per member, over a rolling window.
A rolling shipment ledger tracks per-member, per-state volume across the subscription’s lifetime. The ledger is consulted at signup, at every renewal, and before any manual order. A subscriber who has been compliant for twelve cycles can hit a state’s annual cap on cycle thirteen without anyone doing anything wrong. The ledger catches it before the label prints.
The per-day cap adds a batch dimension. California’s 2.25 liters per consumer per day means a release-day shipment and a pending subscription renewal cannot both land for the same member on the same calendar day. Ship-date scheduling becomes compliance logic, not just fulfillment preference.
Bundles and mixed cases decompose to liters or standard drinks before the ledger runs, using the same flag-inheritance discipline from the dose-timed replenishment post, now expressed in volume rather than ingredient restrictions. One oversized bundle component can push the whole order over the daily cap, and the ledger needs to catch it at the line level, not the order level.
Address Changes and the Contract That Reacts
The opening story in our wine-club piece (a February subscriber who moved to Utah in April, whose June renewal shipped anyway) resolves here in architecture rather than retelling.
When a subscriber updates a shipping address in the portal, that event fires a compliance re-check immediately. It does not wait for the next billing cycle. If the new address moves the member into a restricted state, the contract reacts: pause with notice, product-set adjustment, or state-specific conversion. The outcome depends on the rules table, not a human’s memory.
The mechanism is SubscriptionDraft: the same API primitive that lets a specialist swap a skincare serum in a live contract, now used to respond to a compliance event. A portal that cannot intercept address-change events is not a UI choice. It is a compliance gap.
The quiet requirement this surfaces: every piece of the member experience that can change compliance-relevant data (address, product swaps, add-ons) is part of the compliance system, not a storefront layer adjacent to it. Building those subscriptions on Shopify’s native APIs is where the contract primitives live.
Release Day at Scale
Fall release season is the stress test. Hundreds of member orders generate in one batch, each individually validated against the rules table and the volume ledger, each held until the compliance engine clears it, each released by its specific hold ID as the queue moves.
Bloom’s release-batch tooling handles the operational side of this well: batch order management with compliance integrations and fulfillment hooks. Where the batch involves a multi-state cohort with mixed per-day caps, a pilot-state sub-group approaching its volume window, and a pending payment retry from last week’s failed card, that is where the custom queue begins.
The queue has a service-level agreement, not just a loop. A hold that sits for three days because the compliance check stalled means a wine club member whose fall allocation never shipped. SLA timers on held orders, with escalation paths when they breach, are not optional for a release-day operation at scale.
Allocation mechanics (tiers, wish lists, swap windows against limited lots) are the next layer of this build and deserve their own piece. One sentence is all they get here.
Spirits Run a Different Map
Eight states plus D.C. means a spirits subscription cannot ship DtC to most of the country. The compliance architecture for spirits does not start with a rules table. It starts with a routing decision.
The licensed retailer fulfillment model: a subscriber’s order routes to a licensed retailer in the destination state, fulfillment happens within that state’s tier, and the subscription contract lives outside any single retailer’s stack. Routing logic, per-retailer inventory sync, and price parity across retailers are the custom build that makes a national spirits subscription possible.
The language matters in this vertical: licensed retailer fulfillment is a legal three-tier model. It is never a workaround or a loophole. Framing it otherwise is wrong and, in an industry with active state regulators, genuinely dangerous.
California changes this map for 2026. A qualifying craft distiller can skip the retailer layer entirely, ship directly to California consumers under AB 1246, and build a subscriber cohort that didn’t exist twelve months ago. The architecture question every spirits brand with California members must answer before January 2027 is what happens to that cohort if the pilot sunsets. Pause, redirect to a licensed retailer, or convert to a different product tier. The decision needs to be in the system, with the sunset date on the rules table, before the members are acquired.
The full state-by-state spirits build, covering license types, reciprocity tables, and reporting deadlines per jurisdiction, is the territory of a dedicated future piece. What this section establishes is that spirits and wine are not the same compliance problem, and a system designed for one will miss material rules for the other.
Records and Reporting
The California ABC requires an annual report from every permitted DtC shipper, detailing total volume shipped into the state in the prior year. That report is assembled from subscription order data, and if the order data was not structured to produce it, assembly becomes a manual audit project every January.
The alcohol records set: per-state shipment reports with volume totals per member, attestation and adult-signature confirmations logged per order, the permit renewal calendar with state deadlines, and carrier alcohol-agreement records. The same discipline applies as in state-gated supplement checkout records: the record is boring until the day it is the only thing that matters.
Excise tax sits alongside these records. State excise rates on alcohol vary and apply to DtC shipments; the reporting obligation follows the permit, and a missed quarterly or annual filing can void the permit. The records layer is also the tax layer.
One System, Not Five Patches
The convergence point: the rules table from the supplement build, the fulfillment hold from the skincare build, the cycle-time thinking from the dose-timed replenishment post, and the audit discipline from both, reassembled here with alcohol-specific extensions.
One data layer drives every enforcement point. The rules table feeds signup validation and the re-validation job. The volume ledger feeds both and blocks over-threshold orders anywhere they appear. SubscriptionDraft handles address-change mutations. The holds infrastructure gates every cycle-generated order until compliance clears it. Webhooks feed every state change into the records store.
Manual operations hold to a handful of members and one state before the first missed edge case. A mid-season address change, a state’s annual cap reached on a Tuesday renewal, a payment retry on a new state boundary: any of these finds the gap in a spreadsheet-based system. A rules table with dates finds them first.
This is a larger build than the non-alcohol systems in this program. Being honest about that is more useful than understating it.
Build Order, Scope, and Cost
Sequence by exposure. The rules table and signup gating fix live vulnerability first, because existing subscribers may already be shipping into states where recent rule changes altered the status. Then the re-validation job closes the cycle-time gap. Then the volume ledger. Then address-change interception. Then the reporting stack.
A scoped build runs 10 to 14 weeks depending on the compliance-engine integration depth, ledger complexity, release-day queue requirements, and whether spirits retailer routing is in scope. That is larger than the subscription builds covered elsewhere in this program, and pretending otherwise helps nobody who is trying to plan a Q4 release season.
Four questions settle the decision. Do you run subscriptions with recurring billing cycles? Do you ship to more than one state? Do you sell spirits, or hold multiple license types? Do you process release-day batches? Two or more yes answers puts you in custom territory. The middle-path trade-offs in Recharge vs custom subscription development apply here with the volume turned up, because alcohol adds a legal dimension that no app’s settings panel was designed to govern.
Most of the food and beverage development work we scope in this vertical starts with the rules table: map the states you currently ship to, check each one against the roster, flag any with volume windows or sunset dates, and count how many of your renewals would fail a cycle-time re-check today. That count is the build case.
None of this is legal advice. Counsel decides what the rules require in each state you ship to; we build the controls that enforce those requirements at every cycle.
Bring both to the same conversation before the next release day, not after. Our Shopify subscription development team scopes these builds from the rules table out.
Measuring the System
One number leads: blocked-renewal catch rate, the percentage of non-compliant cycle orders the re-validation job intercepts before fulfillment. That number is why the build exists.
The rest of the dashboard: held-order clearance SLA on release day, ledger audit accuracy against state volume reports, gated-state conversion rate after launch (a collapsing rate in a newly gated state means broken attestation UX, not broken law), permit-calendar coverage as a percentage of active state permits with renewal dates tracked.
Then the calendar habit. Quarterly reviews cover the state roster and any regulatory changes. The January 2, 2027 review is a named event: California’s pilot decision, and the cohort action that follows it, must be ready before the date, not after.
FAQ
Can you sell alcohol subscriptions on Shopify?
Yes, with the right licenses, a compliance app for checkout-time enforcement, and custom logic that rechecks compliance at every billing cycle. Shopify permits alcohol sales; the recurring-order compliance is the merchant’s responsibility to build.
Can distilleries ship spirits to California in 2026?
Yes, under a one-year pilot. AB 1246, effective January 1, 2026, lets qualifying craft distillers with a $25 direct shipper permit ship up to 2.25 liters per consumer per day, with adult signature required. The pilot expires January 1, 2027 unless extended. (As of August 2026.)
Do alcohol compliance apps check subscription renewals?
At checkout, yes. At the billing cycle, no. Recurring orders never pass through checkout, so renewal-time compliance has to be built as a job between the subscription engine and the compliance API.
What states allow direct-to-consumer alcohol shipping?
Wine ships to 48 states plus D.C., with Utah and Delaware maintaining full bans. Spirits ship from distilleries to roughly eight states plus D.C., most with craft-size production limits. (As of August 2026.)
Is age verification required for every alcohol delivery?
An adult signature at delivery is required by UPS and FedEx and by most state shipping laws, on every shipment. Verification at purchase plus a logged attestation covers the order side; the physical signature at the door covers delivery.
A subscription that rechecks is the only kind that keeps its license. The rules change, the addresses change, the states open and close. A system built around a rules table with dates handles all three without a rebuild. The brands that architect for change this season will be the ones still shipping next fall.
Ready to Build Before the Next Release Day?
Bring your state roster, your license types, and your billing cadence. We'll scope the rules table, the re-validation job, and the volume ledger honestly.