Invoicing based on time and materials

# Invoicing based on time and materials

Invoicing based on time and/or materials is typically used when accurately estimating the size of a
project isnât possible, or when the requirements of a project may change.
This is different from a fixed-price contract, when a customer agrees to pay a specified total for
the fulfillment of the contractâno matter what needs to be paid to the employees, sub-contractors,
vendors, suppliers, and so on.
The Odoo Sales app can invoice for time and various other expenses (e.g. transport, lodging), as
well as purchases needed to fulfill an order.

## App and settings configuration

First, in order to accurately keep track of the progress of a project, the Odoo Project and Accounting apps must be installed.
To install the Project app, navigate to Odoo main dashboard â£ Apps . Then, on
the Apps page, locate the Project app block, and click Activate .
The page automatically refreshes and returns to the main Odoo dashboard, where the Project app is
now available to access.
Repeat the same process to install the Accounting application.
After installation, click the Accounting app icon from the main Odoo dashboard, and
navigate to Configuration â£ Settings . On the Settings page, scroll
down to the Analytics section, and ensure the box next to Analytic
Accounting is checked.
Then, click Save to save all changes.
Then, navigate to Odoo main dashboard â£ Project app â£ Configuration â£
Settings . On the Settings page, in the Time Management section, ensure the
box beside the Timesheets feature is checked.
Then, click Save to save all changes.

## Service product configuration

With the Timesheets feature activated in the Project app, it is now possible to invoice for time
spent on a project, but only when the following product configurations have been made.
Invoicing for time spent on a project is only possible with products that have Service set
as the Product Type on their product form.
To configure a service product, first navigate to Sales app â£ Products â£
Products . On the Products page, select the desired service product to be configured, or
click New to create a new product.
From the product form, in the General Information tab, set the Product Type to Service . Then, open the drop-down menu in the Invoicing Policy field, and
select Based on Timesheets .
Next, from the Create on Order drop-down menu, select Project & Task . That
setting indicates that, when a sales order is created with this specific service product, a new
project and task is created in the Project app.
The option Task can be chosen instead from the Create on Order drop-down
menu. If Task is chosen, select an existing project that the task will appear in from Project field, which only appears if Task is chosen in the Create on Order field.

## Add time spent to sales order

After properly configuring a service product with the correct Invoicing Policy and Create on
Order options, it is possible to add time spent to a sales order.
To see that in action, navigate to Sales app â£ New to open a blank quotation
form. Then, proceed to add a Customer , and in the Order Lines tab, click Add a product , and select the properly configured service product from the drop-down menu.
Next, click Confirm to confirm the order.
After confirming the sales order, two smart buttons appear at the top of the order form: Projects and Tasks .
If the Projects smart button is clicked, it reveals the specific project related to this
sales order. If the Tasks smart button is clicked, it reveals the specific project task
related to this sales order. Both are also accessible in the Project app.
In order to add time spent on a sales order, click the Tasks smart button.
On the task form, select the Timesheets tab. From the Timesheets tab,
employees can be assigned to work on the project, and the time they spend working on the task can be
added by the employees or by the person who created the sales order.
To add an employee, and the time spent working on the task, click Add a line in the Timesheets tab. Then, select the appropriate Date and Employee .
There is also the option to add a brief description of the work done during this time in the Description column, but itâs not required.
Lastly, enter the amount of time worked on the task in the Hours Spent column, and click
away to complete that line in the Timesheets tab.
The time entered in the Hours Spent column is immediately reflected in the Allocated Time field (located near the top of the task form) as a percentage, which
reflects how much of the total allocated work hours have been done so far.
That same information is found as numerical hours in the Hours Spent and Remaining Hours fields, located at the bottom of the Timesheets tab.
Repeat this process for however many employees and hours have been worked on the project.

## Invoice time spent

Once all the necessary employees and time spent have been added to the project task, return to the
sales order to invoice the customer for those hours. To do that, either click the Sales
Order smart button at the top of the task form, or return to the sales order via the breadcrumb
links, located in the upper-left of the screen.
Back on the sales order form, the time that was added to the task is reflected in the Order Lines tab (in the Delivered column) and in the new Recorded
Hours smart button at the top of the sales order.
To invoice the customer for time spent on the project, click Create Invoice , and select Regular invoice from the Create invoices pop-up window. Then, click Create Draft Invoice .
Doing so reveals a Customer Invoice Draft , clearly showing all the work thatâs been done
in the Invoice Lines tab.
Pay attention to the Analytic Distribution column in the Customer
Invoice , as that information is necessary to ensure other time/material invoicing tasks are
completed properly and accurately.
Click Confirm to confirm the invoice and continue with the invoicing process.

## Expenses configuration

In order to track and invoice expenses related to a sales order, the Odoo Expenses app must be
installed.
To install the Expenses app, navigate to Odoo main dashboard â£ Apps . Then, on
the Apps page, locate the Expenses app block, and click Activate .
The page automatically refreshes and returns to the main Odoo dashboard, where the Expenses app is now available to access.

## Add expenses to sales order

To add an expense to a sales order, first navigate to the Expenses app. Then, from
the main Expenses dashboard, click New , which reveals a blank expense form.
On the expense form, add a Description of the expense (e.g. Hotel Stay , Plane Ticket ). Next, in the Category field, select the appropriate option from the drop-down
menu (e.g. Meals , Miles , Travel & Accommodation ).
`HotelStay`
`PlaneTicket`
Expense categories can be added and modified by navigating to Expenses app â£
Configuration â£ Expense Categories .
Then, enter the total amount of the expense in the Total field, as well as any Included Taxes that may apply. Next, ensure that the correct Employee is
selected, and designate who paid for the expense in the Paid By field: the Employee (to reimburse) or the Company .
Next, in the Customer to Reinvoice field, select the appropriate sales order from the
drop-down menu. Then, select that same sales order information from the Analytic
Distribution field, as well.
The Analytic Distribution field will only have the corresponding sales order as
an option if the sales order contains a service product that is billed based on Timesheets , Milestones , or Delivered Quantities .
If there are any receipts that should be uploaded and attached to the expense, click the Attach Receipt button, and upload the necessary documents to the expense. This is not required, but it may affect whether or not an expense is approved.
When all the information has been entered, click Create Report to create an expense
report detailing all the expense information that was just entered.
Then, thereâs the option to Submit to Manager for approval. Once approved, the Report in Next Payslip appears.
To showcase a complete flow in this example, select Submit to Manager . Then, the manager
would click Approve to approve this expense, and click Post Journal Entries to post this expense to the accounting journal.

## Invoice expenses

To invoice a customer for an expense on a sales order , navigate to the related sales order, either from the Sales app or from the expense report in the Expenses app. From the
expense report, click the Sales Orders smart button at the top of the page.
If the expense report was linked to the sales order, the newly-configured expense now has its own
line in the Order Lines tab, and can be invoiced to the customer.
To invoice the customer for the expense on the sales order, click Create Invoice , select Regular Invoice from the Create invoices pop-up window, then click Create Draft Invoice .
Doing so reveals a Customer Invoice Draft for the expense. Then, the invoicing process
can be completed as usual.

## Purchase configuration

In order to invoice a customer for purchases made on a sales order, the Purchase application must be installed.
To install the Purchase application, navigate to Odoo main dashboard â£ Apps .
Then, on the Apps page, locate the Purchase app block, and click Activate . The page automatically refreshes and returns to the main Odoo dashboard, where
the Purchase app is now available to access.

## Add purchase to sales order

To add a purchase to a sales order, a purchase order must first be created. To create a purchase
order, navigate to Purchase app â£ New to reveal a blank purchase order form.
First, add a Vendor to the purchase order. Then, under the Products tab,
click the extra column options drop-down menu, represented by two horizontal lines with
dots on them, located to the far-right of the column headers. From that drop-down menu, select Analytic Distribution .
After adding the Analytic Distribution column to the headers on the Products tab of the purchase order form, proceed to add the product(s) to the purchase order. To do that,
click Add a product , and select the desired product from the drop-down menu. Repeat for
all the products to add.
In order for a purchase to be properly invoiced on a sales order, the product on the purchase
order must be marked as Can be Expensed , have an Invoicing Policy set
to Delivered quantities , and have the At cost option selected in the Re-Invoice Expenses field on its product form.
Then, select the appropriate Analytic Distribution associated with the sales order to
which this purchase order is related. To do that, click the empty Analytic Distribution field to reveal an Analytic pop-up window.
Then, from the Departments drop-down menu, select the analytic distribution associated
with the desired sales order to be invoiced for the purchase.
Once all the information is entered in the Products tab of the purchase order, confirm
the order by clicking Confirm Order . Then, click Receive Products when the
products have been received. This creates a receipt form.
If any serial/lot numbers must be entered before validating the receipt of products, then on the
receipt form, click the details icon represented by four horizontal lines located to
the far-right of the product line.
This reveals a Detailed Operations tab, in which the necessary Lot/Serial
Number(s) and Done quantity can be added. When ready, click Confirm to
confirm the data.
Then, click Validate to validate the purchase order.
Next, return to the purchase order, via the breadcrumb links at the top of the page, and click Create Bill to create a vendor bill that can be invoiced to the customer on the attached
sales order.
Make sure to enter a Bill Date on the Vendor Bill Draft before
confirming. If a Bill Date is not entered, an error window appears, requesting that
information to be entered before confirmation can occur.
Then, click Confirm to confirm the vendor bill, which is then automatically added to the
sales order, where it can be invoiced directly to the customer attached to it.

