How to add a list of stock and node reference to create the perfect stock of beers? I'm creating a Drupal site that is able to follow the stock of your beers.

For beers, I have a Beer Content type wth all info on the beer, it's OK.

Now, for each user, I want to give the possibility to create a list of beer and the number of beer user has in fridge. How can I do that?

I was thinking of making these Content Types:


InStock (fields : int + node reference to beer).
MyBeers (fields : node reference to InStock).


But with that, user has to create one InStock for each beer and then after that create one MyBeers and reference to all it's beers, so it isn't the good approach.

I don't want to make custom module if it's possible.

Ideally in fact, in my perfect works, I can add directly a List of (node reference to beer + int items in stock) into the InStock but I don't know how to do so.
Only use the Flag module, so that your users can just &quot;flag&quot; the nodes related to your Beer Content type. With such approach, there is no need for the extra content types InStock and MyBeers that you are considering (a commonly known best practise in Drupal is to try to keep the number of content types to a minimum).
Some details about the Flag module (from its project page):

Flag is a flexible flagging system that is completely customizable by the administrator. Using this module, the site administrator can provide any number of flags for nodes, comments, users, and any other type of entity. Some possibilities include bookmarks, marking important, friends, or flag as offensive. With extensive views integration, you can create custom lists of popular content or keep tabs on important content.
Flags may be per-user, meaning that each user can mark an item individually, or global, meaning that the item is either marked or it is not marked, and any user who changes that changes it for everyone.
In this way, additional flags (similar to published and sticky) can be put on nodes, or other items, and dealt with by the system however the administration likes.

Create a flag that can be used by each user individually (not a &quot;global&quot; flag), so that each user can flag the Beer Content types, and which would be the equivalent of your &quot;MyBeers&quot; type you had in mind. And by using the technique of Attaching fields to flags, you could create a field corresponding to that &quot;int&quot; field of your &quot;InStock&quot; content type you had in mind.
Super easy and straight forward. And by using the Flag module, as a bonus you get all those amazing features about integrations with other modules such as Rules, Views, Views Bulk Operations (VBO), etc. Some samples:

Build a view to see what is in &quot;your&quot; fridge, and or apply mass updates using the VBO module.
Use the Rules module to send eMail reminders when your stock &quot;is running low&quot;.

If you're not familiar with the Flag module, checkout the set of 8 video tutorials about this module. Especially the Video about Creating non-global flags: between about 6:00 and 8:30 it explains how to add a Flag-related relationship in your view, so that you can then also use flag related data in your view (for fields, etc). The same video (near the end) also shows how to combine this with VBO.
Some more suggestions related to some additional (non-global) flags I recommend you to create, which would probably enhance the beer-experience of your users even further:

My favourites: a flag to indicate the favourite beer(s) of a user (... like &quot;Leffe Blond&quot; ...)
Looking for it: a flag to indicate the beer(s) a user is looking/searching for, like where to buy such beer (like &quot;Celis White&quot; ...).
Tasted it: a flag to indicate the beer(s) a user ever tasted, e.g. to create a contest about nr of different beers somebody every tried (like &quot;400&quot; ...), or an inventory of beers that are still on your whish list to ever try (like &quot;empty&quot; ...).