Skip to content
CMS Max Documentation

Liquor Max

A plugin to manage and display beverage information for your products.

Overview

Liquor Max is a product management add-on designed specifically for liquor retailers. It extends your product catalog with fields and attributes tailored to wine, spirits, cider, and sake — giving your customers the detailed product information they expect when shopping for beverages.

Getting Started

  1. Go to Settings > Plugins in the admin panel
  2. Find Liquor Max and click to open the settings page
  3. Click Save and Install

Liquor Max plugin settings page

Rebates on Product Pages

With Liquor Max active and Enable Rebates turned on, a green bubble with a ticket icon appears near the price for each active offer linked to a product, in both standard product-page layouts. The bubble shows the offer's amount (for example Rebate: Save $3), or Rebate available when the offer has no amount. Clicking it opens the same rebate details modal used on the rebates page, including the offer, dates, description, code, image when available, and eligible products. Close it using the close button, Escape, or the backdrop.

Future and expired offers are hidden automatically. An empty start or end date leaves that side of the offer period unrestricted. Rebates must be claimed separately under their terms: they do not reduce the product price or checkout total, and the rebate details modal tells shoppers this.

Supported Beverage Categories

Liquor Max supports four beverage types, each with fields matched to the information relevant to that category:

  • Wine — includes vintage year, professional ratings, varietal, country, region, and subregion
  • Spirits — covers whiskey, vodka, rum, gin, tequila, and other distilled beverages
  • Cider — supports hard ciders and fruit-based beverages
  • Sake — for Japanese rice wine products

Archiving Beverage Categories

The root beverage types (Wine, Spirits, Cider, and Sake) cannot be archived. Generated beverage category slugs and parent categories cannot be changed; rename the display title instead. A first-level beverage category cannot be archived while any active or archived product uses it or its children; reassign those products first. The blocked archive dialog links to the filtered Products table with both active and archived products visible. When archiving a category with children, choose Archive child categories; moving beverage children during archive is not supported. A beverage subcategory can be archived while products use it: those products keep their parent beverage category and lose only the subcategory value. Categories with the same name under a different beverage type are unaffected.

Product Fields

Fields Available for All Beverage Types

Every beverage product can include:

  • Bottle size — required for all products
  • Brand — the producer or label name
  • Dietary and sustainability attributes — mark products as organic, vegan-friendly, or gluten-free
  • Ownership diversity badges — highlight Black-Owned/Operated or LGBTQ+ Owned/Operated businesses
  • Kosher certification — indicate certified Kosher products
  • Store Pick designation — flag products as a curated staff recommendation

Additional Fields for Wine

Wine products support the most detailed metadata, making them well-suited for premium and collectible inventory:

  • Vintage year — select the production year from 1900 to the present
  • Professional rating — enter scores on a 70–100 scale
  • Rating source — record where the rating came from (up to 100 sources per product)
  • Varietal, country, region, and subregion — full geographic and grape variety classification

Adding a Beverage Product

When creating or editing a product:

  1. Select the beverage category (required for all beverage products)
  2. Choose the bottle size (required for all beverage products)
  3. Fill in any optional fields relevant to the product type. Record Alcohol by Volume for wines you want to publish to Vivino
  4. For wine, use the rating fields to add professional scores and their sources

All other standard product settings — pricing, images, inventory — are managed through the main product form alongside these beverage-specific fields.

Product edit form showing beverage-specific fields

Storefront Location Filters

When a product list shows beverage filters, shoppers can choose a country, region, or subregion. Region choices include their country, and subregion choices include both region and country. Each choice filters products to that exact location, even when another location uses the same name.

Vivino Feed

Vivino can list your wines and link shoppers back to your store. To do that it needs an XML feed of what you currently have in stock, which Liquor Max can publish for you.

Go to Plugins → Liquor Max and open the Vivino Feed section:

  1. Turn on Enable Vivino Feed. The feed is published at your store's own address, shown as the Feed URL — for example https://yourstore.com/vivinofeed.xml. While the setting is off, that address returns "not found", so nothing is exposed until you are ready.
  2. Optionally set a Price Markup (%). The markup is added to each wine's current single-bottle price, including an active sale or a quantity tier that begins at one bottle. Leave it at 0 for the unmarked price.
  3. Save your changes, then give the Feed URL to your Vivino representative.

