POS AI wine import Inventory Wine lists Who it is for Pricing Help Log in Start free trial

What's new

What changed in Vinify, newest first. Every visible change says where it lives in the app and links to the guide that explains it.

On this page

6 Oct 2026: AI wine import reads PDFs and photos like spreadsheets, finds Vinmonopolet, Vectura and CellarTracker numbers, and NV is the default on wine lists

Web app v2.27.0, AI service v1.5, Backend v2.32.2

AI wine import now reads a PDF or a photo page by page and then treats it exactly like a spreadsheet, so prices, quantities and notes are copied from the file instead of being guessed, and long lists no longer stop at page 20. When a receipt or export names whose product numbers it prints, Vinmonopolet, Vectura and CellarTracker numbers are read and matched to the right wine. The matching table shows the file's own names, counts matches live, imports in batches with a progress bar, and can bring back the last scan after a reload. Wine lists print NV for non-vintage wines by default. Scrolling the mouse wheel over a number field no longer changes the number.

PDFs and photos go through the same import as spreadsheets

What changed. A PDF used to be sent to the AI as a set of shrunken page images in one request, with its own prompt. Pages after the twentieth were dropped without a word, long lists failed, and prices came back as the AI read them. Now every page is transcribed into a table first, exactly as printed, and that table goes through the same steps as an uploaded spreadsheet: columns are mapped onto Vinify's fields, origins are matched against the country and region catalog, and quantity, the three prices, note, supplier and product numbers are copied from the page rather than asked of the AI. A PDF can have up to 50 pages; a longer one is refused with a message instead of being cut short. Where a PDF carries its own text, that text is used to check spelling and digits. Headings printed above a group of wines, such as "RED WINE" or "France, Burgundy", are carried onto every wine under them. A size written as "Magnum" becomes 1.5 l.

Where in the app. Cellar header, "Magic import", drop a PDF, JPG, PNG or WebP, "Scan wines". The result screen and the two routes, "Match with Vinify wines" and "Quick import to cellar", are unchanged.

Before and after. Before: a 30-page list came back with 20 pages and prices the AI had read. After: the whole list, prices and quantities as printed.

Why it matters. Most wine lists that are not spreadsheets are PDFs from the supplier or the venue's own printed list. Those were the imports that went wrong silently.

AI wine import guide

Vinmonopolet, Vectura and CellarTracker numbers are read and matched

What changed. When a page or a sheet names whose product numbers it prints, the Vinmonopolet "varenummer" on a receipt or order, the article numbers on a Vectura invoice or price list, or the iWine column of a CellarTracker export, the import reads them as that supplier's numbers. Any other article number stays the file owner's own and is left out. On the matching route those numbers now resolve to the right wine: a backend fix of 29 September repaired a lookup that stored the match under the wrong id, so rows with a valid Vinmonopolet or Vectura number used to come back unmatched.

Where in the app. "Magic import", then "Match with Vinify wines". The matching table shows "Scanned ID:" with the number in the scan line of the row.

Before and after. Before: receipt rows with a product number showed the red badge and "Find wine". After: they arrive matched.

Why it matters. Vinmonopolet receipts and Vectura invoices are the two documents every Norwegian venue has at hand.

AI wine import guide

Values from the file are copied, not retyped by the AI

What changed. On a spreadsheet, the AI is no longer asked for the fields it can only copy: quantity, the two buying prices, the selling price, note, supplier and product numbers. They are written straight from the sheet after the scan, so they cannot be rounded, dropped or rewritten. Producer, name, vintage and size are taken from the sheet wherever the cell has a value and left to the AI only where it is blank. Vintages back to 1700 are accepted, the same range the wine editor accepts, so old Bordeaux, Port and Madeira keep their year. Notes keep their apostrophes and symbols as typed. A sheet that holds no wine list is left out of the scan; a file with nothing readable fails with "The file holds no wine list we could read" instead of being parsed raw.

Where in the app. "Magic import" with an Excel or CSV file.

