Changelog & release history

  • New API method to get a product by its barcode (/stock/products/by-barcode/{barcode}, thanks @matejdro)
  • The best before date on the purchase and inventory page can now also be today or earlier, but when so, a short hint is displayed
  • Fixed some UI bugs
    • When consuming a product with "Allow partial units in stock" enabled from the stock overview page, the displayed amount after the stock booking was wrong
    • The inventory form was not validated with certain click paths
  • Some small UI fixes & improvements
    • Recipe ingredient notes were not displayed
    • Edit/delete buttons on the equipment page had no icons
    • Improved the overview pages "action buttons column" (e. g. hide more rarely used actions behind a context/dropdown menu)
    • The "purchase to stock conversion factor" is now displayed on the purchase page when QU units are different (above the amount field)
    • Some JS files were not loaded correctly on case sensitive file systems
    • The changelog is now included as markdown files (in /changelog directory, one file per release with a filename in format <ReleaseNumber>_<Version>_<ReleaseDateIso>.md) and shown in the about dialog
    • Please review your CURRENCY setting in data/config.php, see also config-dist.php - this should be the ISO 4217 code of the currency to properly work with the JS toLocaleString function
  • New translation: (thanks all the translators)
  • Breaking change: The API has been completely reworked, please review the documentation before updating when you are using the API
  • New feature: Tare weight handling
    • An option per product
    • Imagine this: You have flour in jars, the jar weighs 500 grams, currently there are 1000 grams in stock, the new weight including the jar is 1100 grams - grocy can now calculate the used amount on consume/purchase/inventory automatically, you only have to enter the weighed amount including the jar (demo product to showcase this "Flour")
  • Recipe improvements
    • Recipes are now scalable - define per recipe for how much servings it is, change the desired servings on the fly when the recipe is displayed, ingredient amounts are scaled accordingly
    • The cost of a recipe is now displayed based on the last purchase price per ingredient (recipe scaling also applies)
    • When putting all missing recipe ingredients on the shopping list, it is now possible to ignore certain ingredients (in the popup when clicking the "Put missing items on shopping list" button)
    • A new option per recipe to not check against the amount already on the shopping list when putting all missing ingredients on it (by default, only the amount not already on the shopping list is added, when this is enabled, always the whole missing amount will be put on the shopping list)
    • On consume, there can now be tracked for which recipe it was, this is also tracked automatically when using the "Consume all ingredients needed by this recipe" button (for future statistical purposes)
    • Recipes can now have pictures
    • New "gallery view" for recipes (demo available at https://demo-en.grocy.info/recipes?tab=gallery)
  • Stock improvements
    • It is now optionally possible to have partial units in stock (option per product)
    • On purchase, a different location can now be assigned (imagine you have two freezers, by default you store your pizza there, but sometimes there)
  • New translations: (thanks all the translators)
  • Other improvements
    • The calendar can now be shared/integrated in iCal format (button in the header on the calendar page)
    • Added feature flags to hide/disable certain parts of grocy when you don't use them (for example hide "Chores" and all related UI elements, when you don't use it, see config-dist.php)
    • Added a "Apple Touch Icon" and a "Web App Manifest" which should improve grocy on mobile devices and also enables "Add to Home screen" on major mobile browsers
    • A lot of other minor small and bigger UI improvements
  • Fixed a SQL error during database migration when using SQLite >= 3.25.2
  • Improved data tables loading time
  • Location edit form did not work (master data)
  • Quantity unit "purchase to stock factor" was not respected when putting a recipe on the shopping list or when comparing the already on the shopping list amount
  • Better API response for POST routes when there is no or invalid JSON request body content
  • All config.php settings can now also be set via environment variables (for grocy-docker)
  • Added a skip button when adding all shopping list items in "Shopping list to stock workflow"
  • Fixed some minor UI related bugs
  • New feature: "Shopping list to stock workflow"
    • Add a single shopping list item or all at once to stock directly from the shopping list
    • There are new "stock settings" under settings menu in the top right corner
    • You can enable there, that all products which have "Default best before days" set, are added without confirmation in this workflow
    • => This means, you can add the whole shopping list to stock with one click, if you want
  • Improved stock handling
    • On consume, a specific stock item can now be picked
    • A stock item can now be marked as "opened" (on the consume page or directly from stock overview, visible in the product card and on the stock overview page)
  • New feature: Calendar
    • Shows all upcoming product expirations, due chores, due tasks and due battery charge cycles
  • New translation: French (thanks all the translators)
  • Small other improvements
    • Allow fraction numbers for recipe ingredients when not checked against stock and add an option to not check stock for a recipe position
    • The current time can now be shown in the header (see the settings menu next to the user icon)
  • Changed: Docker related things are now in a separate repository: https://github.com/grocy/grocy-docker
  • Changed: Translations are now managed with Transifex: https://www.transifex.com/grocy/grocy
  • Added a journal for stock bookings, chore executions and battery charge cycles
    • => Button in each line on the overview pages or the "Journal" button next to the headline on every overview page
  • Added the possibility to undo any stock booking, chore execution and battery charge cycle
    • => Button in the success popup while booking a purchase/consume/etc. or on the new journal pages (see above)
  • Presets for new products are now configurable
    • => "Presets for new products" button next to the headline on the products list page
  • Recipes can now be nested (include a recipe into another one)
  • Recipe ingredients can now be grouped together which will result in headlines per group in the rendered recipe
    • => Group can be set on the recipe position edit page, demo recipe is "Pizza")
  • On the stock overview page, the product card is now shown when clicking the product name
  • Added option to filter by product group on stock overview page
  • When auto reloading on external changes is enabled, the page is not reloaded when there is a fullscreen card active (recipe/equipment instruction manual)
  • On the product-/chore-/batterycard there is now a link to the edit page of the corresponding item
  • Some other minor bug fixes
  • New feature: Equipment
    • Manage all your household equipment/devices in one place and have the information/instruction manual at hand when needed
  • New feature: Products can now have pictures
    • Add them in the product edit page
    • Will be shown in the productcard (purchase/consume/etc. pages) and when you click the product name on the stock overview page (a little image icon next to the product name indicates if the product has an image)
  • Recipes and the new equipment edit page now have a little editor with text formatting capabilities
  • New optional "Night Mode" (thanks a lot @BlizzWave, can also be activated automatically by a time range - see the new dropdown menu next to the user menu)
  • Docker support (thanks @talmai)
  • Fixed some minor UI bugs
  • Important bug fix: All forms were submitted twice when using ENTER instead of the OK/Save button
  • Norwegian translation updates (thanks @BlizzWave )
  • The colored info bars on top of all (overview)pages can now be clicked to filter the table accordingly
  • Fixed some minor mostly UI related bugs
  • New feature: Tasks / To-do list
  • Renamed habits to chores as this is more what it is about
  • Products can now be organized in product groups, this group is also used to group the items on the shopping list (you can use this to optimize your way in the supermarket for example)
  • Added an option to stay logged in permanently (checkbox on the login page)
  • When the database was changed externally, the current page is automatically reloaded when there was no input for at least 50 seconds
  • Fixed some minor UI bugs
  • Some smaller UI bug fixes and enhancements (thanks again for all the testing @BlizzWave)
  • The complete row is now refreshed on changes on all overview pages
  • Added a checkbox to set the "never expires date" in best before date inputs (alternative to shortcut "x")
  • Recipes can now have arbitrary quantity units and stock is only checked for one unit then (imagine you have sugar in "Packs" in stock but your recipe "Pancakes" needs 200 grams)
  • Added a "consume this recipe button" to remove all ingredients of a recipe from stock with one click
  • Other small UI changes/improvements
  • Basic product price tracking (can be entered on purchase, a little price history chart is shown in the product card - right side on purchase/consume/etc. pages)
  • Proper pluralization of everything (for quantity units you can enter the plural form in master data)
  • On all overview pages the statistics shown in the header are now updated when doing changes directly on the page (e. g. consuming a product)
  • Lots of small fixes and improvements (form validation, translations - thanks for keeping the norwegian translation always updated @BlizzWave, other small bugs)
  • Replaced the single user (so far defined in /data/config.php) with a multi-user management
    • The currently defined user will automatically be migrated, please remove HTTP_USER and HTTP_PASSWORD from your config file afterwards
    • For this it was necessary to delete all sessions and API keys during the migration
  • Added an update script (/update.sh) to make updates (on Linux machines) easier
  • Added the possibility to track who did a habit
  • Added a rudimentary habit analysis possibility
  • Different small UI, code and translation improvements
  • New related project: grocy-desktop
  • New datepicker shorthands and improvements
    • YYYYMMe or YYYYMM+ gets expanded to the end of the given month in the given year in proper notation
    • Changed: MMDD will be expanded to the given day next year if > today
    • see README
  • Some other small bug fixes
  • New feature: Recipes
    • Organize a list of products, amounts and a description into recipes and see at a glance if everything needed is in stock or put the missing things with one click on the shopping list
    • Try it live on the demo page: => https://demo-en.grocy.info/recipes
  • Added norwegian translation (thanks @BlizzWave)
  • A lot of small UI improvements
    • Columns in tables can now be reordered
    • Show a calendar on the shopping list page (useful, at least for me)
    • Table column ordering and sorting is now remembered
    • Sidebar collapse state is now remembered
    • Fixed datetimepicker border
    • Keep the parent sidebar menu item expanded if the active page is a sub menu item
  • Custom JS/CSS file names have changed see README

