MRP Virtual Production
MRP Virtual Production
Hassle-free production of variants.
Extends manufacturing with by-products and adds virtual product BoMs to help with the production of products variants. Virtual products get scraped after production and only by-products get in stock.
Pre-print product labels and prepare the amount of labels needed before hand.
Why virtual production
This module provides and alternative solution for companies that sell variants of products (like soda in 0.5, 1.5 or 3 liter bottles) and want to simplify their production process. Consider this module if:
- You do not want to use different unit of measures or product packages, instead you just want to produce and sell product variants only.
- You want to produce in bottles, boxes, or any other packaging in one easy step during production without any additionally packaging steps afterwards.
Example use case
- Define your product to produce, for example Cola. Add a bottle variant, these should include the variants you sell (0.5, 1.5, 3) and a additionally production-only variant (1 Liter).
- Use your production variant in a bill of material which is marked as virtual. Set the BoM components and quantities based on your production variant.
-
Set by-products (required for virtual BoMs) and add your sellable variants of Cola.
- In production, choose your virtual BoM and set the amount of liters you want to produce (for example 100L). The correct amount of your components are calculated for you.
-
If needed, print and prepare the needed amount of your product labels in advanced:
- If you finish production, you fill the produced 100 liter in bottles. You can set the amount of produced variants (by-products), for example 20 x 3 Liter, 10 x 1.5 Liter and 12.5 x 0.5 Liter.
- Only the quantities of your by-products are moved into stock. The quantities of your base production variant is moved to a virtual stock location. If your products are tracked by lot- or serial numbers, these numbers are generated for you automatically.
Suppliot Virtual Production
Requirements
To use this module, make sure that following settings are enabled in Odoo
- Settings >
- Inventory > Products > Variants
- Manufacturing > Operations > By-Products
Product Variants
Virtual production requires to use product variants, therefore you need to configure your products accordingly. It's recommended (but not required) to create a base production variant to use for your bill of material (see Bill Of Materials below) and variants to sell.
Examples
- Single (Production)
- Single
- Small
- Medium
- Large
Production is per single piece and during production each produced piece is put in boxes.
- 0.5 L
- 1 L
- 1 L (Production)
- 1.5 L
- 3 L
- 5 L
Production is per liter and during production these liters are filled in bottles.
You might wanna configure your variants based on your company requirements. The purpose of the example is to show you possible configurations but virtual production does not enforce any variant configuration and you are free to use any variant you need.
Bill of material
A bill of material should be based on your production variant and must be set as virtual. If you have existing bill of materials or ingredient lists, you might convert your values according to your variant. Of course you can create a production variant based on your existing bill of materials too.
Example
Existing bill of material:
- Product: Cola
- Amount: 100 Liter
- Bill of material lines: 100L Water, 120g Sugar
- Possible variant configurations and bill of material lines:
- 1 Liter Production Variant: BoM = 1L Water / 1.2 g Sugar, Workorder = Quantity x 100
- 100 Liter Production Variant: BoM = 100L Water / 1.2g Sugar, Workorder = Quantity x 1
How you set your variants and bill of materials depends on your use cases. If your production depends heavily on current demand and you production amount is varying than it might be better to use the first configuration to set the production quantity more flexible. Additionally you can create production reports based on your base variant, to answer questions like "How many liter of product x was produced this month".
If you always produce a fix amount of 100 liter and do not require any detailed reports, just use the second configuration option.
By-Products
To produce your variants to sell, a virtual bill of material requires by-products. Only by-products are produced and go to stock. The base production variant is moved to a virtual stock location and remains "available" only for reporting.

Production
Odoo automatically calculates the required amount for your bill of materials line based on your quantity. Make sure to set the quantity according to your base production variant and keep in mind how much of each variant you want to produce
Examples
- Base Variant 1L:
- If you want to produce 50 x 5L bottles you need to set the quantity of your manufacturing order to 250L.If you want to produce other variants as well you have to increase the amount accordingly.
- Base Variant 100L:
- If you keep your manufacturing order quantity at 1, you are only able to produce 25 x 5L which results in 100L. Of course you can increase the amount to 2.5 to produce 50 x 5L as well.
- Base Variant Single:
- If you want to produce 2 medium boxes (contains 3 pieces) and 3 large boxes (contains 5 pieces), set your quantity to 21 (2x3 + 3x5).
Always keep your configuration and the amount of each variant you want to produce in mind. This is important for correct calculation and usage of your bills of material lines.
Produce
The final step on your manufacturing order is the production modal wizard. As usual you can set the amount of used material and correct quantities if you have used more or less materials. For virtual BoMs you have to set the amount of your real produced variants (by-products). Only the quantities of your by-products are moved into stock. The quantities of base production variant are moved to a virtual stock location. If your products are tracked by lot- or serial numbers, these numbers are already generated for you automatically.
Print product labels
If needed for your production process you can print product labels before hand. The print label wizard displays your by-product variants of your current bill of material. You can set the expected amount of labels needed per product and print them. If you print labels before production the amount of printed labels is stored and afterwards used as by-product quantity in production wizard.

Customize product labels
There are multiple ways to customize the product label which is uses for the label wizard.
Inherit from 'suppl_mrp_virtual_product_production.label_production_view_pdf_page' and add or remove content. The label already defines the following DIVs:
- div#'label_header': Company and article information
- div#'product_information': Empty div to add own product information
- div#'barcode_infos': Product barcode and tracking (lot/serial) information
You can also replace the whole label content div (div#'label-page-content') to create your own label.
Use Odoo Studio to make required customizations.
[Not recommended] Search for 'mrp_virtual' to find 'Finished Product Label (PDF)' in Technical Settings > Reporting > Reports and set 'Template Name' to your desired report. Make sure your report is for model 'mrp.production' and keep in mind that the print label wizard can be used before your manufacturing order is finished. Therefore you might not have finished quantities. See 'mrp_virtual_production_label' report for reference.
The default report paper format uses following size 90mm x 90mm. You might want to change these values according to your needs.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module