## Invoice purchase

To invoice a customer for a purchase on a sales order, first add the purchase to the sales
order , then navigate to the desired sales order in
the Sales app.
On the sales order that was attached to the purchase order, the purchased product now has its own
product line under the Order Lines tab, and it is ready to be invoiced.
To invoice the customer for the purchase, simply click Create Invoice , select Regular Invoice from the Create invoices pop-up window, then click Create Draft Invoice .
Doing so reveals a Customer Invoice Draft with the newly-added purchase order product in
the Invoice Lines tab.
To complete the invoicing process, click Confirm to confirm the invoice, and then click Register Payment in the Register Payment pop-up form.

App and settings configuration
Service product configuration
Add time spent to sales order
Invoice time spent
Expenses configuration
Add expenses to sales order
Invoice expenses
Purchase configuration
Add purchase to sales order
Invoice purchase


Use eWallets and gift cards

# Use eWallets and gift cards

With Odoo, customers can use eWallets and gift cards for online and in-store shopping.
To enable eWallets and gift cards for eCommerce and Point of Sale (PoS), first enable Discounts, Loyalty & Gift Card under Sales app â£ Configuration â£
Settings â£ Pricing section . Once enabled, go to Sales app â£ Products â£ Gift
cards & eWallet and Create a new eWallet or gift card program.

## eWallets

eWallets allow customers to save credits on their online account and use these credits as a payment
method when buying items in an online store or a brick-and-mortar store. eWallets can also be used
to centralize multiple gift cards .
Before creating an eWallet program, it is necessary to create an eWallet top-up product. Top-ups
are pre-defined digital credit values added to an eWallet in exchange for its equivalent in real
currency. These credits can then be used as a payment method in the eCommerce shop or PoS . Top-up values can be of different amounts.
A $50 top-up can be bought for $50, and adds that same amount of credits to the eWallet.
To create a top-up product, go to Sales app â£ Products â£ Products and Create a new product. On the product template, configure the options as follows:
- Product Name : enter a name for the top-up product (for example, $50 Top-Up )
Product Name : enter a name for the top-up product (for example, $50 Top-Up )
`$50Top-Up`
- Can be Sold : enabled
Can be Sold : enabled
- Product Type : select Service
Product Type : select Service
- Invoicing Policy : select Prepaid/Fixed Price
Invoicing Policy : select Prepaid/Fixed Price
- Create on Order : select Nothing
Create on Order : select Nothing
- Sales Price : enter the amount of the top-up
Sales Price : enter the amount of the top-up
In order to have eWallet top-ups of different amounts, create multiple top-up products and
modify the Sales Price accordingly.
Once the top-up is created, go to Sales app â£ Products â£ Gift cards & eWallet to Create an eWallet program. The following configuration options are available:
- Program Name : enter a name for the eWallet program
Program Name : enter a name for the eWallet program
- Program Type : select eWallet
Program Type : select eWallet
- eWallet Products : select the eWallet top-up created earlier. Repeat the process if
you created top-ups of different amounts.
eWallet Products : select the eWallet top-up created earlier. Repeat the process if
you created top-ups of different amounts.
- Email template : select the email template used for the email sent to the customer. To
create a new template, click on the field, select Search More , and then click Create .
Email template : select the email template used for the email sent to the customer. To
create a new template, click on the field, select Search More , and then click Create .
- Currency : select the currency to use for the eWallet program
Currency : select the currency to use for the eWallet program
- Company : select the company for which the program is valid and available
Company : select the company for which the program is valid and available
- Available On : select the applications on which the program is valid and available
Available On : select the applications on which the program is valid and available
- Website : select the website on which the program is valid and available. Leave this
field empty to include all websites.
Website : select the website on which the program is valid and available. Leave this
field empty to include all websites.
- Point of Sale : select the PoS in which the program is valid
and available. Leave this field empty to include all PoS .
Point of Sale : select the PoS in which the program is valid
and available. Leave this field empty to include all PoS .
Once the program is configured, click the Generate eWallet button in the upper-left
corner to generate eWallets. eWallets can be generated based on Customers and/or Customer Tags . The quantity is automatically adapted according to the Customers and Customer Tags selected. Then, set the eWallet
value . Finally, set the Valid Until period if applicable.
Generated eWallets can be accessed through the eWallets smart button in the upper-right
corner. From there, Send or Share the eWallets via email or a URL link.
Click on an eWallet to change the Expiration Date , Partner , or Balance . The Code of an eWallet cannot be changed, deleted, or duplicated.

## Gift cards

Gift cards can be purchased by customers, and in turn used as a payment method upon checkout at an
eCommerce shop or PoS .
Before creating a new gift card program, it is necessary to first create gift cards as products. To
do so, go to Sales app â£ Products â£ Products and Create a product.
On the product template, configure the options as follows:
- Product Name : enter a name for the gift card product
Product Name : enter a name for the gift card product
- Can be Sold : enabled
Can be Sold : enabled
- Product Type : select Service
Product Type : select Service
- Invoicing Policy : select Prepaid/Fixed Price
Invoicing Policy : select Prepaid/Fixed Price
- Create on Order : select Nothing
Create on Order : select Nothing
- Sales Price : enter the amount of the gift card
Sales Price : enter the amount of the gift card
In order to have gift cards of different amounts, create multiple gift card products and modify
the Sales Price accordingly.
Once the gift card product is created, go to Sales app â£ Products â£ Gift cards
& eWallet to Create a gift card program. The following configuration options are
available:
- Program Name : enter a name for the gift card program
Program Name : enter a name for the gift card program
- Program Type : select Gift Card
Program Type : select Gift Card
- Gift Card Products : select the gift card product created earlier. Repeat the process
if you created gift card products of different amounts.
Gift Card Products : select the gift card product created earlier. Repeat the process
if you created gift card products of different amounts.
- Email template : select the default Gift Card: Gift Card Information template, or create a new template by clicking on the field, selecting Search More ,
and then clicking Create .
Email template : select the default Gift Card: Gift Card Information template, or create a new template by clicking on the field, selecting Search More ,
and then clicking Create .
- Print Report : select Gift Card
Print Report : select Gift Card
- Currency : select the currency to use for the gift card program
Currency : select the currency to use for the gift card program
- Company : select the company for which the program is valid and available
Company : select the company for which the program is valid and available
- Available On : select the applications on which the program is valid and available
Available On : select the applications on which the program is valid and available
- Website : select the website on which the program is valid and available. Leave this
field empty to include all websites.
Website : select the website on which the program is valid and available. Leave this
field empty to include all websites.
- Point of Sale : select the PoS in which the program is valid
and available. Leave this field empty to include all PoS .
Point of Sale : select the PoS in which the program is valid
and available. Leave this field empty to include all PoS .
Once the program is configured, click the Generate Gift Cards button in the upper-left
corner to generate gift cards. Gift cards can be generated either for Anonymous
Customers or Selected Customers . Set the Quantity to generate for Anonymous Customers , or select the Customers and/or Customer
Tags for Selected Customers . Then, set the Gift Card value . Finally, set
the Valid Until period if applicable.
Generated gift cards can be accessed through the Gift Cards smart button in the
upper-right corner. From there, Send or Share the gift cards via email or a
URL link.
Click on a gift card to change the Expiration Date , Partner , or Balance . The Code of a gift card cannot be changed, deleted, or
duplicated.


Discount and loyalty programs

# Discount and loyalty programs

The Odoo Sales , eCommerce , and Point of Sale applications allow users to create discount and
loyalty programs that customers can use for online and in-store shopping. These programs offer more
varied, public, and time-sensitive pricing options than pricelists .

## Configure the settings

To begin using discount and loyalty programs, navigate to Sales â£ Configuration
â£ Settings . Under the Pricing heading, activate the Discounts, Loyalty &
Gift Card setting by checking the box next to the feature. Finally, click Save to save
the changes.

## Configure discount and loyalty programs

To create discount and loyalty programs, go to Sales â£ Products â£ Discount &
Loyalty .
If no discount or loyalty programs have been created yet, Odoo provides a choice of templates to
help create the first program. Choose one of the template cards, or click New to create
a new program from scratch.
Or, if there are already existing programs, select an existing program to edit it.
Templates only appear when no programs have been created, and they disappear once the first
program is created.
Creating or editing a program opens the program form.
The program form contains the following fields:
- Program Name : Enter the name of the program in this field. The program name is not visible to the customer.
Program Name : Enter the name of the program in this field. The program name is not visible to the customer.
- Program Type : Select the desired program type from the drop-down menu.
Program Type : Select the desired program type from the drop-down menu.
- Currency : Select the currency used for the program.
Currency : Select the currency used for the program.
- Pricelist : If desired, select a pricelist from the drop-down menu to have this loyalty
program applied to a specific pricelist (and customers attached to the pricelist). More than one
pricelist can be selected in this field. When a single loyalty program is linked to several
pricelists, it makes it viable for different customer segments to have different pricelists, but
the same loyalty programs. If this field is left blank, the program applies to everyone,
regardless of pricelist.
Pricelist : If desired, select a pricelist from the drop-down menu to have this loyalty
program applied to a specific pricelist (and customers attached to the pricelist). More than one
pricelist can be selected in this field. When a single loyalty program is linked to several
pricelists, it makes it viable for different customer segments to have different pricelists, but
the same loyalty programs. If this field is left blank, the program applies to everyone,
regardless of pricelist.
- Points Unit : Enter the name of the points used for the Loyalty Cards program (e.g. Loyalty Points ). The points unit name is visible to the customer. This field is only available when the Program Type is set to Loyalty Cards .
Points Unit : Enter the name of the points used for the Loyalty Cards program (e.g. Loyalty Points ). The points unit name is visible to the customer. This field is only available when the Program Type is set to Loyalty Cards .
`LoyaltyPoints`
- Start Date : Select the date on which the program becomes valid. Leave this field blank
if the program should always be valid and not expire.
Start Date : Select the date on which the program becomes valid. Leave this field blank
if the program should always be valid and not expire.
- End Date : Select the date on which the program stops being valid. Leave this field
blank if the program should always be valid and not expire.
End Date : Select the date on which the program stops being valid. Leave this field
blank if the program should always be valid and not expire.
- Limit Usage : If desired, tick this checkbox, and enter a number of usages to limit the number of times the program can be used during the validity period.
Limit Usage : If desired, tick this checkbox, and enter a number of usages to limit the number of times the program can be used during the validity period.
- Company : If working in a multi-company database, choose the one company for which the
program is available. If left blank, the program is available to all companies in the database.
Company : If working in a multi-company database, choose the one company for which the
program is available. If left blank, the program is available to all companies in the database.
- Available On : Select the apps on which the program is available.
Available On : Select the apps on which the program is available.
- Website : Select a website on which the program is available. Leave this field blank to
make it available on all websites.
Website : Select a website on which the program is available. Leave this field blank to
make it available on all websites.
- Point of Sale : Select the point(s) of sale at which the program is available. Leave
this field blank to make it available at all PoS .
Point of Sale : Select the point(s) of sale at which the program is available. Leave
this field blank to make it available at all PoS .
The options available on the program form vary depending on the Program Type selected.
All of the existing cards, codes, coupons, etc. that have been generated for the program are
accessible through the smart button located at the top of the form.
In Odoo 17 (and later), when a loyalty card or coupon is associated with a contact in the
database, a Loyalty Cards smart button conditionally appears on the contact form.
This smart button only appears if a loyalty card or coupon is associated with the contact.

### Program types

The different Program Types available on the program form are:
- Coupons : Generate and share single-use coupon codes that grant immediate access to
rewards.
Coupons : Generate and share single-use coupon codes that grant immediate access to
rewards.
- Loyalty Cards : When making purchases, the customer accumulates points to exchange for
rewards on current and/or future orders.
Loyalty Cards : When making purchases, the customer accumulates points to exchange for
rewards on current and/or future orders.
- Promotions : Set conditional rules for ordering products, which, when fulfilled, grant
access to rewards for the customer.
Promotions : Set conditional rules for ordering products, which, when fulfilled, grant
access to rewards for the customer.
- Discount Code : Set codes which, when entered upon checkout, grant discounts to the
customer.
Discount Code : Set codes which, when entered upon checkout, grant discounts to the
customer.
- Buy X Get Y : for every (X) item bought, the customer is granted 1 credit. After
accumulating a specified amount of credits, the customer can trade them in to receive (Y) item.
Buy X Get Y : for every (X) item bought, the customer is granted 1 credit. After
accumulating a specified amount of credits, the customer can trade them in to receive (Y) item.
- Next Order Coupons : Generate and share single-use coupon codes that grant access to
rewards on the customerâs next order.
Next Order Coupons : Generate and share single-use coupon codes that grant access to
rewards on the customerâs next order.

### Conditional rules

Next, configure the Conditional rules that determine when the program applies to a
customerâs order.
In the Rules & Rewards tab, click Add next to Conditional rules to add conditions to the program. This reveals a Create Conditional rules pop-up
window.
The options for Conditional rules vary depending on the selected Program Type .
The following options are available for configuring conditional rules:
- Discount Code : Enter a custom code to be used for the Discount Code program, or use the default one generated by Odoo. This field is only available when the Program Type is set to Discount Code .
Discount Code : Enter a custom code to be used for the Discount Code program, or use the default one generated by Odoo. This field is only available when the Program Type is set to Discount Code .
- Minimum Quantity : Enter the minimum number of products that must be purchased in order
to access the reward. Set the minimum quantity to at least 1 to ensure that the customer must
make a purchase in order to access the reward.
Minimum Quantity : Enter the minimum number of products that must be purchased in order
to access the reward. Set the minimum quantity to at least 1 to ensure that the customer must
make a purchase in order to access the reward.
`1`
- Minimum Purchase : Enter the minimum amount (in currency), with tax
Included or tax Excluded , that must be spent in order to access the reward. If both a
minimum quantity and minimum purchase amount are entered, then the customerâs order must meet
both conditions.
Minimum Purchase : Enter the minimum amount (in currency), with tax
Included or tax Excluded , that must be spent in order to access the reward. If both a
minimum quantity and minimum purchase amount are entered, then the customerâs order must meet
both conditions.
- Products : Select the specific product(s) for which the program applies. Leave this
field blank to apply it to all products.
Products : Select the specific product(s) for which the program applies. Leave this
field blank to apply it to all products.
- Categories : Select the category of products for which the program applies. Choose All to apply it to all product categories.
Categories : Select the category of products for which the program applies. Choose All to apply it to all product categories.
- Product Tag: Select a tag to apply the program to products with that specific tag.
Product Tag: Select a tag to apply the program to products with that specific tag.
- Grant : Enter the number of points the customer earns per order , per currency spent , or per unit paid (for the Loyalty Cards and Buy X Get Y programs).
Grant : Enter the number of points the customer earns per order , per currency spent , or per unit paid (for the Loyalty Cards and Buy X Get Y programs).
Click Save & Close to save the rule and close the pop-up window, or click Save & New to save the rule and immediately create a new one.

### Rewards

In the Rules & Rewards tab of the program form, click Add next to Rewards to add rewards to the program. This reveals a Create Rewards pop-up window.
The options for Rewards vary depending on the selected Program Type .
The following options are available for configuring rewards:
- Reward Type : Select the reward type among Free Product , Discount , and Free Shipping . The other options for reward configuration
depend on the Reward Type selected. Free Product : Quantity Rewarded : Select the number of free products rewarded to the customer. Product : Select the product given for free as a reward. Only one product can be
selected. Product Tag : Select a tag to further specify the free product eligible for the
reward. Discount : Discount : Enter the discounted amount in either percentage , currency per point , or currency per order . Then, select whether the
discount applies to the entire Order , only the Cheapest Product on the
order, or only Specific Products . Max Discount : Enter the maximum amount (in currency) that this reward may grant as
a discount. Leave this field at 0 for no limit. Free Shipping : Max Discount : Enter the maximum amount (in currency) that this reward may grant as
a discount. Leave this field at 0 for no limit.
Reward Type : Select the reward type among Free Product , Discount , and Free Shipping . The other options for reward configuration
depend on the Reward Type selected.
- Free Product : Quantity Rewarded : Select the number of free products rewarded to the customer. Product : Select the product given for free as a reward. Only one product can be
selected. Product Tag : Select a tag to further specify the free product eligible for the
reward.
- Quantity Rewarded : Select the number of free products rewarded to the customer.
Quantity Rewarded : Select the number of free products rewarded to the customer.
- Product : Select the product given for free as a reward. Only one product can be
selected.
Product : Select the product given for free as a reward. Only one product can be
selected.
- Product Tag : Select a tag to further specify the free product eligible for the
reward.
Product Tag : Select a tag to further specify the free product eligible for the
reward.
- Discount : Discount : Enter the discounted amount in either percentage , currency per point , or currency per order . Then, select whether the
discount applies to the entire Order , only the Cheapest Product on the
order, or only Specific Products . Max Discount : Enter the maximum amount (in currency) that this reward may grant as
a discount. Leave this field at 0 for no limit.
- Discount : Enter the discounted amount in either percentage , currency per point , or currency per order . Then, select whether the
discount applies to the entire Order , only the Cheapest Product on the
order, or only Specific Products .
Discount : Enter the discounted amount in either percentage , currency per point , or currency per order . Then, select whether the
discount applies to the entire Order , only the Cheapest Product on the
order, or only Specific Products .
- Max Discount : Enter the maximum amount (in currency) that this reward may grant as
a discount. Leave this field at 0 for no limit.
Max Discount : Enter the maximum amount (in currency) that this reward may grant as
a discount. Leave this field at 0 for no limit.
`0`
- Free Shipping : Max Discount : Enter the maximum amount (in currency) that this reward may grant as
a discount. Leave this field at 0 for no limit.
- Max Discount : Enter the maximum amount (in currency) that this reward may grant as
a discount. Leave this field at 0 for no limit.
Max Discount : Enter the maximum amount (in currency) that this reward may grant as
a discount. Leave this field at 0 for no limit.
`0`
- In exchange of : Enter the number of points required to exchange for the reward (for
the Loyalty Cards and Buy X Get Y programs).
In exchange of : Enter the number of points required to exchange for the reward (for
the Loyalty Cards and Buy X Get Y programs).
- Description on order : Enter the description of the reward, which is displayed to the
customer upon checkout.
Description on order : Enter the description of the reward, which is displayed to the
customer upon checkout.

Configure the settings
Configure discount and loyalty programs
Program types
Conditional rules
Rewards


Foreign currencies

# Foreign currencies

With Odoo, pricelists can be used to manage prices in a number of foreign currencies. Specifically,
Odoo has the ability to work with 167 total currencies.
In order to use multiple currencies in Odoo Sales , the Accounting application must be
installed.

## Settings

