Solar module manufacturing is not simply about converting solar cells into finished panels. Behind every module is a chain of procurement, imported materials, BoMs, production operations, testing, quality checks, serial numbers, costing, dealer sales and warranty obligations.
As production volumes grow, managing these processes through separate spreadsheets, registers and standalone systems becomes increasingly difficult.
Purchase may know what the imported cells cost. Stores may know which cell lots are available. Production may know yesterday's output. Quality may maintain flash and EL test results separately. Sales may know which modules were dispatched to a dealer.
But management needs a much simpler answer:
Can we trace one finished solar module all the way from the cell lot and production line to its test results, customer and warranty history?
This is where a connected ERP becomes valuable.
With the right implementation, Odoo can connect the journey from imported cells → inventory → production → testing → finished module → dealer → warranty, creating one operational trail across the business.

The Solar Module Manufacturing Challenge
The core problem is not a lack of information. It is disconnected information.
Purchase, stores, production, accounts, quality and sales may each have accurate records, yet the business can still struggle to answer two basic questions: What did this finished module actually cost, and which cell lot went into it?
For many solar module manufacturers, the answer is spread across multiple spreadsheets and registers. Purchase tracks imported cells and components, stores maintains inventory and lot information, production records line output, quality keeps EL and flash-test results, accounts manages freight and duty, while sales handles dealer orders and dispatches.
The complexity increases because manufacturers often manage two supply chains at the same time. Solar cells and critical components may be imported with longer lead times, foreign currencies, freight, customs duty and insurance, while glass, EVA/POE, aluminium frames, junction boxes, ribbons, backsheets and packaging may be sourced locally.
At the same time, materials move through a structured production line:
Cell Sorting → Stringing → Layup → EL Testing → Lamination → Trimming → Framing → Junction Box → Flash Testing → Final Inspection → Power Binning → Labelling → Packing
Every stage creates information that matters later. A manufacturer needs clear visibility into cell inventory by lot and landed cost, supplier and import details, the BoM and manufacturing order used, module serial numbers and test results, finished-module availability by power class, and the dealer or customer who received each module.
The challenge, therefore, is not simply collecting more data. It connects procurement, costing, production, quality, inventory and sales so every finished module has a complete and traceable journey—from imported cell to finished module and ultimately to the customer.
What a Solar Plant Can Manage in Odoo
For a solar manufacturer, the useful question is which operational records the business can run through one connected system. Odoo can cover most of the core flow with configuration; the remaining work tends to sit around physical equipment integration, power-class assignment and specialized warranty workflows.
The business shift is from disconnected spreadsheets to a single connected ERP data layer.

