All Insights
Home services4 min read

Record fixed-price job materials without an extra charge

Test fixed-price service materials separately from customer charges. Trace included consumption, unapproved extras and authorized additions to the draft bill.

Included material, unapproved extras and approved extras each have a different billing decision.
An original DATUM decision aid. Illustrative, not customer data. Open full-size diagram

For a fixed-price service job, record the material actually used while keeping the customer's charge tied to the approved scope. A consumption record answers what left stock. It does not, by itself, authorize another invoice line.

That distinction should be demonstrated before technicians begin using a product catalog on live work. Odoo 19's Field Service catalog is enabled through Time and Material Invoicing, and its documentation describes products added to tasks flowing into invoicing. Treat that connection as something to control in the proposed fixed-price design, rather than assuming all material entries are cost-only records. Odoo 19 Field Service product management.

Keep the commercial promise and consumption record separate

Consider a fictional service company offering an agreed fixed-price replacement. The quote includes the main part and ordinary installation materials. During the visit, the technician records the part and two fittings actually used.

The office needs the consumption evidence for inventory and job review. The customer should receive the bill supported by the agreement. Adding a material record must not accidentally create a second charge for something already included.

Use this classification before configuring products or invoice policies:

Recorded itemCommercial treatment to establishEvidence needed
Main part included in the quoteAlready covered by the agreed scopeAccepted quote or scope reference
Ordinary included materialConsumption recorded without an unintended extra chargeDefined inclusion rule
Proposed additional repairAwaiting a commercial decisionDescription and approval state
Authorized extraCharged according to its approved basisApproval reference and amount or agreed calculation
Unused material returnedCorrect the operational record as appropriateReturn record linked to the job

These are business classifications for the acceptance test. They do not prescribe a specific accounting entry, zero-price workaround or default Odoo product configuration.

Ask for the configured path, not a verbal assurance

Have the implementer show which record captures consumption, which record holds the customer's charge, and how the two remain connected. Identify any configuration or extension needed. A statement that the system “supports fixed price” is incomplete until the team sees what happens after a technician adds material.

Odoo's invoicing-policy documentation distinguishes ordered and delivered quantities. Changing that policy alone does not answer whether an item was included in a fixed price or separately authorized. The commercial rule must remain explicit. Odoo 19 invoicing policies.

Use the completed-job billing test to inspect the broader handoff. This narrower exercise focuses on preventing included material from becoming an unintended additional charge.

Run three drafts with the same starting scope

First, complete the fictional job exactly as quoted and record the included materials. Ask the office to prepare the draft bill. Compare every line against the accepted scope and any prior billing. Keep the resulting draft as the normal-case reference.

Second, introduce additional work that remains unapproved. Record the technician's observation, but do not authorize the charge. Prepare the draft again. The acceptance condition is that the unresolved extra remains visible to its decision owner and does not quietly become a customer charge.

Third, approve a defined extra through the business's chosen process. Repeat the handoff. The office should be able to trace the additional charge to that approval and distinguish it from the included materials.

These tests must use the actual technician and billing roles. Administrator access can hide missing permissions or controls. The Field Service worksheet guide helps keep the technician's evidence clear without asking that person to make an unauthorized commercial decision.

Inspect stock and corrections too

After each test, review the material quantities and location with the person responsible for stock. Odoo's Field Service documentation ties task materials to a default warehouse, so include the chosen warehouse in the test record. A correct draft invoice does not prove that the consumption came from the right place. Odoo Field Service warehouse behavior.

Finally, correct an overstated quantity and repeat the billing review. Check that the correction does not duplicate a charge, remove the accepted scope or leave an unexplained stock difference. Keep posted-invoice corrections under the accounting owner's approved procedure.

Accept the design when the team can trace included consumption, authorized extras and customer charges separately. The evidence should be clear enough that a billing reviewer who did not attend the visit can explain the resulting draft.

Put it to work

Map one handoff

How we research and review these articles