Once the Accounting app has been installed, foreign currencies can be added to the database.
Navigate to Accounting app â£ Configuration â£ Settings , scroll to the Currencies section, and locate the Main Currency setting.
Odoo automatically sets the main currency as the currency of the country the company is based in.
To change the main currency of the company, select the drop-down menu in the Currency field, select the desired currency, and be sure to Save the changes.
To ensure currency rates are updated automatically, enable the automatic currency rates feature
on the Accounting settings page ( Accounting app â£ Configuration â£ Settings
â£ Currencies section ).
Click the checkbox beside the Automatic Currency Rates feature, choose a designated
bank to get the currency rates from in the Service field drop-down menu, and select
an Interval of time for the updates to take place. Then determine when the date of
the Next Run should be.
To instantly update the currency rates, click the ð (circular arrows) icon, located
to the right of the Next Run field.
When all configurations are complete, be sure to Save all changes.
All payment methods must be in the same currency as the sales journal, or the company
currency, if the company currency is not set. If it is not the same, a Validation
Error message appears.

## View, edit, and add currencies

To view, edit, and add currencies to the database, making them available on pricelists and on the Main Currency drop-down menu, click the Currencies link, located beneath the Currency field on the Accounting app â£ Settings page.
When the Currencies link is clicked, a separate Currencies page is revealed.
On this page, Odoo provides a master list of 167 global currencies. Each row shows the corresponding Currency , Symbol , Name , date of the Last Update , and Current Rate (compared to the default currency of the country in which the company is
based).
To the far right, there are two columns, which can be toggled on or off:
- Active : this currency is activated, which means it can be added to a pricelist, or
used as the main currency of the company, if desired (via Accounting app â£
Configuration â£ Settings â£ Currencies section ).
Active : this currency is activated, which means it can be added to a pricelist, or
used as the main currency of the company, if desired (via Accounting app â£
Configuration â£ Settings â£ Currencies section ).
By default, all the Active currency options are at the top of the list.
It is recommended that at least one pricelist is created per Active currency. See Pricelists to learn more about pricelist configuration.
To toggle options on/off, click the toggle switch in the row for the corresponding column. When on the color of the switch is green. When off , the color of the switch is grey.

### Currency detail form

To edit any currency on the Currencies page, click the desired currency to reveal the
detail form for that specific currency, and proceed to make any necessary changes.
On the currency detail form, the relevant currency code appears in the Currency field.
Beneath that, the name for the currency is in the Name field.
Then, toggle the currencyâs availability with the Active toggle: on is indicated with
a green switch, and off is indicated with a grey switch.
On the right of the currency detail form, the appropriate Currency Unit (e.g. Dollars )
and Currency Subunit (e.g. Cents ) can be found.
`Dollars`
`Cents`
Next, under the Rates tab, the various conversion rates can be viewed, added, or
deleted. Each row shows the Date of that specific rate, the Company to which
it is connected, followed by the Unit perâ¦ and â¦per Unit .
The â¦ in each of the last two columns represents the main currency set for the company. For
example, if the main currency is set to USD , the columns are titled Unit per USD and USD per Unit .
`USD`
To add a new rate, click Add a line in the Rates tab, and proceed to fill in
the necessary information in the aforementioned columns.

### Main currency detail form

If the selected currency is the main currency of the company, a blue banner appears at the top of
the currency detail form with the message: This is your companyâs currency. .
All the fields are the same as a typical currency detail form, but there will not be a Rates tab because all other currency rates are based off the main currency of the
company.

## Create new currency

If a desired currency isnât on the Currencies page, click the New button to
open a blank currency template form.
The same New button is located in the upper-right corner of any currency detail form.
On the blank currency detail form, proceed to enter the desired currency code in the Currency field. Beneath that, enter the name for the currency in the Name field.
Then, toggle the currencyâs availability with the Active toggle switch.
On the right of the currency detail form, enter the appropriate Currency Unit (e.g. Dollars ) and appropriate Currency Subunit (e.g. Cents ).
`Dollars`
`Cents`
Next, under the Rates tab, add a new rate by clicking Add a line . Then,
proceed to confirm and adjust the Date , Company , Unit perâ¦ ,
and â¦per Unit fields to ensure all the auto-populated information is accurate.
The â¦ in each of the last two columns represents the main currency set for the company. For
example, if the main currency is set to USD , the columns are titled Unit per USD and USD per Unit .
`USD`

## Currency-specific pricelists

It is recommended that at least one pricelist is created per active currency in the database. To
create (or assign) a pricelist to a specific currency, start by navigating to Sales
app â£ Products â£ Pricelists .
From the Pricelists page, either select an existing pricelist to edit, or click New to create a new pricelist.
On the pricelist detail form, for either a new or existing pricelist, adjust the Currency field as desired.
Pricelists to learn more about pricelist configuration.

## Auto-conversion from public price

It should be noted that the public price seen on products is directly related to the main currency
the company has set, which is configured by navigating to Accounting app â£
Configuration â£ Settings â£ Currencies section â£ Main Currency â£ Currency drop-down menu .
The sales price automatically updates if the pricelist is changed to a different pricelist that has
a different currency than the companyâs main currency. The change in price is directly related to
the updated conversion rate for that currency.

## Set product prices

In order to have product prices set in place to avoid any changes in currency rates, start by
navigating to Sales app â£ Products â£ Products .
From the Products page, select the desired product to modify. Or, create a new product
by clicking the New button.
Then, on the product detail form, click the Extra Prices smart button, located in the
upper-left corner. Doing so reveals a separate Price Rules page, specific to that
particular product.
Click New , and select the desired pricelist from the drop-down menu in the Pricelist column.
The Applied On field is auto-populated with the product, so proceed to enter in the
desired figures in the Min. Quantity and Price fields.
The figure in the Min. Quantity field means the Price being set will only trigger if at least that amount of product is purchased.
If necessary, configure a Start Date and End Date for the set prices.
Leaving those columns blank ensures the set price will remain valid, regardless of the date of sale.
If working in a multi-company environment, designate to which company this price rule should be
applied in the Company field. Leaving that field blank ensures the price rule applies to
all companies in the database.
With those configurations complete, regardless of any changes/updates in conversion, whenever those
designated pricelists are applied to a customer trying to purchase this specific product, these
pre-determined set prices appear.

Settings
View, edit, and add currencies
Currency detail form
Main currency detail form
Create new currency
Currency-specific pricelists
Auto-conversion from public price
Set product prices


Discounts

# Discounts

The Discounts feature allows users to decrease or increase the price on item lines in a sales
quotation or order. This is calculated as a percentage of the productsâ sales price.
To access discounts in the Sales app, navigate to Sales app â£ Configuration
â£ Settings . In the Pricing section, tick the Discounts checkbox, then
click Save .
After the setting has been activated, navigate to the desired quotation by going to Sales app â£ Orders â£ Quotations at the top of the page. Once there, click on
the desired quote from the list.

## Discounts on product lines

In the Order Lines tab of the quotation form, a new column heading appears labeled Disc.% . This column is used to set discounts on individual line items. Enter the desired
discount for each product line and the new price is automatically calculated in the Total at the bottom of the page.
A discount can also be added directly to a sales order in the same way. Navigate to Sales app â£ Orders â£ Orders , click the desired sales order, and add the
discount to Disc.% field as described above.
Positive values for Disc.% will apply a discount , while negative values can be
used to increase the price.
Positive values, or price decreases, will be visible to the customer, while negative values, or
price increases, will not be visible to the customer. Instead of a discount column, the
negative discount will change the productâs unit price.

## Discount button

With the Discounts settings enabled, a Discount button appears at the bottom of sales
orders.
Clicking the Discount button on a sales order opens a pop-up window, where the Discount percentage, and options are configured:
- On All Order Lines : Add the specified discount percentage (configured in the Discount field of the pop-up window) on all existing order lines of the sales order.
On All Order Lines : Add the specified discount percentage (configured in the Discount field of the pop-up window) on all existing order lines of the sales order.
- Global Discount : Add a discount product line to the order, which has the cumulative
value equivalent to the specified discount percentage. Example A global discount of 10% is added in the last line of a sales order with a subtotal of $4,200
by adding a discount line with a -$420 value (which is 10% of $4,200). Important Any product added (or removed) after the global discount line is added does not affect
the discount value on the discount line. To include new products or amend current products in
the global discount, delete the current global discount line and repeat the steps.
Global Discount : Add a discount product line to the order, which has the cumulative
value equivalent to the specified discount percentage.
A global discount of 10% is added in the last line of a sales order with a subtotal of $4,200
by adding a discount line with a -$420 value (which is 10% of $4,200).
Any product added (or removed) after the global discount line is added does not affect
the discount value on the discount line. To include new products or amend current products in
the global discount, delete the current global discount line and repeat the steps.
- Fixed Amount : Add a monetary amount to the Discount field. Once applied,
this amount is added to the order as a product line, with the monetary value subtracted from the
order total. Example A fixed discount of $20 appears as a product line, with a negative Unit Price .
Fixed Amount : Add a monetary amount to the Discount field. Once applied,
this amount is added to the order as a product line, with the monetary value subtracted from the
order total.
A fixed discount of $20 appears as a product line, with a negative Unit Price .
It is more beneficial to add a Fixed Amount discount after all desired products
have been added to a sales order. If there are changes made to the sales order after the
discount is added, adjust the value on the Discount line, or remove the line and add
the discount again, as needed.

Discounts on product lines
Discount button


Pricelists

# Pricelists

