91³Ô¹ÏÍø

Watch CBS News

Minneapolis nonalcoholic bottle shop at risk of closing as alcohol-free drinks become more widely available

One of the last remaining nonalcoholic bottle shops in Minneapolis is at risk of closing, its owner said, joining a wave of similar businesses that have shut down this year.

 in south Minneapolis is now one of the last remaining shops dedicated to nonalcoholic drinks. Marigold's St. Paul location closed its doors in late March, leaving owner Erin Flavin's shop in uncertainty. 

Flavin opened Marigold in 2022, after purchasing the building from her landlord, where she operated Honeycomb Salon. Before the purchase of the building, she decided to be sober, as she had already been operating at Honeycomb Salon for 16 years.

"I have been sober for five years," said Flavin. "Not having that ceremony that you love at the end of the day, cooking and having a bottle of wine was something I really missed."

Already selling nonalcoholic drinks at her salon, she realized that there was a lack of options for people like her who wanted to socialize without alcohol. When she purchased the space that houses Marigold, Flavin saw it as an opportunity to create a space for herself and others who shared that need.

"Lines were out the door," said Flavin. "We were really surprised when we first opened because we had so many people who were like,' I don't know if this is going to work, Erin.'"

The opening was a huge success and just a year later, Flavin opened up her St. Paul location.

"Never in my wildest dream did I think that something that was this important to me would have taken off the way it did," said Flavin.

However, two years ago, she saw a shift that would end up being what she calls the "downfall of Marigold."

"Brands ended up in liquor warehouses so they got mass distribution," said Flavin.

Sales of alcohol-free beverages have been on the rise as more consumers are reducing their alcohol intake. Larger retailers, including restaurants and liquor stores, have started to stock nonalcoholic drinks, making it harder to compete with smaller shops.

The rising popularity of nonalcoholic drinks pushed people to convenience over these specialty shops, ultimately leading Flavin to close her shop in St. Paul in late March

After the closing, Flavin took to , pleading for others to shop at local stores. She said that the store's survival hinges on community support.

"The message I put on Instagram has reminded people that we're here and we're going to continue being here. I don't want to pivot away from this business," Flavin said.

Flavin says she is left with few options and has weighed closing the shop and reopening possibly as a nail salon, but says that this community is too important to give up on.

"I'm facing a lot of debt due to trying to stay competitive and trying to keep products on the shelf that people love," said Flavin. "Hearing how important it is to the community and how important it is to me. I don't want to close."

 ships nonalcoholic beverages and sells THC drinks and local crafts.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });