Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
5788e73
[add] sale_product_set
Aug 6, 2015
01723c6
[10.0][MIG] sale_product_set
leemannd Dec 23, 2016
daaaca1
[10.0][FIX][sale_product_set] incompatibility with sale_margin (#519)
MiquelRForgeFlow Aug 28, 2017
b342dae
[10.0][IMP] sale_product_set: move `add set` smart button header (#543)
leemannd Oct 25, 2017
6a757db
[MIG][11.0] sale_product_set
simahawk Nov 28, 2017
7962c43
remove obsolete .pot files [ci skip]
sbidoul Jun 15, 2018
39c3e93
[UPD] Update sale_product_set.pot
oca-travis Jun 21, 2018
f34fd01
Translated using Weblate (Spanish)
pedrobaeza Oct 24, 2018
49a2f67
[MIG] - Migration 12.0 sale_product_set
sbejaoui Nov 5, 2018
a4b2c37
[IMP] - refresh sale_product_set.pot
sbejaoui Nov 26, 2018
a21c8a3
[REM] - Remove version="7.0" reference in xml views
sbejaoui Nov 27, 2018
c9f3c5b
[FIX] - fix class name
sbejaoui Nov 27, 2018
b15ff3f
[FIX] - fix prepare_sale_order_line_data
sbejaoui Dec 3, 2018
7ccb56f
[ADD] - Add ref field
sbejaoui Dec 19, 2018
9bf7b8e
[IMP] - order manifest files
sbejaoui Dec 26, 2018
cbd8d35
Remove string attribute
rven Dec 26, 2018
9353f8b
Translated using Weblate (Spanish)
mvrodriguez Feb 11, 2019
782b3fc
[IMP] - Add multi-company to product set
sbejaoui May 29, 2019
4b9018a
Translated using Weblate (German)
marylla Jul 16, 2019
636c6c1
[IMP] - Add archive option to product set
sbejaoui Apr 3, 2019
c870369
[IMP] sale_product_set module
AdriaGForgeFlow Jul 2, 2019
961b6ec
Translated using Weblate (Chinese (Simplified))
liweijie0812 Sep 1, 2019
38eb4f4
sale_product_set: test coverage 100%
simahawk Nov 14, 2019
6cfd410
sale_product_set: add optional partner
simahawk Nov 14, 2019
7033551
sale_product_set wizard: ease overrides
simahawk Nov 14, 2019
e8577da
sale_product_set: fix access rule
simahawk Nov 18, 2019
ca66885
sale_product_set: add skip existing products option
simahawk Nov 20, 2019
58f214b
sale_product_set: move menu to products catalog
simahawk Nov 20, 2019
4e0a30c
sale_product_set: fix add wizard relation w/ set
simahawk Nov 28, 2019
463a33c
sale_product_set: fix wizard rel w/ order and partner
simahawk Dec 9, 2019
443fec8
sale_product_set 12.0.1.3.0
simahawk Dec 11, 2019
cbbfdbd
[IMP] sale_product_set: black, isort
AdriaGForgeFlow Dec 23, 2019
b3bffeb
[MIG] sale_product_set: Migration to 13.0
AdriaGForgeFlow Dec 23, 2019
db9383b
sale_product_set: Define proper hook to prepare sale order line
grindtildeath Jul 13, 2020
e04b844
Translated using Weblate (Spanish)
danimv5 Jul 27, 2020
f2a8b02
Translated using Weblate (Catalan)
brendapaniagua Aug 31, 2020
123d261
[13][IMP] product_set also duplicate lines
TDu Nov 6, 2020
6709871
sale_product_set: ease override of partner validation
simahawk Dec 4, 2020
503645b
[IMP] sale_product_set: black, isort, prettier
phuctranfxvn Dec 27, 2020
fcee99f
[MIG] sale_product_set: Migration to 14.0
phuctranfxvn Dec 29, 2020
721eca3
Translated using Weblate (Portuguese (Brazil))
britoederr Feb 14, 2021
1560252
Translated using Weblate (Catalan)
danimv5 Feb 23, 2021
a33ade1
Translated using Weblate (Spanish)
danimv5 Feb 23, 2021
55ceff0
Added translation using Weblate (French (France))
Yvesldff Apr 11, 2021
d624f36
sale_product_set: allow passing custom lines to wizard
simahawk Feb 16, 2021
30b9ca3
sale_product_set: improve views/actions
simahawk Feb 16, 2021
5317b0f
sale_product_set: cleanup test case
simahawk Feb 16, 2021
abfa192
sale_product_set: fix SO line vals get
simahawk May 14, 2021
be760d0
Translated using Weblate (German)
marylla Jul 9, 2021
857df61
sale_product_set: add view and menu for lines
simahawk Jul 21, 2021
1762ab5
[FIX] sale_product_set: Change toggle_active button to web_ribbon wid…
victoralmau Mar 11, 2022
1f38998
[FIX] sale_product_set: Define multi-company rules correctly.
victoralmau Mar 14, 2022
2567225
[14.0][FIX] sale_product_set: Add company_id from order
rousseldenis Mar 15, 2022
a6ddf74
Translated using Weblate (Spanish)
pedrobaeza Mar 24, 2022
e6129e5
[FIX] sale_product_set: Proper company default
pedrobaeza Mar 24, 2022
655ecaa
sale_product_set: fix custom lines edit
Jan 12, 2022
c750abd
Translated using Weblate (Italian)
francesco-ooops Apr 8, 2022
e37bf59
[13.0][FIX] sale_product_set: fix sequence during set_apply on SO.
acsonefho Oct 15, 2021
d28b066
[MIG]sale_product_set: Migration to 15.0
manuelregidor Jun 1, 2022
2ef7978
Translated using Weblate (Italian)
mymage Mar 23, 2023
e013c79
Translated using Weblate (Slovenian)
sysadminmatmoz Mar 31, 2023
2667b63
[MIG] sale_product_set: Migration to 16.0
Jun 23, 2023
41c9302
Split into product-attribute/product_set and sale_product_set
Jul 13, 2023
cacb75e
[MIG] sale_product_set_layout: Migration to 16.0
Nov 28, 2023
30fb8d8
[IMP] sale_product_set: Move the base logic of the transient model to…
pilarvargas-tecnativa Mar 12, 2024
86b3da8
[IMP] sale_product_set: pre-commit auto fixes
NICO-SOLUTIONS Mar 26, 2024
502ffb7
[MIG] sale_product_set: Migration to 17.0
NICO-SOLUTIONS Mar 26, 2024
1c6e2bb
Translated using Weblate (German)
NICO-SOLUTIONS Mar 27, 2024
66b75d2
Translated using Weblate (Swedish)
jakobkrabbe Jun 12, 2024
144fcd7
Translated using Weblate (Italian)
mymage Aug 20, 2024
7f93451
[IMP] synchronize active state between partner and product set
ajaniszewska-dev Jun 27, 2024
f7ced3e
[IMP] sale_product_set: pre-commit auto fixes
juancarlosonate-tecnativa Feb 13, 2025
8e92f29
[MIG] sale_product_set: Migration to 18.0
sbejaoui Nov 4, 2024
32ac0b3
Translated using Weblate (Turkish)
bo-eska Jul 19, 2025
7e12391
[MIG] sale_product_set: Migration to 19.0
CRogos Apr 17, 2026
8ea62c3
[DO NOT MERGE] temporary dependency
CRogos May 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 120 additions & 0 deletions sale_product_set/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=================
Sales product set
=================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:2f7beee55c7bf24a53bdf20c9eaa6dec4098d084c0bdb197a8b3702fae33e2a1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/sale-workflow/tree/19.0/sale_product_set
:alt: OCA/sale-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/sale-workflow-19-0/sale-workflow-19-0-sale_product_set
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/sale-workflow&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

A **product set** is a list of products which end customers aren't
aware, this list is defined by sales manager.

This module aims to load a product set in a sales order though a wizard.
The product set is a list of products and quantities that gets inserted
as separate sales order lines.

After a *product set* is added to the sales order, each line can be
updated or removed as any other sales order lines.

**Table of contents**

.. contents::
:local:

Usage
=====

- Define a *product set* as sales manager:

- choose products
- for each product, define a quantity.
- for each product (if Discounts setting is active), define a
discount or leave default value
- Sort *set* lines, this order will be the default when added into
the quotation

- Then you can remove or update added lines as any other sales order
lines.

.. image:: https://raw.githubusercontent.com/sale_product_set/static/description/sale_order.png
:alt: Sale order

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/sale-workflow/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/sale-workflow/issues/new?body=module:%20sale_product_set%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Anybox

Contributors
------------

- Clovis Nzouendjou <clovis@anybox.fr>
- Pierre Verkest <pverkest@anybox.fr>
- Denis Leemann <denis.leemann@camptocamp.com>
- Simone Orsi <simone.orsi@camptocamp.com>
- Souheil Bejaoui <souheil.bejaoui@acsone.eu>
- Adria Gil Sorribes <adria.gil@forgeflow.com>
- Phuc (Tran Thanh) <phuc@trobz.com>
- Manuel Regidor <manuel.regidor@sygel.es>
- `Tecnativa <https://www.tecnativa.com>`__:

- Pilar Vargas
- Juan Carlos Oñate

- Nils Coenen <nils.coenen@nico-solutions.de>
- Christopher Rogos <crogos@gmail.com>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/sale-workflow <https://github.com/OCA/sale-workflow/tree/19.0/sale_product_set>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions sale_product_set/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import models
from . import wizard
22 changes: 22 additions & 0 deletions sale_product_set/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copyright 2015 Anybox
# Copyright 2018 Camptocamp, ACSONE SA/NV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Sales product set",
"category": "Sales",
"license": "AGPL-3",
"author": "Anybox, Odoo Community Association (OCA)",
"version": "19.0.1.0.0",
"website": "https://github.com/OCA/sale-workflow",
"depends": ["sale", "sale_management", "product_set"],
"data": [
"security/ir.model.access.csv",
"views/product_set.xml",
"views/product_set_line.xml",
"wizard/sale_product_set_wizard_view.xml",
"views/sale_order.xml",
"views/res_config_settings.xml",
],
"demo": ["demo/product_set_line.xml"],
"installable": True,
}
9 changes: 9 additions & 0 deletions sale_product_set/demo/product_set_line.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="product_set.product_set_line_computer_1" model="product.set.line">
<field name="discount">25</field>
</record>
<record id="product_set.product_set_line_services_1" model="product.set.line">
<field name="discount">50</field>
</record>
</odoo>
150 changes: 150 additions & 0 deletions sale_product_set/i18n/am.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_product_set
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-13 01:19+0000\n"
"PO-Revision-Date: 2017-05-13 01:19+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n"
"Language: am\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. module: sale_product_set
#: model_terms:ir.ui.view,arch_db:sale_product_set.product_set_add_form_view
msgid "Add a line"
msgstr ""

#. module: sale_product_set
#: model_terms:ir.ui.view,arch_db:sale_product_set.product_set_add_form_view
msgid "Add a note"
msgstr ""

#. module: sale_product_set
#: model_terms:ir.ui.view,arch_db:sale_product_set.product_set_add_form_view
msgid "Add a section"
msgstr ""

#. module: sale_product_set
#: model_terms:ir.ui.view,arch_db:sale_product_set.product_set_add_form_view
#: model_terms:ir.ui.view,arch_db:sale_product_set.view_order_stock_form
msgid "Add set"
msgstr ""

#. module: sale_product_set
#: model:ir.actions.act_window,name:sale_product_set.act_open_wizard_product_set_add_from_order
msgid "Add set in sale order"
msgstr ""

#. module: sale_product_set
#: model_terms:ir.ui.view,arch_db:sale_product_set.product_set_add_form_view
msgid "Add set in sale order line"
msgstr ""

#. module: sale_product_set
#: model:ir.actions.act_window,name:sale_product_set.act_open_wizard_product_set_add_from_set
msgid "Add set to sale order"
msgstr ""

#. module: sale_product_set
#: model_terms:ir.ui.view,arch_db:sale_product_set.product_set_add_form_view
msgid "Cancel"
msgstr ""

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__create_uid
msgid "Created by"
msgstr "Creado por"

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__create_date
msgid "Created on"
msgstr "Creado en"

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__partner_id
msgid "Customer"
msgstr ""

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_product_set_line__discount
msgid "Discount (%)"
msgstr ""

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__display_name
msgid "Display Name"
msgstr ""

#. module: sale_product_set
#: model:ir.model.fields,help:sale_product_set.field_sale_product_set_wizard__skip_existing_products
msgid ""
"Enable this to not add new lines for products already included in SO lines."
msgstr ""

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__id
msgid "ID"
msgstr "ID"

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__write_date
msgid "Last Updated on"
msgstr "Última actualización en"

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__product_set_id
#: model:ir.ui.menu,name:sale_product_set.menu_product_set_config
msgid "Product set"
msgstr ""

#. module: sale_product_set
#: model:ir.model,name:sale_product_set.model_product_set_line
#: model:ir.ui.menu,name:sale_product_set.menu_product_set_line_config
msgid "Product set line"
msgstr ""

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__product_set_line_ids
msgid "Product set lines"
msgstr ""

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__quantity
msgid "Quantity"
msgstr ""

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__order_id
msgid "Sale Order"
msgstr ""

#. module: sale_product_set
#: model:ir.model.fields,field_description:sale_product_set.field_sale_product_set_wizard__skip_existing_products
msgid "Skip Existing Products"
msgstr ""

#. module: sale_product_set
#: model:ir.model,name:sale_product_set.model_sale_product_set_wizard
msgid "Wizard model to add product set into a quotation"
msgstr ""

#. module: sale_product_set
#. odoo-python
#: code:addons/sale_product_set/wizard/sale_product_set_wizard.py:0
#, python-format
msgid "You can use a sale order assigned only to following partner(s): {}"
msgstr ""
Loading
Loading