| Business capability | How Odoo supports the process | Where additional work may be needed |
| Multi-level BoMs | Model technologies, variants and genuine sub-assemblies so the product structure reflects the factory floor. | BoM design discipline; additional development only where product selection must be automated from test results. |
| Multi-currency purchasing | Record supplier purchases in their transaction currency while accounting remains in company currency. | Custom reconciliation against customs documents or special FX workflows may need finance design. |
| Landed cost allocation | Bring freight, duty and insurance into inventory value using defined allocation methods. | Late freight bills may require a revaluation policy and finance ownership. |
| Work centres & routing | Map physical stations to operations, capacity, duration and production cost. | Shop-floor capture method must be designed around actual operator behaviour. |
| Lot & serial traceability | Track incoming cells by lot and finished modules by unique serial number. | Customer-facing trace layouts or specialized recall views may be developed. |
| Quality controls | Attach measurements, pass/fail checks, pictures and instructions to manufacturing operations. | Flash/EL tester integration is equipment integration rather than basic configuration. |
| Power-class binning | Use product variants or serial-level measurements to represent the output class of a finished module. | Automatic assignment from tester output requires an integration or operator workflow. |
| Dealer sales & dispatch | Manage quotations, dealer-specific pricing, stock reservation, picking and serialised delivery. | Complex dealer workflows may need additional approval or automation. |
| Warranty workflow | Keep the serial, customer, delivery and invoice connected so claims can start from the physical module identity. | Special warranty clocks, claim rules and RMA workflows may require development. |
How Should Solar Module BoMs Be Structured in Odoo?
The Bill of Materials (BoM) is the foundation of manufacturing control in Odoo. It defines not only what goes into a solar module, but also helps connect material consumption, production operations and finished-product costing.
A typical solar module may bring together solar cells, front glass, EVA/POE, backsheet or rear glass, interconnect ribbon, aluminium frame, junction box, sealants, labels and packaging materials. The challenge begins when a manufacturer produces multiple technologies.
One BoM Does Not Fit Every Solar Technology
TOPCon, Mono PERC, Bifacial and BIPV should not automatically be treated as variations of the same recipe. The cell technology may change, but so can the encapsulant, rear construction, frame and other components.
| Component | TOPCon | Mono PERC | Bifacial | BIPV |
| Cell | TOPCon n-type | PERC p-type | Bifacial cell | Per design specification |
| Front glass | Tempered, ARC | Tempered, ARC | Tempered, ARC | Often toughened, thicker |
| Rear layer | Backsheet | Backsheet | Rear glass | Rear glass or structural panel |
| Encapsulant | EVA or POE | EVA | POE typically | Per design specification |
| Frame | Anodised aluminium | Anodised aluminium | Anodised aluminium | Frameless or custom structural |
| Junction box | Standard | Standard | Standard | Often relocated or low-profile |
*Actual construction depends on the module design.
A practical Odoo approach is to maintain technology-level BoMs and use product variants or variant-specific BoM lines where the differences are limited to attributes such as wattage, frame option or other component variation.
This avoids unnecessary duplication. For example, 4 technologies × 3 power classes × 2 frame options could create 24 separate BoMs if every combination is cloned. A cleaner structure can keep the core technology BoMs while managing suitable differences through variants.
The goal is not to create more BoMs. It is to create the right BoMs.
When a multi-level BoM earns its complexity
Some solar plants create intermediate products such as cell-string assemblies. If those assemblies are genuinely produced, stocked, counted or moved separately, a multi-level BoM can reflect that process. A TOPCon module, for example, could be structured visually as:

Example product structure: a finished module with a cell-string sub-assembly and supporting components.
Finished Module (TOPCon 550W)
├─ Cell String Assembly sub-assembly
│ ├─ TOPCon half-cut cells
│ └─ Interconnect ribbon
├─ Front glass ├─ Encapsulant ├─ Backsheet
├─ Frame └─ Junction boxThis structure creates a clear relationship between raw materials → intermediate assembly → finished solar module.
However, more levels do not automatically mean better control. If cell strings are produced and immediately consumed in the same continuous process without being independently stocked or moved, stringing can simply remain a manufacturing operation within the finished-module BoM.
Keep the BoM as Simple as the Factory Allows
The right BoM design should answer three practical questions:
What are we manufacturing? → What materials does it consume? → What operations transform those materials into the finished module?
Odoo should then mirror that reality through BoMs, variants, components and manufacturing operations.
ERP should reflect how the factory actually works—not force the factory to work around an unnecessarily complicated ERP structure.
How Do You Capture the True Cost of Imported Cells?
For many solar module manufacturers, solar cells are one of the largest material costs, and they are often imported. This creates a common costing problem: treating the supplier invoice as the complete cost of the cells.
In reality, the cost of imported cells can include:
Cell Purchase Price + Freight + Customs Duty + Insurance + Other Import Charges = Landed Cell Cost
If these costs are maintained separately, purchasing may show one cell cost while finance and production work with another. The result is simple: if the cell cost is incomplete, the finished-module cost will also be incomplete.
Manage Multi-Currency Imports in Odoo
A single shipment can involve multiple currencies. The cell supplier may invoice in one currency, international freight may be billed in another, while insurance and local charges may be paid in INR.
Odoo can record transactions in their respective currencies while maintaining accounting in the company's base currency, based on the configured exchange-rate and accounting setup.
This keeps procurement cost, additional import expenses and inventory valuation connected without treating them as the same transaction.
Allocate freight, duty and insurance with Landed Costs
Odoo's Landed Costs workflow takes costs that arrive on separate bills and pushes them into the inventory value of the goods they relate to. The process is straightforward: create a cost product, mark the bill as a landed cost, link it to the relevant receipt, and choose an allocation method such as equal, by quantity, by current cost, by weight or by volume.
For cells, split by quantity when the shipment contains one cell type, and by current cost when the shipment mixes technologies with different values.
One important design constraint should be decided early: landed costs apply to products using real-time valuation with FIFO or average costing. On standard-price costing, the inventory adjustment is not applied in the same way. Choose the costing approach during design, not after the first container lands.
What Difference Can Landed Cost Make?
Consider a simple example:
| Without Landed Cost | With Landed Cost | |
| Cell value | ₹50.00 | ₹52.50 |
| Cells per module | 144 | 144 |
| Cell cost per module | ₹7,200 | ₹7,560 |
| Difference per module | ₹360 |

