Adding additional properties to a Shopping list item

The item dictionary for a shopping list item currently contains the ID (item.id) , Name (item.name) and Status (item.complete) of the entry on the list.

A typical shopping list at a minimum also contains an item quantity that shows how many items need to be bought. The current implementation of the shopping list does not support this and requires you to:

  1. Update the existing item by adding a number in front of the name , if an additional identical product is added it requires an update of the name . (eg. “2 Jumbo Koffie cups - 06 Lungo” → “3 Jumbo Koffie cups - 06 Lungo”)
    (This is what the Mealie integration has implemented in its current release)
    -or-
  2. Add a duplicate item to the list.

Solution 1) requires a lot of complicated templating and is prone to errors if the items on the list are also manually updated/changed; solution 2) is hard to use because the duplicate items will be in random order and not easy to identify in a long list.

Suggested solution.
The most ideal solution would be to allow for manual configuration of the item dictionary. For example being able to add additional properties (for example: “qty: int , type: str”) in a configuration file.
If that is not possible, hardcode a number of generic additional fields like quantity, type, etc)

Background: I have implemented an automated shopping list that uses a barcode scanner to add (product consumed, need to buy) and remove (product purchased, back in stock) items to and from the shopping list. When scanning the same product multiple times I want to update the quantity instead of adding a duplicate product.