A pricelist is a method of dynamic pricing that applies a list of prices (or price rules) to
adjust sales prices. This adjustment can apply to specific customers, customer groups, sales orders,
time periods, etc., and is useful for creating pricing strategies and optimizing sales margins.
Odoo Sales has a useful pricelist feature that can be tailored to fit any unique pricing
strategy. Pricelists suggest certain prices, but they can always be overridden on the sales order.

## Configuration

To enable pricelists in the Odoo Sales app, first navigate to Sales app â£
Configuration â£ Settings . In the Pricing section, tick the checkbox next to the Pricelists feature, and click Save to save all changes.
After activating and saving the Pricelists feature, the Settings page
reloads. From here, either select the Pricelists link (beneath
the Pricelists feature on the Settings page), or navigate to Sales app â£ Products â£ Pricelists .
Either option reveals the Pricelists page, in which pricelists can be created and/or
modified at any time.
If there is no specific pricelist configured on a sales quotation, the Default pricelist is applied. The Default pricelist is the first pricelist found in Sales app â£ Products â£ Pricelists without an assigned Country
Group . Odoo will read the Pricelist Name column from top to bottom to determine the Default pricelist.
The Selectable column is only applicable to Odoo eCommerce . This option allows
website visitors to choose a pricelist when shopping in your eCommerce website.

### Creating and editing pricelists

From the Pricelists page, either select the pricelist to edit, or click New to create a new pricelist, which reveals a blank pricelist form that can be configured in a number
of different ways.
When creating a new pricelist, start by adding a name for the pricelist at the blank field at top of
the form. Next, select which Currency should be used.
If working in a multi-company environment, select which company this pricelist should apply to in
the Company field. If this field is left blank, the pricelist is automatically applied
to all companies in the database.
If working in a multinational company, select the countries where this pricelist will apply under
the Country Groups column.

### Price Rules tab

In the Price Rules tab, each line creates a new record that will implement customized
pricing to the sales order where the pricelist is applied. To create a new price rule, click on Add a line , which opens a new pricelist rules form.
Then, select whether to apply this set of rules to a Product or Category .
From here, there are several configuration options:
- Product : If selected in the Apply To field, use this field to choose one
or more products to which this pricelist will apply.
Product : If selected in the Apply To field, use this field to choose one
or more products to which this pricelist will apply.
- Category : Select one or more product categories to which this pricelist will apply.
Category : Select one or more product categories to which this pricelist will apply.
- Price Type : Select whether the specialized pricing will fall under Discount , Formula , or Fixed Price . Depending on the price
type, there will be additional configurations on how to apply the pricelist. Discount : Enter the percentage to be discounted. A mark-up can be configured by
using a negative value in this field. Important If a pricelist is applied to a sales quotation with the discount Price Type set
as Discount , the discount will visible to the customer. Formula : Calculate the pricelist rules based the following configuration: Discount : Percentage discount to be applied. Negative values can be entered to
increase prices. Important If a pricelist is applied to a sales quotation with the discount Price Type set
as Formula , the discount will not be visible to the customer. Round off to : Numerical value to act as round-off multiple, to be applied after
discount. The rounding method sets the price so that it is a multiple of the value in this
field. Note Rounding is applied after the discount and before the extra fee. Extra Fee : Fixed amount to be added or subtracted once Discount and Round off to have been applied. Fixed Price : Enter fixed price for this pricelist. When applied, all product
lines in the quotation form will be updated to this price.
Price Type : Select whether the specialized pricing will fall under Discount , Formula , or Fixed Price . Depending on the price
type, there will be additional configurations on how to apply the pricelist.
- Discount : Enter the percentage to be discounted. A mark-up can be configured by
using a negative value in this field. Important If a pricelist is applied to a sales quotation with the discount Price Type set
as Discount , the discount will visible to the customer.
Discount : Enter the percentage to be discounted. A mark-up can be configured by
using a negative value in this field.
If a pricelist is applied to a sales quotation with the discount Price Type set
as Discount , the discount will visible to the customer.
- Formula : Calculate the pricelist rules based the following configuration: Discount : Percentage discount to be applied. Negative values can be entered to
increase prices. Important If a pricelist is applied to a sales quotation with the discount Price Type set
as Formula , the discount will not be visible to the customer. Round off to : Numerical value to act as round-off multiple, to be applied after
discount. The rounding method sets the price so that it is a multiple of the value in this
field. Note Rounding is applied after the discount and before the extra fee. Extra Fee : Fixed amount to be added or subtracted once Discount and Round off to have been applied. Fixed Price : Enter fixed price for this pricelist. When applied, all product
lines in the quotation form will be updated to this price.
Formula : Calculate the pricelist rules based the following configuration:
- Discount : Percentage discount to be applied. Negative values can be entered to
increase prices.
Discount : Percentage discount to be applied. Negative values can be entered to
increase prices.
If a pricelist is applied to a sales quotation with the discount Price Type set
as Formula , the discount will not be visible to the customer.
- Round off to : Numerical value to act as round-off multiple, to be applied after
discount. The rounding method sets the price so that it is a multiple of the value in this
field. Note Rounding is applied after the discount and before the extra fee. Extra Fee : Fixed amount to be added or subtracted once Discount and Round off to have been applied. Fixed Price : Enter fixed price for this pricelist. When applied, all product
lines in the quotation form will be updated to this price.
Round off to : Numerical value to act as round-off multiple, to be applied after
discount. The rounding method sets the price so that it is a multiple of the value in this
field.
Rounding is applied after the discount and before the extra fee.
- Extra Fee : Fixed amount to be added or subtracted once Discount and Round off to have been applied.
Extra Fee : Fixed amount to be added or subtracted once Discount and Round off to have been applied.
- Fixed Price : Enter fixed price for this pricelist. When applied, all product
lines in the quotation form will be updated to this price.
Fixed Price : Enter fixed price for this pricelist. When applied, all product
lines in the quotation form will be updated to this price.
- Min Qty : Specify the minimum quantity of selected products for this pricelist to
apply.
Min Qty : Specify the minimum quantity of selected products for this pricelist to
apply.
- Validity Period : Specify the start and end date during which this pricelist can be
applied to quotations.
Validity Period : Specify the start and end date during which this pricelist can be
applied to quotations.
To formulate a 100% markup (or two times the price of the product), with a $5 minimum margin, set
the Based price field to Sales Price and the Discount to -100 . This is often seen in retail situations.
`-100`
To apply 20% discounts, with prices rounded up to 9.99, set the Based on field to Sales Price , the Discount field to 20 , the Extra Fee field
to -0.01 , and the Rounding Method field to 10 .
`20`
`-0.01`
`10`
To have prices that end in 9.99, set the Rounding Method to 10 and the Extra Fee to -0.01 .
`10`
`-0.01`

### Recurring Prices tab

Time-based rules are used specifically with subscription products. Be sure to check out the Odoo Subscriptions documentation for more information.
In the Recurring Prices tab, pricelists are configured with the same options as in the Price Rules tab, with additional columns for Product Variants and Recurring Plan .
Product Variants are configured under products that have one or more values, such as
color, size, etc. Once a product has been selected under the Products Tab , if
applicable, select the desired product variants to be included in the price rule.
Then, select the blank field in the Recurring Plan column to reveal a drop-down menu of
pre-designated recurrence periods (e.g. Monthly , Quarterly , Weekly , etc.).
`Monthly`
`Quarterly`
`Weekly`
New recurrence periods can also be created from this column. To do so, type in the name for the new Recurring Plan , then select Create from the resulting drop-down menu to
create the time period, which can be edited later. Alternatively, select Create and
editâ¦ to reveal a Create Recurring Plan pop-up form. From this pop-up form, the new
recurrence period can be configured, with specific Details , Self-Service ,
and Pricing options. When the configurations are complete, click the Save &
Close button.
Lastly, add the desired price for this recurring price rule in the Recurring Price column.

### Rental rules tab

Price rules can be configured for rental products under the Rental rules tab, using the same methodology as the Price Rules and Recurring Prices tabs.
To add a rental rule, click Add a line , and select a desired product in the Products column. Then, select any specific Variants , if necessary.
Next, designate a Period of time for the rental rule (e.g. Daily , Hourly , etc.).
`Daily`
`Hourly`
Lastly, configure a Price for the rental rule in the respective column.
Ecommerce price configuration

## Customer pricelist application

While the default pricelist applied to any customer is the Public Pricelist , Odoo
provides the opportunity to directly apply a different pricelist to customers on their contact form.
To do that, open the desired customerâs contact form, either by navigating to Sales
app â£ Orders â£ Customers and selecting the customer from the main Customers page,
or by clicking on the customerâs name on a sales order.
On the desired customerâs contact form, under the Sales & Purchase tab, in the Sales section, designate what pricelist should be applied to this specific customer from
the drop-down menu in the Pricelist field.
When a customer is added to the database, the default pricelist is automatically applied to them.
There is no way to have a blank Pricelist field on a contact form. Even if that field is
left blank, the default pricelist appears when that contact form is opened again.
However, when that contact is added to a quotation, and the Pricelist field is auto-populated
(based on the information from their contact form), that predetermined pricelist can be removed
from the Pricelist field, and the quotation can still be confirmed, and subsequently, turned
into a sales order.

### Conditions