Illustrative landed-cost effect: freight increases cell value from ₹50.00 to ₹52.50 and module cell cost from ₹7,200 to ₹7,560.
That ₹360 may look small on one module. Across 5,000 modules, it becomes ₹18 lakh of cost that needs to be recognised in the right place.
The freight or duty does not disappear if it is not allocated to inventory—it simply sits somewhere else in the accounts. The real question is whether the business can see the true cost of the material consumed to manufacture each module.
A useful way to visualise the flow is:
Supplier Invoice → Import Receipt → Freight / Duty / Insurance → Landed Cost Allocation → Cell Lot Value → Manufacturing Consumption → Finished Module Cost
Landed cost is therefore more than an accounting adjustment. It is the bridge between what the business paid to bring the cells into the factory and what the finished solar module actually cost to manufacture.
How Does Production Run Through Odoo MRP?
With cells and components in stock at a correct value, manufacturing runs against a BoM. The moving parts are manufacturing orders, operations, work centres and work orders.
Plan make-to-stock and make-to-order by product
Most solar manufacturers need both, and the split follows the product.
| Dimension | Make to stock | Make to order |
| Fits | Standard SKUs, high-volume power classes | Custom BIPV, project-specific specifications, rare configurations |
| Trigger in Odoo | Reordering rules or Master Production Schedule | Replenish on Order (MTO) route on the product |
| Inventory effect | Finished modules can be held ready to dispatch | Production starts in response to the demand signal |
| Main risk | Holding cost and slow-moving power classes | Longer lead time quoted to the dealer |
Standard modules can run to forecast. BIPV and other customer-specific designs can run to order. Configure the route per product rather than choosing one mode for the whole plant.
The more important rule is operational: a manufacturing order should not start without a demand signal and a released BoM behind it. That prevents a large part of the WIP confusion that plants accumulate when production starts ahead of a clear requirement.
Map the physical line to operations and work centres
A module passes through a fixed sequence, and each physical station maps to a work centre with the operation defined on the BoM.

