← Back to support

Daily ops

Wine list management

Updated: 2026-05-25

Wine list management

Also known as: carta de vinos, wine menu, wine catalog, by the glass and by the bottle, vintage, varietal, region.

brasio's wine list lives inside the main catalog — there's no separate app. Wines are products with sizes (Copa, Botella), and each wine carries the metadata sommeliers and customers expect: region, vintage, grape, ABV. The same record drives the till, the public PDF menu, and the inventory cascade (open bottle → glasses, sealed bottles → next open bottle).

Where wines live

In Admin → Catálogo, create a top-level category called Vinos (or whatever name you prefer) and add subcategories beneath it:

  • Vino Blanco (white).
  • Vino Tinto (red).
  • Vino Rosado (rosé).
  • Espumosos (sparkling / cava / champagne).

Subcategories are a single layer (no deeper nesting). See Categories, subcategories and products.

Add a wine

  1. Admin → Productos → Nuevo.
  2. Nombre — e.g. Marqués de Riscal Reserva.
  3. Categoría — pick the subcategory (e.g. Vino Tinto).
  4. Under Vino / destilado, fill in:
    • Región — DO Rioja, Ribera del Duero, etc.
    • Añada — vintage year (2018, NV for non-vintage).
    • Uva / varietal — Tempranillo, Garnacha, Chardonnay…
    • Vol. alcohol (ABV) — 13.5%, 14%, etc.
  5. Tamaños — add Copa (150 ml) and Botella (750 ml), each with its sell price. See Sizes and pricing.
  6. Optional: tick Viene en un envase que dividimos en raciones and set the bottle volume (750 ml) and bottle cost, so the per-glass cost is auto-derived. See The container model.
  7. Optional: fill Descripción (ES) and Description (EN) — tasting notes for the till modal and the public menu PDF. DeepL can fill the missing locale.
  8. Optional: set inventory tracking for open-bottle cascade — fill glasses per bottle (e.g. 5 for a 750 ml/150 ml split) and bottles in stock. brasio will track the open bottle's remaining glasses and open the next sealed bottle when it runs out.
  9. Save.

Bottle tracking cascade

When inventory tracking is on with glassesPerBottle and bottlesInStock set:

  • Sell a glassopenBottleGlassesLeft decrements.
  • Open-bottle empty → brasio decrements bottlesInStock and refills openBottleGlassesLeft to glassesPerBottle (next sealed bottle is now open).
  • Sell a bottlebottlesInStock decrements directly.

The inventory rail on the till sidebar (under Vinos abiertos) shows the open bottles with {left}/{total} copas remaining; you can see at a glance what's nearly out.

On the public menu PDF

The wine section of the public menu PDF (see Public menu PDFs) groups by subcategory and shows: name, region, grape, ABV, vintage, by-the-glass price, by-the-bottle price, and short description. Multilingual via DeepL.

Importing a wine list

For new venues with a long existing wine list, we provide a script that parses a PDF wine list and creates the products. Triple Brew was seeded this way (107 wines from menu.triplebrew.eu/wine.pdf). Contact us to run this for your wines — we'll need the PDF and a few clarifying questions about your size and pricing conventions.

What about wineadmin?

If you used to use the standalone wineadmin tool (Triple Brew's old wine list app): it has been replaced by this in-brasio wine list. Your old wineadmin URL redirects here. All wine data is now in your brasio catalog and benefits from the same export, sizes, costs, modifiers and inventory features as the rest of the menu.

Not working?

  • Wine doesn't appear in the wine PDF section: check it's under a Vinos subcategory and Visible en el menú público PDF is on.
  • Per-glass cost is wrong: check the container model is enabled with the right bottle ml (750) and the bottle's net cost. Or override the cost on the Copa size manually.
  • Open-bottle counter never resets: confirm glassesPerBottle is set on the size that maps to the glass. Without it, the cascade can't compute when to open the next bottle.
  • Vintage looks weird on the PDF: confirm the Añada field is just the year (e.g. 2018) not a full date.

More in Daily ops

Still stuck?

Talk to our 24/7 agent in your language. If it can't answer, we'll pass you to a human.