Sales: Sales Workflows: Service Invoicing Policies: Milestones
Purpose
The purpose of this document is to inform you of how Service Invoicing Policies determine how and when a service-type product is invoiced in Odoo 15. This document serves as a walkthrough for the Milestones policy. This policy is intended to be used when you have a project that will be completed and invoiced in phases, such as website development.
Process
Timesheet Configuration
First, navigate to the Timesheets app.
Once there, use the search bar to find "Timesheets," or select the application from the column on the left side. To keep this walkthrough simple, let's configure Timesheets to not require approval in order to bill clients. Set the Invoicing Policy to All Recorded Timesheets.
When you're done, click SAVE.
Product Configuration
Navigate to the Inventory app.
Once there, go to Products > Products to select an existing product to modify or create a new product using the Product Creation Workflow document as a guideline, and be sure to configure your product with the following settings:
For this workflow, you'll create a service product for every milestone and configure each of those services (e.g. Dev, Design, Content) with the following settings:
Under the General Information tab:
Product Type: Set to Service
Invoicing Policy: Set this to Milestones (manually set quantities on order).
Create on Order
When using Milestones, you may also want to set up Service Tracking. See our Service Tracking for a Product document for workflow examples.
Our example indicates that when this service is ordered, a task will be created in a project based on the Sale Order. This will allow us to enter time spent on the timesheets. These timesheets will give us an accurate figure to invoice.
Sales Price: This is the cost-per-unit of the service.
Unit of Measure: This is the default Unit of Measure used for all stock operations. You can leave this as a general “unit” measure or use “hours,” “days,” or another time-based measure.
Purchase Unit of Measure: This field represents the Unit of Measure used for Purchase Orders. The unit here will automatically default to the unit selected in the Unit of Measure field. However, you can manually change this.
Click SAVE. Then, create a new Service Product for each milestone, using the above configurations.
Quotation / Sale Order
To see how this works in a Sale Order, navigate to the Sales app.
Once there, click Create.
On the Sales Order form, select a Customer from the drop-down.
Under the Order Lines tab, click Add a Product and select a milestone service product.
At this point, you can modify any of the fields in each product line. In our below example, we have modified the Quantity field, which shows the hours of planned work on the milestone, and the Description field, to indicate which milestone the line represents.
When you're ready, click Save then click confirm. You'll see the order lines remain black, indicating this order is not ready to be invoiced. This is because we're invoicing when a milestone is completed, per the Service Invoicing Policy.
Because of our Create on Order selection, we also see a Projects and a Tasks smart button.
Click the Tasks smart button.
You will be taken to a page showing the task created on the project.
From the task view, click EDIT.
Under the Timesheets tab, you'll see the number of hours ordered on the Sale Order are now the Planned Hours for this task.
Click Add a Line.
Enter timesheet entries totaling the planned hours. You'll see the totals reflected at the bottom, including Remaining Hours not utilized in the timesheets.
Click Save to save these timesheets. Then, click the Sales Order smart button.
On this Sales Order, you'll see that the Delivered column doesn't reflect the timesheets. This is because with the Milestones policy, we need to enter these numbers manually. To do so, click EDIT.
On the order line, set the Delivered column to the actual time you'll be charging the client for by simply clicking into the field and entering the number.
Now you'll see this order line has turned blue, indicating it can now be invoiced.
Within the quotation, click CREATE INVOICE.
This brings up the Create invoices modal window where Regular Invoice should be pre-selected. Click Create and View Invoice.
The invoice that was created reflects work done on the milestone service product.
You can now confirm and you'll be ready to collect payment from the customer for this milestone. Repeat this process for work on each milestone until the project is complete.