The quality of your odoo customization requirement decides how accurate the quote is, how fast the build moves, and how much rework you face later. A vague brief produces a vague estimate, while a precise one produces a module that works on the first delivery. This guide shows you how to write a precise odoo customization requirement, with a reusable template for every request.
📋 Key Takeaways
- A vague requirement such as improve inventory management cannot be quoted. A precise one such as block confirmation when the customer outstanding exceeds the credit limit can be quoted in minutes.
- Every requirement needs six elements. Business context, current process, desired behaviour, edge cases, acceptance criteria, and dependencies.
- Use a trigger action output form. State when something happens, what the system should do, and the result.
- Edge cases can define 30 to 50 percent of the effort. Skip them and the developer finds them mid build, growing the scope.
- Acceptance criteria must pass or fail on test. If you cannot test it, you cannot accept or reject the delivery.
📑 Table of Contents
- Why a Vague Requirement Causes Overruns
- The Information a Developer Needs to Quote
- Describing the Current Process
- Describing Desired Behaviour and Edge Cases
- Specifying Reports and Outputs
- Defining Acceptance Criteria
- Flagging Integrations and Dependencies
- Version and Environment Details
- A Reusable Requirement Template
- Reviewing the Quote Against the Requirement
- FAQs
Why a Vague Odoo Customization Requirement Causes Overruns
The cost of ambiguity
- "We need better inventory management." The developer reads this as automated reordering. The business actually wanted live stock visibility across warehouses. The module gets built, misses the mark, and has to be reworked.
- "Make the approval workflow smarter." Smarter how? Faster, with more levels, or with conditional routing? Each reading produces a different module at a different cost.
- "Integrate with our existing systems." Which systems, what data, in which direction, and how often? A single sentence that could mean ₹50,000 or ₹5,00,000 in development.
What an Odoo Developer Needs to Quote Accurately
The six elements of a quotable requirement
- Business context. Why does this need to exist and what problem does it solve? Without it, the developer cannot challenge whether a custom module is needed.
- Current process. How is this handled today, manually, in Excel, or through a workaround?
- Desired behaviour. A trigger action output form, where something happens, the system responds, and a clear result follows.
- Edge cases. What happens when input is invalid, data is missing, or two users trigger it at once? Often 30 to 50 percent of the effort.
- Acceptance criteria. How will you test it, and what does done look like? A pass or fail result, not an opinion.
- Dependencies. Other modules, systems, or data this relies on, which sets the implementation order.
Describing the Current Process
What to include
- Who performs this task today? Use the role, not the person name.
- What tools do they use? Odoo, Excel, WhatsApp, a paper form, or a phone call.
- What steps do they follow, as the actual sequence?
- What problems exist, such as errors, delays, or duplicate entry?
- How long does it take, per transaction and per week?
Example of a current credit check process
Before confirming a sales order, the sales manager opens Tally, checks the customer outstanding, compares it against an Excel file of credit limits, and approves or rejects over WhatsApp. This takes 5 to 10 minutes per order and is skipped at peak hours.
Describing Desired Behaviour and Edge Cases
The trigger action output form
- Trigger. When a user clicks Confirm on a sales order.
- Action. The system checks the customer total outstanding, open invoices plus confirmed but undelivered orders, against the credit limit field.
- Output when it passes. The sales order is confirmed normally.
- Output when it fails. Confirmation is blocked and a popup shows that the credit limit is exceeded, with the outstanding amount, the limit, and a note to contact finance for approval.
- What if the customer has no credit limit set, allow or block?
- What if the credit limit is zero, treat it as no limit or as blocked?
- What if the sales manager has override authority, bypass with a reason field?
- What if the order is a credit note or return, skip the check?
- What if the customer pays while the order is pending, does the check recalculate?
Specifying Reports and Outputs
If the customization includes a report, specify these details
- Data source. Which Odoo models provide the data, such as sales orders, invoices, or stock moves?
- Columns. The exact fields, with their order and grouping.
- Filters. Date range, customer, product, warehouse, and status.
- Format. A PDF for printing, an Excel file, or a screen dashboard.
- Frequency. On demand, a daily run, or a live dashboard.
- Access. Which roles can see it and which can export it.
Defining Acceptance Criteria
Good acceptance criteria are testable with a pass or fail result
- Good. Create a sales order for a customer with a ₹1,00,000 credit limit, ₹80,000 outstanding, and a ₹30,000 order. Click Confirm. The expected result is a blocked confirmation with a popup showing the amounts.
- Good. Same scenario but with ₹60,000 outstanding and a ₹30,000 order, a ₹90,000 total below the limit. The expected result is that the order confirms normally.
- Good. A sales manager with override authority clicks Confirm on a blocked order. A reason field appears, and after a reason is entered the order confirms with an audit log entry.
Bad acceptance criteria
- The credit check should work properly. What does properly mean?
- The module should be easy to use. That is subjective and cannot pass or fail.
- Performance should be acceptable, but by whose standard?
Flagging Integrations and Dependencies
- Does this module depend on another custom module? List it, since the order matters.
- Does it need data from an external system? Specify the system, the format, and the sync method such as API, CSV, or webhook.
- Does it interact with standard Odoo modules like Sales, Inventory, or Accounting? Name them so the developer knows which models to extend.
- Is there a custom module or Studio choice to make? Flag it so the developer can weigh configuration against custom code before building.
Version and Environment Details
- Odoo version. Which major version are you running? Custom modules are tied to a specific version.
- Edition. Enterprise or Community? Studio is Enterprise only, and some modules differ between editions.
- Hosting. Odoo.sh, a self hosted VPS, or cloud? The deployment method affects how modules are installed.
- Existing custom modules. List them, since new modules may conflict with existing overrides.
- Maintenance plan. Who will maintain this module after delivery, your team or the developer? This affects how deep the documentation needs to be.
Reusable Odoo Customization Requirement Template
Copy and fill this for each customization request
- 1. Requirement title. A short name such as customer credit limit check on sales order confirmation.
- 2. Business context. Why is this needed and what problem does it solve?
- 3. Current process. How is this handled today, with the steps, tools, and time involved?
- 4. Desired behaviour. The trigger, the action the system should take, and the result that follows.
- 5. Edge cases. What if input is invalid, data is missing, or a user has override authority?
- 6. Reports and outputs. If relevant, the data source, columns, filters, format, and access.
- 7. Acceptance criteria. Three to five test scenarios with expected results that can pass or fail.
- 8. Dependencies. Other modules, systems, and Odoo models affected.
- 9. Environment. Odoo version, edition, hosting, and existing custom modules.
- 10. Priority. Must have, should have, or nice to have.
Reviewing the Quote Against Your Requirement
Check these before approving
- Does the quote reference every section of your requirement? If it ignores the edge cases, they are not in the effort.
- Is the customization cost broken down by task across analysis, development, testing, and documentation? A lump sum is hard to validate.
- Are the acceptance criteria written into the mplementation proposal? If not, how will you verify that the delivery matches the requirement?
- Is the delivery environment specified, staging first and then production, never straight to production?
- Does the quote include a bug fixing warranty of at least 30 days?
Need Help Turning a Business Problem Into a Developer Ready Requirement?
Tatvamasi Labs helps businesses write clear Odoo customization requirements through functional consulting. We specify, scope, and quote before any code is written.
Discuss Your Requirement →
