In food preparations, substitutions can become handy, but there are times when traditional systems cannot process the interchangeable use of similar ingredients. This is what Apicbase hopes to bridge with the Stock Variants.
Table of content
1. What are the Stock Variants?
The complexity of the kitchen is sometimes difficult to bring into a software like Apicbase, particularly regarding ingredient substitutions. Often, a recipe can use various versions of an ingredient. Ideally, we handle this by creating different packages within the same ingredient. However, if this isn't feasible, we must introduce a secondary ingredient, a variant, to replace the primary one as needed. Stock Variants help maintain recipe and stock accuracy and consistency, even when primary ingredients are unavailable and must be substituted with variants.
In Apicbase, it is possible to link similar ingredients under a single, primary ingredient. By setting this up, various versions of this ingredient (the stock variants) can be managed under one page. Let's better define these two types of ingredients:
- A Primary Ingredient is the main ingredient that serves as the standard reference for any variations or substitutions. A primary ingredient will have stock variants that can substitute it in case it is not present in the inventory. A primary ingredient cannot be a variant of other primary ingredients.
- A Stock Variant is an alternative or a substitution for a primary ingredient that can be used interchangeably when preparing recipes. A stock variant can be a variant for multiple primary ingredients.
Let's give an example. I usually use Sunflower Oil for fried recipes. However, if I run out of it, I use Olive Oil as a substitute. In this scenario, the Sunflower Oil is the Primary Ingredient, while the Olive Oil is the Stock Variant.
Now, how does this influence our stock? In any normal inventory event, the ingredients of the recipes involved will be removed from the stock. If one of the ingredients searched is not in stock and has a variant that is in stock, the variant will be taken in substitution of the primary.
That is, if I am selling a portion of Fries, the system will look for potatoes, salt, and sunflower oil. But, what if I don't have any sunflower oil in stock? Then the system will search for any available variants, like the olive oil, and take it instead.
1.1. More about the Stock Variants
- Primary/variant relationships
- A primary ingredient can have several stock variants. E.g. Sunflower oil can be substituted by olive oil, coconut oil, canola oil...
- While an ingredient can be the stock variant of several primary ingredients, a primary ingredient cannot be the stock variant of another ingredient. E.g. olive oil can substitute sunflower oil in some recipes and butter in others. But butter and sunflower oil cannot be used as substitutes for anything else.
- Both integrated and manually created ingredients can be either Primary ingredients or Stock variants.
- Recipes and Bills of materials (BoM)
- When adding ingredients to a recipe, you will see a symbol indicating whether an ingredient is a Primary , or a Variant .
- Both Primary Ingredients and Stock Variants can be used in recipes.
- When creating a BoM for a recipe containing a Primary ingredient, the variants of this ingredient will be available as alternatives to the Primary ingredient. You will find the different alternatives to be purchased under "Choose Product". Note that the cheapest package will be suggested by default from among all the options available.
- Finding variants in my library
- You will find a filter in the Ingredient list to see only Primary Ingredients or Stock Variants.
- The Packages and Pricing tab of the Primary ingredient will show its variants, but the ingredient detail of a variant doesn't indicate its primary ingredients.
- Inventory movements
- Apicbase will always try to avoid bringing a stock item into a negative quantity. If the Primary ingredient is not present, the system will look for any of the available variants to be depleted without going negative (if possible).
- If a variant is removed from inventory instead of the primary ingredient, this will be recorded in the stock history of that variant.
2. Use Cases: when to use Stock Variants
Here are a few scenarios where this setup can be useful:
- An ingredient can be substituted by another
The most generic example of the ingredient substitution. If an ingredient runs out of stock, we need to use a similar one as a substitute in its recipes, and we want this to be reflected in our stock. A good example of this is the one given in the previous section with the sunflower and the olive oils. If we run out of sunflower oil for frying, olive oil can do the job instead. That means, olive oil is the variant of sunflower oil, which is the primary ingredient.
However, olive oil can be used in other recipes by itself, not depending on the presence or absence of sunflower oil in stock. For instance, olive oil can be used as a dressing in my recipe Green Salad, where it doesn't act as a substitute for the sunflower oil.
Note that, when building recipes, there is no restriction to using variants or primary ingredients. Both variants and primaries can go into recipes, so think well what is the structure you are looking for before building it.
- Using several Integrated Suppliers
Ingredients coming from integrations are not always easy to manage. If two integrated suppliers offer the same ingredient, this cannot be set up as one-only ingredient. This results in a duplicated ingredient, issued from each one of the integrations. If you use more than one integrated supplier, you might have encountered this situation.
Usually, one of the two versions is the one used most frequently (the primary), while the other is only purchased when the first is not available (the variant). For example, if I always buy my beef from Bidfood, and use the one from Hanos only when Bidfood doesn't have it in stock; then Bidfood's Beef should be my primary beef, while Hanos' Beef should be the variant.
- Different Outlets have different supplier relationships
In complex setups, outlets using the same suppliers might have access to different products, leading to complications in managing stock across multiple locations.
Let's say outlets A and B share the same suppliers X and Y. However, the ingredient Ribs is only delivered to A by X and to B by Y. Since we cannot link outlets to a particular package, but to an ingredient, separate ingredients need to be created.
In this scenario, a "generic" ingredient can be created, with no packages or suppliers at all, as the primary. This "generic" ingredient will be used in the recipe. Then an ingredient for each particular outlet can be created, with their corresponding packages and suppliers, as the variants. Every time the recipe is sold in each outlet, only the available variant will be deducted from the stock!
For example, if outlets A and B use the same recipe, BBQ Ribs, but source their Ribs from different suppliers, the setup should contain: a generic ingredient "Ribs", as the primary, that is part of the recipe; and two ingredients, "Ribs A" and "Ribs B", as the variants.
3. How to set up Stock Variants
- Find or create the ingredient that will be the Primary Ingredient. Go to the Packages and Pricing tab in the ingredient detail (you don't need to be in Edit mode for this).
- In the section "Stock Variants", below "Manual Package", click on Add Variant.
- In the pop-up, click on Add, then search for the ingredient you want to use as a variant (this needs to be created beforehand) and select it. Then click Save.
- You should see the packages of the selected ingredient under the "Stock Variants" section. You can edit the information on these packages from the Edit mode on this page.
- Don't forget to manually link the variant(s) to their corresponding outlets. You can do this from the Outlets tab of the ingredient detail of the variant, in Edit mode.
4. Limitations of the Stock Variants
Although the Stock Variants can be a powerful feature in many use cases, it is currently focused on inventory management. Therefore, there are some limitations to be taken into account.
- Outlet linking: linkage to outlets is not inherited by a stock variant from its primary ingredient. Linkage inherited from recipes or menus will only affect the ingredient used in the recipe, but not any of its variants. You should make sure variants are correctly linked to their corresponding outlets by manually linking them.
- Allergens and Nutrition: regarding allergens and nutritional information, only the exact ingredient used in a recipe is considered, and not any of its variants.
- Theoretical Food Cost: when checking the theoretical food cost of a recipe in its recipe detail, only the prices related to the exact ingredient used in the recipe will be used for the calculation, and not those of its variants.