Before and after. Before, on a 4 396-wine import: 29 vintages before 1900 saved as NV, prices dropped on 11 wines, 9 notes lost and 4 altered. After: every stated value as in the file.

Why it matters. Venues use the note for PLU codes and shelf locations; a note changed by the import is a bottle that cannot be found.

AI wine import guide

The matching table and the import flow

What changed. A set of changes to "Match with Vinify wines" and "Quick import to cellar":

  • The origin and style the AI inferred now reach the matching route, so an unmatched row opens "Add details" with its country, region and main category prefilled, and a cellar category suggested from them. Before, only Quick import kept them.
  • Each row's main line is the name as it will be imported, from the file; the database match is shown on the scan line as "Matched: ...". Matched and unmatched counters in the header update as rows are matched; "Confirm all" is disabled when nothing is matched.
  • A "Default location" chip in the header names where the wines will land, with the hint "Wines are added here unless you choose another location for a wine in “Add details”." A location picked on a row wins over the browsed one.
  • "Load last scan" on the upload step brings back the previous scan after a reload or a closed dialog.
  • Imports run in batches of 50 with a progress screen. If a batch fails, the wines already created stay, and a message says how many could not be imported: "3 of 120 wines could not be imported. Please add them manually." Rows without a wine name or a producer are skipped with a count.
  • In "Add details" for an import row, the form shows "Checking your cellar…" and then "Current quantity in cellar N • New quantity N+q" when the same wine, vintage and size is already in the cellar, prefills what the cellar knows, and shows an "In cellar: NOK 250" hint under a price that differs; clicking it applies the cellar price. The dialog's submit button reads "Save".
  • Typing a price fills its VAT counterpart when you leave the field, not while typing, so "99,99" no longer turns into "99". Prices accept "1 000" and "199,5". Quantity is capped at 10 000 and prices at 9 999 999,99; a number outside the database range is left empty instead of failing the whole wine.
  • A missing quantity imports as 0, a missing bottle size as 0.75 l, a missing price stays empty. A failed scan shows the actual error instead of "Sorry, no results!".
  • The scan line in the table shows its labels in bold on one line with the full text in a tooltip.

Where in the app. "Magic import", upload step, result step, "Match with Vinify wines" table and header, "Add details" dialog.

Before and after. Before: matched rows showed the database name, counters froze at the first result, a reload lost the scan, a failed import lost everything. After: file names first, live counters, the last scan one click away, partial imports kept and reported.

Why it matters. Importing a list of several hundred wines is the first thing a new venue does; every one of these was a reason to stop halfway.

AI wine import guide

NV is the default for non-vintage wines on wine lists

What changed. The vintage column has a "Non-vintage format" setting with "NV", "Leave blank" and "Non-vintage". The default was "Leave blank", so a new list printed an empty vintage for Champagne and other non-vintage wines until someone found the setting. The default is now "NV" for wine styles: red, white, sparkling, rosé and fortified, with orange and sweet under them. Liquor, alcohol free, beer and cider keep a blank cell. A list where the format was chosen by hand keeps its choice. A list that never touched the setting starts printing NV.

Where in the app. Wine lists, open a list, "Wine columns", the Vintage column, "Non-vintage format". Lists that never entered the columns editor print NV in the PDF as well.

Before and after. Before: an empty vintage cell on every Champagne. After: "NV".

Why it matters. An empty cell reads as a mistake to a guest; "NV" is what every printed list says.

Wine lists guide

Scrolling over a number field no longer changes the number

What changed. A mouse wheel over a focused number field used to change its value, which saved wines with a vintage of 2 or a wrong quantity, and the page did not scroll. The field now loses focus and the page scrolls.

Where in the app. Every number field on the web: vintage, quantity, prices, glass size.

Before and after. Before: a scroll over the vintage field turned 2019 into 2. After: the page scrolls, the number stays.

Why it matters. Wrong vintages were reaching wine profiles and lists.

Add wine guide

1 Oct 2026: Location settings, a cellar history that reads at a glance, price formats on wine lists, VAT at checkout

Web app v2.26.1, Backend v2.32.3, v2.32.4