What gets included

Only wines that are ready to sell appear in the feed:

  • The product is a wine with a positive price and inventory count, plus a recorded alcohol strength (including 0% for non-alcoholic wine)
  • The product is publicly visible — drafts, password-protected and members-only wines stay out of the feed
  • It has a positive shopper price and does not use an alternative-buy action
  • It is a simple product without active options, variations, or dimension-based pricing
  • Its availability is set to In Stock; pre-orders and backorders stay out even when their recorded stock count is positive because Vivino cannot carry those statuses
  • Its bottle size is one Vivino accepts: 375ml, 500ml, 750ml, 1L, or 1.5L
  • It is bottled wine in a supported presentation; products recorded as cans, boxes, kegs, pouches, boxed wine, special editions, mixed cases, multi-bottle cases or packs, or gift packaging stay out
  • It is a wine product rather than a wine accessory

Here, a simple product means its price and stock are recorded directly on the wine product, with no active option or variation choices underneath it and no dimension-based pricing. Liquor Max wines are expected to use this shape. Vivino provides one price and one inventory count per feed entry, so products with active child choices are left out rather than combining them in a way that could advertise the wrong price or stock. Disabled old choices do not prevent the otherwise-simple wine from appearing.

The selected Bottle Size is enough for this check, including older products whose separate numeric volume was never stored. A non-bottle size such as a keg or pack is still excluded even if it has the same volume as an accepted bottle. Wines in other bottle sizes (such as 187ml splits or large formats above 1.5L) are left out rather than being sent and rejected. Each entry carries the available producer, wine name, most-specific recorded appellation, vintage, colour, varietal, alcohol strength, country and image, plus its bottle size, current quantity-one price with any configured Vivino markup, stock count and a link back to the product page. Wines without a vintage are sent as NV (non-vintage).

The bottle size and unsupported punctuation are removed from the composed product name because Vivino reads only its defined name parts — so products titled "Grand Reserve 750ml" or "Grand Reserve Magnum" are sent as "Grand Reserve" with the size in its separate field. Red wines do not have a red colour appended to the composed name, which is Vivino's convention. When a real label already contains its colour, such as "Apothic Red", "Conundrum White", or "Ménage à Trois Rosé", the full label is kept and the colour is not appended a second time.

Each entry represents one bottle. Its current quantity-one price is sent with the markup applied on top. A tier beginning at one bottle changes that price; tiers beginning above one bottle are not advertised. Stock comes directly from the simple product: tracked products send their available bottle count, while a wine that does not track inventory is sent at the highest count Vivino accepts. Products with active options, variations, dimension-based pricing, or alternative-buy actions are left out rather than advertising a price or stock value that does not represent a fixed single-bottle offer.

The feed is generated fresh each time Vivino requests it, so stock levels and prices are always current — there is nothing to re-upload after changing a product.

Restrict beverages by state

You can prevent specific beverage types from being shipped to individual US states.

  1. Go to eCommerce > Store Settings > Shipping and click Manage All Shipping Zones
  2. Open a zone, then in the Countries section make sure United States is selected
  3. In the US States section, select the states you want to restrict
  4. For a selected state, click the settings link that appears next to its name (it shows the current zip/beverage summary) to open its settings, then switch to the Beverage Restrictions tab
  5. Uncheck any beverage types that should not ship to that state
  6. Save the zone

All beverage types are allowed by default. Excluded beverages are blocked at checkout for addresses in that state, and the shopper is asked to remove them from the cart. A state ban always wins and applies store-wide: if the beverage type is blocked for that state on any of your shipping zones, it is blocked for every product shipping to that state — even a product limited to a different zone that would otherwise allow it.

For safety, a product marked as liquor but with no beverage category set is blocked from any state that has restrictions configured (its type can't be verified). Set the product's beverage category to have it evaluated against the specific per-type rules instead.