This was released shortly after the last release to fix a small regression bug, original changes from Version 1.13.0:

  • Upgraded Bootstrap and some other dependencies (grocy now looks even better!)
  • Added Italian translation (thanks @davidoskky)
  • Upgraded Bootstrap and some other dependencies (grocy now looks even better!)
  • Added Italian translation (thanks @davidoskky)
  • Bug fix for location filtering on stock overview page did not work in all browsers
  • On the stockoverview it's now possible to filter the products by location
  • All dropdowns are now sorted alphabetically
  • Added an option to not use URL rewriting (for webservers which, however, don't support URL rewriting)
  • It's now possible to consume products directly from stock overview with one click
  • Added due/overdue info on bateries- and habits overview (like on stock overview)
  • Reworked general page layout and improved responsiveness (see #9 and thanks @d-Rickyy-b)
  • Translations fixes
  • Added a plugin system for looking up products against external services by barcode, see #6 for reference
  • Added validation of all API requests and improved Swagger/OpenAPI description
  • Documented the REST API and data model, see the integrated instance of Swagger UI at /api
  • Fixed login form didn't respect the configured BASE_URL
  • New configuration option "BASE_URL" to define base installation URL (should make subdirectory installations possible, see #3)
  • Added some missing translations
  • grocy is now fully localizable and ships by default with English and German translations
  • Allow to add anything to the shopping list, not only products
  • Major project refactoring
  • Improved sidebar responsiveness
  • New feature: Rechargeable battery management
  • Improved productivity of input forms
  • New feature: Habit tracking
  • Fixed an issue which prevented that the databse is correctly created on unix systems
  • Added a login screen and switched to cookie/session based authentication instead of HTTP-basic-auth
  • Added a favicon and more productivity improvements
  • Added a flow to add a new product with prefilled barcode
  • New feature: Shopping list (which is also automatically filled based on defined min. stock amount)
  • Small UI changes for better productivity
  • Added flow to directly add products and barcodes from purchase and inventory view
  • Add possibility to have multiple barcodes per product
  • Form validation and barcode input handling improvements
  • General improvements, the work goes on...
  • Basic features, mainly about a interface to record grocery purchases and consumptions