Business users can now edit their location profile after sign-up. The cellar history card on the cellar home tells additions from removals and shows when each change happened and what it did to the stock. Wine list price columns gained a dash ending that works with decimals and a choice of thousands separator. Checkout now charges VAT, and switching a plan from monthly to yearly carries the add-ons along. For Lightspeed K-series venues connected through Ilglu, articles created in Vinify now reach the till.

Edit your location profile after sign-up

What changed. Until now a restaurant, wine bar or hotel set its public profile once, during sign-up, and could never change it. A new Restaurant section in settings makes every field editable: name, address, bio, Instagram, website, booking link, food menu link, logo and cover image. Images get a crop and zoom dialog, and an existing image can be re-cropped without uploading it again. The Password row is hidden for accounts that sign in with Google or Apple.

Where in the app. Avatar menu, Profile, section Restaurant. The public location page shows an Edit profile button on the cover to the owner. User settings gained Plan and Currency rows and the avatar menu a Subscription and billing entry.

Before and after. Before: profile fixed at sign-up, no way to fix a typo in the address or swap the cover. After: everything editable in one place, images cropped in the browser.

Why it matters. Venues change their cover, their booking link and their menu URL all the time. Until now every such change was a support request.

Cellar profile guide

The cellar history card reads at a glance

What changed. The Cellar history card on the cellar home colored every row that was not a sale red, with a remove icon, so a delivery looked like a loss. Norwegian users saw even sales in red. Rows now show the direction (green for additions, red for removals, blue for sales), the amount in the right unit, the stock before and after the row, the buying, selling and market prices, and when it happened. The sold-out state, dates and the Norwegian labels were corrected in the same release.

Where in the app. Cellar home, the Cellar history card (five rows).

Before and after. Before: red rows with a remove icon for every addition, no time, "12 Left" meaning the current stock. After: direction by color and icon, the stock movement of that row, and the time.

Why it matters. The card is the first thing a manager sees on the cellar home. It now answers "what moved, when, and what does the stock look like now" without opening the history page.

Cellar history guide

Price columns on wine lists: dash ending with decimals, thousands separator

What changed. In the wine list columns editor, the dash ending (150,- for a whole amount) was one of the Number format buttons and could not be combined with decimals. It is now its own toggle: whole amounts print as 150,- and prices with decimals keep them, so 35,- and 35,50 sit side by side on one list. The thousands separator can be a space (1 690, the default) or a period (1.690). Text case is no longer offered on price columns, where it had nothing to act on. Existing lists print exactly as before.

Where in the app. Wine lists, open a list, Wine columns, click a price column (Default selling price or another price column).

Before and after. Before: Number format buttons 10, 10,-, 10.0, 10.00; space as the only thousands separator; a text case control on price columns. After: dash as a toggle at any decimal setting, a thousands choice, no text case on prices.

Why it matters. Norwegian lists write 1.690,- and Swiss lists 35.-; the editor can now print both without a workaround.

Wine lists guide

VAT is charged at checkout

What changed. Subscriptions bought in the app were charged the plain price with no VAT, while subscriptions set up by hand carried it. Checkout now calculates tax through Stripe Tax, asks for the billing address and offers a business VAT number field. Norwegian customers pay 25 percent VAT on top of the listed price; EU businesses with a valid VAT number are reverse charged; customers outside the EU pay no VAT. Plan and add-on changes on a running subscription use the same tax setting, and the invoice preview shown before a change includes it.

Where in the app. Plans, Add-ons, then the Stripe Checkout page: address fields and an "I'm purchasing as a business" checkbox under the card details.

Why it matters. Invoices are now correct for Norwegian and EU customers from the first payment. The prices in the app are still shown without VAT; the "ex. VAT" note in the app's own order summary is a separate change.

Plans and billing guide

Switching to yearly billing keeps your add-ons

