My Grocy Workflow / Usage

How we hacked our grocery workflow...

Posted by: Henning // 25th Jun 2022 // Category: //

Often times when we were shopping, we had the problem that we did not know, what we had at home. "Do we have tomatos? How many noodles do we have at home?" and so on. After some time we were quite annoyed by this issue and I began to search the internet for a solution. I finally came up with grocy - the "ERP beyond your fridge". A great solution by Bernd Bestel.

How it works...

Grocy is a fully working ERP System - but optimized for groceries. You can track the amount of items, the best before date, the price and so on. And what I use the most: it can track a minimum amount, that needs to be in stock.

How do I use it?

Shopping / Purchase

After I arrive home, I have to scan the barcodes of all tracked items. This usually takes one or two minutes, and I'm done. It always depends if I want to set all best before dates or just use the default assumptions. That makes it really fast to have everything in the database.

Create my Shopping List

This is now, where the fun part starts :) I am a very lazy person. I do not like to do things that can be done by a machine. And due to the fact, that grocy already knows what I am missing it can populate this to a shopping list. It even has a build in shopping list - but that is not as comfortable as other apps like bring. We use bring quite a lot, also the Alexa Skill is quite nice, so I decided to create an API from grocy to bring, to get all my missing products (and the quantity) from grocy and have them appear on bring.
That works really well, every morning my bring list is updated and I know what I need to buy.

The code is already provided on github:

Smart Shopping

In our grocery store we have "Smart Shopping Carts". These are self-service cash register on wheels. While you run through the store and collect all your itmes, you simmply scan all products and at the end you just have to pay the amount that the "EasyShopper" tells you. Really great. And it has a really big screen, that shows you what's in your cart. After the second visit I noticed: it can also show me a shopping list.

As I already said - I'm lazy. So I went out to check the API docs... but there are no. So I fired up Proxyman and checked the traffic of the EasyShopper App. The API was straight forward, so I created a PHP Class for the API and made my shopping list appear on the EasyShopper too.

Shopper Display Shopping list

Looks sick, right? Running through the store and having the missing items on the screen of your shopping cart. But there was one downside: Everytime I took something from the shelf, scanned it and put it in the cart, I also had to delete it from the list. That was, because I just created "custom" items with a name, when adding my items to the list. I did not use the catalog items.

You remember my lazyness, right? So I went out and looked at the API again. Yes - I was able to get my past purchases with all the products I bought. Why not setup a small app that allows me to link my "grocy products" to the "EasyShopper products"?

Here we go - so I am now able to fetch my previous bills with the products that I bought and can assign them to grocy products. Every grocy product has a field called "EasyShopperItemId" that is used for the ID.

Now I simply needed to do some little modifications to my EasyShopper API and my shopping list script and the "real" products are populated. Everytime I scan something in the store, it disappears from my shoppinglist.