Physical production stages mapped to the corresponding Odoo work-centre, operation, work-order, quality and delivery records.
Cell testing & sorting → Stringing → Layup → Pre-lam EL test → Lamination→ Trimming → Framing → Junction box & potting → Curing→ Flash (IV) test → Final EL test → Insulation test → Binning → Labelling → Packing
Define each station as a work centre with its real capacity and cost per hour, the same approach used for warping, sizing and weaving lines in textile mills. Operations carry expected duration, which turns "the line is busy" into a schedule against which a dealer delivery date can be discussed.
Be deliberate about how operations are recorded. Decide whether recording happens at a shared terminal, by barcode scan at the station, or by a supervisor closing operations in batches. The routing should fit that choice instead of trying to retrofit the data-capture method later.
Know where an order really stands
Without operations, an ERP can tell you that 100 modules are in production. With operations, it can tell you where they are.
MO/2026/0148 → completed: stringing, layup, lamination
→ in progress: framing
→ remaining: junction box, testing, packingThat is the difference between a status and a plan. The second view gives a planner evidence for whether a Friday dispatch is realistic.
The Problem Nobody Scopes: Power Class Binning
Power-class binning deserves its own design discussion because it breaks a normal manufacturing assumption. In many manufacturing processes, the finished product is known before production begins. In solar manufacturing, the flash test can determine the sellable power class after the module has already run through the line.
A module may leave the line as the same physical build while the final test determines whether it becomes, for example, a 545W, 550W or 555W product. The manufacturing flow therefore has to support a product identity that may only be known at the final operation.
| Approach | What it achieves | Trade-off |
| Variant per power class | Stock reflects sellable SKUs directly. | Operator or integration must assign the correct variant from the measured output. |
| Generic SKU + power on serial | Simple production flow; flash result is stored on the serial. | Sellable stock by power class is less direct and needs reporting. |
| Produce generic, then re-grade | Can fit an existing process with minimal changes. | Adds a second inventory transaction for every module and creates extra transaction noise. |
The important decision is to choose the approach deliberately because changing it later can force simultaneous changes to BoMs, inventory structure and the sales catalogue.
Automatic assignment from tester output is also one of the clearest places where an Odoo project moves from configuration into equipment integration or custom development. An operator can enter the result manually; at volume, direct integration becomes more valuable.
How Does Cell-to-Module Traceability Work?
Traceability becomes valuable the first time a warranty or quality issue arrives. The chain is built from tracking policies on products and the movement records that connect those products through procurement, manufacturing and dispatch.
Track incoming cells by lot
Set the cell product to track by lot and record the lot at goods receipt. The lot then carries the supplier, purchase order, receipt date and landed value.
The receiving dock is part of the traceability system. If a pallet enters stores without its lot being captured, the chain breaks there permanently. Traceability is a receiving-dock habit that software can enforce and reward; it is not created by software alone.
Use a unique serial for each finished module
Set the finished module to use a unique serial sequence with a readable prefix, for example:
SM000145
SM000146
SM000147One serial should represent one physical module, generated at production and carried through every subsequent movement. That serial becomes the identity used on the label, delivery record and warranty record.
Trace in both directions
Bidirectional traceability: from a module serial back to supplier and cell lot, and from a cell lot forward to affected modules and dealers.

Bidirectional traceability: from a module serial back to supplier and cell lot, and from a cell lot forward to affected modules and dealers.
Backward: Module serial → manufacturing order → cell lot → supplier
Forward: Cell lot → manufacturing orders → module serials → dealers shipped
Backward trace answers the warranty call. A dealer reports a module serial, and the business can reach the cell lot and supplier without a document hunt.
Forward trace answers the expensive quality question. If a supplier notifies the business of a defective cell batch, the system can identify which modules contain those cells and which dealers hold them. That is the difference between a targeted response and a blanket recall.
How Is Quality Enforced Before Modules Reach Finished Goods?
Quality should sit inside the manufacturing flow, not beside it. A quality step that exists as a separate activity someone remembers to do is more likely to be skipped under shipping pressure.
Odoo can attach quality control points to a product, operation or work centre so the check appears inside the work order at the relevant stage. Match the check type to what is actually being verified:
- Measure — flash test output, insulation resistance and EL readings; capture a value against a tolerance range.
- Pass–Fail — visual inspection, frame alignment and junction-box seating.
- Take a picture — pre-lamination EL images worth retaining against the serial.
- Instructions — procedural steps that need confirmation rather than measurement.
A failed check can remain attached to the specific serial so the issue stays with the module rather than disappearing into a shift summary. Quality alerts remain a deliberate action: a failed measurement does not automatically mean every exception deserves an alert.
There is another design nuance worth deciding before go-live: a manufacturing order can be prevented from closing while required checks remain outstanding, but a recorded failure does not automatically mean the module is physically blocked from finished goods. If failed modules must stay out of dispatchable stock, that rule has to be configured deliberately.
Production complete → quality checks recorded → approved finished goods → packing → dispatch
The harder part is test-equipment integration. Flash testers and EL testers often produce readings that somebody currently writes on a sheet. Feeding those readings into Odoo automatically is integration work, and it is worth planning because a value typed by hand at volume is a value that can drift.