What changed. A customer on a monthly plan with a monthly add-on could not switch the plan to yearly: the request failed with "Billing period mismatch" and the only way around was to cancel the add-on, switch, and buy it again. Switching the plan now moves every active add-on to the same billing period in one step, with a single prorated preview and one invoice. An add-on that has no price for the new period stops the switch with a message to cancel that add-on first.

Where in the app. Plans and billing, Switch to yearly billing, or the plan step with a yearly plan selected.

Why it matters. Yearly billing saves 20 percent; the fix removes the one obstacle for customers who already run an add-on.

Plans and billing guide

Lightspeed K-series through Ilglu: articles created in Vinify reach the till

What changed. Lightspeed K-series needs its own article code (SKU, 1 to 32 characters). Articles that Vinify created through Ilglu carried only Ilglu's default id, which Lightspeed rejected, so the article never appeared in the till. Vinify now generates a Lightspeed-compatible code with the prefix VFY for every article it creates or updates.

Where in the app. Not visible as a control. Venues on Lightspeed K-series connected through Ilglu see new wines from Vinify in the till without a manual fix.

Why it matters. Removes a silent failure for one group of POS customers.

POS integration guide

23 Sep 2026: What you see when a payment fails, cancellation through the Stripe portal, and cost prices for glasses and recipes in Munu

Web app v2.25.0, v2.26.0, Backend v2.31.9, v2.31.10, v2.31.11, AI service v1.4.1

A business cellar whose card payment fails now sees it in the app: a reminder bar under the navigation, a strip on the plan card with the amount owed and the next attempt, and, if the payment keeps failing, a settle-payment screen on the paid pages with a button to the Stripe portal. Canceling a plan now goes through the Stripe portal, with the end date shown in settings. Munu venues get a cost price on glass and recipe articles, not only on bottles. Ilglu venues can have article categories assigned from the wine's style. Wines that the AI import used to skip without a reason are kept. Deleting a Vinify account now deletes the Stripe customer with it.

A failed payment is visible, and the paid features pause only when retries end

What changed. Before, a customer whose renewal failed got no sign in the app: the paywall looked the same as for a new user, the plan card said nothing, and there was no way to pay. Now, while Stripe retries the payment, the cellar keeps full access and shows a reminder. When the retries are exhausted, the paid features pause and every paid page shows what is owed and how to pay. Paying restores access on the next page load. A plan or add-on change is blocked while a payment is outstanding, so a second invoice can never be created on top of an unpaid one. If a renewal comes due while the previous invoice is still unpaid, the subscription ends and the cellar keeps the cellar home and ordering.

Where in the app. Cellar shell under the navigation (the reminder bar), Settings, Plans and billing (the plan card), and the paid pages, "/wine-cellar/plans", "/wine-cellar/plans/add-ons" and every gated tab (the settle-payment screen).

Before and after. Before: a locked tab with "Premium feature" and no explanation. After: the amount, the date and a button that pays.

Why it matters. Until this release every lapsed customer wrote to support, and support looked up the invoice by hand.

Plans and billing guide

Cancel through the Stripe portal, with the end date in settings

What changed. "Cancel subscription" in the plan menu opens the Stripe customer portal, where the plan is canceled at the end of the paid period and a reason can be given. The in-app confirmation dialog is gone. Settings then shows "Plan cancelled. You keep full access until {date}." Add-on buttons are disabled with the note "Add-ons need an active plan. Yours ends on {date}." While a payment is outstanding the plan menu is hidden, since the only useful action is the portal.

Where in the app. Settings, Plans and billing, the plan card menu.

Before and after. Before: an in-app dialog, no end date shown. After: the portal, and the date on the card.

Why it matters. One place to cancel, renew and download invoices, and no surprise about when access ends.

Plans and billing guide

Munu gets a cost price on glasses and recipes

What changed. Vinify sends a cost price with every article it creates in Munu. Until now only bottle articles carried one; glass and recipe articles went to Munu with the field empty, which skewed the reports venues pull from Munu. The cost of a glass is now calculated from the bottle's buying price ex VAT, the bottle size and the glass size; a recipe's cost is the sum of its ingredients. When a wine's buying price changes, the recipes that use it are updated. A wine without a buying price sends 0.