At the bottom of the Create Pricelist Rules pop-up form is the Conditions section.
Here, start by selecting one of the options in the Apply On field:
- All Products : the advanced pricelist rule will be applied to all products.
All Products : the advanced pricelist rule will be applied to all products.
- Product Category : the advanced pricelist rule will be applied to a specific category
of products.
Product Category : the advanced pricelist rule will be applied to a specific category
of products.
- Product : the advanced pricelist rule will be applied to a specific product.
Product : the advanced pricelist rule will be applied to a specific product.
- Product Variant : the advanced pricelist rule will be applied to a specific product
variant.
Product Variant : the advanced pricelist rule will be applied to a specific product
variant.
If any of those options, apart from All Products , are selected, a new option-specific
field appears, in which the specific Product Category , Product , or Product Variant must be chosen.
Then, select a minimum quantity to be applied to the advanced pricelist rule in the Min.
Quantity field. Lastly, select a range of dates for the pricelist item validation in the Validity field.
Once all configurations are complete, either click Save & Close to save the advanced
pricelist rule, or click Save & New to immediately create another advanced pricelist
rule on a fresh form.
If a price rule is set for a particular product, and another one for its product category, Odoo
takes the rule of the product itself.
- Foreign currencies
- Prices

Configuration
Creating and editing pricelists
Price Rules tab
Recurring Prices tab
Rental rules tab
Customer pricelist application
Conditions


Import products

# Import products

Odoo Sales provides a template for importing products with categories and variants, which can be
opened and edited with any spreadsheet software (Microsoft Excel, OpenOffice, Google Sheets, etc.).
When this spreadsheet is filled out properly, it can be quickly uploaded to the Odoo database. When
uploaded, those products are instantly added, accessible, and editable in the product catalog.

## Import template

In order to import products with categories and variants, the Import Template for Products must be downloaded. Once downloaded, the template can be adjusted and customized, and then
uploaded back into the Odoo database.
To download the necessary import template, navigate to Sales app â£ Products â£
Products . On the Products page, click the âï¸ (gear) icon in the upper-left
corner. Doing so reveals a drop-down menu.
From this drop-down menu, select the Import records option.
Selecting Import records reveals a separate page with a link to download the Import Template for Products . Click that link to download the template.
Once the template download is complete, open the spreadsheet file to customize it.

## Customize product import template

When the import template has been downloaded and opened, itâs time to modify its contents. However,
before any changes are made, there are a few elements to keep in mind during the process:
- Feel free to remove any columns that arenât deemed necessary. But, it is strongly advised that
the Internal Reference column remains. While itâs not mandatory, having a unique identifier (e.g. FURN_001 ) in the Internal
Reference column for each product can be helpful in many cases. This can even be from previous
software spreadsheets to ease the transition into Odoo. For example, when updating imported products, the same file can be imported several times without
creating duplicates, thus enhancing the efficiency and simplicity of imported product management.
Feel free to remove any columns that arenât deemed necessary. But, it is strongly advised that
the Internal Reference column remains.
While itâs not mandatory, having a unique identifier (e.g. FURN_001 ) in the Internal
Reference column for each product can be helpful in many cases. This can even be from previous
software spreadsheets to ease the transition into Odoo.
`FURN_001`
For example, when updating imported products, the same file can be imported several times without
creating duplicates, thus enhancing the efficiency and simplicity of imported product management.
- Do not change the labels of columns that are meant to be imported. Otherwise, Odoo wonât
recognize them, forcing the user to map them on the import screen manually.
Do not change the labels of columns that are meant to be imported. Otherwise, Odoo wonât
recognize them, forcing the user to map them on the import screen manually.
- Feel free to add new columns to the template spreadsheet, if desired. However, to be added, those
fields must exist in Odoo. If Odoo canât match the column name with a field, it can be matched
manually during the import process. During the import process of the completed template, Odoo reveals a page showcasing all the
elements of the newly-configured product template spreadsheet, separated by File
Column , Odoo Field , and Comments . To manually match a column name with a field in Odoo, click the Odoo Field drop-down
menu next to the File Column that needs a manual adjustment, and select the
appropriate field from that drop-down menu.
Feel free to add new columns to the template spreadsheet, if desired. However, to be added, those
fields must exist in Odoo. If Odoo canât match the column name with a field, it can be matched
manually during the import process.
During the import process of the completed template, Odoo reveals a page showcasing all the
elements of the newly-configured product template spreadsheet, separated by File
Column , Odoo Field , and Comments .
To manually match a column name with a field in Odoo, click the Odoo Field drop-down
menu next to the File Column that needs a manual adjustment, and select the
appropriate field from that drop-down menu.

## Import product template spreadsheet

After customizing the product template spreadsheet, return to the Odoo product import page, where
the template download link is found, and click the Upload File button in the upper-left
corner.
Then, a pop-up window appears, in which the completed product template spreadsheet file should be
selected and uploaded to Odoo.
After that, Odoo reveals a page showcasing all the elements of the newly-configured product template
spreadsheet, separated by File Column , Odoo Field , and Comments .
From here, the File Column can be manually assigned to an Odoo Field , if
necessary.
To make sure everything is appropriate, and all the columns and fields are lined up accurately,
click the Test button in the upper-left corner.
If everything is lined up and applied correctly, Odoo reveals a blue banner at the top of the page,
informing the user that Everything seems valid .
If there are any errors, Odoo reveals a red banner at the top of the page, with instructions of
where to locate the specific issues, and how to fix them.
Once those errors are fixed, click Test again to ensure all necessary issues have been
remedied appropriately.
If additional product template spreadsheets need to be uploaded, click the Load File button, select the desired product template spreadsheet, and repeat the process.
When everything is ready, click the Import button.
When clicked, Odoo instantly imports those products, and reveals the main Products page,
with a pop-up message in the upper-right corner. This pop-up message informs the user how many
products were successfully imported.
At this point, all the newly-imported products are accessible and editable via the Products page.

## Import relation fields, attributes, and variants

Itâs important to note that an Odoo object is always related to many other objects. For example, a
product is linked to product categories, attributes, vendors, and things of this nature. These
links/connections are known as relations.
In order to import product relations, the records of the related object must be imported first from their own list menu.

### Relation fields

On product forms in Odoo, there are a number of fields that can be modified and customized at any
time. These fields are found under every tab on a product form. While these fields are easily
editable directly on the product form, they can also be modified via a product import.
As mentioned, relation fields of this nature can only be imported for products if they already
exist in the database. For example, if a user attempts to import a product with a Product Type , it
can only be one of the preconfigured product types existing in the database (e.g. Storable
Product , Consumable , etc.).
To import information for a relation field on a product import template spreadsheet, add the name of
the field as a column name/title on the spreadsheet. Then, on the appropriate product line, add the
desired relation field option.
When all desired relation field information has been entered, save the spreadsheet, and import it
to the database, per the process mentioned above ( Sales app â£ Products â£
Products â£ âï¸ (gear) icon â£ Import records â£ Upload File ).
Once the spreadsheet with the newly-configured relation field information has been uploaded, click Import , and Odoo returns to the Products page.
When the newly-changed/modified products, complete with the new relation field information, has been
imported and uploaded, that new information can be found on the Products page.

### Attributes and values

Odoo also allows users to import product attributes and values that can be used for products that
already exist in the database, and/or with imported products.
To import attributes and values, a separate spreadsheet or CSV file dedicated to attributes and
values must be imported and uploaded before they can be used for other products.
The column names/titles of the attributes and values spreadsheet should be as follows: Attribute , Display Type , Variant Creation Mode , and Values / Value .
- Attribute : name of the attribute (e.g. Size ).
Attribute : name of the attribute (e.g. Size ).
`Size`
- Display Type : display type used in the product configurator. There are three display
type options: Radio : values displayed as radio buttons Selection : values displayed in a selection list Color : values denoted as a color selection
Display Type : display type used in the product configurator. There are three display
type options:
- Radio : values displayed as radio buttons
Radio : values displayed as radio buttons
- Selection : values displayed in a selection list
Selection : values displayed in a selection list
- Color : values denoted as a color selection
Color : values denoted as a color selection
- Variant Creation Mode : how the variants are created when applied to a product. There
are three variant creation mode options: Instantly : all possible variants are created as soon as the attribute, and its
values, are added to a product Dynamically : each variant is created only when its corresponding attributes and
values are added to a sales order Never : variants are never created for the attribute Note The Variants Creation Mode cannot be changed once the attribute is used on at
least one product.
Variant Creation Mode : how the variants are created when applied to a product. There
are three variant creation mode options:
- Instantly : all possible variants are created as soon as the attribute, and its
values, are added to a product
Instantly : all possible variants are created as soon as the attribute, and its
values, are added to a product
- Dynamically : each variant is created only when its corresponding attributes and
values are added to a sales order
Dynamically : each variant is created only when its corresponding attributes and
values are added to a sales order
- Never : variants are never created for the attribute Note The Variants Creation Mode cannot be changed once the attribute is used on at
least one product.
Never : variants are never created for the attribute
The Variants Creation Mode cannot be changed once the attribute is used on at
least one product.
- Values/Value : values pertaining to the corresponding attribute. If there are multiple
values for the same attribute, the values need to be in individual lines on the spreadsheet.
Values/Value : values pertaining to the corresponding attribute. If there are multiple
values for the same attribute, the values need to be in individual lines on the spreadsheet.
Once the desired attributes and values have been entered and saved in the spreadsheet, itâs time to
import and upload it into Odoo. To do that, navigate to Sales app â£ Configuration
â£ Attributes â£ âï¸ (gear) icon â£ Import records â£ Upload File .
Once the spreadsheet with the newly-configured attributes and values has been uploaded, click Import , and Odoo returns to the Attributes page. Thatâs where those
newly-added attributes and values can be found and edited, if necessary.
As mentioned previously, when attributes and values have been added to the Odoo database, they can
be used for existing or imported products.

### Product variants

