OCA/sale-promotion
OCA community repository with 79 Odoo modules confirmed in the OdooWiki catalogue (versions 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0). Reviewed on 2026-11-03.
Open on GitHubConfirmed modules per version
Modules in the repository
- Coupon ChatterOdoo 15, 16, 17coupon_chatter
Adds a chatter (messages, followers and scheduled activities) to loyalty and coupon programs, so teams can log notes and plan follow-ups directly on each program.
- Coupons on Commercial EntityOdoo 15coupon_commercial_partner_applicability
Coupons generated for one contact can be redeemed by any other contact belonging to the same commercial entity (same company group).
- Coupon Reward copy ProductOdoo 14coupon_copy_product
When you duplicate a coupon reward, the copy keeps the same reward product as the original instead of losing it.
- coupon_criteria_multi_product
Adds a 'Multi Product' coupon criteria option to promotion programs, letting you set different minimum quantities for different product groups, all of which must be met for the coupon to apply.
- Coupons Rewards from domainOdoo 15coupon_domain_free_product
Adds a new coupon reward type called Product Domain, letting you give free products chosen by a product domain instead of a single fixed product, with an optional maximum quantity.
- coupon_domain_product_discount
Lets you apply a coupon promotion discount only to the products that match a product domain, instead of listing each product manually. You also get a description of the eligible products on the coupon report.
- Coupon incompatibilitiesOdoo 15coupon_incompatibility
Lets you mark promotions as incompatible with each other, so that two conflicting promotions cannot be applied together. The link is automatically kept two-way between the promotions.
- Coupon LimitOdoo 14, 15coupon_limit
Adds limits to promotion programs so a coupon can only be applied a certain number of times per customer or per salesman. It is a technical base meant to be extended by sales and POS modules.
- Coupon Mas MailingOdoo 15coupon_mass_mailing
Link mass mailings to promotion programs. A 'Mailings' smart button on the promotion form shows how many mailings are linked and creates one automatically using the promotion's contact domain if none exist yet.
- Coupons multi giftOdoo 15coupon_multi_gift
Lets you configure several gift products (with quantities) as the reward of a single promotion, instead of only one free product.
- coupon_multiplier_free_product
Adds a new promotion reward type called "Multiple of" so you can set up 3x2-style offers or "buy this, get that free" deals that repeat as many times as the customer qualifies. You can also force the free product to be added and cap how many free units are…
- Coupon PortalOdoo 15coupon_portal
Customers can see and manage their own coupons in the Odoo customer portal, with a dedicated Coupons page showing code, program, dates and status.
- coupon_portal_commercial_partner_applicability
Lets portal users see coupons that belong to their company (commercial partner) and its contacts, not only coupons linked to their own user contact.
- coupon_promotion_generate_coupon
Lets you link a coupon program to a second coupon program so the coupons it generates follow the rules of that other program. A button on the program form shows and opens the coupons of the linked program.
- loyalty_card_fixed_expiration_date
Lets you set a number of days on a gift card loyalty program so that each new card automatically gets a fixed expiration date counted from the day it is created.
- Loyalty Coupon No MailOdoo 18loyalty_coupon_no_mail
Adds a 'Never' option to the communication trigger of loyalty programs, so coupons can be generated without sending any email. It is the new default for coupon programs.
- Loyalty multi product criteriaOdoo 16, 18loyalty_criteria_multi_product
Adds a "Multi Product" criteria option to loyalty program rules, letting you require several different products (each with its own minimum quantity) before a promotion or loyalty reward applies.
- Loyalty incompatibilitiesOdoo 16, 17, 18, 19loyalty_incompatibility
Lets you mark loyalty programs and promotions as incompatible with each other, so you can control which offers should not be combined.
- loyalty_initial_date_validity
Adds a Start Date field to loyalty programs and promotions, so you can define when a promotion becomes valid. It also checks that the start date is not later than the end date.
- Loyalty LimitOdoo 16, 17, 18loyalty_limit
Adds limits to loyalty programs: a maximum number of times a program can be applied per customer, and per-salesman limits with a strict mode. It is a technical base meant to be extended by sales and POS modules.
- Loyalty Mass MailingOdoo 16, 18loyalty_mass_mailing
Adds a "Mailings" button on loyalty programs so you can create or open email campaigns linked to a promotion, pre-filled with the promotion's contact filter.
- Loyalty multi giftOdoo 16, 18loyalty_multi_gift
Adds a new "Multi Gift" reward type to loyalty programs, letting you offer several gift products with quantities in a single promotion instead of just one.
- Loyalty Partner ApplicabilityOdoo 16, 17, 18loyalty_partner_applicability
Restrict loyalty promotions to a chosen group of customers by selecting specific contacts or defining a customer filter on the promotion itself.
- Loyalty Program ChatterOdoo 18loyalty_program_chatter
Adds a chatter (messages and activities) to loyalty programs, so you can log notes, schedule activities and follow up on each program directly from its form.
- Auto Refresh CouponsOdoo 13, 14, 15sale_coupon_auto_refresh
Automatically re-applies promotion programs marked as auto-apply on sales orders whenever the order or its lines change, without the user having to click anything.
- Sale Coupon ChatterOdoo 13sale_coupon_chatter
Adds a chatter to coupon and promotion programs so users can log notes, send messages and schedule activities directly on each program record.
- Coupons on Commercial EntityOdoo 13sale_coupon_commercial_partner_applicability
Coupons generated for one contact can also be used by other contacts that belong to the same commercial entity, instead of being rejected as belonging to an invalid partner.
- Coupons multi product criteria in saleOdoo 13, 14, 15sale_coupon_criteria_multi_product
Lets you use multi-product promotion criteria (from the coupon_criteria_multi_product module) when applying coupons and promotions on sale orders. Odoo checks each order's products and quantities against those criteria before granting the reward.
- Sales Coupon based on Sales Order valuesOdoo 13, 14, 15sale_coupon_criteria_order_based
Adds an extra condition to coupon and promotion programs so they only apply to sales orders that match a chosen order filter, for example a specific sales team or customer.
- Auto Refresh Coupons with Delivery lineOdoo 13, 14, 15sale_coupon_delivery_auto_refresh
Keeps automatic coupon and free-shipping behaviour working together on sales orders: when a delivery line is added automatically, coupons are still applied, and when coupons are recomputed, delivery lines are not refreshed again.
- Sale Coupons Rewards from domainOdoo 13, 15sale_coupon_domain_free_product
This module lets you create coupon programs that give free products based on a product domain, automatically adding 100% discounted reward lines to sales orders when the domain conditions are met.
- Sale Coupon Promotion Product Domain DiscountOdoo 13, 14, 15sale_coupon_domain_product_discount
Lets you apply a coupon promotion discount only to the products that match a product domain, instead of the whole order. It also supports a strict per-product limit so each product must individually meet the minimum quantity and amount rules.
- sale_coupon_domain_product_discount_in_field
This bridge module makes a coupon promotion apply its discount only to the products that match the promotion's product domain, instead of to all order lines. It installs automatically when both related promotion modules are present.
- sale_coupon_domain_product_reward_fixed_price
This bridge module makes two promotion features work together: fixed-price rewards and product-specific discount rules. It lets a fixed price be applied only to the products that match the promotion's product filter.
- Coupon Financial Risk CompatibilityOdoo 13, 15sale_coupon_financial_risk
Prevents reward coupons from being emailed to customers when their sales order exceeds the allowed financial risk. It links coupon promotions with credit risk checks on confirmation.
- sale_coupon_free_shipping_default_product
Lets you choose one default service product that is automatically used as the reward product whenever a promotion is set to free shipping, so you don't have to create a new product for every free shipping promotion.
- Coupon incompatibilitiesOdoo 13, 15sale_coupon_incompatibility
Lets you mark promotions as incompatible so that two conflicting promotions cannot be applied to the same sales order. When a customer tries to add a promotion or coupon that clashes with one already on the order, Odoo blocks it with an error message.
- Coupon LimitOdoo 13, 14, 15sale_coupon_limit
Limit how many times a promotion or coupon can be used per customer or per salesperson. When a limit is reached, Odoo blocks the promotion and shows an error message.
- Sale Coupon Mas MailingOdoo 13sale_coupon_mass_mailing
Link mass mailings to promotion programs and launch them from a smart button on the promotion form. The mailing audience is pre-filled with the promotion's contact domain.
- Coupons multi gift in salesOdoo 13, 14, 15sale_coupon_multi_gift
This module lets you set up promotions that give several different free products as a reward on a sales order. When a promotion with multiple gift rewards applies, Odoo automatically adds the free products as separate order lines with a 100% discount.
- Code coupon program multiple timesOdoo 13, 15sale_coupon_multiple_code_program
Allows a single sales order to use more than one coupon code promotion program, instead of Odoo's default limit of one code program per order.
- Sale Coupon Multiplier Free ProductOdoo 13, 15sale_coupon_multiplier_free_product
This module lets you set up 'buy X, get Y free' promotions that repeat automatically, such as 3x2 offers, and ensures the free product lines are correctly added, updated, or removed on sales orders.
- Link coupons to order linesOdoo 13, 14, 15sale_coupon_order_line_link
Links each sale order line to the coupon or promotion program that produced it, and shows which lines generated a reward and which lines received it. Adds promotion tracking fields and filters to sales orders and the sales analysis report.
- Pending CouponsOdoo 13, 15sale_coupon_order_pending
Shows salespeople how many coupons a customer still has available and lets them apply one directly from the sales order.
- sale_coupon_order_pending_commercial_partner
Automatically installed glue module that widens the search for pending coupons on a sales order so coupons belonging to the whole commercial entity (parent company and its contacts) are shown, not just those of the order's contact.
- Coupons SuggestionsOdoo 13, 15sale_coupon_order_suggestion
Shows a gift icon on sales order lines when a promotion is available for the product, letting the salesperson open the promotion wizard directly from the line.
- Sale Coupon PartnerOdoo 13, 14, 15sale_coupon_partner
Lets you link a coupon or promotion program to a specific customer, and then analyse sales by that customer in the Sales Analysis report.
- Sale Coupon PortalOdoo 13sale_coupon_portal
Customers can see and manage their own sale coupons from the customer portal, with filters, sorting and search by coupon code or program.
- sale_coupon_portal_commercial_partner_applicability
Lets customers see on the portal the coupons that belong to their company, not only the ones linked to their own contact.
- sale_coupon_product_exclude
Lets you set a product filter on a promotion so that matching products are left out when Odoo calculates the discount. The excluded products are ignored for the reward, both for whole-order and per-line discounts.
- sale_coupon_promotion_generate_coupon
When a promotion is set to hand out its reward coupon through a different promotion, this module makes the coupon be created in that other promotion instead, and keeps the sales counters and coupon expiry consistent.
- sale_coupon_reward_add_product
Lets you configure a promotion so the free reward product is added automatically to the sales order when it is missing, instead of requiring the customer to add it first.
- Sale Coupon Fixed PriceOdoo 14sale_coupon_reward_fixed_price
Adds a new "Fixed Price" reward type to coupon and promotion programs, letting you set a specific unit price for the products that match the program's rules instead of giving a percentage or amount discount.
- sale_coupon_reward_fixed_price_order_line_link
Bridge module that links fixed-price coupon rewards to the sales order lines they discount, so each discounted line records which promotion program applied it.
- Coupons Selection WizardOdoo 13, 15sale_coupon_selection_wizard
Salespeople can open a wizard from a sales order to see all promotions that fit the order, preview the required products and rewards, and apply the chosen promotion in one click.
- sale_coupon_validity_notification
When a coupon linked to a sales order expires, Odoo automatically posts a note on that order and schedules a warning activity for the salesperson, so they know the coupon must be removed.
- Auto Refresh CouponsOdoo 16, 18, 19sale_loyalty_auto_refresh
Automatically applies and refreshes loyalty and promotion rewards on sales orders whenever the order changes, without the user having to click anything. A company-wide setting turns this behaviour on or off.
- Loyalty multi product criteria in saleOdoo 16, 18sale_loyalty_criteria_multi_product
Lets you use multi-product promotion criteria on sales orders, so a promotion only applies when all the required products are actually in the order.
- Loyalty incompatibilities in salesOdoo 16, 17, 18sale_loyalty_incompatibility
Adds incompatibility rules between promotions in sales orders, so a promotion that conflicts with one already applied cannot be used together.
- sale_loyalty_initial_date_validity
When a sales order is created or edited, Odoo only offers promotions and loyalty programs whose start date has already arrived, so future-dated promotions cannot be applied by mistake.