Where in the app. Nothing to do in Vinify. The values appear in Munu's reports.

Before and after. Before: cost price on bottles only. After: on bottles, glasses and recipes.

Why it matters. Margin reports in the till are only right when every article has a cost.

POS integration guide

Ilglu: article categories from the wine's style

What changed. For venues connected through Ilglu, an article created from Vinify can now be placed in the right Ilglu category automatically, from the wine's style (red, white, sparkling and so on), through a mapping set up per venue. Where a venue prefers to choose, the category is asked for when the article is created.

Where in the app. Set up by the Vinify team with the venue; no customer setting.

Before and after. Before: every article needed its category set in Ilglu. After: the style decides.

Why it matters. One less step per wine for venues that add many.

POS integration guide

The AI import no longer skips wines without a reason

What changed. Some rows disappeared between the scan and the import even when the neighboring rows were fine; a reported case was one Burgundy row of two from the same producer. The parser was fixed so that valid rows are kept.

Where in the app. "Magic import", the scan result.

Before and after. Before: a row could vanish silently. After: it is there.

Why it matters. A missing row in a 300-wine import is found weeks later, at the count.

AI wine import guide

Deleting an account deletes the Stripe customer

What changed. Deleting a Vinify account removed the cellar and the wines but left the Stripe customer behind. It is now deleted with the account; a Stripe error never blocks the deletion.

Where in the app. Account deletion in settings.

Why it matters. No billing record outlives the account.

Plans and billing guide

8 Sep 2026: Baemingo joins the POS integrations, and the cellar table fills a large screen

Backend v2.31.5, Web app v2.23.1, v2.23.2

Venues on Baemingo can connect their till to Vinify. Wines saved in Vinify become articles in Baemingo, bottle and glass each, recipes included; the previous day's sales come back every morning and take the bottles off the shelf and into the cellar history. On the web, the cellar table now fills a large screen on the first load instead of stopping at 25 rows, and a search made of spaces no longer fires a request.

Baemingo is the fifteenth POS Vinify connects to

What changed. A Baemingo venue connected by the Vinify team gets the same core job as every other integration. Saving a wine creates or updates its article in Baemingo: the article name, its category, the VAT rate, the price and the cost basis, with one article for the bottle and one for the glass when the wine is sold by the glass. Recipes go to Baemingo as ordinary bottle or glass articles, since Baemingo has no recipe type; Vinify takes the ingredients off stock when the recipe sells. Every morning Vinify reads the previous day's orders, adds them up per article for the day, nets refunds against that day's sales, and writes the result into stock and the cellar history. Categories in Baemingo have one level and are mapped from the wine's style during onboarding, with the VAT rate set per category. In the web app, Baemingo venues can edit the POS article name of a wine and see the POS ids on the cellar profile, like venues on the other systems.

Where in the app. The POS connection is set up with the Vinify team. Once connected: the wine profile's POS article name field, the POS ids on the cellar profile, and the daily sales in Cellar history and Sales. Baemingo also appears in the list of supported systems on the POS integration add-on card.

Before and after. Before: a Baemingo venue kept its stock by hand. After: the till does it overnight.

Why it matters. Every system Vinify connects to is a set of venues that can stop counting by hand.

POS integration guide

The cellar table fills the screen, and a blank search is ignored

What changed. On a large screen, or with the browser zoomed out, the cellar table loaded 25 rows and stopped, with empty space below, because there was nothing to scroll and the next page never loaded. It now keeps loading until the screen is full. Typing only spaces in the search box used to send a request and reshuffle the table; spaces are now trimmed, so nothing happens until there are real characters. A search started on a later page used to run against that page number; it now starts from the first page.

Where in the app. Wine cellar, Wines, the table and the search box above it.

Before and after. Before: 25 rows and a blank bottom half. After: a full table.

Why it matters. The first thing a new venue does on a big monitor is open the table; a half-empty one looked like missing wines.

Inventory guide

31 Aug 2026: The AI wine import scans the whole file every time and finds the origin of more wines, and the stock count input is back