When product attributes and values are configured in the database, they can be used on product
import spreadsheets to add more information and detail to products being imported.
To import products with product attributes and values, the product import template spreadsheet must
be configured with specific Product Attributes / Attribute , Product
Attributes / Values , and Name columns.
There can be other columns, as well, but these columns are required in order to properly import
products with specific variants.
- Name : product name
- Product Attributes / Attribute : name of attribute
Product Attributes / Attribute : name of attribute
- Product Attributes / Values : values pertaining to the corresponding attribute
Product Attributes / Values : values pertaining to the corresponding attribute
To import multiple values, separate them by just a comma, not a comma followed by a space,
in the product import template spreadsheet (e.g. furniture,couch,home ).
`furniture,couch,home`
When the desired products and product variants have been entered and saved in the spreadsheet, itâs
time to import and upload them into Odoo. To do that, navigate to Sales app â£
Products â£ Products â£ âï¸ (gear) icon â£ Import records â£ Upload File .
Once the spreadsheet with the newly-configured products and product variants has been uploaded,
click Import , and Odoo returns to the Products page. Thatâs where the
newly-added products can be found.
To view and modify the attributes and variants on any products, select the desired product from the Products page, and click the Attributes & Variants tab.


Product images with Google Images

# Product images with Google Images

Having appropriate product images in Odoo is useful for a number of reasons. However, if a lot of
products need images, assigning them can become incredibly time-consuming.
Fortunately, by configuring the Google Custom Search API within an Odoo database, finding product
images for products (based on their barcode) is extremely efficient.

## Configuration

In order to utilize Google Custom Search within an Odoo database, both the database and the Google
API must be properly configured.
Free Google accounts allow users to select up to 100 free images per day. If a higher amount is
needed, a billing upgrade is required.

### Google API dashboard

- Go to the Google Cloud Platform API & Services page
to generate Google Custom Search API credentials. Then, log in with a Google account. Next, agree
to their Terms of Service by checking the box, and clicking Agree and
Continue .
Go to the Google Cloud Platform API & Services page
to generate Google Custom Search API credentials. Then, log in with a Google account. Next, agree
to their Terms of Service by checking the box, and clicking Agree and
Continue .
- From here, select (or create) an API project to store the credentials. Start by giving it a
memorable Project Name , select a Location (if any), then click Create .
From here, select (or create) an API project to store the credentials. Start by giving it a
memorable Project Name , select a Location (if any), then click Create .
- With the Credentials option selected in the left sidebar, click Create
Credentials , and select API key from the drop-down menu.
With the Credentials option selected in the left sidebar, click Create
Credentials , and select API key from the drop-down menu.
- Doing so reveals an API key created pop-up window, containing a custom API
key . Copy and save Your API key in the pop-up window â it will be used later. Once
the key is copied (and saved for later use), click Close to remove the pop-up window.
Doing so reveals an API key created pop-up window, containing a custom API
key . Copy and save Your API key in the pop-up window â it will be used later. Once
the key is copied (and saved for later use), click Close to remove the pop-up window.
- On this page, search for Custom Search API , and select it.
On this page, search for Custom Search API , and select it.
`CustomSearchAPI`
- From the Custom Search API page, enable the API by clicking Enable .
From the Custom Search API page, enable the API by clicking Enable .

### Google Programmable Search dashboard

- Next, go to Google Programmable Search Engine ,
and click either of the Get started buttons. Log in with a Google account, if not
already logged in.
Next, go to Google Programmable Search Engine ,
and click either of the Get started buttons. Log in with a Google account, if not
already logged in.
- On the Create a new search engine form, fill out the name of the search engine, along
with what the engine should search, and be sure to enable Image Search and SafeSearch .
On the Create a new search engine form, fill out the name of the search engine, along
with what the engine should search, and be sure to enable Image Search and SafeSearch .
- Validate the form by clicking Create .
Validate the form by clicking Create .
- Doing so reveals a new page with the heading: Your new search engine has been
created .
Doing so reveals a new page with the heading: Your new search engine has been
created .
- From this page, click Customize to open the Overview â£ Basic page.
Then, copy the ID in the Search engine ID field. This ID is needed for the Odoo
configuration.
From this page, click Customize to open the Overview â£ Basic page.
Then, copy the ID in the Search engine ID field. This ID is needed for the Odoo
configuration.

### Odoo

- In the Odoo database, go to the Settings app and scroll to the Integrations section. From here, check the box beside Google Images .
Then, click Save .
In the Odoo database, go to the Settings app and scroll to the Integrations section. From here, check the box beside Google Images .
Then, click Save .
- Next, return to the Settings app , and scroll to the Integrations section. Then, enter the API Key and Search Engine ID in the fields
beneath the Google Images feature.
Next, return to the Settings app , and scroll to the Integrations section. Then, enter the API Key and Search Engine ID in the fields
beneath the Google Images feature.
- Click Save .

## Product images in Odoo with Google Custom Search API

Adding images to products in Odoo can be done on any product or product variant. This process can be
completed in any Odoo application that provides access to product pages (e.g. Sales app, Inventory app, etc.).
Below is a step-by-step guide detailing how to utilize the Google Custom Search API to assign
images to products in Odoo using the Odoo Sales application:
- Navigate to the Products page in the Sales app ( Sales app â£
Products â£ Products ). Or, navigate to the Product Variants page in the Sales app
( Sales app â£ Products â£ Product Variants ).
Navigate to the Products page in the Sales app ( Sales app â£
Products â£ Products ). Or, navigate to the Product Variants page in the Sales app
( Sales app â£ Products â£ Product Variants ).
- Select the desired product that needs an image. Note Only products (or product variants) that have a barcode, but not an image, are processed. If a product with one or more variants is selected, each variant that matches the
aforementioned criteria is processed.
Select the desired product that needs an image.
Only products (or product variants) that have a barcode, but not an image, are processed.
If a product with one or more variants is selected, each variant that matches the
aforementioned criteria is processed.
- Click the Action âï¸ (gear) icon on the product page, and select Get
Pictures from Google Images from the menu that pops up.
Click the Action âï¸ (gear) icon on the product page, and select Get
Pictures from Google Images from the menu that pops up.
- On the pop-up window that appears, click Get Pictures .
On the pop-up window that appears, click Get Pictures .
- Once clicked, the image(s) will appear incrementally. Note Only the first 10 images are fetched immediately. If you selected more than 10, the rest are
fetched as a background job. The background job processes about 100 images in a minute. If the quota authorized by Google
(either with a free or a paid plan) is reached, the background job puts itself on hold for 24
hours. Then, it will continue where it stopped the day before.
Once clicked, the image(s) will appear incrementally.
Only the first 10 images are fetched immediately. If you selected more than 10, the rest are
fetched as a background job.
The background job processes about 100 images in a minute. If the quota authorized by Google
(either with a free or a paid plan) is reached, the background job puts itself on hold for 24
hours. Then, it will continue where it stopped the day before.
Create, modify, or close your Google Cloud Billing account


Product variants

# Product variants

Product variants are used to give single products a variety of different characteristics and options
for customers to choose from, such as size, style, or color, just to name a few.
Product variants can be managed via their individual product template, or by navigating to either
the Product Variants or Attributes page. All of these options are located
within the Odoo Sales application.
An apparel company has the following variant breakdown for one of its best-selling t-shirts:
- Unisex Classic Tee Color: Blue, Red, White, Black Size: S, M, L, XL, XXL
- Color: Blue, Red, White, Black
Color: Blue, Red, White, Black
- Size: S, M, L, XL, XXL
Size: S, M, L, XL, XXL
Here, the T-shirt is the product template, and T-shirt: Blue, S is a specific product
variant.
Color and Size are attributes , and the corresponding options (like Blue and S )
are values .
In this instance, there is a total of twenty different product variants: four Color options
multiplied by five Size options. Each variant has its own inventory count, sales totals, and
other similar records in Odoo.

## Configuration

To use product variants, the Variants setting must be activated in the Odoo Sales application.
To do that, go to Sales app â£ Configuration â£ Settings , and locate the Product Catalog section at the top of the page.
In that section, check the box to enable the Variants feature.
Then, click Save at the top of the Settings page.

## Attributes