AI service v1.4, Web app v2.22.1

The AI wine import used to return a different number of wines from the same file on different runs, and left many wines without a country, region or sub region because it could not match the names it read to Vinify's own. The scan now reads in batches, checks that every source row came back, and treats a partial result as a failure rather than a success. Origin names are matched far more often, and the wine name is kept exactly as the file wrote it. On the stock count page, the number field that sometimes disappeared and left only the plus and minus buttons is fixed.

The same file gives the same scan, every time

What changed. A 50-wine sheet could come back with 10 wines, then 20, then 50, with no change to the file. The scan now sends the file to the AI in batches that fit, compares the rows it got back against the rows in the file, retries the rows that are missing, and reports a scan that is still incomplete instead of presenting it as done. The wine name is copied exactly as written in the file, without the AI tidying it.

Where in the app. "Magic import", "Scan wines", then "Scan complete: N wines".

Before and after. Before: 10, 20 or 50 wines from one file. After: 50, every time.

Why it matters. An import that silently loses rows is worse than no import; the venue only finds out at the first count.

AI wine import guide

Country, region and sub region are found for far more wines

What changed. The AI read origins correctly but could not map the names it read onto Vinify's countries, regions and sub regions, so the wine arrived without them. On a 250-wine reference file, 18 wines had no country, 22 no region and 114 no sub region. The matching vocabulary was rebuilt, so names as the file writes them resolve to Vinify's own.

Where in the app. The imported wines' profiles and the cellar table, where origin is a column and a filter.

Before and after. Before: 114 of 250 wines without a sub region. After: the sub region on the wines whose file named it.

Why it matters. Origin drives the wine list grouping, the filters and the market value match; a wine without one is half imported.

AI wine import guide

The stock count number field is back

What changed. On the stock count page the "New count" field sometimes disappeared, leaving only the plus and minus buttons, so a full number could not be typed. Reported by several venues; the cause was in the table's layout and is fixed.

Where in the app. Stock count, the "New count" column.

Before and after. Before: plus and minus only, 37 clicks for a case. After: type the number.

Why it matters. A count without a number field is a count done on paper.

Stock count guide

27 Aug 2026: Wine columns, a column editor for the wine list with every selling price as a column

Web app v2.22.0, Backend v2.31.1, v2.31.2, v2.31.3

The wine list PDF used to print a fixed set of columns in a fixed format. Each list now has a "Wine columns" editor: choose which wine details print as columns, drag them into order, set their widths, and format each one, from the printed header to the price format. Every additional selling price a cellar has enabled can be a column of its own, for the bottle and for the glass. A preview in the editor mirrors the PDF. Lists that already exist print exactly as before until their owner opens the editor and changes something.

Wine columns: compose the list as a table

What changed. A list's columns are chosen from a catalog: producer, wine name, vintage, bottle size, region, subregion, country, private note, "Default selling price", "Default price per glass", every enabled additional price as "<name> selling price" and "<name> price per glass", and two combined presets, wine name with vintage, and wine name with vintage and bottle size. Columns are reordered by dragging in the sidebar or in the preview header, and sized by dragging their edges or typing a percentage. Each column has its own settings: "Show column header" with a custom printed header and a reset, text alignment, "Wrap text" or truncate, text case, and for price columns the number format (10, 10,-, 10.0 or 10.00), the decimal separator and "Show currency symbol". The bottle size column can hide 0.75 L; the producer column can repeat on every row; the vintage column has a non-vintage format ("Leave blank", "NV", "Non-vintage"). One list-level setting, "Header row", places the column headers at the start of the list, for each category, or for each country or region. The wine-by-the-glass block keeps its own layout.

Where in the app. Wine lists, open a list, "Wine columns" in the editor's left panel.

Before and after. Before: one layout for every list. After: a producer-first list with a note column and prices for the glass, next to a region-first list with none.

Why it matters. A wine list is the venue's own document. Until now Vinify decided its columns.

Wine lists guide

Additional selling prices print as columns

What changed. A cellar with additional selling prices enabled (a wine bar price and a restaurant price for the same bottle, for example) can print each one as a column, for the bottle and for the glass, named as in the pricing form. Adding such a column switches on the matching price data for the list automatically.

Where in the app. "Wine columns", the column catalog, the price group.

Before and after. Before: additional prices lived in the pricing form and the till only. After: on the printed list.

Why it matters. A venue with two rooms and two price lists prints two lists from one cellar.

Multiple selling prices guide

Existing lists do not change until you touch them

What changed. Every list that existed on release day keeps printing exactly as before. Opening "Wine columns" on such a list shows the editor preset to the layout the list already prints with, including its column order, the note column, the price block and the header labels. Nothing is saved until the first edit; closing the editor changes nothing.

Where in the app. Any list made before 27 August.

Before and after. Before and after: the same PDF, until the owner decides otherwise.

Why it matters. A printed list on every table in the restaurant must not change on its own.

Wine lists guide

13 Aug 2026: Tags on wines, full location paths when moving wines, and editable POS names for Caspeco

Web app v2.21.0, Backend v2.31.0

Wines can carry tags: your own words, in your own colors, private to your cellar, assigned on the wine's profile and used as a filter in the cellar table. When moving wines, a location search now shows the full path of each result, so two fridges with the same name in different rooms can be told apart. Caspeco venues can edit the POS article name of a wine and a recipe in Vinify. Additional selling prices no longer change value when the field loses focus for users whose display currency differs from the cellar's.

Tags

What changed. Each cellar has its own set of tags. A tag has a name and a color from a palette of 16, or any custom color. On a wine's profile, in the Details tab, the Tags field lets you pick existing tags or type a new name and choose "Create new tag". A tag's menu renames it, recolors it or deletes it; deleting removes it from every wine that carries it, and the dialog says how many. In the cellar table, Tags is a filter; choosing several shows wines that carry any of them. Tags are for you and your team; they do not print on wine lists.

Where in the app. Wine profile, Details tab, the Tags field. Cellar table, the filter bar, Tags.

Before and after. Before: no way to mark "staff pick", "to reorder" or "Christmas menu" on a wine. After: a tag, and a filter that finds every wine with it.

Why it matters. Categories are for the guest's list; tags are for running the cellar.

Categories and tags guide

Moving wines: the search shows where a location is

What changed. The "Move wines" dialog searches locations by name only, so a cellar with a "Fridge 2" in every room got identical rows with no way to tell them apart. Each result now shows its full path, "Room 1 › Fridge 2 › Shelf C", with the matched part highlighted.

Where in the app. Cellar table, select wines, "Move wines", the location search.

Before and after. Before: three rows reading "Fridge 2". After: "Bar › Fridge 2", "Kitchen › Fridge 2", "Cellar › Fridge 2".

Why it matters. Every venue reuses location names; without the path, moving wines was a guess.

Move wines guide

Caspeco: edit the POS article name in Vinify

What changed. The Caspeco integration sends every change to the till by itself, so the Vinify id fields that Caspeco venues used to copy into the Caspeco back office are gone from the cellar and recipe profiles. In their place, Caspeco venues can now edit the POS article name of a wine and a recipe, like venues on the other systems.

Where in the app. Wine profile and recipe profile, the POS article name field.

Before and after. Before: copy an id into Caspeco by hand. After: name the article in Vinify and it reaches the till.

Why it matters. One less tool open during setup.

POS integration guide

Additional selling prices keep the number you typed

What changed. For a user whose display currency differed from the cellar's base currency, a value typed into an additional selling price field jumped to another number when the field lost focus: 1 became 10.96, the exchange rate. The price was saved in the cellar's currency and shown back in the user's. Cellar requests now carry the cellar's currency, so the field keeps what was typed.

Where in the app. Wine profile, Pricing tab, the additional selling price rows.

Before and after. Before: type 1, see 10.96. After: type 1, see 1.

Why it matters. A price that changes on its own cannot be trusted on a list.

Multiple selling prices guide