Before product variants can be set up, attributes must be created. To create, manage, and modify
attributes, navigate to Sales app â£ Configuration â£ Attributes .
The order of attributes on the Attributes page dictates how they appear on the Product Configurator , Point of Sale dashboard, and eCommerce pages.
To create a new attribute from the Attributes page, click New . Doing so
reveals a blank attributes form that can be customized and configured in a number of ways.
First, create an Attribute Name , such as Color or Size .
`Color`
`Size`
Next, select one of the options from the Display Type field. The Display
Type determines how this product is shown on the online store, Point of Sale dashboard, and Product Configurator .
The Display Type options are:
- Pills : options appear as selectable buttons on the product page of the online store.
Pills : options appear as selectable buttons on the product page of the online store.
- Color : options appear as small, colored squares, which reflect any HTML color codes
Color : options appear as small, colored squares, which reflect any HTML color codes
- Radio : options appear in a bullet-style list on the product page of the online store.
Radio : options appear in a bullet-style list on the product page of the online store.
- Select : options appear in a drop-down menu on the product page of the online store.
set, on the product page of the online store.
Select : options appear in a drop-down menu on the product page of the online store.
set, on the product page of the online store.
- Multi-checkbox : options appear as selectable checkboxes on the product page of the
online store.
Multi-checkbox : options appear as selectable checkboxes on the product page of the
online store.
The Variant Creation Mode field informs Odoo when to automatically create a new variant
once an attribute is added to a product.
The Variant Creation Mode field must be set to Never in order for the Multi-checkbox to work properly as the Display Type .
- Instantly : Creates all possible variants as soon as attributes and values are added to
a product template.
Instantly : Creates all possible variants as soon as attributes and values are added to
a product template.
- Dynamically : Creates variants only when corresponding attributes and values are
added to a sales order.
Dynamically : Creates variants only when corresponding attributes and values are
added to a sales order.
- Never : Prevents the automatic creation of purchaseable variants with this tag.
Instead, this tag is treated as being informational. If more than one value is assigned to an
attribute with this tag, all values are loaded when the product displays, since the creation of
discrete variants is prevented.
Never : Prevents the automatic creation of purchaseable variants with this tag.
Instead, this tag is treated as being informational. If more than one value is assigned to an
attribute with this tag, all values are loaded when the product displays, since the creation of
discrete variants is prevented.
Once added to a product, an attributeâs Variants Creation Mode cannot be edited.
The eCommerce Filter Visibility field determines whether or not these attribute options
are visible to the customer on the front-end, as they shop on the online store.
- Visible : the attribute values are visible to customers on the front-end.
Visible : the attribute values are visible to customers on the front-end.
- Hidden : the attribute values are hidden from customers on the front-end.
Hidden : the attribute values are hidden from customers on the front-end.
Lastly, in the optional eCommerce Category field, select a category from a drop-down
menu to group similar attributes under the same section for added specificity and organization.
To view the details related to the attribute category selected, click the internal link (right arrow) icon to the far-right of the eCommerce Category field, once an option has been selected. Doing so reveals that
attribute categoryâs detail form.
Here, the Category Name and Sequence are displayed at the top. Followed
by Related Attributes associated with the category. These attributes can be dragged
and dropped into a desired priority order.
Attributes can be directly added to the category, as well, by clicking Add a line .
To create an attribute category directly from this field, start typing the name of the new
category, then select either Create or Create and editâ¦ from the
drop-down menu that appears.
Clicking Create creates the category, which can be modified later. Clicking Create and editâ¦ creates the category and reveals a Create Category pop-up window, in which the new attribute category can be configured and customized.

### Attribute values

Attribute values should be added to the Attribute Values tab. Values can be added to an
attribute at any time, if needed.
To add a value, click Add a line in the Attribute Values tab.
Then, enter the name of the value in the Value column. Next, check the box in the Is custom value column if the value is custom (i.e., the customer gets to provide unique
specifications that are specific to this particular value).

#### Colors

Next to Display Type , select the Color option. Go to the Attribute Values tab to modify the value settings.
To choose a color, click the blank circle in the Color column, which reveals an HTML
color selector pop-up window.
In this pop-up window, select a specific color by dragging the color slider to a particular hue and
clicking on the color portion directly on the color gradient window.
Or, choose a specific color by clicking the dropper icon and selecting a desired color thatâs
currently clickable on the screen.
If you sell products with specific patterns, you can also add an image to display the pattern of the
product. To do so, click the (camera) icon, then click the (pencil) icon and select an image from your local drive. This pattern
will appear as a color option on the eCommerce product page.
Attributes can also be created directly from the product template by adding a new line and typing
the name into the Variants tab.
Once an attribute is added to a product, that product is listed and accessible via the attributeâs Related Products smart button. That button lists every product in the database currently
using that attribute.

## Product variants

Once an attribute is created, use the attribute (and its values) to create a product variant. To do
that, go to Sales app â£ Products â£ Products , and select an existing product to
view that desired productâs form. Or, click Create to create a new product, to which a
product variant can be added.
On the product form, click the Attributes & Variants tab to view, manage, and modify
attributes and values for the product.
To add an attribute to a product and subsequent attribute values, click Add a line in
the Attributes & Variants tab. Then, choose the desired attribute from the drop-down
menu that appears.
Attributes can be created directly from the Attributes & Variants tab of a product
form. To do that, start typing the name of the new attribute in the blank field, and select
either Create or Create and editâ¦ from the mini drop-down menu that
appears.
Clicking Create creates the attribute, which can be customized later. Clicking Create and editâ¦ creates the attribute, and a Create Attribute pop-up
form appears. In the pop-up form, proceed to modify the attribute in a number of ways.
Once an attribute is selected in the Attribute column, proceed to select the specific
attribute values to apply to the product, via the drop-down menu available in the Values column.
There is no limit to how many values can be added.
Similar product variant creation processes are accessible through the Purchase, Inventory, and
eCommerce applications.

### Configure variants

To the far-right of the attribute line is a Configure button. When clicked, Odoo reveals
a separate page showcasing those specific Product Variant Values .
Here, the specific Value name, HTML Color Index (if applicable), and Value Price Extra are viewable.
The Value Price Extra represents the increase in the sales price if the attribute is
selected.
When a value is clicked on the Product Variant Values page, Odoo reveals a separate
page, detailing that valueâs related details.
On the specific product variant detail page, the Value and Value Price Extra fields can be found, along with an Exclude for field.
In the Exclude for field, different Product Templates and specific Attribute Values can be added. When added, this specific attribute value will be
excluded from those specific products.

### Variants smart button

When a product has attributes and variants configured in its Attributes & Variants tab,
a Variants smart button appears at the top of the product form. The Variants smart button indicates how many variants are currently configured for that specific product.
When the Variants smart button is clicked, Odoo reveals a separate page showcasing all
the specific product variant combinations configured for that specific product.

## Impact of variants

In addition to offering more detailed product options to customers, product variants have their own
impacts that can be taken advantage of throughout the Odoo database.
- Barcode : barcodes are associated with each variant, instead of the product template.
Each individual variant can have its own unique barcode/SKU.
Barcode : barcodes are associated with each variant, instead of the product template.
Each individual variant can have its own unique barcode/SKU.
- Price : every product variant has its own public price, which is the sum of the product
template price and any extra charges for particular attributes. Example A red shirtâs sales price is $23 â because the shirtâs template price is $20, plus an additional
$3 for the red color variant. Pricelist rules can be configured to apply to the product template
or to the variant.
Price : every product variant has its own public price, which is the sum of the product
template price and any extra charges for particular attributes.
A red shirtâs sales price is $23 â because the shirtâs template price is $20, plus an additional
$3 for the red color variant. Pricelist rules can be configured to apply to the product template
or to the variant.
- Inventory : Inventory is counted for each individual product variant. On the product
template form, the inventory reflects the sum of all variants, but the actual inventory is
computed by individual variants.
Inventory : Inventory is counted for each individual product variant. On the product
template form, the inventory reflects the sum of all variants, but the actual inventory is
computed by individual variants.
- Picture : each product variant can have its own specific picture.
Picture : each product variant can have its own specific picture.
Changes to the product template automatically apply to every variant of that product.

Configuration
Attributes
Attribute values
Product variants
Configure variants
Variants smart button
Impact of variants


Returns and refunds

# Returns and refunds

The Odoo Sales app provides two different ways to process returns. The method used depends on
whether or not an invoice has been sent.

## Before invoicing

Returns are completed using Reverse Transfers when a customer decides to return a product before an invoice has been sent or validated.
In order to use Reverse Transfers , the Inventory app must be installed.
To start a return before invoicing, navigate to the Sales app, select the desired
sales order, and click on the Delivery smart button to open the associated delivery
order.
On the validated delivery order, click Return .
This opens a Reverse Transfer pop-up window.
By default, the Quantity matches the validated quantities from the delivery order.
Update the quantities, if necessary. Click on the ðï¸ (trash) icon next to a line item
to remove it from the return.
Next, click Return to confirm the return. This generates a new warehouse operation for
the incoming returned product(s).
Upon receiving the return, the warehouse team validates the warehouse operation by clicking Validate . Then, on the original sales order, the Delivered quantity updates
to reflect the difference between the initial validated quantities and the returned quantities.
When an invoice is created, the customer receives an invoice only for the products they are
keeping, if any.

## After invoicing

Sometimes, customers return an item after they receive and/or pay for their invoice. In these
cases, a return using only Reverse Transfers is insufficient since validated, or sent, invoices
cannot be changed.
However, Reverse Transfers can be used in conjunction with Credit Notes to complete the
customerâs return.
To start a return after invoicing, navigate to the relevant sales order in the Sales app.
If there is a payment registered on the sales order, the payment details appear in the chatter, and
the invoice (accessible through the Invoices smart button) has a green In
Payment banner.
From the sales order, click on the Delivery smart button to view the validated delivery
order. Then, click Return to open the Reverse Transfer pop-up window.
Next, edit the Product and/or Quantity , as needed for the return. Then,
click Return . This generates a new warehouse operation for the incoming returned
product(s), which is validated by the warehouse team once the return is received by clicking Validate .
Then, on the sales order, the Delivered quantity updates to reflect the difference
between the initial validated quantities and the returned quantities.
To process a refund, navigate to the relevant invoice (from the sales order, click on the Invoices smart button). Then, click the Credit Note button at the top of the
validated invoice.
Doing so reveals a Credit Note pop-up form.
Start by entering a Reason displayed on Credit Note and a specific Journal to process the credit. Then, select a specific Reversal Date .
After the information is filled in, click Reverse or Reverse and Create
Invoice . Then, edit the draft, if needed.
Lastly, click Confirm to confirm the credit note.
When complete, a blue banner reading: You have outstanding credits for this customer. You
can allocate them to mark this invoice as paid. appears at the top of the page.
Credit notes and refunds